mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-04 09:47:34 +01:00
Miglioramento nella gestione degli sconti
Risoluzione delle problematiche relative alla selezioni di diversi sconti su multipli livelli. Aggiunta selezione automatica dello sconto da listino. Introduzione del nuovo sistema degli sconti nei contratti.
This commit is contained in:
parent
b7eb048210
commit
585290e011
@ -36,7 +36,8 @@ switch (post('op')) {
|
||||
'diciturafissafattura' => $post['diciturafissafattura'],
|
||||
'idpagamento_acquisti' => $post['idpagamento_acquisti'],
|
||||
'idpagamento_vendite' => $post['idpagamento_vendite'],
|
||||
'idlistino' => $post['idlistino'],
|
||||
'idlistino_acquisti' => $post['idlistino_acquisti'],
|
||||
'idlistino_vendite' => $post['idlistino_vendite'],
|
||||
'idiva' => $post['idiva'],
|
||||
'settore' => $post['settore'],
|
||||
'marche' => $post['marche'],
|
||||
|
@ -154,7 +154,11 @@ if ($fornitore) {
|
||||
?>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Pagamento predefinito per acquisti'); ?>", "name": "idpagamento_acquisti", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento_acquisti$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Listino articoli (per acquisti)'); ?>", "name": "idlistino_acquisti", "values": "query=SELECT id, nome AS descrizione FROM mg_listini ORDER BY nome ASC", "value": "$idlistino_acquisti$" ]}
|
||||
</div>
|
||||
<?php
|
||||
|
||||
}
|
||||
@ -163,20 +167,22 @@ if ($fornitore) {
|
||||
?>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Pagamento predefinito per vendite'); ?>", "name": "idpagamento_vendite", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento_vendite$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Listino articoli (per vendite)'); ?>", "name": "idlistino_vendite", "values": "query=SELECT id, nome AS descrizione FROM mg_listini ORDER BY nome ASC", "value": "$idlistino_vendite$" ]}
|
||||
</div>
|
||||
<?php
|
||||
|
||||
} ?>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Iva predefinita'); ?>", "name": "idiva", "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "$idiva$" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Listino articoli'); ?>", "name": "idlistino", "values": "query=SELECT id, nome AS descrizione FROM mg_listini ORDER BY nome ASC", "value": "$idlistino$" ]}
|
||||
</div>
|
||||
{[ "type": "select", "label": "<?php echo tr('Iva predefinita'); ?>", "name": "idiva", "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "$idiva$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Indirizzo di fatturazione'); ?>", "name": "idsede_fatturazione", "values": "query=SELECT id, CONCAT_WS(', ', nomesede, citta) AS descrizione FROM an_sedi WHERE idanagrafica='$id_record' UNION SELECT '0' AS id, 'Sede legale' AS descrizione ORDER BY descrizione", "value": "$idsede_fatturazione$" ]}
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
include_once $docroot.'/modules/fatture/modutil.php';
|
||||
|
||||
switch (post('op')) {
|
||||
case 'add':
|
||||
$idanagrafica = post('idanagrafica');
|
||||
@ -40,8 +42,6 @@ switch (post('op')) {
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
$idcontratto = post('id_record');
|
||||
|
||||
if (isset($post['id_record'])) {
|
||||
$idstato = post('idstato');
|
||||
$idanagrafica = post('idanagrafica');
|
||||
@ -54,7 +54,7 @@ switch (post('op')) {
|
||||
if ($budget != '') {
|
||||
$budget = post('budget');
|
||||
} else {
|
||||
$q = "SELECT (SELECT SUM(subtotale) FROM co_righe2_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id) AS 'budget' FROM co_contratti WHERE id=".prepare($idcontratto);
|
||||
$q = "SELECT (SELECT SUM(subtotale) FROM co_righe2_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id) AS 'budget' FROM co_contratti WHERE id=".prepare($id_record);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$budget = $rs[0]['budget'];
|
||||
}
|
||||
@ -77,14 +77,31 @@ switch (post('op')) {
|
||||
$costo_km = post('costo_km');
|
||||
$costo_diritto_chiamata = post('costo_diritto_chiamata');
|
||||
|
||||
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', idtipointervento='.prepare($idtipointervento).'WHERE id='.prepare($idcontratto);
|
||||
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', idtipointervento='.prepare($idtipointervento).'WHERE id='.prepare($id_record);
|
||||
// costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).'
|
||||
|
||||
$dbo->query($query);
|
||||
|
||||
$dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||
// Aggiornamento sconto
|
||||
$tipo_sconto = $post['tipo_sconto_generico'];
|
||||
$sconto = $post['sconto_generico'];
|
||||
|
||||
$dbo->update('co_contratti', [
|
||||
'tipo_sconto_globale' => $tipo_sconto,
|
||||
'sconto_globale' => $sconto,
|
||||
], ['id' => $id_record]);
|
||||
|
||||
aggiorna_sconto([
|
||||
'parent' => 'co_contratti',
|
||||
'row' => 'co_righe2_contratti',
|
||||
], [
|
||||
'parent' => 'id',
|
||||
'row' => 'idcontratto',
|
||||
], $id_record);
|
||||
|
||||
$dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record));
|
||||
foreach ((array) $post['matricolaimpianto'] as $matricolaimpianto) {
|
||||
$dbo->query('INSERT INTO my_impianti_contratti(idcontratto,idimpianto) VALUES('.prepare($idcontratto).', '.prepare($matricolaimpianto).')');
|
||||
$dbo->query('INSERT INTO my_impianti_contratti(idcontratto,idimpianto) VALUES('.prepare($id_record).', '.prepare($matricolaimpianto).')');
|
||||
}
|
||||
|
||||
// Salvataggio costi attività unitari del contratto
|
||||
@ -120,25 +137,29 @@ switch (post('op')) {
|
||||
|
||||
// Aggiungo una riga al contratto
|
||||
case 'addriga':
|
||||
$idcontratto = $id_record;
|
||||
$idarticolo = post('idarticolo');
|
||||
$idiva = post('idiva_articolo');
|
||||
$idiva = post('idiva');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
$qta = $post['qta'];
|
||||
$prezzo_vendita = $post['prezzo'];
|
||||
$prezzo = $prezzo_vendita * $qta;
|
||||
$prezzo = $post['prezzo'];
|
||||
|
||||
$sconto = $post['sconto'];
|
||||
// Calcolo dello sconto
|
||||
$sconto_unitario = $post['sconto'];
|
||||
$tipo_sconto = $post['tipo_sconto'];
|
||||
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario;
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
$subtot = $prezzo_vendita * $qta;
|
||||
|
||||
$um = post('um');
|
||||
|
||||
// Lettura iva dell'articolo
|
||||
$rs2 = $dbo->fetchArray('SELECT percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||
$iva = ($prezzo - ($sconto * $qta)) / 100 * $rs2[0]['percentuale'];
|
||||
$rs2 = $dbo->fetchArray('SELECT percentuale, descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
||||
$iva = ($prezzo - $sconto) / 100 * $rs2[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
||||
$desc_iva = $rs2[0]['descrizione'];
|
||||
|
||||
$dbo->query('INSERT INTO co_righe2_contratti(idcontratto, idiva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto) VALUES ('.prepare($idcontratto).', '.prepare($idiva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).')');
|
||||
$dbo->query('INSERT INTO co_righe2_contratti(idcontratto, idiva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto) 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).'))');
|
||||
|
||||
$_SESSION['infos'][] = tr('Articolo aggiunto!');
|
||||
|
||||
@ -149,23 +170,27 @@ switch (post('op')) {
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
$qta = $post['qta'];
|
||||
$importo_manuale = $post['prezzo'];
|
||||
$subtot = $importo_manuale * $qta;
|
||||
$prezzo = $post['prezzo'];
|
||||
$subtot = $prezzo * $qta;
|
||||
|
||||
$sconto = $post['sconto'];
|
||||
// Calcolo dello sconto
|
||||
$sconto_unitario = $post['sconto'];
|
||||
$tipo_sconto = $post['tipo_sconto'];
|
||||
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario;
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
$idiva = post('idiva_articolo');
|
||||
$idiva = post('idiva');
|
||||
$um = post('um');
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
$query = 'SELECT percentuale, descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$iva = ($subtot - ($sconto * $qta)) / 100 * $rs[0]['percentuale'];
|
||||
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
// Modifica riga generica sul documento
|
||||
$query = 'UPDATE co_righe2_contratti SET idiva='.prepare($idiva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
||||
$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);
|
||||
$dbo->query($query);
|
||||
|
||||
$_SESSION['infos'][] = tr('Riga modificata!');
|
||||
@ -175,10 +200,9 @@ switch (post('op')) {
|
||||
// Eliminazione riga
|
||||
case 'delriga':
|
||||
if (isset($post['idriga'])) {
|
||||
$idcontratto = $id_record;
|
||||
$idriga = post('idriga');
|
||||
|
||||
$query = 'DELETE FROM `co_righe2_contratti` WHERE idcontratto='.prepare($idcontratto).' AND id='.prepare($idriga);
|
||||
$query = 'DELETE FROM `co_righe2_contratti` WHERE idcontratto='.prepare($id_record).' AND id='.prepare($idriga);
|
||||
|
||||
if ($dbo->query($query)) {
|
||||
$_SESSION['infos'][] = tr('Riga eliminata!');
|
||||
@ -186,7 +210,7 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
// Ricalcolo il budget
|
||||
$dbo->query('UPDATE co_contratti SET budget=( SELECT SUM(subtotale) FROM co_righe2_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id ) WHERE id='.prepare($idcontratto));
|
||||
$dbo->query('UPDATE co_contratti SET budget=( SELECT SUM(subtotale) FROM co_righe2_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id ) WHERE id='.prepare($id_record));
|
||||
|
||||
break;
|
||||
|
||||
@ -255,3 +279,13 @@ switch (get('op')) {
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (post('op') !== null && post('op') != 'update') {
|
||||
aggiorna_sconto([
|
||||
'parent' => 'co_contratti',
|
||||
'row' => 'co_righe2_contratti',
|
||||
], [
|
||||
'parent' => 'id',
|
||||
'row' => 'idcontratto',
|
||||
], $id_record);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ $idcontratto = $get['idcontratto'];
|
||||
$idriga = $get['idriga'];
|
||||
|
||||
// Info contratto
|
||||
$q = 'SELECT * FROM co_contratti WHERE id='.prepare($idcontratto);
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=co_contratti.idanagrafica)) AS prc_guadagno FROM co_contratti WHERE id='.prepare($idcontratto);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$numero = $rs[0]['numero'];
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
@ -21,6 +21,12 @@ if (empty($idriga)) {
|
||||
$um = '';
|
||||
$prezzo = 0;
|
||||
$sconto = 0;
|
||||
$tipo_sconto = '';
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
// Leggo l'iva predefinita dall'anagrafica e se non c'è leggo quella predefinita generica
|
||||
$rsa = $dbo->fetchArray('SELECT idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica));
|
||||
@ -37,6 +43,7 @@ if (empty($idriga)) {
|
||||
$idiva = $rsr[0]['idiva'];
|
||||
$prezzo = $rsr[0]['subtotale'] / $rsr[0]['qta'];
|
||||
$sconto = $rsr[0]['sconto'];
|
||||
$tipo_sconto = $rsr[0]['tipo_sconto'];
|
||||
}
|
||||
|
||||
echo '
|
||||
@ -55,7 +62,7 @@ echo '
|
||||
|
||||
echo '
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva_articolo", "required": 1, "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
|
||||
{[ "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à
|
||||
@ -119,7 +126,7 @@ echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "€" ]}
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
|
@ -103,6 +103,17 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Sconto totale') ?>", "name": "sconto_generico", "value": "$sconto_globale$", "help": "<?php echo tr("Sconto complessivo del contratto"); ?>", "icon-after": "choice|untprc|$tipo_sconto_globale$"<?php
|
||||
if ($records[0]['stato'] == 'Emessa') {
|
||||
echo ', "disabled" : 1';
|
||||
}
|
||||
?> ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "<?php echo tr('Esclusioni'); ?>", "name": "esclusioni", "class": "autosize", "value": "$esclusioni$" ]}
|
||||
|
@ -68,9 +68,9 @@ if (!empty($rs_art)) {
|
||||
<td class="text-right">
|
||||
'.Translator::numberToLocale($r['subtotale']).' €';
|
||||
|
||||
if ($r['sconto'] > 0) {
|
||||
echo '<br>
|
||||
<small class="help-block">- sconto '.Translator::numberToLocale($r['sconto'] * $r['qta']).' €</small>';
|
||||
if ($r['sconto_unitario'] > 0) {
|
||||
echo '
|
||||
<br><small class="label label-danger">- sconto '.Translator::numberToLocale($r['sconto_unitario']).($r['tipo_sconto'] == 'PRC' ? '%' : ' €').'</small>';
|
||||
}
|
||||
|
||||
echo '
|
||||
@ -80,7 +80,7 @@ if (!empty($rs_art)) {
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
|
||||
if ($records[0]['stato'] != 'Pagato') {
|
||||
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<form action="'.$rootdir.'/editor.php?id_module='.Modules::getModule('Contratti')['id'].'&id_record='.$id_record.'" method="post" id="delete-form-'.$r['id'].'" role="form">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
@ -103,9 +103,9 @@ if (!empty($rs_art)) {
|
||||
</tr>';
|
||||
|
||||
$iva_art += $r['iva'];
|
||||
$imponibile_art += $r['subtotale'] - ($r['sconto'] * $r['qta']);
|
||||
$imponibile_art += $r['subtotale'] - $r['sconto'];
|
||||
$imponibile_nosconto += $r['subtotale'];
|
||||
$sconto_art += $r['sconto'] * $r['qta'];
|
||||
$sconto_art += $r['sconto'];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,17 +6,25 @@ $module = Modules::getModule($id_module);
|
||||
|
||||
if ($module['name'] == 'Ddt di vendita') {
|
||||
$dir = 'entrata';
|
||||
|
||||
$listino = 'idlistino_vendite';
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
|
||||
$listino = 'idlistino_acquisti';
|
||||
}
|
||||
$_SESSION['superselect']['dir'] = $dir;
|
||||
|
||||
// Info documento
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=dt_ddt.idanagrafica)) AS prc_guadagno FROM dt_ddt WHERE id='.prepare($id_record);
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT '.$listino.' FROM an_anagrafiche WHERE idanagrafica=dt_ddt.idanagrafica)) AS prc_guadagno FROM dt_ddt WHERE id='.prepare($id_record);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
$prc_guadagno = $rs[0]['prc_guadagno'];
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
/*
|
||||
Form di inserimento riga documento
|
||||
@ -78,7 +86,7 @@ echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc" ]}
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc| '.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -85,7 +85,7 @@ if (!empty($rs)) {
|
||||
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
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>';
|
||||
@ -130,7 +130,7 @@ if (!empty($rs)) {
|
||||
// Possibilità di rimuovere una riga solo se il ddt non è evaso
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if ($records[0]['stato'] != 'Evaso' && !str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if ($records[0]['stato'] != 'Evaso' && empty($r['sconto_globale'])) {
|
||||
echo "
|
||||
<form action='".$rootdir.'/editor.php?id_module='.Modules::getModule($name)['id'].'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
|
||||
<input type='hidden' name='backto' value='record-edit'>
|
||||
@ -169,7 +169,7 @@ if (!empty($rs)) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -46,25 +46,6 @@ switch (post('op')) {
|
||||
$dbo->query($query);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
||||
|
||||
if (!empty($listino)) {
|
||||
$dbo->update('co_documenti', [
|
||||
'tipo_sconto_globale' => 'PRC',
|
||||
'sconto_globale' => abs($listino[0]['prc_guadagno']),
|
||||
], ['id' => $id_record]);
|
||||
|
||||
aggiorna_sconto([
|
||||
'parent' => 'co_documenti',
|
||||
'row' => 'co_righe_documenti',
|
||||
], [
|
||||
'parent' => 'id',
|
||||
'row' => 'iddocumento',
|
||||
], $id_record);
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['infos'][] = tr('Aggiunta fattura numero _NUM_!', [
|
||||
'_NUM_' => $numero,
|
||||
]);
|
||||
@ -312,12 +293,6 @@ switch (post('op')) {
|
||||
$prezzo = $post['prezzo'];
|
||||
$qta = 1;
|
||||
|
||||
// Calcolo dello sconto
|
||||
$sconto_unitario = $post['sconto'];
|
||||
$tipo_sconto = $post['tipo_sconto'];
|
||||
$sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario;
|
||||
$sconto = $sconto * $qta;
|
||||
|
||||
// Leggo l'anagrafica del cliente
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica, codice, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento='.prepare($idintervento).') AS data FROM `in_interventi` WHERE id='.prepare($idintervento));
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
@ -358,14 +333,14 @@ switch (post('op')) {
|
||||
// Calcolo rivalsa inps
|
||||
$query = 'SELECT * FROM co_rivalsainps WHERE id='.prepare(get_var('Percentuale rivalsa INPS'));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$rivalsainps = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
$rivalsainps = ($subtot) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
// Calcolo ritenuta d'acconto
|
||||
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
$ritenutaacconto = ($subtot + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', NULL, '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Trasferta intervento '.$codice.' del '.Translator::dateToLocale($data)).', '.prepare($subtot).", 'km' ".prepare($km).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Trasferta intervento '.$codice.' del '.Translator::dateToLocale($data)).', '.prepare($subtot).", 'km' ".prepare($km).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$dbo->query($query);
|
||||
}
|
||||
|
||||
@ -386,20 +361,47 @@ switch (post('op')) {
|
||||
// Calcolo rivalsa inps
|
||||
$query = 'SELECT * FROM co_rivalsainps WHERE id='.prepare(get_var('Percentuale rivalsa INPS'));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$rivalsainps = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
$rivalsainps = ($subtot) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
// Calcolo ritenuta d'acconto
|
||||
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
$ritenutaacconto = ($subtot + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', NULL, '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($rsr[$i]['descrizione']).', '.prepare($subtot).", 0, 0, 'UNT', ".prepare($rsr[$i]['um']).', '.prepare($rsr[$i]['qta']).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($rsr[$i]['descrizione']).', '.prepare($subtot).", 0, 0, 'UNT', ".prepare($rsr[$i]['um']).', '.prepare($rsr[$i]['qta']).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$dbo->query($query);
|
||||
}
|
||||
}
|
||||
|
||||
$costi_intervento = get_costi_intervento($idintervento);
|
||||
$prezzo = $costi_intervento['manodopera_scontato'] + $costi_intervento['viaggio_scontato'] - $costi_intervento['sconto_globale'];
|
||||
$prezzo = $costi_intervento['manodopera_scontato'] + $costi_intervento['viaggio_scontato'];
|
||||
|
||||
// Aggiunta sconto
|
||||
if (!empty($costi_intervento['sconto_globale'])) {
|
||||
$subtot = $costi_intervento['sconto_globale'];
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
$subtot = $rsr[$i]['prezzo_vendita'] * $rsr[$i]['qta'];
|
||||
$iva = ($subtot) / 100 * $rs[0]['percentuale'];
|
||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
|
||||
// Calcolo rivalsa inps
|
||||
$query = 'SELECT * FROM co_rivalsainps WHERE id='.prepare(get_var('Percentuale rivalsa INPS'));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$rivalsainps = ($subtot) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
// Calcolo ritenuta d'acconto
|
||||
$query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare(get_var("Percentuale ritenuta d'acconto"));
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$ritenutaacconto = ($subtot + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', NULL, '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare('Sconto '.$descrizione).', '.prepare($subtot).', 1, '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$dbo->query($query);
|
||||
}
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
@ -421,7 +423,7 @@ switch (post('op')) {
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
|
||||
// Aggiunta riga intervento sul documento
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', ".prepare($qta).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idintervento, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idintervento).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).", '-', ".prepare($qta).', '.prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
if ($dbo->query($query)) {
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
@ -499,7 +501,7 @@ switch (post('op')) {
|
||||
'desc_iva' => $riga['desc_iva'],
|
||||
'iva' => $riga['iva'],
|
||||
'iva_indetraibile' => $riga['iva_indetraibile'],
|
||||
'descrizione' => str_replace('SCONTO', 'SCONTO PREVENTIVO', $riga['descrizione']),
|
||||
'descrizione' => str_replace('SCONTO', 'SCONTO '.$descrizione, $riga['descrizione']),
|
||||
'subtotale' => $riga['subtotale'],
|
||||
'um' => $riga['um'],
|
||||
'qta' => $riga['qta'],
|
||||
@ -644,6 +646,7 @@ switch (post('op')) {
|
||||
$descrizione = post('descrizione');
|
||||
$idiva = post('idiva');
|
||||
$idconto = post('idconto');
|
||||
$um = post('um');
|
||||
|
||||
$qta = $post['qta'];
|
||||
$prezzo = $post['prezzo'];
|
||||
|
@ -7,16 +7,25 @@ $module = Modules::getModule($id_module);
|
||||
if ($module['name'] == 'Fatture di vendita') {
|
||||
$dir = 'entrata';
|
||||
$conti = 'conti-vendite';
|
||||
|
||||
$listino = 'idlistino_vendite';
|
||||
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
$conti = 'conti-acquisti';
|
||||
|
||||
$listino = 'idlistino_acquisti';
|
||||
}
|
||||
|
||||
// Info documento
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=co_documenti.idanagrafica)) AS prc_guadagno FROM co_documenti WHERE id='.prepare($id_record);
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT '.$listino.' FROM an_anagrafiche WHERE idanagrafica=co_documenti.idanagrafica)) AS prc_guadagno FROM co_documenti WHERE id='.prepare($id_record);
|
||||
$record = $dbo->fetchArray($q);
|
||||
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
|
||||
$prc_guadagno = $record[0]['prc_guadagno'];
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
$idconto = $record[0]['idconto'];
|
||||
$idanagrafica = $record[0]['idanagrafica'];
|
||||
@ -99,7 +108,7 @@ echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc" ]}
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc| '.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -72,14 +72,8 @@ echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "€", "disabled": 1 ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -34,7 +34,7 @@ echo '
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Preventivo').'", "name": "idpreventivo", "required": 1, "values": "query=SELECT id, CONCAT(\'Preventivo numero \', numero, \' - \', nome) AS descrizione, (SELECT SUM(subtotale) FROM co_righe_preventivi WHERE idpreventivo=co_preventivi.id GROUP BY idpreventivo) AS subtot, (SELECT SUM(sconto) FROM co_righe_preventivi WHERE idpreventivo=co_preventivi.id GROUP BY idpreventivo) AS sconto FROM co_preventivi WHERE idanagrafica='.prepare($idanagrafica).' AND id NOT IN (SELECT idpreventivo FROM co_righe_documenti WHERE NOT idpreventivo=NULL) AND idstato IN( SELECT id FROM co_statipreventivi WHERE descrizione=\'Accettato\' OR descrizione=\'In lavorazione\' OR descrizione=\'In attesa di conferma\')", "extra": "onchange=\"$data = $(this).selectData(); $(\'#descrizione\').val($data.text); $(\'#prezzo\').val($data.subtot); $(\'#sconto\').val($data.sconto);\"" ]}
|
||||
{[ "type": "select", "label": "'.tr('Preventivo').'", "name": "idpreventivo", "required": 1, "values": "query=SELECT id, CONCAT(\'Preventivo numero \', numero, \' - \', nome) AS descrizione, (SELECT SUM(subtotale) FROM co_righe_preventivi WHERE idpreventivo=co_preventivi.id GROUP BY idpreventivo) - (SELECT SUM(sconto) FROM co_righe_preventivi WHERE idpreventivo=co_preventivi.id GROUP BY idpreventivo) AS subtot FROM co_preventivi WHERE idanagrafica='.prepare($idanagrafica).' AND id NOT IN (SELECT idpreventivo FROM co_righe_documenti WHERE NOT idpreventivo=NULL) AND idstato IN( SELECT id FROM co_statipreventivi WHERE descrizione=\'Accettato\' OR descrizione=\'In lavorazione\' OR descrizione=\'In attesa di conferma\')", "extra": "onchange=\"$data = $(this).selectData(); $(\'#descrizione\').val($data.text); $(\'#prezzo\').val($data.subtot);\"" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
@ -69,14 +69,8 @@ echo '
|
||||
// Costo unitario
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "€" ]}
|
||||
</div>';
|
||||
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc" ]}
|
||||
<div class="col-md-12">
|
||||
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "€", "disabled": 1 ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -205,7 +205,7 @@ if ($records[0]['stato'] == 'Pagato') {
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Sconto totale') ?>", "name": "sconto_generico", "value": "$sconto_globale$", "help": "<?php echo tr("Sconto complessivo della fattura. Viene impostato automaticamente se il cliente ha un listino associato."); ?>", "icon-after": "choice|untprc|$tipo_sconto_globale$"<?php
|
||||
{[ "type": "number", "label": "<?php echo tr('Sconto totale') ?>", "name": "sconto_generico", "value": "$sconto_globale$", "help": "<?php echo tr('Sconto complessivo della fattura'); ?>", "icon-after": "choice|untprc|$tipo_sconto_globale$"<?php
|
||||
if ($records[0]['stato'] == 'Emessa') {
|
||||
echo ', "disabled" : 1';
|
||||
}
|
||||
|
@ -736,7 +736,7 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
|
||||
$descrizione = tr('Sconto', [], ['upper' => true]);
|
||||
|
||||
// Rimozione dello sconto precedente
|
||||
$dbo->query('DELETE FROM '.$tables['row']." WHERE descrizione LIKE '%".$descrizione."%' AND ".$fields['row'].'='.prepare($id_record));
|
||||
$dbo->query('DELETE FROM '.$tables['row'].' WHERE sconto_globale = 1 AND '.$fields['row'].'='.prepare($id_record));
|
||||
|
||||
// Individuazione del nuovo sconto
|
||||
$sconto = $dbo->select($tables['parent'], ['sconto_globale', 'tipo_sconto_globale'], [$fields['parent'] => $id_record]);
|
||||
@ -766,6 +766,7 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
|
||||
'idiva' => $idiva,
|
||||
'desc_iva' => $rsi[0]['descrizione'],
|
||||
'iva' => $iva,
|
||||
'sconto_globale' => 1,
|
||||
'#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')',
|
||||
];
|
||||
|
||||
|
@ -25,6 +25,9 @@ if (!empty($rs)) {
|
||||
foreach ($rs as $r) {
|
||||
$extra = '';
|
||||
|
||||
$modulo = null;
|
||||
$id = null;
|
||||
|
||||
// Articoli
|
||||
if (!empty($r['idarticolo'])) {
|
||||
$modulo = Modules::getModule('Articoli')['id'];
|
||||
@ -69,9 +72,6 @@ if (!empty($rs)) {
|
||||
}
|
||||
// Righe generiche
|
||||
else {
|
||||
$modulo = 0;
|
||||
$id = 0;
|
||||
|
||||
$delete = 'unlink_riga';
|
||||
}
|
||||
|
||||
@ -96,6 +96,10 @@ if (!empty($rs)) {
|
||||
}
|
||||
}
|
||||
|
||||
$descrizione = null;
|
||||
$ref = null;
|
||||
$ref_id = null;
|
||||
|
||||
// Aggiunta riferimento a ordine
|
||||
if (!empty($r['idordine'])) {
|
||||
$rso = $dbo->fetchArray('SELECT numero, numero_esterno, data, dir FROM or_ordini JOIN or_tipiordine ON or_tipiordine.id = or_ordini.idtipoordine WHERE or_ordini.id='.prepare($r['idordine']));
|
||||
@ -180,7 +184,7 @@ if (!empty($rs)) {
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
|
||||
if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa' && !str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa' && empty($r['sconto_globale'])) {
|
||||
echo "
|
||||
<form action='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
|
||||
<input type='hidden' name='backto' value='record-edit'>
|
||||
@ -207,7 +211,7 @@ if (!empty($rs)) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -13,6 +13,10 @@ $can_edit_prezzi = (in_array('Amministratori', $gruppi)) || (get_var('Mostra i p
|
||||
$idriga = get('idriga');
|
||||
$idautomezzo = (get('idautomezzo') == 'undefined') ? '' : get('idautomezzo');
|
||||
|
||||
// Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi WHERE id='.prepare($id_record));
|
||||
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
if (empty($idriga)) {
|
||||
$op = 'addarticolo';
|
||||
$button = '<i class="fa fa-plus"></i> '.tr('Aggiungi');
|
||||
@ -24,10 +28,15 @@ if (empty($idriga)) {
|
||||
$um = '';
|
||||
|
||||
$prezzo_vendita = '0';
|
||||
|
||||
$sconto_unitario = 0;
|
||||
|
||||
$idimpianto = 0;
|
||||
|
||||
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
||||
if (!empty($listino[0]['prc_guadagno'])) {
|
||||
$sconto = $listino[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
} else {
|
||||
$op = 'editarticolo';
|
||||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
@ -53,10 +62,6 @@ if (empty($idriga)) {
|
||||
$idimpianto = $rsr[0]['idimpianto'];
|
||||
}
|
||||
|
||||
// Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi WHERE id='.prepare($id_record));
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
|
||||
/*
|
||||
Form di inserimento
|
||||
*/
|
||||
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
||||
$idriga = filter('idriga');
|
||||
|
||||
//Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=.in_interventi.idanagrafica)) AS prc_sconto FROM in_interventi WHERE id='.prepare($id_record));
|
||||
$rs = $dbo->fetchArray('SELECT idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=.in_interventi.idanagrafica)) AS prc_sconto FROM in_interventi WHERE id='.prepare($id_record));
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
$prc_sconto = $rs[0]['prc_sconto'];
|
||||
|
||||
@ -19,6 +19,11 @@ if (empty($idriga)) {
|
||||
$um = '';
|
||||
$prezzo_vendita = '0';
|
||||
$prezzo_acquisto = '0';
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
} else {
|
||||
$op = 'editriga';
|
||||
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
|
||||
@ -90,8 +95,10 @@ echo '
|
||||
|
||||
echo '
|
||||
<button type="submit" class="btn btn-primary pull-right">'.$button.'</button>
|
||||
</form>
|
||||
<div class="clearfix"></div>';
|
||||
</form>';
|
||||
|
||||
echo '
|
||||
<script src="'.$rootdir.'/lib/init.js"></script>';
|
||||
|
||||
?>
|
||||
|
||||
@ -115,5 +122,3 @@ echo '
|
||||
$('#add-righe').ajaxForm( options );
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="<?php echo $rootdir ?>/lib/init.js"></script>
|
||||
|
@ -4,7 +4,7 @@ include_once __DIR__.'/../../core.php';
|
||||
|
||||
include_once $docroot.'/modules/articoli/modutil.php';
|
||||
|
||||
$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino');
|
||||
$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino');
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
if (!empty($rs)) {
|
||||
|
@ -73,3 +73,6 @@ echo '
|
||||
{[ "type": "number", "label": "'.tr('Sconto globale').'", "name": "sconto_globale", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
echo '
|
||||
<script src="'.$rootdir.'/lib/init.js"></script>';
|
||||
|
@ -6,16 +6,24 @@ $module = Modules::getModule($id_module);
|
||||
|
||||
if ($module['name'] == 'Ordini cliente') {
|
||||
$dir = 'entrata';
|
||||
|
||||
$listino = 'idlistino_vendite';
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
|
||||
$listino = 'idlistino_acquisti';
|
||||
}
|
||||
|
||||
//Info documento
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=or_ordini.idanagrafica) ) AS prc_guadagno FROM or_ordini WHERE id='.prepare($id_record);
|
||||
$q = 'SELECT *, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT '.$listino.' FROM an_anagrafiche WHERE idanagrafica=or_ordini.idanagrafica) ) AS prc_guadagno FROM or_ordini WHERE id='.prepare($id_record);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
$prc_guadagno = $rs[0]['prc_guadagno'];
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
|
||||
// Seleziona articolo
|
||||
// - per i documenti di vendita deve esserci almeno 1 unità
|
||||
@ -87,7 +95,7 @@ echo '
|
||||
// Sconto unitario
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "icon-after": "choice|untprc" ]}
|
||||
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc| '.$tipo_sconto.'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
|
@ -75,7 +75,7 @@ if (!empty($rs)) {
|
||||
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
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>';
|
||||
@ -121,7 +121,7 @@ if (!empty($rs)) {
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
|
||||
if ($records[0]['stato'] != 'Evaso' && !str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if ($records[0]['stato'] != 'Evaso' && empty($r['sconto_globale'])) {
|
||||
echo "
|
||||
<form action='".$rootdir.'/editor.php?id_module='.Modules::getModule($name)['id'].'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
|
||||
<input type='hidden' name='backto' value='record-edit'>
|
||||
@ -152,7 +152,7 @@ if (!empty($rs)) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -49,23 +49,6 @@ switch (post('op')) {
|
||||
$dbo->query('INSERT INTO co_preventivi(idanagrafica, nome, numero, idagente, idstato, idtipointervento, data_bozza, data_conclusione, idiva, idpagamento) VALUES ('.prepare($idanagrafica).', '.prepare($nome).', '.prepare($numero).', '.prepare($idagente).", (SELECT `id` FROM `co_statipreventivi` WHERE `descrizione`='Bozza'), ".prepare($idtipointervento).', NOW(), DATE_ADD(NOW(), INTERVAL +1 MONTH), '.prepare($idiva).', '.prepare($idpagamento).')');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
$listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')');
|
||||
|
||||
if (!empty($listino)) {
|
||||
$dbo->update('co_preventivi', [
|
||||
'tipo_sconto_globale' => 'PRC',
|
||||
'sconto_globale' => abs($listino[0]['prc_guadagno']),
|
||||
], ['id' => $id_record]);
|
||||
|
||||
aggiorna_sconto([
|
||||
'parent' => 'co_preventivi',
|
||||
'row' => 'co_righe_preventivi',
|
||||
], [
|
||||
'parent' => 'id',
|
||||
'row' => 'idpreventivo',
|
||||
], $id_record);
|
||||
}
|
||||
|
||||
/*
|
||||
// inserisco righe standard preventivo
|
||||
// ore lavoro
|
||||
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
||||
$idriga = get('idriga');
|
||||
|
||||
// Info preventivo
|
||||
$q = 'SELECT numero, idanagrafica FROM co_preventivi WHERE id='.prepare($id_record);
|
||||
$q = 'SELECT numero, idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=co_preventivi.idanagrafica)) AS prc_guadagno FROM co_preventivi WHERE id='.prepare($id_record);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$numero = $rs[0]['numero'];
|
||||
$idanagrafica = $rs[0]['idanagrafica'];
|
||||
@ -22,6 +22,11 @@ if (empty($idriga)) {
|
||||
$idiva = get_var('Iva predefinita');
|
||||
$subtot = 0;
|
||||
$sconto = 0;
|
||||
|
||||
if (!empty($rs[0]['prc_guadagno'])) {
|
||||
$sconto = $rs[0]['prc_guadagno'];
|
||||
$tipo_sconto = 'PRC';
|
||||
}
|
||||
} else {
|
||||
$op = 'editriga';
|
||||
$button = tr('Modifica');
|
||||
|
@ -78,7 +78,7 @@ if (!empty($rs)) {
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
|
||||
if ($records[0]['stato'] != 'Pagato' && !str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
|
||||
echo "
|
||||
<form action='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
|
||||
<input type='hidden' name='backto' value='record-edit'>
|
||||
@ -94,7 +94,7 @@ if (!empty($rs)) {
|
||||
</form>";
|
||||
}
|
||||
|
||||
if (!str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if (empty($r['sconto_globale'])) {
|
||||
echo '
|
||||
<div class="handle clickable" style="padding:10px">
|
||||
<i class="fa fa-sort"></i>
|
||||
|
@ -162,7 +162,7 @@ if (sizeof($contratti) > 0) {
|
||||
$body .= "<br/>\n";
|
||||
|
||||
// Conteggio articoli utilizzati
|
||||
$query = "SELECT *, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento) AS data_intervento, (SELECT percentuale FROM co_iva WHERE id=mg_articoli_interventi.idiva_vendita) AS prciva_vendita, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$query = "SELECT *, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento) AS data_intervento, (SELECT percentuale FROM co_iva WHERE id=mg_articoli_interventi.idiva_vendita) AS prciva_vendita, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
||||
if (sizeof($rs2) > 0) {
|
||||
|
@ -59,7 +59,7 @@ foreach ($rs_gen as $r) {
|
||||
$sconto = $r['sconto'];
|
||||
$iva = $r['iva'];
|
||||
|
||||
if (str_contains($r['descrizione'], 'SCONTO')) {
|
||||
if (empty($r['sconto_globale'])) {
|
||||
$sconto_generico = $r['subtotale'];
|
||||
$iva_gen += $r['iva'];
|
||||
} else {
|
||||
|
@ -192,7 +192,7 @@ if (sizeof($preventivi) > 0) {
|
||||
$body .= "<br/>\n";
|
||||
|
||||
// Conteggio articoli utilizzati
|
||||
$query = "SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno,(SELECT percentuale FROM co_iva WHERE id=mg_articoli_interventi.idiva_vendita) AS prciva_vendita, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING ".(!empty($idinterventi) ? 'idintervento IN('.implode(',', $idinterventi).') AND ' : '')." NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$query = "SELECT *, (SELECT orario_inizio FROM in_interventi_tecnici GROUP BY idintervento HAVING idintervento = mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno,(SELECT percentuale FROM co_iva WHERE id=mg_articoli_interventi.idiva_vendita) AS prciva_vendita, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING ".(!empty($idinterventi) ? 'idintervento IN('.implode(',', $idinterventi).') AND ' : '')." NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
||||
if (sizeof($rs2) > 0) {
|
||||
|
@ -275,7 +275,7 @@ if (sizeof($info_intervento) > 0) {
|
||||
}
|
||||
|
||||
// Conteggio articoli utilizzati
|
||||
$query = "SELECT *, (SELECT percentuale FROM co_iva WHERE id=(SELECT idiva_vendita FROM mg_articoli WHERE id=idarticolo)) AS prciva_vendita, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento GROUP BY idintervento HAVING idintervento=mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$query = "SELECT *, (SELECT percentuale FROM co_iva WHERE id=(SELECT idiva_vendita FROM mg_articoli WHERE id=idarticolo)) AS prciva_vendita, (SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento GROUP BY idintervento HAVING idintervento=mg_articoli_interventi.idintervento) AS data_intervento, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno, (SELECT codice FROM mg_articoli WHERE id=idarticolo) AS codice_art, CONCAT_WS(serial, 'SN: ', ', ') AS codice, SUM(qta) AS sumqta FROM `mg_articoli_interventi` JOIN mg_prodotti ON mg_articoli_interventi.idarticolo = mg_prodotti.id_articolo GROUP BY idarticolo, idintervento, lotto HAVING idintervento IN(".implode(',', $idinterventi).") AND NOT idarticolo='0' ORDER BY idarticolo ASC";
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
if (sizeof($rs2) > 0) {
|
||||
$body .= "<table style=\"width:100%;\" class=\"table_values\" cellspacing=\"2\" cellpadding=\"5\" style=\"border-color:#aaa;\">\n";
|
||||
|
@ -86,11 +86,13 @@ DROP TABLE `co_contratti_interventi`;
|
||||
ALTER TABLE `dt_righe_ddt` ADD `desc_iva` varchar(255) NOT NULL AFTER `idiva`;
|
||||
ALTER TABLE `co_righe_preventivi` ADD `desc_iva` varchar(255) NOT NULL AFTER `idiva`;
|
||||
ALTER TABLE `or_righe_ordini` ADD `desc_iva` varchar(255) NOT NULL AFTER `idiva`;
|
||||
ALTER TABLE `co_righe2_contratti` ADD `desc_iva` varchar(255) NOT NULL AFTER `idiva`;
|
||||
|
||||
-- Fix per l'ordinamento delle righe in Preventivi, DDT e Ordini
|
||||
ALTER TABLE `co_righe_preventivi` ADD `order` tinyint(11) NOT NULL AFTER `qta`;
|
||||
ALTER TABLE `dt_righe_ddt` ADD `order` tinyint(11) NOT NULL AFTER `qta_evasa`;
|
||||
ALTER TABLE `or_righe_ordini` ADD `order` tinyint(11) NOT NULL AFTER `qta_evasa`;
|
||||
ALTER TABLE `co_righe2_contratti` ADD `order` tinyint(11) NOT NULL AFTER `qta`;
|
||||
ALTER TABLE `co_righe_documenti` CHANGE `ordine` `order` int(11) NOT NULL;
|
||||
|
||||
-- Aggiungo idconto anche per le righe delle fatture e allineamento (copia idconto nelle righe delle fatture, solo per i conti di entrata e uscita)
|
||||
@ -114,11 +116,11 @@ ALTER TABLE `or_ordini` ADD `sconto_globale` decimal(12, 4) NOT NULL, ADD `tipo_
|
||||
ALTER TABLE `dt_ddt` ADD `sconto_globale` decimal(12, 4) NOT NULL, ADD `tipo_sconto_globale` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT';
|
||||
ALTER TABLE `in_interventi` ADD `sconto_globale` decimal(12, 4) NOT NULL, ADD `tipo_sconto_globale` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT';
|
||||
|
||||
ALTER TABLE `co_righe_documenti` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `co_righe_preventivi` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `co_righe2_contratti` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `or_righe_ordini` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `dt_righe_ddt` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `co_righe_documenti` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`, ADD `sconto_globale` boolean NOT NULL DEFAULT 0 AFTER `tipo_sconto`;
|
||||
ALTER TABLE `co_righe_preventivi` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`, ADD `sconto_globale` boolean NOT NULL DEFAULT 0 AFTER `tipo_sconto`;
|
||||
ALTER TABLE `co_righe2_contratti` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`, ADD `sconto_globale` boolean NOT NULL DEFAULT 0 AFTER `tipo_sconto`;
|
||||
ALTER TABLE `or_righe_ordini` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`, ADD `sconto_globale` boolean NOT NULL DEFAULT 0 AFTER `tipo_sconto`;
|
||||
ALTER TABLE `dt_righe_ddt` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`, ADD `sconto_globale` boolean NOT NULL DEFAULT 0 AFTER `tipo_sconto`;
|
||||
|
||||
ALTER TABLE `in_righe_interventi` ADD `sconto` decimal(12, 4) NOT NULL, ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
ALTER TABLE `mg_articoli_interventi` ADD `sconto_unitario` decimal(12, 4) NOT NULL AFTER `sconto`, ADD `tipo_sconto` enum('UNT', 'PRC') NOT NULL DEFAULT 'UNT' AFTER `sconto_unitario`;
|
||||
@ -762,8 +764,14 @@ UPDATE `zz_modules` SET `title` = `name` WHERE `title` = '';
|
||||
ALTER TABLE `co_iva` ADD `dicitura` varchar(255);
|
||||
|
||||
-- Miglioramento della gestione dei pagamenti predefiniti
|
||||
ALTER TABLE `an_anagrafiche` CHANGE `idpagamento` `idpagamento_vendite` int(11), ADD `idpagamento_acquisti` int(11);
|
||||
UPDATE `an_anagrafiche` SET `idpagamento_acquisti` = `idpagamento_vendite` WHERE `idpagamento_acquisti` IS NULL;
|
||||
ALTER TABLE `an_anagrafiche` CHANGE `idpagamento` `idpagamento_vendite` int(11), ADD `idpagamento_acquisti` int(11) AFTER `idpagamento_vendite`;
|
||||
UPDATE `an_anagrafiche` SET `idpagamento_vendite` = NULL WHERE `idpagamento_vendite` = 0;
|
||||
UPDATE `an_anagrafiche` SET `idpagamento_acquisti` = `idpagamento_vendite` WHERE `idpagamento_vendite` IS NOT NULL;
|
||||
|
||||
-- Miglioramento della gestione dei listini predefiniti
|
||||
ALTER TABLE `an_anagrafiche` CHANGE `idlistino` `idlistino_vendite` int(11), ADD `idlistino_acquisti` int(11) AFTER `idlistino_vendite`;
|
||||
UPDATE `an_anagrafiche` SET `idlistino_vendite` = NULL WHERE `idlistino_vendite` = 0;
|
||||
UPDATE `an_anagrafiche` SET `idlistino_acquisti` = `idlistino_vendite` WHERE `idlistino_vendite` IS NOT NULL;
|
||||
|
||||
-- Rimozione data_sla e ora_sla
|
||||
ALTER TABLE `in_interventi` DROP `data_sla`, DROP `ora_sla`;
|
||||
|
Loading…
x
Reference in New Issue
Block a user