diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 6fef268d3..2e39a9b01 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -663,5 +663,20 @@ switch (post('op')) { flash()->info(tr('Quantità aggiornata!')); } + break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE co_righe_contratti + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + break; } diff --git a/modules/contratti/modals/confronta_righe.php b/modules/contratti/modals/confronta_righe.php new file mode 100644 index 000000000..492c53999 --- /dev/null +++ b/modules/contratti/modals/confronta_righe.php @@ -0,0 +1,155 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\Contratti\Contratto; + +$contratto = Contratto::find($id_record); + +$id_anagrafica = $contratto->idanagrafica; +$direzione = $contratto->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, co_righe_contratti.* + FROM co_righe_contratti + JOIN mg_articoli ON mg_articoli.id = co_righe_contratti.idarticolo + WHERE co_righe_contratti.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + co_righe_contratti.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + INNER JOIN co_righe_contratti ON co_righe_contratti.idarticolo = mg_articoli.id + WHERE + co_preventivi.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_contratti.idarticolo ='.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + co_righe_contratti.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + INNER JOIN co_righe_contratti ON co_righe_contratti.idarticolo = mg_articoli.id + WHERE + co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index 3630dabb3..cc7c379de 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -326,6 +326,10 @@ if (!$block_edit && sizeof($righe) > 0) { + + '; } echo ' @@ -359,6 +363,11 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -446,9 +455,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } }); diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index d9a3e6a73..ec384614e 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -689,6 +689,20 @@ switch (filter('op')) { } break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE dt_righe_ddt + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + break; } // Aggiornamento stato degli ordini presenti in questa fattura in base alle quantità totali evase diff --git a/modules/ddt/modals/confronta_righe.php b/modules/ddt/modals/confronta_righe.php new file mode 100644 index 000000000..a4eeea165 --- /dev/null +++ b/modules/ddt/modals/confronta_righe.php @@ -0,0 +1,154 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\DDT\DDT; + +$ddt = DDT::find($id_record); + +$id_anagrafica = $ddt->idanagrafica; +$direzione = $ddt->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, dt_righe_ddt.* + FROM dt_righe_ddt + JOIN mg_articoli ON mg_articoli.id = dt_righe_ddt.idarticolo + WHERE dt_righe_ddt.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + dt_righe_ddt.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + INNER JOIN dt_righe_ddt ON dt_righe_ddt.idarticolo = mg_articoli.id + WHERE + co_preventivi.idanagrafica = '.prepare($id_anagrafica).' AND dt_righe_ddt.idarticolo = '.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + dt_righe_ddt.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + INNER JOIN dt_righe_ddt ON dt_righe_ddt.idarticolo = mg_articoli.id + WHERE + co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + \ No newline at end of file diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index be2730cf1..9073cdb3e 100755 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -372,6 +372,10 @@ if (!$block_edit && sizeof($righe) > 0) { + + '; } echo ' @@ -405,6 +409,10 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -508,9 +516,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } }); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index c5228f31f..0cf8f6ba1 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1063,6 +1063,20 @@ switch (post('op')) { echo json_encode($result); break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE co_righe_documenti + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + break; } // Nota di debito diff --git a/modules/fatture/modals/confronta_righe.php b/modules/fatture/modals/confronta_righe.php new file mode 100644 index 000000000..4d89095b6 --- /dev/null +++ b/modules/fatture/modals/confronta_righe.php @@ -0,0 +1,153 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\Fatture\Fattura; + +$documento = Fattura::find($id_record); + +$id_anagrafica = $documento->idanagrafica; +$direzione = $documento->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, co_righe_documenti.* + FROM co_righe_documenti + JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + WHERE co_righe_documenti.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + co_righe_documenti.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + INNER JOIN co_righe_documenti ON co_righe_documenti.idarticolo = mg_articoli.id + WHERE + co_preventivi.idanagrafica = '.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo = '.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + co_righe_documenti.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + LEFT JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + LEFT JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + WHERE + co_documenti.idanagrafica = '.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo = '.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index c01d37026..c0ba7d380 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -506,6 +506,9 @@ if (!$block_edit && sizeof($righe) > 0) { + '; } echo ' @@ -539,6 +542,10 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -642,9 +649,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } }); diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 22003fdc7..7bcebddf9 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -1156,5 +1156,20 @@ switch (post('op')) { flash()->info(tr('Quantità aggiornata!')); } + break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE in_righe_interventi + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + break; } diff --git a/modules/interventi/modals/confronta_righe.php b/modules/interventi/modals/confronta_righe.php new file mode 100644 index 000000000..731306866 --- /dev/null +++ b/modules/interventi/modals/confronta_righe.php @@ -0,0 +1,154 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\Interventi\Intervento; + +$intervento = Intervento::find($id_record); + +$id_anagrafica = $intervento->idanagrafica; +$direzione = $intervento->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, in_righe_interventi.* + FROM in_righe_interventi + JOIN mg_articoli ON mg_articoli.id = in_righe_interventi.idarticolo + WHERE in_righe_interventi.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + in_righe_interventi.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + INNER JOIN in_righe_interventi ON in_righe_interventi.idarticolo = mg_articoli.id + WHERE + co_preventivi.idanagrafica ='.prepare($id_anagrafica).' AND in_righe_interventi.idarticolo ='.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + in_righe_interventi.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + INNER JOIN in_righe_interventi ON in_righe_interventi.idarticolo = mg_articoli.id + WHERE + co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + diff --git a/modules/interventi/row-list.php b/modules/interventi/row-list.php index 85b8100da..7611f2ef1 100755 --- a/modules/interventi/row-list.php +++ b/modules/interventi/row-list.php @@ -281,6 +281,9 @@ if (!$block_edit && sizeof($righe) > 0) { + '; } echo ' @@ -314,6 +317,10 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -409,9 +416,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } }); diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index a2bd81f64..0d2d1feb3 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -713,5 +713,20 @@ switch (post('op')) { flash()->info(tr('Quantità aggiornata!')); } + break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE or_righe_ordini + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + break; } diff --git a/modules/ordini/modals/confronta_righe.php b/modules/ordini/modals/confronta_righe.php new file mode 100644 index 000000000..8c171682a --- /dev/null +++ b/modules/ordini/modals/confronta_righe.php @@ -0,0 +1,154 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\Ordini\Ordine; + +$ordine = Ordine::find($id_record); + +$id_anagrafica = $ordine->idanagrafica; +$direzione = $ordine->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, or_righe_ordini.* + FROM or_righe_ordini + JOIN mg_articoli ON mg_articoli.id = or_righe_ordini.idarticolo + WHERE or_righe_ordini.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + or_righe_ordini.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + INNER JOIN or_righe_ordini ON or_righe_ordini.idarticolo = mg_articoli.id + WHERE + co_preventivi.idanagrafica ='.prepare($id_anagrafica).' AND or_righe_ordini.idarticolo ='.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + or_righe_ordini.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + INNER JOIN or_righe_ordini ON or_righe_ordini.idarticolo = mg_articoli.id + WHERE + co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + \ No newline at end of file diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php index 7b074816b..b7f4f320a 100755 --- a/modules/ordini/row-list.php +++ b/modules/ordini/row-list.php @@ -417,6 +417,10 @@ if (!$block_edit && sizeof($righe) > 0) { + + '; } echo ' @@ -450,6 +454,10 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -553,9 +561,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } }); diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index d114faa6a..3deb24b31 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -538,4 +538,20 @@ switch (post('op')) { } break; + + case 'edit-price': + $righe = $post['righe']; + + foreach ($righe as $riga) { + $dbo->query( + 'UPDATE co_righe_preventivi + SET prezzo_unitario = '.$riga['price'].' + WHERE id = '.$riga['id'] + ); + } + + flash()->info(tr('Prezzi aggiornati!')); + + break; + } diff --git a/modules/preventivi/modals/confronta_righe.php b/modules/preventivi/modals/confronta_righe.php new file mode 100644 index 000000000..634032282 --- /dev/null +++ b/modules/preventivi/modals/confronta_righe.php @@ -0,0 +1,153 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +use Carbon\Carbon; +use Modules\Preventivi\Preventivo; + +$preventivo = Preventivo::find($id_record); + +$id_anagrafica = $preventivo->idanagrafica; +$direzione = $preventivo->direzione; +$righe = $_GET['righe']; + +$righe = $dbo->fetchArray( + 'SELECT mg_articoli.descrizione, mg_articoli.codice, co_righe_preventivi.* + FROM co_righe_preventivi + JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + WHERE co_righe_preventivi.id IN ('.$righe.')' +); +?> +
+ + + + + + + + + + + + + fetchArray( + 'SELECT + co_righe_preventivi.idarticolo, + co_righe_preventivi.prezzo_unitario, + DATE(co_righe_preventivi.updated_at) AS updated_at + FROM + co_preventivi + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idpreventivo = co_preventivi.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_preventivi.idarticolo + WHERE + co_preventivi.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_preventivi.idarticolo ='.prepare($riga['idarticolo']).' AND co_preventivi.idstato NOT IN (SELECT id FROM co_statipreventivi WHERE descrizione = "Bozza" OR descrizione = "In attesa di conferma" OR descrizione = "Rifiutato") + GROUP BY + mg_articoli.id, co_righe_preventivi.id + ORDER BY + updated_at DESC' + )[0]; + + $ultimo_prezzo_vendita = $dbo->fetchArray( + 'SELECT + co_righe_preventivi.idarticolo, + co_righe_documenti.prezzo_unitario, + DATE(co_righe_documenti.updated_at) AS updated_at + FROM + co_documenti + INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id + INNER JOIN mg_articoli ON mg_articoli.id = co_righe_documenti.idarticolo + INNER JOIN co_righe_preventivi ON co_righe_preventivi.idarticolo = mg_articoli.id + WHERE + co_documenti.idanagrafica ='.prepare($id_anagrafica).' AND co_righe_documenti.idarticolo ='.prepare($riga['idarticolo']).' AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Emessa" OR descrizione = "Pagato" OR descrizione = "Parzialmente pagato") + GROUP BY + mg_articoli.id, co_righe_documenti.id + ORDER BY + updated_at DESC' + )[0]; + ?> + + + + + + + + + + +
+
+ {[ "type": "number", "label": "", "data-id":"","name": "nuovo_prezzo_unitario[]", "value": ""]} +
+
' . (new Carbon($ultimo_prezzo_preventivo['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>' . (new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'' : ''); + } else { + echo 'n.d.'; + } + ?>
+ + + + +
+ + \ No newline at end of file diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index b990b3b22..bf77a9dbb 100755 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -385,6 +385,9 @@ if (!$block_edit && sizeof($righe) > 0) { + '; } echo ' @@ -418,6 +421,10 @@ function getSelectData() { return data; } +function confrontaRighe(id) { + openModal("'.tr('Confronta prezzi').'", "'.$module->fileurl('modals/confronta_righe.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&righe=" + id + "&id_anagrafica='.$ordine->idanagrafica.'&direzione='.$dir.'"); +} + function rimuoviRiga(id) { swal({ title: "'.tr('Rimuovere queste righe?').'", @@ -505,9 +512,11 @@ $(".check").on("change", function() { if (checked) { $("#elimina_righe").removeClass("disabled"); $("#duplica_righe").removeClass("disabled"); + $("#confronta_righe").removeClass("disabled"); } else { $("#elimina_righe").addClass("disabled"); $("#duplica_righe").addClass("disabled"); + $("#confronta_righe").addClass("disabled"); } });