"+ descrizione" su doc., articoli tipo "servizio", "+ articolo" su contratti
This commit is contained in:
parent
3d99799264
commit
bd7b95c93b
|
@ -21,6 +21,7 @@ switch (post('op')) {
|
|||
|
||||
$idiva_vendita = post('idiva_vendita');
|
||||
$gg_garanzia = post('gg_garanzia');
|
||||
$servizio = post('servizio');
|
||||
$componente_filename = post('componente_filename');
|
||||
|
||||
$volume = post('volume');
|
||||
|
@ -42,6 +43,7 @@ switch (post('op')) {
|
|||
' prezzo_acquisto='.prepare($prezzo_acquisto).','.
|
||||
' idiva_vendita='.prepare($idiva_vendita).','.
|
||||
' gg_garanzia='.prepare($gg_garanzia).','.
|
||||
' servizio='.prepare($servizio).','.
|
||||
' volume='.prepare($volume).','.
|
||||
' peso_lordo='.prepare($peso_lordo).','.
|
||||
' componente_filename='.prepare($componente_filename).','.
|
||||
|
|
|
@ -93,10 +93,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Prezzo di acquisto'); ?>", "name": "prezzo_acquisto", "value": "$prezzo_acquisto$", "icon-after": "€" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Prezzo di vendita base'); ?>", "name": "prezzo_vendita", "value": "$prezzo_vendita$", "icon-after": "€" ]}
|
||||
</div>
|
||||
|
@ -108,8 +105,10 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
<div class="col-md-2">
|
||||
{[ "type": "number", "label": "<?php echo tr('Garanzia'); ?>", "name": "gg_garanzia", "decimals": 0, "value": "$gg_garanzia$", "icon-after": "GG" ]}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr("Questo articolo è un servizio"); ?>", "name": "servizio", "value": "$servizio$", "help": "", "placeholder": "<?php echo tr('SERVIZIO'); ?>" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,9 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
if (empty($qta)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Info Articolo
|
||||
$rs_art = $dbo->fetchArray("SELECT * FROM mg_articoli WHERE id='".$idarticolo."'");
|
||||
|
||||
// Ddt
|
||||
if (!empty($array['idddt'])) {
|
||||
|
@ -76,18 +79,21 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
$movimento = str_replace(['_NAME_', '_TYPE_', '_NUM_'], [$nome, $tipo, $numero], $movimento);
|
||||
|
||||
$new = ($qta > 0 ? '+' : '').$qta;
|
||||
|
||||
//Movimento il magazzino solo se l'articolo non è un servizio
|
||||
if($rs_art[0]['servizio']==0){
|
||||
// Movimentazione effettiva
|
||||
if (empty($array['idintervento']) || empty($array['idautomezzo'])) {
|
||||
$dbo->query('UPDATE mg_articoli SET qta = qta + '.$new.' WHERE id = '.prepare($idarticolo));
|
||||
}
|
||||
|
||||
// Movimentazione effettiva
|
||||
if (empty($array['idintervento']) || empty($array['idautomezzo'])) {
|
||||
$dbo->query('UPDATE mg_articoli SET qta = qta + '.$new.' WHERE id = '.prepare($idarticolo));
|
||||
// Registrazione della movimentazione
|
||||
$dbo->insert('mg_movimenti', array_merge($array, [
|
||||
'idarticolo' => $idarticolo,
|
||||
'qta' => $qta,
|
||||
'movimento' => $movimento,
|
||||
]));
|
||||
}
|
||||
|
||||
// Registrazione della movimentazione
|
||||
$dbo->insert('mg_movimenti', array_merge($array, [
|
||||
'idarticolo' => $idarticolo,
|
||||
'qta' => $qta,
|
||||
'movimento' => $movimento,
|
||||
]));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -138,6 +138,7 @@ switch (post('op')) {
|
|||
// Aggiungo una riga al contratto
|
||||
case 'addriga':
|
||||
$idiva = post('idiva');
|
||||
$idarticolo = post('idarticolo');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
$qta = $post['qta'];
|
||||
|
@ -159,14 +160,30 @@ switch (post('op')) {
|
|||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
||||
$desc_iva = $rs2[0]['descrizione'];
|
||||
|
||||
$dbo->query('INSERT INTO co_righe2_contratti(idcontratto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, `order`) VALUES ('.prepare($id_record).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe2_contratti AS t WHERE idcontratto='.prepare($id_record).'))');
|
||||
$dbo->query('INSERT INTO co_righe2_contratti(idcontratto, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, `order`) VALUES ('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe2_contratti AS t WHERE idcontratto='.prepare($id_record).'))');
|
||||
|
||||
$_SESSION['infos'][] = tr('Articolo aggiunto!');
|
||||
|
||||
break;
|
||||
|
||||
case 'adddescrizione':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = post('descrizione');
|
||||
$query = 'INSERT INTO co_righe2_contratti(idcontratto, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'editriga':
|
||||
$idriga = post('idriga');
|
||||
|
||||
$rs = $dbo->fetchArray("SELECT * FROM co_righe2_contratti WHERE id='".$idriga."'");
|
||||
$is_descrizione = $rs[0]['is_descrizione'];
|
||||
|
||||
$idarticolo = post('idarticolo');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
$qta = $post['qta'];
|
||||
|
@ -190,7 +207,11 @@ switch (post('op')) {
|
|||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe2_contratti SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
if($is_descrizione==0){
|
||||
$query = 'UPDATE co_righe2_contratti SET idarticolo='.prepare($idarticolo).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
}else{
|
||||
$query = 'UPDATE co_righe2_contratti SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
|
||||
}
|
||||
$dbo->query($query);
|
||||
|
||||
$_SESSION['infos'][] = tr('Riga modificata!');
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
$record = $dbo->fetchArray('SELECT * FROM co_contratti WHERE id='.prepare($id_record));
|
||||
$numero = $record[0]['numero'];
|
||||
$idanagrafica = $record[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento riga documento
|
||||
*/
|
||||
echo '
|
||||
<p>'.tr('Contratto numero _NUM_', [
|
||||
'_NUM_' => $numero,
|
||||
]).'</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
|
||||
<input type="hidden" name="op" value="adddescrizione">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="'.$dir.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
|
@ -37,6 +37,7 @@ if (empty($idriga)) {
|
|||
|
||||
$rsr = $dbo->fetchArray('SELECT * FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' AND id='.prepare($idriga));
|
||||
|
||||
$idarticolo = $rsr[0]['idarticolo'];
|
||||
$descrizione = $rsr[0]['descrizione'];
|
||||
$qta = $rsr[0]['qta'];
|
||||
$um = $rsr[0]['um'];
|
||||
|
@ -52,35 +53,43 @@ echo '
|
|||
<input type="hidden" name="idriga" value="'.$idriga.'">
|
||||
<input type="hidden" name="backto" value="record-edit">';
|
||||
|
||||
// Elenco articoli raggruppati per gruppi e sottogruppi
|
||||
if($rsr[0]['is_descrizione']!=1){
|
||||
echo '
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "value": '.json_encode($descrizione).', "required": 1 ]}
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_riga", "value": '.json_encode($descrizione).', "required": 1 ]}
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
|
||||
echo '
|
||||
if($rsr[0]['is_descrizione']!=1){
|
||||
// Iva
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "value": "'.$qta.'", "required": 1, "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>';
|
||||
|
||||
/*
|
||||
if (!empty($idriga)) {
|
||||
//Rivalsa INPS
|
||||
if( get_var("Percentuale rivalsa INPS") != "" ){
|
||||
/*
|
||||
if (!empty($idriga)) {
|
||||
//Rivalsa INPS
|
||||
if( get_var("Percentuale rivalsa INPS") != "" ){
|
||||
echo " <div class='col-md-3'>\n";
|
||||
echo " <label>Rivalsa INPS:</label>\n";
|
||||
echo " <select id='idrivalsainps' class='superselect' name=\"idrivalsainps\">\n";
|
||||
|
@ -95,10 +104,10 @@ if( get_var("Percentuale rivalsa INPS") != "" ){
|
|||
|
||||
echo " </select>\n";
|
||||
echo " </div>\n";
|
||||
}
|
||||
}
|
||||
|
||||
//Ritenuta d'acconto
|
||||
if( get_var("Percentuale ritenuta d'acconto") != "" ){
|
||||
//Ritenuta d'acconto
|
||||
if( get_var("Percentuale ritenuta d'acconto") != "" ){
|
||||
echo " <div class='col-md-3'>\n";
|
||||
echo " <label>Ritenuta d'acconto:</label>\n";
|
||||
echo " <select id='idritenutaacconto' class='superselect' name=\"idritenutaacconto\">\n";
|
||||
|
@ -113,21 +122,39 @@ if( get_var("Percentuale ritenuta d'acconto") != "" ){
|
|||
|
||||
echo " </select>\n";
|
||||
echo " </div>\n";
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$prezzo.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
echo '
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$("#idarticolo").on("change", function(){
|
||||
if($(this).val()){
|
||||
session_set("superselect,idarticolo", $(this).val(), 0);
|
||||
$data = $(this).selectData();
|
||||
|
||||
$("#prezzo").val($data.prezzo_vendita);
|
||||
$("#descrizione_riga").val($data.descrizione);
|
||||
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
|
||||
$("#um").selectSetNew($data.um, $data.um);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
|
||||
echo '
|
||||
|
||||
|
|
|
@ -277,7 +277,8 @@ if (sizeof($rs) > 0) {
|
|||
<?php
|
||||
if ($records[0]['stato'] != 'Pagato') {
|
||||
?>
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/contratti/add_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Riga'); ?></a><br>
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/contratti/add_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Riga'); ?></a>
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/contratti/add_descrizione.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Descrizione'); ?></a>
|
||||
<?php
|
||||
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ $totale_da_evadere = 0.00;
|
|||
/*
|
||||
ARTICOLI
|
||||
*/
|
||||
$rs_art = $dbo->fetchArray('SELECT * FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`');
|
||||
$rs_art = $dbo->fetchArray('SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`');
|
||||
$imponibile_art = 0.0;
|
||||
$iva_art = 0.0;
|
||||
|
||||
|
@ -36,48 +36,72 @@ if (!empty($rs_art)) {
|
|||
// descrizione
|
||||
echo '
|
||||
<tr data-id="'.$r['id'].'">
|
||||
<td>
|
||||
'.nl2br($r['descrizione']).'
|
||||
<td>';
|
||||
if (!empty($r['idarticolo'])) {
|
||||
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
|
||||
} else {
|
||||
echo nl2br($r['descrizione']);
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// q.tà
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['qta']).'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['qta']);
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// um
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.$r['um'].'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// costo unitario
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
}
|
||||
echo'
|
||||
</td>';
|
||||
|
||||
// iva
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['iva'])." €<br>
|
||||
<small class='help-block'>".$r['desc_iva'].'</small>
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['iva'])." €<br>
|
||||
<small class='help-block'>".$r['desc_iva'].'</small>';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale']).' €';
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
|
|
|
@ -198,6 +198,17 @@ switch (post('op')) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'adddescrizione':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = post('descrizione');
|
||||
$query = 'INSERT INTO dt_righe_ddt(idddt, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// Creazione ddt da ordine
|
||||
case 'ddt_da_ordine':
|
||||
|
@ -351,6 +362,7 @@ switch (post('op')) {
|
|||
$idordine = $rs[0]['idordine'];
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$idddt = $rs[0]['idddt'];
|
||||
$is_descrizione = $rs[0]['is_descrizione'];
|
||||
|
||||
// Controllo per gestire i serial
|
||||
if (!empty($idarticolo)) {
|
||||
|
@ -369,7 +381,11 @@ switch (post('op')) {
|
|||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul ddt
|
||||
$query = 'UPDATE dt_righe_ddt SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
if($is_descrizione==0){
|
||||
$query = 'UPDATE dt_righe_ddt SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
}else{
|
||||
$query = 'UPDATE dt_righe_ddt SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
|
||||
}
|
||||
if ($dbo->query($query)) {
|
||||
if (!empty($idarticolo)) {
|
||||
// Controlli aggiuntivi sulle quantità evase degli ordini
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
if ($module['name'] == 'Ddt di vendita') {
|
||||
$dir = 'entrata';
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
}
|
||||
|
||||
// Info documento
|
||||
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
|
||||
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento riga ddt
|
||||
*/
|
||||
echo '
|
||||
<p>'.tr('Ddt numero _NUM_', [
|
||||
'_NUM_' => $numero,
|
||||
]).'</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
|
||||
<input type="hidden" name="op" value="adddescrizione">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="'.$dir.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
|
@ -72,41 +72,45 @@ echo '
|
|||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1, "value": '.json_encode($descrizione).' ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
if($rsr[0]['is_descrizione']==0){
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
// Iva
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
|
||||
</div>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
}
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
|
|
|
@ -145,6 +145,9 @@ if ($records[0]['stato'] != 'Evaso') {
|
|||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ddt/add_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&dir=<?php echo $dir ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup">
|
||||
<i class="fa fa-plus"></i> <?php echo tr('Riga generica'); ?>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ddt/add_descrizione.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&dir=<?php echo $dir ?>" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup">
|
||||
<i class="fa fa-plus"></i> <?php echo tr('Descrizione'); ?>
|
||||
</a>
|
||||
<?php
|
||||
|
||||
}
|
||||
|
|
|
@ -85,49 +85,65 @@ if (!empty($rs)) {
|
|||
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<big>'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'</big>
|
||||
<br><small>('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')</small>';
|
||||
} else {
|
||||
echo '1';
|
||||
if($r['is_descrizione']==0){
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<big>'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'</big>
|
||||
<br><small>('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')</small>';
|
||||
} else {
|
||||
echo '1';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.$r['um'].'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Possibilità di rimuovere una riga solo se il ddt non è evaso
|
||||
|
|
|
@ -743,6 +743,17 @@ switch (post('op')) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'adddescrizione':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = post('descrizione');
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'editriga':
|
||||
if (isset($post['idriga'])) {
|
||||
|
@ -765,11 +776,12 @@ switch (post('op')) {
|
|||
$subtot = $prezzo * $qta;
|
||||
|
||||
// Lettura idarticolo dalla riga documento
|
||||
$rs = $dbo->fetchArray('SELECT iddocumento, idarticolo, qta, abilita_serial FROM co_righe_documenti WHERE id='.prepare($idriga));
|
||||
$rs = $dbo->fetchArray('SELECT iddocumento, idarticolo, qta, abilita_serial, is_descrizione FROM co_righe_documenti WHERE id='.prepare($idriga));
|
||||
$idarticolo = $rs[0]['idarticolo'];
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$iddocumento = $rs[0]['iddocumento'];
|
||||
$abilita_serial = $rs[0]['abilita_serial'];
|
||||
$is_descrizione = $rs[0]['is_descrizione'];
|
||||
|
||||
// Controllo per gestire i serial
|
||||
if (!empty($idarticolo)) {
|
||||
|
@ -797,8 +809,14 @@ switch (post('op')) {
|
|||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = (($prezzo * $qta) - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe_documenti SET idconto='.prepare($idconto).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', idritenutaacconto='.prepare(post('idritenutaacconto')).', ritenutaacconto='.prepare($ritenutaacconto).', idrivalsainps='.prepare(post('idrivalsainps')).', rivalsainps='.prepare($rivalsainps).', qta='.prepare($qta).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
|
||||
|
||||
if($is_descrizione==0){
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe_documenti SET idconto='.prepare($idconto).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', idritenutaacconto='.prepare(post('idritenutaacconto')).', ritenutaacconto='.prepare($ritenutaacconto).', idrivalsainps='.prepare(post('idrivalsainps')).', rivalsainps='.prepare($rivalsainps).', qta='.prepare($qta).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
|
||||
}else{
|
||||
// Modifica riga descrizione sul documento
|
||||
$query = 'UPDATE co_righe_documenti SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga).' AND iddocumento='.prepare($iddocumento);
|
||||
}
|
||||
if ($dbo->query($query)) {
|
||||
// Modifica per gestire i serial
|
||||
if (!empty($idarticolo)) {
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
if ($module['name'] == 'Fatture di vendita') {
|
||||
$dir = 'entrata';
|
||||
$conti = 'conti-vendite';
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
$conti = 'conti-acquisti';
|
||||
}
|
||||
|
||||
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
|
||||
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
|
||||
$idconto = $record[0]['idconto'];
|
||||
$idanagrafica = $record[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento riga documento
|
||||
*/
|
||||
echo '
|
||||
<p>'.tr('Documento numero _NUM_', [
|
||||
'_NUM_' => $numero,
|
||||
]).'</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
|
||||
<input type="hidden" name="op" value="adddescrizione">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="'.$dir.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
|
@ -302,6 +302,11 @@ if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa') {
|
|||
<a class="btn btn-sm btn-primary" data-href="'.$rootdir.'/modules/fatture/add_riga.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup">
|
||||
<i class="fa fa-plus"></i> Riga generica
|
||||
</a>';
|
||||
|
||||
echo '
|
||||
<a class="btn btn-sm btn-primary" data-href="'.$rootdir.'/modules/fatture/add_descrizione.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup">
|
||||
<i class="fa fa-plus"></i> Descrizione
|
||||
</a>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -44,70 +44,73 @@ echo '
|
|||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1, "value": '.json_encode($rsr[0]['descrizione']).' ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
if($rsr[0]['is_descrizione']==0){
|
||||
|
||||
if (get_var('Percentuale rivalsa INPS') != '' || get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="row">';
|
||||
|
||||
// Rivalsa INPS
|
||||
if (get_var('Percentuale rivalsa INPS') != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$rsr[0]['idrivalsainps'].'", "values": "query=SELECT * FROM co_rivalsainps", "required": '.intval($dir != 'uscita').' ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
// Ritenuta d'acconto
|
||||
if (get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$rsr[0]['idritenutaacconto'].'", "values": "query=SELECT * FROM co_ritenutaacconto", "required": '.intval($dir != 'uscita').' ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (get_var('Percentuale rivalsa INPS') != '' || get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="row">';
|
||||
|
||||
// Rivalsa INPS
|
||||
if (get_var('Percentuale rivalsa INPS') != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Rivalsa INPS').'", "name": "idrivalsainps", "value": "'.$rsr[0]['idrivalsainps'].'", "values": "query=SELECT * FROM co_rivalsainps", "required": '.intval($dir != 'uscita').' ]}
|
||||
</div>';
|
||||
}
|
||||
|
||||
// Ritenuta d'acconto
|
||||
if (get_var("Percentuale ritenuta d'acconto") != '' || $dir == 'uscita') {
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "idritenutaacconto", "value": "'.$rsr[0]['idritenutaacconto'].'", "values": "query=SELECT * FROM co_ritenutaacconto", "required": '.intval($dir != 'uscita').' ]}
|
||||
</div>';
|
||||
}
|
||||
// Iva
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$rsr[0]['idiva'].'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Conto').'", "name": "idconto", "required": 1, "value": "'.$idconto.'", "ajax-source": "'.$conti.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$rsr[0]['qta'].'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$rsr[0]['um'].'" ]}
|
||||
</div>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.($rsr[0]['subtotale'] / $rsr[0]['qta']).'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
}
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$rsr[0]['idiva'].'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Conto').'", "name": "idconto", "required": 1, "value": "'.$idconto.'", "ajax-source": "'.$conti.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$rsr[0]['qta'].'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$rsr[0]['um'].'" ]}
|
||||
</div>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.($rsr[0]['subtotale'] / $rsr[0]['qta']).'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
|
|
|
@ -153,43 +153,69 @@ if (!empty($rs)) {
|
|||
</td>';
|
||||
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['qta']).'
|
||||
<td class="text-right">';
|
||||
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['qta']);
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.$r['um'].'
|
||||
<td class="text-center">';
|
||||
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
<td class="text-right">';
|
||||
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>
|
||||
<td class="text-right">';
|
||||
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Possibilità di rimuovere una riga solo se la fattura non è pagata
|
||||
|
|
|
@ -189,6 +189,17 @@ switch (post('op')) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'adddescrizione':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = post('descrizione');
|
||||
$query = 'INSERT INTO or_righe_ordini(idordine, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// Scollegamento articolo da ordine
|
||||
case 'unlink_articolo':
|
||||
|
@ -253,11 +264,12 @@ switch (post('op')) {
|
|||
$sconto = $sconto * $qta;
|
||||
|
||||
// Lettura idarticolo dalla riga documento
|
||||
$rs = $dbo->fetchArray('SELECT idordine, idarticolo, qta, abilita_serial FROM or_righe_ordini WHERE id='.prepare($idriga));
|
||||
$rs = $dbo->fetchArray('SELECT idordine, idarticolo, qta, abilita_serial, is_descrizione FROM or_righe_ordini WHERE id='.prepare($idriga));
|
||||
$idarticolo = $rs[0]['idarticolo'];
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$idordine = $rs[0]['idordine'];
|
||||
$abilita_serial = $rs[0]['abilita_serial'];
|
||||
$is_descrizione = $rs[0]['is_descrizione'];
|
||||
|
||||
// Controllo per gestire i serial
|
||||
if (!empty($idarticolo)) {
|
||||
|
@ -275,8 +287,12 @@ switch (post('op')) {
|
|||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE or_righe_ordini SET idiva='.prepare($idiva).', desc_iva='.prepare($rs[0]['descrizione']).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
if($is_descrizione==0){
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE or_righe_ordini SET idiva='.prepare($idiva).', desc_iva='.prepare($rs[0]['descrizione']).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
}else{
|
||||
$query = 'UPDATE or_righe_ordini SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
|
||||
}
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga modificata!');
|
||||
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
$record = $dbo->fetchArray('SELECT * FROM or_ordini WHERE id='.prepare($id_record));
|
||||
$numero = $record[0]['numero'];
|
||||
$idanagrafica = $record[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento riga documento
|
||||
*/
|
||||
echo '
|
||||
<p>'.tr('Ordine numero _NUM_', [
|
||||
'_NUM_' => $numero,
|
||||
]).'</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
|
||||
<input type="hidden" name="op" value="adddescrizione">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="'.$dir.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
|
@ -79,39 +79,41 @@ echo '
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
if($rsr[0]['is_descrizione']!=1){
|
||||
// Iva
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "ajax-source": "misure", "value": "'.$um.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "€", "value": "'.$prezzo.'" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
echo '
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ if ($module['name'] == 'Ordini cliente') {
|
|||
?>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ordini/add_articolo.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi articolo" data-target="#bs-popup"><i class="fa fa-plus"></i> Articolo</a>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ordini/add_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> Riga generica</a>
|
||||
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir ?>/modules/ordini/add_descrizione.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup"><i class="fa fa-plus"></i> Descrizione</a>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
|
|
|
@ -75,49 +75,65 @@ if (!empty($rs)) {
|
|||
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<big>'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'</big>
|
||||
<br><small>('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')</small>';
|
||||
} else {
|
||||
echo '1';
|
||||
if($r['is_descrizione']==0){
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<big>'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'</big>
|
||||
<br><small>('.tr('Q.tà iniziale').': '.Translator::numberToLocale($r['qta']).')</small>';
|
||||
} else {
|
||||
echo '1';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.$r['um'].'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Possibilità di rimuovere una riga solo se l'ordine non è evaso
|
||||
|
|
|
@ -233,10 +233,25 @@ switch (post('op')) {
|
|||
$_SESSION['infos'][] = tr('Articolo aggiunto!');
|
||||
|
||||
break;
|
||||
|
||||
case 'adddescrizione':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = post('descrizione');
|
||||
$query = 'INSERT INTO co_righe_preventivi(idpreventivo, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'editriga':
|
||||
$idriga = post('idriga');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
//Info riga Preventivo
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE id='.prepare($idriga));
|
||||
$is_descrizione = $rs[0]['is_descrizione'];
|
||||
|
||||
$qta = $post['qta'];
|
||||
$prezzo = $post['prezzo'];
|
||||
|
@ -257,8 +272,12 @@ switch (post('op')) {
|
|||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
||||
$desc_iva = $rs2[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
if($is_descrizione==0){
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe_preventivi SET idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
}else{
|
||||
$query = 'UPDATE co_righe_preventivi SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
|
||||
}
|
||||
$dbo->query($query);
|
||||
|
||||
$_SESSION['infos'][] = 'Riga modificata!';
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
$record = $dbo->fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record));
|
||||
$numero = $record[0]['numero'];
|
||||
$idanagrafica = $record[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento riga documento
|
||||
*/
|
||||
echo '
|
||||
<p>'.tr('Preventivo numero _NUM_', [
|
||||
'_NUM_' => $numero,
|
||||
]).'</p>
|
||||
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
|
||||
<input type="hidden" name="op" value="adddescrizione">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="dir" value="'.$dir.'">';
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>';
|
|
@ -139,9 +139,11 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
|||
<div class="panel-body">
|
||||
<?php if ($records[0]['stato'] != 'Pagato') {
|
||||
?>
|
||||
<div class="pull-left">
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/preventivi/edit_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> Riga</a><br>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/preventivi/edit_riga.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> Riga</a>
|
||||
|
||||
<a class="btn btn-primary" data-href="<?php echo $rootdir ?>/modules/preventivi/add_descrizione.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup"><i class="fa fa-plus"></i> Descrizione</a>
|
||||
|
||||
<?php
|
||||
|
||||
} ?>
|
||||
|
|
|
@ -61,13 +61,15 @@ echo '
|
|||
<input type="hidden" name="idriga" value="'.$idriga.'">
|
||||
<input type="hidden" name="backto" value="record-edit">';
|
||||
|
||||
// Elenco articoli raggruppati per gruppi e sottogruppi
|
||||
echo '
|
||||
if($rsr[0]['is_descrizione']!=1){
|
||||
// Elenco articoli raggruppati per gruppi e sottogruppi
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
// Descrizione
|
||||
echo '
|
||||
|
@ -77,39 +79,42 @@ echo '
|
|||
</div>
|
||||
</div>';
|
||||
|
||||
// Quantità
|
||||
echo '
|
||||
if($rsr[0]['is_descrizione']!=1){
|
||||
// Quantità
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "value": "'.$qta.'", "required": 1, "decimals": "qta" ]}
|
||||
</div>';
|
||||
|
||||
// Unità di misura
|
||||
echo '
|
||||
// Unità di misura
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
|
||||
</div>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
// Iva
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Costo unitario
|
||||
echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
}
|
||||
|
||||
echo '
|
||||
<script>
|
||||
|
|
|
@ -38,27 +38,38 @@ if (!empty($rs)) {
|
|||
|
||||
// q.tà
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']).'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['qta'] - $r['qta_evasa']);
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// um
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.$r['um'].'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// costo unitario
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
|
@ -66,15 +77,23 @@ if (!empty($rs)) {
|
|||
|
||||
// iva
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['iva']).' €
|
||||
<br><small class="help-block">'.$r['desc_iva'].'</small>';
|
||||
}
|
||||
echo'
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €';
|
||||
}
|
||||
echo'
|
||||
</td>';
|
||||
|
||||
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
|
||||
|
|
|
@ -106,34 +106,44 @@ foreach ($righe as $r) {
|
|||
</td>';
|
||||
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
|
||||
<td class='text-center'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
if ($mostra_prezzi) {
|
||||
// Prezzo unitario
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo '
|
||||
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto'] > 0) {
|
||||
echo '
|
||||
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
} else {
|
||||
|
|
|
@ -67,41 +67,55 @@ foreach ($rs_gen as $r) {
|
|||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".Translator::numberToLocale($r['qta']).' '.$r['um'].'
|
||||
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['qta']).' '.$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
if ($mostra_prezzi) {
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".Translator::numberToLocale($r['subtotale'] / $r['qta']).' €
|
||||
echo '
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale'] / $r['qta']).' €';
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".Translator::numberToLocale($r['subtotale']).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale']).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($r['sconto'] > 0) {
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
echo '
|
||||
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
echo '
|
||||
<br><small class="help-block">- '.tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Iva
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".Translator::numberToLocale($r['perc_iva']).'
|
||||
<td class='text-center'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['perc_iva']);
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
}
|
||||
echo '
|
||||
|
|
|
@ -104,25 +104,32 @@ foreach ($righe as $r) {
|
|||
echo '
|
||||
</td>';
|
||||
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".Translator::numberToLocale($r['qta']).' '.$r['um'].'
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['qta']).' '.$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Prezzo unitario
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -131,28 +138,34 @@ foreach ($righe as $r) {
|
|||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>".tr('sconto di _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>".tr('sconto di _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['perc_iva']).'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['perc_iva']);
|
||||
}
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
|
|
|
@ -58,48 +58,56 @@ foreach ($righe as $r) {
|
|||
</td>';
|
||||
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
|
||||
<td class='text-center'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
if ($mostra_prezzi) {
|
||||
// Prezzo unitario
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
} else {
|
||||
|
@ -110,8 +118,12 @@ foreach ($righe as $r) {
|
|||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['perc_iva']).'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['perc_iva']);
|
||||
}
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
|
|
|
@ -107,48 +107,56 @@ foreach ($righe as $r) {
|
|||
</td>';
|
||||
|
||||
echo "
|
||||
<td class='text-center'>
|
||||
".(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'].'
|
||||
<td class='text-center'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) ? '' : Translator::numberToLocale($r['qta'])).' '.$r['um'];
|
||||
}
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
if ($mostra_prezzi) {
|
||||
// Prezzo unitario
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'),
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
|
||||
// Imponibile
|
||||
echo "
|
||||
<td class='text-right'>
|
||||
".(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
<td class='text-right'>";
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'])).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo "
|
||||
<br><small class='text-muted'>- ".tr('sconto _TOT_ _TYPE_', [
|
||||
'_TOT_' => Translator::numberToLocale($r['sconto']),
|
||||
'_TYPE_' => '€',
|
||||
]).'</small>';
|
||||
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
if ($count <= 1) {
|
||||
$count += 0.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</td>';
|
||||
} else {
|
||||
|
@ -159,8 +167,12 @@ foreach ($righe as $r) {
|
|||
|
||||
// Iva
|
||||
echo '
|
||||
<td class="text-center">
|
||||
'.Translator::numberToLocale($r['perc_iva']).'
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
echo
|
||||
Translator::numberToLocale($r['perc_iva']);
|
||||
}
|
||||
echo '
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
|
|
|
@ -983,3 +983,13 @@ UPDATE `zz_widgets` SET `location` = 'controller_top' WHERE `zz_widgets`.`id_mod
|
|||
|
||||
-- Disabilito widgets 'Ordini di servizio da impostare' e 'Rate contrattuali'
|
||||
UPDATE `zz_widgets` SET `enabled` = '0' WHERE `zz_widgets`.`name` = 'Ordini di servizio da impostare' OR `zz_widgets`.`name` = 'Rate contrattuali';
|
||||
|
||||
-- Aggiunta articolo su contratti
|
||||
ALTER TABLE `co_righe2_contratti` ADD `idarticolo` INT NOT NULL AFTER `idcontratto`;
|
||||
|
||||
-- Campo per identificare le righe descrittive documenti/ddt/preventivi/contratti/ordini
|
||||
ALTER TABLE `co_righe_documenti` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idcontratto`;
|
||||
ALTER TABLE `dt_righe_ddt` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idarticolo`;
|
||||
ALTER TABLE `co_righe_preventivi` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idarticolo`;
|
||||
ALTER TABLE `co_righe2_contratti` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idarticolo`;
|
||||
ALTER TABLE `or_righe_ordini` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idarticolo`;
|
Loading…
Reference in New Issue