mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-03-09 07:47:46 +01:00
Bugfix #338
This commit is contained in:
parent
6b677920d7
commit
7da7a0cf5e
@ -254,20 +254,16 @@ switch (post('op')) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
$start = filter('start');
|
||||
$end = filter('end');
|
||||
$id = filter('id');
|
||||
case 'update_position':
|
||||
$orders = explode( ",", $_POST['order'] );
|
||||
$order = 0;
|
||||
|
||||
if ($start > $end) {
|
||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`=`order` + 1 WHERE `order`>='.prepare($end).' AND `order`<'.prepare($start).' AND `idcontratto`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
} elseif ($end != $start) {
|
||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`=`order` - 1 WHERE `order`>'.prepare($start).' AND `order`<='.prepare($end).' AND `idcontratto`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
}
|
||||
foreach( $orders as $idriga ){
|
||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||
$order++;
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
// eliminazione contratto
|
||||
case 'delete':
|
||||
|
@ -233,17 +233,19 @@ $(document).ready(function(){
|
||||
cursor: "move",
|
||||
dropOnEmpty: true,
|
||||
scroll: true,
|
||||
start: function(event, ui) {
|
||||
ui.item.data("start", ui.item.index());
|
||||
},
|
||||
update: function(event, ui) {
|
||||
var order = "";
|
||||
$(".table tr[data-id]").each( function(){
|
||||
order += ","+$(this).data("id");
|
||||
});
|
||||
order = order.replace(/^,/, "");
|
||||
|
||||
$.post("'.$rootdir.'/actions.php", {
|
||||
id: ui.item.data("id"),
|
||||
id_module: '.$id_module.',
|
||||
id_record: '.$id_record.',
|
||||
op: "update_position",
|
||||
start: ui.item.data("start"),
|
||||
end: ui.item.index()
|
||||
order: order,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -452,12 +452,14 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
for ($i = 0; $i < sizeof($rs); ++$i) {
|
||||
rimuovi_articolo_daddt($rs[$i]['idarticolo'], $id_record, $rs[$i]['id']);
|
||||
if($rs[$i]['idarticolo']){
|
||||
rimuovi_articolo_daddt($rs[$i]['idarticolo'], $id_record, $rs[$i]['id']);
|
||||
}
|
||||
}
|
||||
|
||||
// Se delle righe sono state create da un ordine, devo riportare la quantità evasa nella tabella degli ordini
|
||||
// al valore di prima, riaggiungendo la quantità che sto togliendo
|
||||
$rs = $dbo->fetchArray('SELECT qta, descrizione, idarticolo, idordine, idiva FROM dt_righe_ddt WHERE idddt='.prepare($id_record));
|
||||
$rs = $dbo->fetchArray('SELECT qta, descrizione, idarticolo, idordine, idiva FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND idarticolo="0"');
|
||||
|
||||
// Rimpiazzo la quantità negli ordini
|
||||
for ($i = 0; $i < sizeof($rs); ++$i) {
|
||||
@ -494,20 +496,16 @@ switch (post('op')) {
|
||||
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
$start = filter('start');
|
||||
$end = filter('end');
|
||||
$id = filter('id');
|
||||
case 'update_position':
|
||||
$orders = explode( ",", $_POST['order'] );
|
||||
$order = 0;
|
||||
|
||||
if ($start > $end) {
|
||||
$dbo->query('UPDATE `dt_righe_ddt` SET `order`=`order` + 1 WHERE `order`>='.prepare($end).' AND `order`<'.prepare($start).' AND `idddt`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `dt_righe_ddt` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
} elseif ($end != $start) {
|
||||
$dbo->query('UPDATE `dt_righe_ddt` SET `order`=`order` - 1 WHERE `order`>'.prepare($start).' AND `order`<='.prepare($end).' AND `idddt`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `dt_righe_ddt` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
}
|
||||
foreach( $orders as $idriga ){
|
||||
$dbo->query('UPDATE `dt_righe_ddt` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||
$order++;
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
// aggiungi righe da ordine
|
||||
case 'add_ordine':
|
||||
|
@ -369,17 +369,19 @@ $(document).ready(function(){
|
||||
cursor: "move",
|
||||
dropOnEmpty: true,
|
||||
scroll: true,
|
||||
start: function(event, ui) {
|
||||
ui.item.data("start", ui.item.index());
|
||||
},
|
||||
update: function(event, ui) {
|
||||
var order = "";
|
||||
$(".table tr[data-id]").each( function(){
|
||||
order += ","+$(this).data("id");
|
||||
});
|
||||
order = order.replace(/^,/, "");
|
||||
|
||||
$.post("'.$rootdir.'/actions.php", {
|
||||
id: ui.item.data("id"),
|
||||
id_module: '.$id_module.',
|
||||
id_record: '.$id_record.',
|
||||
op: "update_position",
|
||||
start: ui.item.data("start"),
|
||||
end: ui.item.index()
|
||||
order: order,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -445,12 +445,55 @@ switch (post('op')) {
|
||||
$ritenutaacconto = ($prezzo - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
}
|
||||
|
||||
// Aggiunta riga contratto sul documento
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_contratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, calcolo_ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', "1", '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(setting('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(setting("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(setting("Metodologia calcolo ritenuta d'acconto predefinito")).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
if ($dbo->query($query)) {
|
||||
flash()->info(tr('Contratto _NUM_ aggiunto!', [
|
||||
'_NUM_' => $numero,
|
||||
]));
|
||||
if (!empty(post('import'))) {
|
||||
// Replicazione delle righe del contratto sul documento
|
||||
$righe = $dbo->fetchArray('SELECT idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, IFNULL( (SELECT mg_articoli.abilita_serial FROM mg_articoli WHERE mg_articoli.id=co_righe_contratti.idarticolo), 0 ) AS abilita_serial FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||
|
||||
foreach ($righe as $key => $riga) {
|
||||
$subtot = $riga['subtotale'];
|
||||
|
||||
$sconto = $riga['sconto'];
|
||||
|
||||
// Ricalcolo ritenuta per ogni singola riga
|
||||
if (setting("Metodologia calcolo ritenuta d'acconto predefinito") == 'Imponibile') {
|
||||
$ritenutaacconto = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
||||
} else {
|
||||
$ritenutaacconto = ($subtot - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale'];
|
||||
}
|
||||
|
||||
$dbo->insert('co_righe_documenti', [
|
||||
'iddocumento' => $id_record,
|
||||
'idcontratto' => $idcontratto,
|
||||
'idconto' => $idconto,
|
||||
'idarticolo' => $riga['idarticolo'],
|
||||
'idiva' => $riga['idiva'],
|
||||
'desc_iva' => $riga['desc_iva'],
|
||||
'iva' => $riga['iva'],
|
||||
'iva_indetraibile' => $riga['iva_indetraibile'],
|
||||
'descrizione' => str_replace('SCONTO', 'SCONTO '.$descrizione, $riga['descrizione']),
|
||||
'subtotale' => $riga['subtotale'],
|
||||
'um' => $riga['um'],
|
||||
'qta' => $riga['qta'],
|
||||
'sconto' => $riga['sconto'],
|
||||
'sconto_unitario' => $riga['sconto_unitario'],
|
||||
'tipo_sconto' => $riga['tipo_sconto'],
|
||||
'order' => orderValue('co_righe_documenti', 'iddocumento', $id_record),
|
||||
'idritenutaacconto' => setting("Percentuale ritenuta d'acconto"),
|
||||
'ritenutaacconto' => $ritenutaacconto,
|
||||
'idrivalsainps' => setting('Percentuale rivalsa INPS'),
|
||||
'rivalsainps' => $rivalsainps,
|
||||
'abilita_serial' => $riga['abilita_serial'],
|
||||
'calcolo_ritenutaacconto' => setting("Metodologia calcolo ritenuta d'acconto predefinito"),
|
||||
]);
|
||||
|
||||
if (!empty($riga['idarticolo'])) {
|
||||
add_movimento_magazzino($riga['idarticolo'], -$riga['qta'], ['iddocumento' => $id_record]);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// Aggiunta riga contratto sul documento
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_contratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, calcolo_ritenutaacconto, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', "1", '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(setting('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(setting("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', '.prepare(setting("Metodologia calcolo ritenuta d'acconto predefinito")).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
$dbo->query($query);
|
||||
|
||||
// Scalo le qta degli articoli nel contratto
|
||||
$righe = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||
@ -459,20 +502,32 @@ switch (post('op')) {
|
||||
add_movimento_magazzino($riga['idarticolo'], -$riga['qta'], ['iddocumento' => $id_record]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiorno il budget sul contratto con l'importo inserito in fattura e imposto lo stato del contratto "In attesa di pagamento" (se selezionato)
|
||||
if ($aggiorna_budget) {
|
||||
$dbo->query('UPDATE co_contratti SET budget='.prepare($prezzo).' WHERE id='.prepare($idcontratto));
|
||||
}
|
||||
flash()->info(tr('Contratto _NUM_ aggiunto!', [
|
||||
'_NUM_' => $numero,
|
||||
]));
|
||||
|
||||
// Aggiorno lo stato degli interventi collegati al contratto se ce ne sono
|
||||
$query2 = 'SELECT idcontratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND NOT idcontratto=0 AND idcontratto IS NOT NULL';
|
||||
$rs2 = $dbo->fetchArray($query2);
|
||||
|
||||
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='In attesa di pagamento') WHERE id=".prepare($idcontratto));
|
||||
for ($j = 0; $j < sizeof($rs2); ++$j) {
|
||||
$dbo->query("UPDATE in_interventi SET idstatointervento=(SELECT idstatointervento FROM in_statiintervento WHERE descrizione='Fatturato') WHERE id_contratto=".prepare($rs2[$j]['idcontratto']));
|
||||
}
|
||||
|
||||
// Aggiorno il budget sul contratto con l'importo inserito in fattura e imposto lo stato del contratto "In attesa di pagamento" (se selezionato)
|
||||
if ($aggiorna_budget) {
|
||||
$dbo->query('UPDATE co_contratti SET budget='.prepare($prezzo).' WHERE id='.prepare($idcontratto));
|
||||
}
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
}
|
||||
$dbo->query("UPDATE co_contratti SET idstato=(SELECT id FROM co_staticontratti WHERE descrizione='In attesa di pagamento') WHERE id=".prepare($idcontratto));
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
} else {
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -648,6 +703,9 @@ switch (post('op')) {
|
||||
$q = 'SELECT indetraibile FROM co_iva WHERE id='.prepare($idiva);
|
||||
$rs = $dbo->fetchArray($q);
|
||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
||||
|
||||
$qdesc = 'SELECT is_descrizione FROM dt_righe_ddt WHERE id='.prepare($idrigaddt);
|
||||
$rsdesc = $dbo->fetchArray($qdesc);
|
||||
|
||||
// Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
|
||||
if (!empty($idarticolo)) {
|
||||
@ -663,8 +721,8 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
// Inserimento riga normale
|
||||
elseif ($qta != 0) {
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
elseif ($qta != 0 || $rsdesc[0]['is_descrizione']==1) {
|
||||
$query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, is_descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare( $rsdesc[0]['is_descrizione'] ).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
|
||||
|
||||
$dbo->query($query);
|
||||
}
|
||||
@ -729,6 +787,9 @@ switch (post('op')) {
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$desc_iva = $rs[0]['descrizione'];
|
||||
|
||||
$qdesc = 'SELECT is_descrizione FROM dt_righe_ddt WHERE id='.prepare($idriga);
|
||||
$rsdesc = $dbo->fetchArray($qdesc);
|
||||
|
||||
// Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
|
||||
if (!empty($idarticolo)) {
|
||||
@ -747,8 +808,8 @@ switch (post('op')) {
|
||||
}
|
||||
|
||||
// Inserimento riga normale
|
||||
elseif ($qta != 0) {
|
||||
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
|
||||
elseif ($qta != 0 || $rsdesc[0]['is_descrizione']==1) {
|
||||
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, is_descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($rdesc[0]['is_descrizione']).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
|
||||
}
|
||||
|
||||
// Scalo la quantità dall'ordine
|
||||
@ -765,6 +826,10 @@ switch (post('op')) {
|
||||
case 'fattura_da_contratto':
|
||||
$idcontratto = post('id_record');
|
||||
$data = date('Y-m-d');
|
||||
|
||||
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE id_module=".prepare($id_module)." AND predefined='1'");
|
||||
$id_segment = $rs_segment[0]['id'];
|
||||
|
||||
$numero = get_new_numerofattura($data);
|
||||
$numero_esterno = get_new_numerosecondariofattura($data);
|
||||
$tipo_documento = 'Fattura immediata di vendita';
|
||||
@ -774,8 +839,6 @@ switch (post('op')) {
|
||||
$idanagrafica = $rs_contratto[0]['idanagrafica'];
|
||||
$idpagamento = $rs_contratto[0]['idpagamento'];
|
||||
$idconto = setting('Conto predefinito fatture di vendita');
|
||||
$rs_segment = $dbo->fetchArray('SELECT * FROM zz_segments WHERE id_module='.prepare($id_module)." AND predefined='1'");
|
||||
$id_segment = $rs_segment[0]['id'];
|
||||
|
||||
// Creazione nuova fattura
|
||||
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto, id_segment) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($data).', '.prepare($idanagrafica).', (SELECT id FROM co_tipidocumento WHERE descrizione='.prepare($tipo_documento)."), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), ".prepare($idpagamento).', '.prepare($idconto).','.prepare($id_segment).')');
|
||||
@ -785,7 +848,15 @@ switch (post('op')) {
|
||||
$rs_righe = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||
|
||||
for ($i = 0; $i < sizeof($rs_righe); ++$i) {
|
||||
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_descrizione, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, sconto_globale, idiva, desc_iva, iva, iva_indetraibile, um, qta, `order`) values('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($rs_righe[$i]['is_descrizione']).', '.prepare($rs_righe[$i]['descrizione']).', '.prepare($rs_righe[$i]['subtotale']).', '.prepare($rs_righe[$i]['sconto']).', '.prepare($rs_righe[$i]['sconto_unitario']).', '.prepare($rs_righe[$i]['tipo_sconto']).', '.prepare($rs_righe[$i]['sconto_globale']).', '.prepare($rs_righe[$i]['idiva']).', '.prepare($rs_righe[$i]['desc_iva']).', '.prepare($rs_righe[$i]['iva']).', '.prepare($rs_righe[$i]['iva_indetraibile']).', '.prepare($rs_righe[$i]['um']).', '.prepare($rs_righe[$i]['qta']).', '.prepare($rs_righe[$i]['order']).')');
|
||||
// Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
|
||||
if($rs_righe[$i]['idarticolo']!=0){
|
||||
add_articolo_infattura($id_record, $rs_righe[$i]['idarticolo'], $rs_righe[$i]['descrizione'], $rs_righe[$i]['idiva'], $rs_righe[$i]['qta'], $rs_righe[$i]['subtotale'], $rs_righe[$i]['sconto'], $rs_righe[$i]['sconto_unitario'], $rs_righe[$i]['tipo_sconto']);
|
||||
}
|
||||
|
||||
// Inserimento riga normale
|
||||
else{
|
||||
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idcontratto, is_descrizione, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, sconto_globale, idiva, desc_iva, iva, iva_indetraibile, um, qta, `order`) values('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($rs_righe[$i]['is_descrizione']).', '.prepare($rs_righe[$i]['descrizione']).', '.prepare($rs_righe[$i]['subtotale']).', '.prepare($rs_righe[$i]['sconto']).', '.prepare($rs_righe[$i]['sconto_unitario']).', '.prepare($rs_righe[$i]['tipo_sconto']).', '.prepare($rs_righe[$i]['sconto_globale']).', '.prepare($rs_righe[$i]['idiva']).', '.prepare($rs_righe[$i]['desc_iva']).', '.prepare($rs_righe[$i]['iva']).', '.prepare($rs_righe[$i]['iva_indetraibile']).', '.prepare($rs_righe[$i]['um']).', '.prepare($rs_righe[$i]['qta']).', '.prepare($rs_righe[$i]['order']).')');
|
||||
}
|
||||
}
|
||||
|
||||
flash()->info(tr('Creata una nuova fattura!'));
|
||||
@ -998,10 +1069,28 @@ switch (post('op')) {
|
||||
$idriga = post('idriga');
|
||||
|
||||
// Lettura contratti collegati
|
||||
$query = 'SELECT iddocumento, idcontratto, is_contratto FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto IS NOT NULL AND NOT idcontratto=0';
|
||||
$query = 'SELECT iddocumento, idcontratto, is_contratto, idarticolo FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto IS NOT NULL AND NOT idcontratto=0';
|
||||
$rsp = $dbo->fetchArray($query);
|
||||
$id_record = $rsp[0]['iddocumento'];
|
||||
$idcontratto = $rsp[0]['idcontratto'];
|
||||
$is_contratto = $rsp[0]['is_contratto'];
|
||||
$idarticolo = $rsp[0]['idarticolo'];
|
||||
|
||||
// contratto su unica riga, perdo il riferimento dell'articolo quindi lo vado a leggere da co_righe_contratti
|
||||
if (empty($idarticolo) && $is_contratto) {
|
||||
// rimetto a magazzino gli articoli collegati al contratto
|
||||
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto = '.prepare($idcontratto));
|
||||
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||
if (!empty($rsa[$i]['idarticolo'])) {
|
||||
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!empty($idarticolo)) {
|
||||
$rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta FROM co_righe_documenti WHERE id = '.prepare($idriga).' AND idintervento IS NULL');
|
||||
rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga);
|
||||
}
|
||||
}
|
||||
|
||||
$query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idcontratto='.prepare($idcontratto);
|
||||
|
||||
@ -1030,14 +1119,6 @@ switch (post('op')) {
|
||||
}
|
||||
}
|
||||
|
||||
// Riporto a magazzino gli articoli nelle righe del contratto
|
||||
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
|
||||
for ($i = 0; $i < sizeof($rsa); ++$i) {
|
||||
if (!empty($rsa[$i]['idarticolo'])) {
|
||||
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);
|
||||
}
|
||||
}
|
||||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
if ($dir == 'entrata') {
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
@ -1079,16 +1160,12 @@ switch (post('op')) {
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
$start = filter('start');
|
||||
$end = filter('end');
|
||||
$id = filter('id');
|
||||
$orders = explode( ",", $_POST['order'] );
|
||||
$order = 0;
|
||||
|
||||
if ($start > $end) {
|
||||
$dbo->query('UPDATE `co_righe_documenti` SET `order`=`order` + 1 WHERE `order`>='.prepare($end).' AND `order`<'.prepare($start).' AND `iddocumento`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_documenti` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
} elseif ($end != $start) {
|
||||
$dbo->query('UPDATE `co_righe_documenti` SET `order`=`order` - 1 WHERE `order`>'.prepare($start).' AND `order`<='.prepare($end).' AND `iddocumento`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_documenti` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
foreach( $orders as $idriga ){
|
||||
$dbo->query('UPDATE `co_righe_documenti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||
$order++;
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -38,6 +38,10 @@ echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "required": 1, "ajax-source": "contratti", "extra": "onchange=\"$data = $(this).selectData(); $(\'#descrizione\').val($data.text); $(\'#prezzo\').val($data.totale); $(\'#sconto\').val($data.sconto);\"" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "checkbox", "label": "'.tr('Importa righe').'", "name": "import", "value": "1", "placeholder": "'.tr('Replica righe del contratto in fattura').'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
// Descrizione
|
||||
|
@ -190,10 +190,10 @@ if (!empty($rs)) {
|
||||
|
||||
echo '
|
||||
<td>
|
||||
<input type="hidden" id="subtot_'.$i.'" name="subtot['.$r['id'].']" value="'.($r['subtotale'] / $r['qta']).'" />
|
||||
<input type="hidden" id="sconto_'.$i.'" name="sconto['.$r['id'].']" value="'.($r['sconto'] / $r['qta']).'" />
|
||||
<input type="hidden" id="subtot_'.$i.'" name="subtot['.$r['id'].']" value="'.str_replace('.', ',', ($r['subtotale'] / $r['qta'])).'" />
|
||||
<input type="hidden" id="sconto_'.$i.'" name="sconto['.$r['id'].']" value="'.str_replace('.', ',', ($r['sconto'] / $r['qta'])).'" />
|
||||
<input type="hidden" id="idiva_'.$i.'" name="idiva['.$r['id'].']" value="'.$r['idiva'].'" />
|
||||
<input type="hidden" id="iva_'.$i.'" name="iva['.$r['id'].']" value="'.($r['iva'] / $r['qta']).'" />
|
||||
<input type="hidden" id="iva_'.$i.'" name="iva['.$r['id'].']" value="'.str_replace('.', ',', ($r['iva'] / $r['qta'])).'" />
|
||||
|
||||
<big id="subtotale_'.$i.'">'.Translator::numberToLocale($subtotale - $sconto + $iva).' €</big><br/>
|
||||
|
||||
|
@ -199,7 +199,7 @@ if (!empty($record['is_fiscale'])) {
|
||||
|
||||
if ($record['stato'] == 'Pagato') {
|
||||
?>
|
||||
<a class="btn btn-sm btn-primary" href="javascript:;" onclick="if( confirm('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?') ){ $.post( '<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get($name)['id']; ?>&id_record=<?php echo $id_record; ?>', { id_module: '<?php echo Modules::get($name)['id']; ?>', id_record: '<?php echo $id_record; ?>', op: 'reopen' }, function(){ location.href='<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get($name)['id']; ?>&id_record=<?php echo $id_record; ?>'; } ); }" title="Aggiungi prima nota"><i class="fa fa-folder-open"></i> <?php echo tr('Riapri fattura'); ?>...</a>
|
||||
<a class="btn btn-sm btn-primary" href="javascript:;" onclick="if( confirm('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?') ){ $.post( '<?php echo $rootdir; ?>/editor.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>', { id_module: '<?php echo $id_module; ?>', id_record: '<?php echo $id_record; ?>', op: 'reopen' }, function(){ location.href='<?php echo $rootdir; ?>/editor.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>'; } ); }" title="Aggiungi prima nota"><i class="fa fa-folder-open"></i> <?php echo tr('Riapri fattura'); ?>...</a>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
@ -309,7 +309,7 @@ if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') {
|
||||
</div>';
|
||||
|
||||
// Lettura preventivi accettati, in attesa di conferma o in lavorazione
|
||||
$prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['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')";
|
||||
$prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['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') AND default_revision=1";
|
||||
$preventivi = $dbo->fetchArray($prev_query)[0]['tot'];
|
||||
echo '
|
||||
<div class="tip" data-toggle="tooltip" title="'.tr('Preventivi accettati, in attesa di conferma o in lavorazione.').'" style="display:inline;">
|
||||
|
@ -107,14 +107,14 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0)
|
||||
|
||||
// All'ultimo ciclo imposto come cifra da pagare il totale della fattura meno gli importi già inseriti in scadenziario per evitare di inserire cifre arrotondate "male"
|
||||
if ($i == (sizeof($rs) - 1)) {
|
||||
$da_pagare = sum($netto_fattura, -$totale_da_pagare);
|
||||
$da_pagare = sum($netto_fattura, -$totale_da_pagare, 2);
|
||||
}
|
||||
|
||||
// Totale da pagare (totale x percentuale di pagamento nei casi pagamenti multipli)
|
||||
else {
|
||||
$da_pagare = sum($netto_fattura / 100 * $rs[$i]['prc'], 0);
|
||||
$da_pagare = sum($netto_fattura / 100 * $rs[$i]['prc'], 0, 2);
|
||||
}
|
||||
$totale_da_pagare = sum($da_pagare, $totale_da_pagare);
|
||||
$totale_da_pagare = sum($da_pagare, $totale_da_pagare, 2);
|
||||
|
||||
if ($dir == 'uscita') {
|
||||
$da_pagare = -$da_pagare;
|
||||
@ -187,7 +187,7 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento)
|
||||
// ...altrimenti aggiungo l'importo pagato
|
||||
else {
|
||||
$pagato = abs($rimanente_da_pagare);
|
||||
$rimanente_da_pagare -= abs($rs[$i]['da_pagare']) - abs($rs[$i]['pagato']);
|
||||
$rimanente_da_pagare -= abs($rimanente_da_pagare);
|
||||
}
|
||||
}
|
||||
|
||||
@ -606,6 +606,7 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
|
||||
global $dir;
|
||||
global $idddt;
|
||||
global $idordine;
|
||||
global $idcontratto;
|
||||
|
||||
$dbo = database();
|
||||
|
||||
@ -616,6 +617,10 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
|
||||
if (empty($idordine)) {
|
||||
$idordine = 0;
|
||||
}
|
||||
|
||||
if (empty($idcontratto)) {
|
||||
$idcontratto = 0;
|
||||
}
|
||||
|
||||
// Lettura unità di misura dell'articolo
|
||||
if (empty($idum)) {
|
||||
@ -684,6 +689,9 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
|
||||
|
||||
// Inserisco il riferimento dell'ordine alla riga
|
||||
$dbo->query('UPDATE co_righe_documenti SET idordine='.prepare($idordine).' WHERE id='.prepare($idriga));
|
||||
|
||||
// Inserisco il riferimento del contratto alla riga
|
||||
$dbo->query('UPDATE co_righe_documenti SET idcontratto='.prepare($idcontratto).' WHERE id='.prepare($idriga));
|
||||
}
|
||||
|
||||
return $idriga;
|
||||
@ -847,6 +855,21 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Rimozione righe generiche
|
||||
if (empty($riga['idarticolo'])) {
|
||||
// TODO: possibile ambiguità tra righe molto simili tra loro
|
||||
// Se l'articolo è stato inserito in fattura tramite un ddt devo sanare la qta_evasa
|
||||
if (!empty($riga['idddt'])) {
|
||||
$dbo->query('UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND descrizione='.prepare($riga['descrizione']).' AND idddt='.prepare($riga['idddt']));
|
||||
}
|
||||
|
||||
// TODO: possibile ambiguità tra righe molto simili tra loro
|
||||
// Se l'articolo è stato inserito in fattura tramite un ordine devo sanare la qta_evasa
|
||||
if (!empty($riga['idordine'])) {
|
||||
$dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND descrizione='.prepare($riga['descrizione']).' AND idordine='.prepare($riga['idordine']));
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiorno lo stato dell'ordine
|
||||
if (!empty($riga['idordine']) && setting('Cambia automaticamente stato ordini fatturati')) {
|
||||
|
@ -61,23 +61,23 @@ if (!empty($rs)) {
|
||||
|
||||
$extra = '';
|
||||
$mancanti = 0;
|
||||
|
||||
// Individuazione dei seriali
|
||||
if (!empty($r['abilita_serial'])) {
|
||||
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($r['id'])), 'serial');
|
||||
$mancanti = $r['qta'] - count($serials);
|
||||
|
||||
if ($mancanti > 0) {
|
||||
$extra = 'class="warning"';
|
||||
} else {
|
||||
$mancanti = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Righe generiche
|
||||
else {
|
||||
$delete = 'unlink_riga';
|
||||
}
|
||||
|
||||
// Individuazione dei seriali
|
||||
if (!empty($r['abilita_serial'])) {
|
||||
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($r['id'])), 'serial');
|
||||
$mancanti = $r['qta'] - count($serials);
|
||||
|
||||
if ($mancanti > 0) {
|
||||
$extra = 'class="warning"';
|
||||
} else {
|
||||
$mancanti = 0;
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr data-id="'.$r['id'].'" '.$extra.'>
|
||||
@ -399,17 +399,19 @@ $(document).ready(function(){
|
||||
cursor: "move",
|
||||
dropOnEmpty: true,
|
||||
scroll: true,
|
||||
start: function(event, ui) {
|
||||
ui.item.data("start", ui.item.index());
|
||||
},
|
||||
update: function(event, ui) {
|
||||
var order = "";
|
||||
$(".table tr[data-id]").each( function(){
|
||||
order += ","+$(this).data("id");
|
||||
});
|
||||
order = order.replace(/^,/, "");
|
||||
|
||||
$.post("'.$rootdir.'/actions.php", {
|
||||
id: ui.item.data("id"),
|
||||
id_module: '.$id_module.',
|
||||
id_record: '.$id_record.',
|
||||
op: "update_position",
|
||||
start: ui.item.data("start"),
|
||||
end: ui.item.index()
|
||||
order: order,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -349,20 +349,16 @@ switch (post('op')) {
|
||||
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
$start = filter('start');
|
||||
$end = filter('end');
|
||||
$id = filter('id');
|
||||
case 'update_position':
|
||||
$orders = explode( ",", $_POST['order'] );
|
||||
$order = 0;
|
||||
|
||||
if ($start > $end) {
|
||||
$dbo->query('UPDATE `or_righe_ordini` SET `order`=`order` + 1 WHERE `order`>='.prepare($end).' AND `order`<'.prepare($start).' AND `idordine`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `or_righe_ordini` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
} elseif ($end != $start) {
|
||||
$dbo->query('UPDATE `or_righe_ordini` SET `order`=`order` - 1 WHERE `order`>'.prepare($start).' AND `order`<='.prepare($end).' AND `idordine`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `or_righe_ordini` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
}
|
||||
foreach( $orders as $idriga ){
|
||||
$dbo->query('UPDATE `or_righe_ordini` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||
$order++;
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case 'ordine_da_preventivo':
|
||||
|
||||
|
@ -148,7 +148,7 @@ if (!empty($rs)) {
|
||||
|
||||
if ($record['flag_completato'] == 0 && empty($r['sconto_globale'])) {
|
||||
echo "
|
||||
<form action='".$rootdir.'/editor.php?id_module='.Modules::get($name)['id'].'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
|
||||
<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'>
|
||||
<input type='hidden' name='id_record' value='".$id_record."'>
|
||||
<input type='hidden' name='idriga' value='".$r['id']."'>
|
||||
@ -349,17 +349,19 @@ $(document).ready(function(){
|
||||
cursor: "move",
|
||||
dropOnEmpty: true,
|
||||
scroll: true,
|
||||
start: function(event, ui) {
|
||||
ui.item.data("start", ui.item.index());
|
||||
},
|
||||
update: function(event, ui) {
|
||||
var order = "";
|
||||
$(".table tr[data-id]").each( function(){
|
||||
order += ","+$(this).data("id");
|
||||
});
|
||||
order = order.replace(/^,/, "");
|
||||
|
||||
$.post("'.$rootdir.'/actions.php", {
|
||||
id: ui.item.data("id"),
|
||||
id_module: '.$id_module.',
|
||||
id_record: '.$id_record.',
|
||||
op: "update_position",
|
||||
start: ui.item.data("start"),
|
||||
end: ui.item.index()
|
||||
order: order,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -291,20 +291,16 @@ switch (post('op')) {
|
||||
flash()->info('Riga modificata!');
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
$start = filter('start');
|
||||
$end = filter('end');
|
||||
$id = filter('id');
|
||||
case 'update_position':
|
||||
$orders = explode( ",", $_POST['order'] );
|
||||
$order = 0;
|
||||
|
||||
if ($start > $end) {
|
||||
$dbo->query('UPDATE `co_righe_preventivi` SET `order`=`order` + 1 WHERE `order`>='.prepare($end).' AND `order`<'.prepare($start).' AND `idpreventivo`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_preventivi` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
} elseif ($end != $start) {
|
||||
$dbo->query('UPDATE `co_righe_preventivi` SET `order`=`order` - 1 WHERE `order`>'.prepare($start).' AND `order`<='.prepare($end).' AND `idpreventivo`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `co_righe_preventivi` SET `order`='.prepare($end).' WHERE id='.prepare($id));
|
||||
}
|
||||
foreach( $orders as $idriga ){
|
||||
$dbo->query('UPDATE `co_righe_preventivi` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||
$order++;
|
||||
}
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case 'add_revision':
|
||||
|
||||
|
@ -230,17 +230,19 @@ $(document).ready(function(){
|
||||
cursor: "move",
|
||||
dropOnEmpty: true,
|
||||
scroll: true,
|
||||
start: function(event, ui) {
|
||||
ui.item.data("start", ui.item.index());
|
||||
},
|
||||
update: function(event, ui) {
|
||||
var order = "";
|
||||
$(".table tr[data-id]").each( function(){
|
||||
order += ","+$(this).data("id");
|
||||
});
|
||||
order = order.replace(/^,/, "");
|
||||
|
||||
$.post("'.$rootdir.'/actions.php", {
|
||||
id: ui.item.data("id"),
|
||||
id_module: '.$id_module.',
|
||||
id_record: '.$id_record.',
|
||||
op: "update_position",
|
||||
start: ui.item.data("start"),
|
||||
end: ui.item.index()
|
||||
order: order,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -50,7 +50,7 @@ include_once __DIR__.'/../../core.php';
|
||||
Calcolo totale per chiudere la fattura
|
||||
*/
|
||||
// Lettura importo da scadenzario (seleziono l'importo di questo mese)
|
||||
$query = 'SELECT *, scadenza, ABS(da_pagare-pagato) AS rata FROM co_scadenziario WHERE iddocumento='.prepare($iddocumento)." AND ABS(da_pagare) > ABS(pagato) ORDER BY DATE_FORMAT(scadenza,'%m/%Y') ASC";
|
||||
$query = 'SELECT *, scadenza, ABS(da_pagare-pagato) AS rata FROM co_scadenziario WHERE iddocumento='.prepare($iddocumento)." AND ABS(da_pagare) > ABS(pagato) ORDER BY DATE_FORMAT(scadenza,'%m/%Y') DESC";
|
||||
$rs = $dbo->fetchArray($query);
|
||||
$importo_conto_aziendale = $rs[0]['rata'];
|
||||
|
||||
|
@ -161,7 +161,7 @@ echo '
|
||||
|
||||
// Info per il footer
|
||||
$imponibile = sum($imponibile) - sum($sconto);
|
||||
$iva = sum($iva, null, 2);
|
||||
$iva = sum($iva);
|
||||
|
||||
$totale = $imponibile + $iva;
|
||||
|
||||
|
@ -151,7 +151,7 @@ foreach ($righe as $r) {
|
||||
|
||||
$sconto = sum($sconto);
|
||||
$imponibile = sum($imponibile);
|
||||
$iva = sum($iva, null, 2);
|
||||
$iva = sum($iva);
|
||||
|
||||
$totale = $imponibile - $sconto;
|
||||
|
||||
|
@ -513,7 +513,7 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
|
||||
ALTER TABLE `zz_segments` ADD `is_fiscale` boolean NOT NULL DEFAULT 1;
|
||||
|
||||
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`,`note`, `predefined`, `is_fiscale`) VALUES
|
||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Fatture pro-forma', '1=1', 'WHR', 'PRO-###', '', 1, 0);
|
||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Fatture pro-forma', '1=1', 'WHR', 'PRO-###', '', 0, 0);
|
||||
|
||||
-- Fix campi di ricerca
|
||||
UPDATE `zz_modules` SET `options` = "SELECT |select| FROM `zz_segments` WHERE 1=1 HAVING 2=2 ORDER BY name, id_module" WHERE `name` = 'Segmenti';
|
||||
|
Loading…
x
Reference in New Issue
Block a user