From 7de012905d60d1e309e8635966ed9eca721b3ece Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 3 May 2023 10:33:10 +0200 Subject: [PATCH 01/17] Miglioria filtro = e != nelle tabelle --- src/Util/Query.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Util/Query.php b/src/Util/Query.php index af8dcb0b6..029db4620 100755 --- a/src/Util/Query.php +++ b/src/Util/Query.php @@ -201,25 +201,28 @@ class Query $equal = string_starts_with($real_value, '='); $notequal = string_starts_with($real_value, '!='); - if ($minus || $more || $equal || $notequal) { + if ($minus || $more) { $sign = string_contains($real_value, '=') ? '=' : ''; if ($more) { $sign = '>'.$sign; } elseif ($minus) { $sign = '<'.$sign; - } elseif ($equal) { - $sign = '='; - } else { - $sign = '!='; } - $value = trim(str_replace(['<', '=', '>', '!'], '', $value)); + $value = trim(str_replace(['<', '>'], '', $value)); if ($more || $minus) { $search_filters[] = 'CAST('.$search_query.' AS UNSIGNED) '.$sign.' '.prepare($value); } else { $search_filters[] = $search_query.' '.$sign.' '.prepare($value); } + + } else if ($equal){ + $value = trim(str_replace(['='], '', $value)); + $search_filters[] = ($search_query.' = '.prepare($value). ' OR '.$search_query.' LIKE '.prepare('% '.$value) . ' OR '.$search_query.' LIKE '.prepare($value.' %').' OR '.$search_query.' LIKE '.prepare('% '.$value.' %')); + } else if ($notequal) { + $value = trim(str_replace(['!='], '', $value)); + $search_filters[] = ($search_query.' != '.prepare($value). ' AND '.$search_query.' NOT LIKE '.prepare('% '.$value) . ' AND '.$search_query.' NOT LIKE '.prepare($value.' %').' AND '.$search_query.' NOT LIKE '.prepare('% '.$value.' %')); } else { $search_filters[] = $search_query.' LIKE '.prepare('%'.$value.'%'); } From 5f4ad7f4d7500a9465b75c50455c74b894c8d9fd Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 3 May 2023 14:09:08 +0200 Subject: [PATCH 02/17] =?UTF-8?q?Fix=20calcolo=20quantit=C3=A0=20unit?= =?UTF-8?q?=C3=A0=20di=20misura=20secondaria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/importFE/src/FatturaOrdinaria.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/importFE/src/FatturaOrdinaria.php b/plugins/importFE/src/FatturaOrdinaria.php index 5ef4bd397..c81ce4ba9 100755 --- a/plugins/importFE/src/FatturaOrdinaria.php +++ b/plugins/importFE/src/FatturaOrdinaria.php @@ -237,8 +237,14 @@ class FatturaOrdinaria extends FatturaElettronica // Nel caso il prezzo sia negativo viene gestito attraverso l'inversione della quantità (come per le note di credito) // TODO: per migliorare la visualizzazione, sarebbe da lasciare negativo il prezzo e invertire gli sconti. - $prezzo = $totale_righe > 0 ? $riga['PrezzoUnitario'] : -$riga['PrezzoUnitario']; - $qta = (!empty($articolo->um) && !empty($articolo->fattore_um_secondaria) && $riga['UnitaMisura'] == $articolo->um_secondaria) ? $riga['Quantita'] / $articolo->fattore_um_secondaria : ($riga['Quantita'] ?: 1); + if (!empty($articolo->um) && !empty($articolo->fattore_um_secondaria) && $riga['UnitaMisura'] == $articolo->um_secondaria) { + $qta = (($riga['Quantita'] ?: 1) / $articolo->fattore_um_secondaria); + $prezzo = $totale_righe > 0 ? $totale_righe/$qta : -($totale_righe/$qta); + } else { + $qta = ($riga['Quantita'] ?: 1); + $prezzo = $totale_righe > 0 ? $riga['PrezzoUnitario'] : -$riga['PrezzoUnitario']; + } + // Prezzo e quantità $obj->prezzo_unitario = $prezzo; From 4d88ce9ee1b26016449e36e5cdb56e49162485cb Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 3 May 2023 15:17:03 +0200 Subject: [PATCH 03/17] Fix minore --- modules/contratti/modals/confronta_righe.php | 2 +- modules/ddt/modals/confronta_righe.php | 2 +- modules/fatture/modals/confronta_righe.php | 2 +- modules/interventi/modals/confronta_righe.php | 2 +- modules/ordini/modals/confronta_righe.php | 2 +- modules/preventivi/modals/confronta_righe.php | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/contratti/modals/confronta_righe.php b/modules/contratti/modals/confronta_righe.php index 492c53999..9435846e3 100644 --- a/modules/contratti/modals/confronta_righe.php +++ b/modules/contratti/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + diff --git a/modules/ddt/modals/confronta_righe.php b/modules/ddt/modals/confronta_righe.php index a4eeea165..1ce04044c 100644 --- a/modules/ddt/modals/confronta_righe.php +++ b/modules/ddt/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + diff --git a/modules/fatture/modals/confronta_righe.php b/modules/fatture/modals/confronta_righe.php index 4d89095b6..9aa30656f 100644 --- a/modules/fatture/modals/confronta_righe.php +++ b/modules/fatture/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + diff --git a/modules/interventi/modals/confronta_righe.php b/modules/interventi/modals/confronta_righe.php index 731306866..eb9681e42 100644 --- a/modules/interventi/modals/confronta_righe.php +++ b/modules/interventi/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + diff --git a/modules/ordini/modals/confronta_righe.php b/modules/ordini/modals/confronta_righe.php index 8c171682a..a04aedf02 100644 --- a/modules/ordini/modals/confronta_righe.php +++ b/modules/ordini/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + diff --git a/modules/preventivi/modals/confronta_righe.php b/modules/preventivi/modals/confronta_righe.php index 634032282..93dd90aaf 100644 --- a/modules/preventivi/modals/confronta_righe.php +++ b/modules/preventivi/modals/confronta_righe.php @@ -43,7 +43,7 @@ $righe = $dbo->fetchArray( - + From f6a1be5217cb69814f953d81724e98984fe75eb9 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 4 May 2023 09:07:34 +0200 Subject: [PATCH 04/17] Fix minore --- modules/contratti/actions.php | 5 ++--- modules/ddt/actions.php | 5 ++--- modules/fatture/actions.php | 5 ++--- modules/interventi/actions.php | 5 ++--- modules/ordini/actions.php | 5 ++--- modules/preventivi/actions.php | 5 ++--- 6 files changed, 12 insertions(+), 18 deletions(-) diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index a1c6b9a45..3f1cad46e 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -679,9 +679,8 @@ switch (post('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index c899224d8..32324c6d3 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -704,10 +704,9 @@ switch (filter('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 5f606f783..97b5d6f96 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1078,10 +1078,9 @@ switch (post('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 86fc7b3b5..e51e5a4b2 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -1172,9 +1172,8 @@ switch (post('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 2d0f2b6e2..6e09b1199 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -736,9 +736,8 @@ switch (post('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 4272750f4..710d2541c 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -554,10 +554,9 @@ switch (post('op')) { $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); $articolo->save(); - - flash()->info(tr('Prezzi aggiornati!')); - } + + flash()->info(tr('Prezzi aggiornati!')); break; } From 8b289a0eece0f9b6be7cf3c57d76d7c23c1b826e Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 4 May 2023 09:57:01 +0200 Subject: [PATCH 05/17] Correzione avvisi e direzione Confronta prezzi --- modules/contratti/actions.php | 25 ++++++++++++++++++++----- modules/contratti/row-list.php | 13 ++++++++----- modules/ddt/actions.php | 22 +++++++++++++++++++--- modules/ddt/row-list.php | 13 ++++++++----- modules/fatture/actions.php | 21 ++++++++++++++++++--- modules/fatture/row-list.php | 12 ++++++++---- modules/interventi/actions.php | 21 ++++++++++++++++++--- modules/interventi/row-list.php | 12 ++++++++---- modules/ordini/actions.php | 25 ++++++++++++++++++++----- modules/ordini/row-list.php | 13 ++++++++----- modules/preventivi/actions.php | 28 +++++++++++++++++++++------- modules/preventivi/row-list.php | 12 ++++++++---- 12 files changed, 164 insertions(+), 53 deletions(-) diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 3f1cad46e..9f56eaeba 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -667,6 +667,7 @@ switch (post('op')) { case 'edit-price': $righe = $post['righe']; + $numero_totale = 0; foreach ($righe as $riga) { if (($riga['id']) != null) { @@ -676,11 +677,25 @@ switch (post('op')) { $articolo = Articolo::build($fattura, $originale); $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } + } + + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); } - flash()->info(tr('Prezzi aggiornati!')); break; -} +} \ No newline at end of file diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index 22fa28e49..0d4966225 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -21,6 +21,7 @@ include_once __DIR__.'/init.php'; $block_edit = $record['is_completato']; $righe = $contratto->getRighe(); +$direzione = $contratto->direzione; $colspan = ($block_edit ? '5' : '6'); echo ' @@ -325,11 +326,13 @@ if (!$block_edit && sizeof($righe) > 0) { - - + '; + if ($direzione == 'entrata') { + echo' + '; + } echo' '; } echo ' diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 32324c6d3..3b85580eb 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -692,6 +692,7 @@ switch (filter('op')) { case 'edit-price': $righe = $post['righe']; + $numero_totale = 0; foreach ($righe as $riga) { if (($riga['id']) != null) { @@ -702,14 +703,29 @@ switch (filter('op')) { $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } + } + + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); } - flash()->info(tr('Prezzi aggiornati!')); break; } + // Aggiornamento stato degli ordini presenti in questa fattura in base alle quantità totali evase if (!empty($id_record) && setting('Cambia automaticamente stato ordini fatturati')) { $rs = $dbo->fetchArray('SELECT idordine FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND idordine!=0'); diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index 46ee0a449..8b42edf52 100755 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -22,6 +22,7 @@ include_once __DIR__.'/init.php'; $block_edit = $record['flag_completato']; $righe = $ddt->getRighe(); $colspan = ($block_edit ? '5' : '6'); +$direzione = $ddt->direzione; echo '
@@ -371,11 +372,13 @@ if (!$block_edit && sizeof($righe) > 0) { - - + '; + if ($dir == 'entrata') { + echo' + '; + } echo'
'; } echo ' diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 97b5d6f96..ca870d791 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1066,6 +1066,7 @@ switch (post('op')) { case 'edit-price': $righe = $post['righe']; + $numero_totale = 0; foreach ($righe as $riga) { if (($riga['id']) != null) { @@ -1076,11 +1077,25 @@ switch (post('op')) { $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } + } + + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); } - flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 5b814e488..6d53d7d37 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -21,6 +21,7 @@ use Modules\Interventi\Intervento; include_once __DIR__.'/init.php'; +$direzione = $fattura->direzione; $block_edit = !empty($note_accredito) || in_array($record['stato'], ['Emessa', 'Pagato', 'Parzialmente pagato']) || !$abilita_genera; $righe = $fattura->getRighe(); @@ -505,10 +506,13 @@ if (!$block_edit && sizeof($righe) > 0) { - + '; + if ($direzione == 'entrata') { + echo' + '; + } echo' '; } echo ' diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index e51e5a4b2..7bb460ab3 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -1160,6 +1160,7 @@ switch (post('op')) { case 'edit-price': $righe = $post['righe']; + $numero_totale = 0; foreach ($righe as $riga) { if (($riga['id']) != null) { @@ -1170,10 +1171,24 @@ switch (post('op')) { $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } + } + + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); } - flash()->info(tr('Prezzi aggiornati!')); break; } diff --git a/modules/interventi/row-list.php b/modules/interventi/row-list.php index 7611f2ef1..780dd4de3 100755 --- a/modules/interventi/row-list.php +++ b/modules/interventi/row-list.php @@ -22,6 +22,7 @@ include_once __DIR__.'/init.php'; $block_edit = $record['flag_completato']; $righe = $intervento->getRighe(); $colspan = ($block_edit ? '5' : '6'); +$direzione = $intervento->direzione; $show_prezzi = Auth::user()['gruppo'] != 'Tecnici' || (Auth::user()['gruppo'] == 'Tecnici' && setting('Mostra i prezzi al tecnico')); @@ -280,10 +281,13 @@ if (!$block_edit && sizeof($righe) > 0) { - + '; + if ($direzione == 'entrata') { + echo' + '; + } echo' '; } echo ' diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 6e09b1199..edd2c11fb 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -724,7 +724,8 @@ switch (post('op')) { case 'edit-price': $righe = $post['righe']; - + $numero_totale = 0; + foreach ($righe as $riga) { if (($riga['id']) != null) { $articolo = Articolo::find($riga['id']); @@ -734,10 +735,24 @@ switch (post('op')) { $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } + } + + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); } - flash()->info(tr('Prezzi aggiornati!')); break; -} +} \ No newline at end of file diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php index c41c3c329..1833ac9f1 100755 --- a/modules/ordini/row-list.php +++ b/modules/ordini/row-list.php @@ -24,6 +24,7 @@ use Modules\Articoli\Articolo; $block_edit = $record['flag_completato']; $righe = $ordine->getRighe(); $colspan = ($block_edit ? '6' : '7'); +$direzione = $ordine->direzione; echo '
@@ -416,11 +417,13 @@ if (!$block_edit && sizeof($righe) > 0) { - - + '; + if ($direzione == 'entrata') { + echo' + '; + } echo'
'; } echo ' diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 710d2541c..8112400d7 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -542,7 +542,8 @@ switch (post('op')) { case 'edit-price': $righe = $post['righe']; - + $numero_totale = 0; + foreach ($righe as $riga) { if (($riga['id']) != null) { $articolo = Articolo::find($riga['id']); @@ -551,12 +552,25 @@ switch (post('op')) { $articolo = Articolo::build($fattura, $originale); $articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null; } - - $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); - $articolo->save(); + + if ($articolo['prezzo_unitario'] != $riga['price']) { + $articolo->setPrezzoUnitario($riga['price'], $articolo->idiva); + $articolo->save(); + ++$numero_totale; + } } - flash()->info(tr('Prezzi aggiornati!')); - break; + if ($numero_totale > 1) { + flash()->info(tr('_NUM_ prezzi modificati!', [ + '_NUM_' => $numero_totale, + ])); + } else if ($numero_totale == 1) { + flash()->info(tr('_NUM_ prezzo modificato!', [ + '_NUM_' => $numero_totale, + ])); + } else { + flash()->warning(tr('Nessun prezzo modificato!')); + } -} + break; +} \ No newline at end of file diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index 02d8cd042..1b49a009a 100755 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -22,6 +22,7 @@ include_once __DIR__.'/init.php'; $block_edit = $record['is_completato']; $righe = $preventivo->getRighe(); $colspan = ($block_edit ? '6' : '7'); +$direzione = $preventivo->direzione; echo '
@@ -384,10 +385,13 @@ if (!$block_edit && sizeof($righe) > 0) { - + '; + if ($direzione == 'entrata') { + echo' + '; + } echo'
'; } echo ' From d800b26dedda2f9197096f5e56cd297b9834b108 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 4 May 2023 11:52:53 +0200 Subject: [PATCH 06/17] Fix grafiche minori --- assets/src/css/style.css | 2 +- templates/preventivi/body.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 273f3f974..dd6d94738 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -1109,7 +1109,7 @@ div.tip { .local-loader>div { position: absolute; - top: 100px; + top: 0px; z-index: 2; opacity: 0.5; width: 100% diff --git a/templates/preventivi/body.php b/templates/preventivi/body.php index f3a2f3a28..75eb2f379 100755 --- a/templates/preventivi/body.php +++ b/templates/preventivi/body.php @@ -190,7 +190,7 @@ foreach ($righe as $riga) { echo ' - + '.$num.' '; From 8e72b0444092ce116d9a897caffbc3e341be5cc3 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 4 May 2023 15:15:00 +0200 Subject: [PATCH 07/17] Aggiornamento data ultima sessione in rapportino intervento --- update/2_4_45.sql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/update/2_4_45.sql b/update/2_4_45.sql index 7872d1c8a..6aedc2482 100644 --- a/update/2_4_45.sql +++ b/update/2_4_45.sql @@ -96,4 +96,7 @@ HAVING 2=2 ORDER BY `data` DESC, - CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; \ No newline at end of file + CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; + +-- Aggiornamento data ultima sessione in rapportino intervento +UPDATE `em_templates` SET `body` = '

Gentile Cliente,

\n

inviamo in allegato il rapportino numero {numero} del {data fine intervento}.

\n

Distinti saluti

', `subject` = 'Invio rapportino numero {numero} del {data fine intervento}' WHERE `em_templates`.`name` = "Rapportino intervento"; \ No newline at end of file From 6ac03e57e9f1537531f0efb100b0f258f601559a Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 5 May 2023 09:47:43 +0200 Subject: [PATCH 08/17] Fix minore --- modules/ordini/actions.php | 138 ++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 71 deletions(-) diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index edd2c11fb..8fef72862 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -626,80 +626,76 @@ switch (post('op')) { $qta_articolo = $dbo->selectOne('mg_articoli', 'qta', ['id' => $id_articolo])['qta']; $originale = ArticoloOriginale::find($id_articolo); + + $articolo = Articolo::build($ordine, $originale); + $qta = 1; - if ($qta_articolo <= 0 && !$permetti_movimenti_sotto_zero && !$originale->servizio && $dir == 'entrata') { - $response['error'] = tr('Quantità a magazzino non sufficiente'); - echo json_encode($response); - } else { - $articolo = Articolo::build($ordine, $originale); - $qta = 1; + $articolo->descrizione = $originale->descrizione; + $articolo->um = $originale->um; + $articolo->qta = 1; + $articolo->costo_unitario = $originale->prezzo_acquisto; - $articolo->descrizione = $originale->descrizione; - $articolo->um = $originale->um; - $articolo->qta = 1; - $articolo->costo_unitario = $originale->prezzo_acquisto; - - if ($dir == 'entrata') { - $id_iva = ($ordine->anagrafica->idiva_vendite ?: $originale->idiva_vendita) ?: setting('Iva predefinita'); - } else { - $id_iva = ($ordine->anagrafica->idiva_acquisti ?: setting('Iva predefinita')); - } - $id_anagrafica = $ordine->idanagrafica; - $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); - - // CALCOLO PREZZO UNITARIO - $prezzo_unitario = 0; - $sconto = 0; - // Prezzi netti clienti / listino fornitore - $prezzi = $dbo->fetchArray('SELECT minimo, massimo, sconto_percentuale, '.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario - FROM mg_prezzi_articoli - WHERE id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($dir).' AND id_anagrafica = '.prepare($id_anagrafica)); - - if ($prezzi) { - foreach ($prezzi as $prezzo) { - if ($qta >= $prezzo['minimo'] && $qta <= $prezzo['massimo']) { - $prezzo_unitario = $prezzo['prezzo_unitario']; - $sconto = $prezzo['sconto_percentuale']; - continue; - } - - if ($prezzo['minimo'] == null && $prezzo['massimo'] == null && $prezzo['prezzo_unitario'] != null) { - $prezzo_unitario = $prezzo['prezzo_unitario']; - $sconto = $prezzo['sconto_percentuale']; - continue; - } - } - } - if (empty($prezzo_unitario)) { - // Prezzi listini clienti - $listino = $dbo->fetchOne('SELECT sconto_percentuale AS sconto_percentuale_listino, '.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario_listino - FROM mg_listini - LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino - LEFT JOIN an_anagrafiche ON mg_listini.id=an_anagrafiche.id_listino - WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($dir).' AND idanagrafica = '.prepare($id_anagrafica)); - - if ($listino) { - $prezzo_unitario = $listino['prezzo_unitario_listino']; - $sconto = $listino['sconto_percentuale_listino']; - } - } - if ($dir == 'entrata') { - $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); - } else { - $prezzo_unitario = $prezzo_unitario ?: $originale->prezzo_acquisto; - } - - $provvigione = $dbo->selectOne('an_anagrafiche', 'provvigione_default', ['idanagrafica' => $ordine->idagente])['provvigione_default']; - - $articolo->confermato = ($dir = 'entrata' ? setting('Conferma automaticamente le quantità negli ordini cliente') : setting('Conferma automaticamente le quantità negli ordini fornitore')); - $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); - $articolo->setSconto($sconto, 'PRC'); - $articolo->setProvvigione($provvigione ?: 0, 'PRC'); - $articolo->save(); - - - flash()->info(tr('Nuovo articolo aggiunto!')); + if ($dir == 'entrata') { + $id_iva = ($ordine->anagrafica->idiva_vendite ?: $originale->idiva_vendita) ?: setting('Iva predefinita'); + } else { + $id_iva = ($ordine->anagrafica->idiva_acquisti ?: setting('Iva predefinita')); } + $id_anagrafica = $ordine->idanagrafica; + $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); + + // CALCOLO PREZZO UNITARIO + $prezzo_unitario = 0; + $sconto = 0; + // Prezzi netti clienti / listino fornitore + $prezzi = $dbo->fetchArray('SELECT minimo, massimo, sconto_percentuale, '.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario + FROM mg_prezzi_articoli + WHERE id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($dir).' AND id_anagrafica = '.prepare($id_anagrafica)); + + if ($prezzi) { + foreach ($prezzi as $prezzo) { + if ($qta >= $prezzo['minimo'] && $qta <= $prezzo['massimo']) { + $prezzo_unitario = $prezzo['prezzo_unitario']; + $sconto = $prezzo['sconto_percentuale']; + continue; + } + + if ($prezzo['minimo'] == null && $prezzo['massimo'] == null && $prezzo['prezzo_unitario'] != null) { + $prezzo_unitario = $prezzo['prezzo_unitario']; + $sconto = $prezzo['sconto_percentuale']; + continue; + } + } + } + if (empty($prezzo_unitario)) { + // Prezzi listini clienti + $listino = $dbo->fetchOne('SELECT sconto_percentuale AS sconto_percentuale_listino, '.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario_listino + FROM mg_listini + LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino + LEFT JOIN an_anagrafiche ON mg_listini.id=an_anagrafiche.id_listino + WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($dir).' AND idanagrafica = '.prepare($id_anagrafica)); + + if ($listino) { + $prezzo_unitario = $listino['prezzo_unitario_listino']; + $sconto = $listino['sconto_percentuale_listino']; + } + } + if ($dir == 'entrata') { + $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + } else { + $prezzo_unitario = $prezzo_unitario ?: $originale->prezzo_acquisto; + } + + $provvigione = $dbo->selectOne('an_anagrafiche', 'provvigione_default', ['idanagrafica' => $ordine->idagente])['provvigione_default']; + + $articolo->confermato = ($dir = 'entrata' ? setting('Conferma automaticamente le quantità negli ordini cliente') : setting('Conferma automaticamente le quantità negli ordini fornitore')); + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + $articolo->setSconto($sconto, 'PRC'); + $articolo->setProvvigione($provvigione ?: 0, 'PRC'); + $articolo->save(); + + + flash()->info(tr('Nuovo articolo aggiunto!')); + } else { $response['error'] = tr('Nessun articolo corrispondente a magazzino'); echo json_encode($response); From 5180c582357b92f78ea3a6ae3a924fb6cf0141cf Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 5 May 2023 11:09:05 +0200 Subject: [PATCH 09/17] Fix minore --- modules/interventi/ajax_costi.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/interventi/ajax_costi.php b/modules/interventi/ajax_costi.php index d08d637d0..bc115d1c7 100755 --- a/modules/interventi/ajax_costi.php +++ b/modules/interventi/ajax_costi.php @@ -134,7 +134,7 @@ if ($show_prezzi) { echo ' - '.tr('Totale', [], ['upper' => true]).': + '.tr('Totale documento', [], ['upper' => true]).': '.moneyFormat($totale, 2).' From fed45af5ae9ae3397cb98db038312c4a6ad0c514 Mon Sep 17 00:00:00 2001 From: Matteo Date: Fri, 5 May 2023 17:23:35 +0200 Subject: [PATCH 10/17] Ripristinato aggiornamento ajax delle checklist dopo la spunta --- modules/checklists/modutil.php | 2 +- plugins/checks.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/checklists/modutil.php b/modules/checklists/modutil.php index 4742d5132..5d81f6c79 100644 --- a/modules/checklists/modutil.php +++ b/modules/checklists/modutil.php @@ -39,7 +39,7 @@ function renderChecklist($check, $level = 1, $parent = 0) { $result .= ' - '.$check->content.' '; + '.$check->content.' '; if (intval($check->assignedUsers->pluck('id')->toArray())>0){ $result .= ' '; diff --git a/plugins/checks.php b/plugins/checks.php index 00d8b4414..62e6f372e 100644 --- a/plugins/checks.php +++ b/plugins/checks.php @@ -124,8 +124,12 @@ $(".checkbox").click(function(){ $.post("'.$checklist_module->fileurl('ajax.php').'", { op: "save_checkbox", id: $(this).attr("data-id"), + },function(result){ + reload(); }); + $(this).parent().parent().find(".text").css("text-decoration", "line-through"); + parent = $(this).attr("data-id"); $("tr.sonof_"+parent).find("input[type=checkbox]").each(function(){ if(!$(this).is(":checked")){ @@ -136,8 +140,12 @@ $(".checkbox").click(function(){ $.post("'.$checklist_module->fileurl('ajax.php').'", { op: "remove_checkbox", id: $(this).attr("data-id"), + },function(result){ + reload(); }); + $(this).parent().parent().find(".text").css("text-decoration", "none"); + parent = $(this).attr("data-id"); $("tr.sonof_"+parent).find("input[type=checkbox]").each(function(){ if($(this).is(":checked")){ @@ -162,6 +170,15 @@ function edit_check(id){ launch_modal("Modifica checklist", "'.$checklist_module->fileurl('components/edit-check.php').'?id_record="+id, 1); } +function reload(){ + $("#loading_'.$checks_id.'").removeClass("hide"); + $("#loading_'.$checks_id.'").addClass("show"); + $("#'.$checks_id.'").load(globals.rootdir + "/ajax.php?op=checklists&id_module='.$id_module.'&id_record='.$id_record.'&id_plugin='.$id_plugin.'", function() { + $("#loading_'.$checks_id.'").removeClass("show"); + $("#loading_'.$checks_id.'").addClass("hide"); + }); +} + '; ?> \ No newline at end of file From 8a485ca14b869d7863c753e6ced888feb556912a Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 5 May 2023 18:28:36 +0200 Subject: [PATCH 11/17] Aggiunta stampa liquidazione provvigioni --- modules/anagrafiche/buttons.php | 6 + modules/anagrafiche/liquida_provvigioni.php | 116 ++++++++++++++++++++ templates/provvigione/bottom.php | 32 ++++++ templates/provvigione/init.php | 72 ++++++++++++ templates/provvigione/piece.php | 29 +++++ templates/provvigione/settings.php | 27 +++++ templates/provvigione/top.php | 58 ++++++++++ 7 files changed, 340 insertions(+) create mode 100644 modules/anagrafiche/liquida_provvigioni.php create mode 100644 templates/provvigione/bottom.php create mode 100644 templates/provvigione/init.php create mode 100644 templates/provvigione/piece.php create mode 100644 templates/provvigione/settings.php create mode 100644 templates/provvigione/top.php diff --git a/modules/anagrafiche/buttons.php b/modules/anagrafiche/buttons.php index 262bd4e8f..92dbcac26 100755 --- a/modules/anagrafiche/buttons.php +++ b/modules/anagrafiche/buttons.php @@ -74,4 +74,10 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana echo ' '; +} else if (in_array($id_agente, $tipi_anagrafica)) { + //Aggiunta liquidazione provvigioni per agente + echo' + + +'; } diff --git a/modules/anagrafiche/liquida_provvigioni.php b/modules/anagrafiche/liquida_provvigioni.php new file mode 100644 index 000000000..61d8534bf --- /dev/null +++ b/modules/anagrafiche/liquida_provvigioni.php @@ -0,0 +1,116 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +use Models\Module; +use Carbon\Carbon; + +$id_record = filter('id_record'); +$dir = filter('dir'); +$nome_stampa = filter('nome_stampa'); +$id_print = $dbo->fetchOne('SELECT id FROM zz_prints WHERE name='.prepare($nome_stampa))['id']; +$id_module = Module::pool('Stampe contabili')->id; + +$year = (new Carbon($_SESSION['period_end']))->format('Y'); + +// Trovo id_print della stampa +$link = Prints::getHref($nome_stampa, $id_record); + +echo ' + + +
+
'; + echo ' +
+ {[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.$_SESSION['period_start'].'" ]} +
+ +
+ {[ "type": "date", "label": "'.tr('Data fine').'", "required": "1", "name": "date_end", "value": "'.$_SESSION['period_end'].'" ]} +
+ +
+ {[ "type": "checkbox", "label": "'.tr('Includi emesse').'", "name": "is_emessa" ]} +
+
+ +
+
+ {[ "type": "select", "label": "'.tr('Formato').'", "name": "format", "required": "1", "values": "list=\"A4\": \"'.tr('A4').'\", \"A3\": \"'.tr('A3').'\"", "value": "'.$_SESSION['stampe_contabili']['format'].'" ]} +
+ +
+ {[ "type": "select", "label": "'.tr('Orientamento').'", "name": "orientation", "required": "1", "values": "list=\"L\": \"'.tr('Orizzontale').'\", \"P\": \"'.tr('Verticale').'\"", "value": "'.$_SESSION['stampe_contabili']['orientation'].'" ]} +
+
+ {[ "type": "checkbox", "label": "'.tr('Includi parzialmente pagate').'", "name": "is_parz_pagata" ]} +
+'; + + echo ' +
+

 

+ +
+
+
+
'; + +echo ' +'; diff --git a/templates/provvigione/bottom.php b/templates/provvigione/bottom.php new file mode 100644 index 000000000..8dd9b18f5 --- /dev/null +++ b/templates/provvigione/bottom.php @@ -0,0 +1,32 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +$totale_provvigioni = sum(array_column($records, 'provvigione')); + +echo ' + + + '.tr('Totale provvigioni', [], ['upper' => true]).': + + '.moneyFormat($totale_provvigioni, 2).' + + +'; diff --git a/templates/provvigione/init.php b/templates/provvigione/init.php new file mode 100644 index 000000000..3f0b78ff8 --- /dev/null +++ b/templates/provvigione/init.php @@ -0,0 +1,72 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +$module = Modules::get('Fatture di vendita'); +$id_module = $module['id']; + +$module_query = ' +SELECT + numero_esterno, + an_anagrafiche.ragione_sociale, + prezzo_unitario, + provvigione_percentuale, + provvigione +FROM + `co_documenti` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN an_anagrafiche as agenti ON agenti.idanagrafica = co_documenti.idagente + LEFT JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id +WHERE + 1=1 +GROUP BY + co_documenti.id, co_righe_documenti.id +HAVING + 2=2 +ORDER BY + `co_documenti`.`data` DESC'; + +if(!empty(get('date_start'))){ + $module_query = str_replace('1=1', '1=1 AND DATE_FORMAT(`data`, "%Y%m%d") >= "'.date('Ymd', strtotime(get('date_start'))).'"', $module_query); + + $date_start = get('date_start'); +} + +if(!empty(get('date_end'))){ + $module_query = str_replace('1=1', '1=1 AND DATE_FORMAT(`data`, "%Y%m%d") <= "'.date('Ymd', strtotime(get('date_end'))).'"', $module_query); + + $date_end = get('date_end'); +} + +$module_query = str_replace('1=1', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', $module_query); + +if(get('is_emessa')=='true' && get('is_parz_pagata')=='true'){ + $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Emessa" OR descrizione = "Parzialmente pagato")', $module_query); +} else if(get('is_emessa')=='true'){ + $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Emessa")', $module_query); +} else if(get('is_parz_pagata')=='true'){ + $module_query = str_replace('1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato")', '1=1 AND co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione = "Pagato" OR descrizione = "Parzialmente pagato")', $module_query); +} + +$module_query = str_replace('1=1', '1=1 AND co_documenti.idagente='.prepare($id_record), $module_query); +$records = $dbo->fetchArray($module_query); \ No newline at end of file diff --git a/templates/provvigione/piece.php b/templates/provvigione/piece.php new file mode 100644 index 000000000..536191583 --- /dev/null +++ b/templates/provvigione/piece.php @@ -0,0 +1,29 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +echo ' + + Fattura n. '.$record['numero_esterno'].' + '.$record['ragione_sociale'].' + '.moneyFormat($record['prezzo_unitario'], 2).' + '.numberFormat($record['provvigione_percentuale'], 0).' % + '.moneyFormat($record['provvigione'], 2).' + '; diff --git a/templates/provvigione/settings.php b/templates/provvigione/settings.php new file mode 100644 index 000000000..fe6e31828 --- /dev/null +++ b/templates/provvigione/settings.php @@ -0,0 +1,27 @@ +. + */ + +$format = (isset($_SESSION['stampe_contabili']['format'])) ? $_SESSION['stampe_contabili']['format'] : 'A4'; +$orientation = (isset($_SESSION['stampe_contabili']['orientation'])) ? $_SESSION['stampe_contabili']['orientation'] : 'L'; + +return [ + 'format' => $format, + 'orientation' => $orientation, + 'font-size' => '11pt', +]; diff --git a/templates/provvigione/top.php b/templates/provvigione/top.php new file mode 100644 index 000000000..56e14fdf6 --- /dev/null +++ b/templates/provvigione/top.php @@ -0,0 +1,58 @@ +. + */ + +include_once __DIR__.'/../../core.php'; +use Modules\Anagrafiche\Anagrafica; + +$agente = Anagrafica::where([ + ['idanagrafica', '=', $id_record], +])->first(); + +echo ' +

'.tr('Liquidazione provvigioni agente _ANAG_', [ + '_ANAG_' => $agente->ragione_sociale, +], ['upper' => true]).'

'; + +if(!empty($date_start) AND !empty($date_end)) { + echo ' +

'.tr('Provvigioni dal _START_ al _END_', [ + '_START_' => Translator::dateToLocale($date_start), + '_END_' => Translator::dateToLocale($date_end), + ], ['upper' => true]).' +

'; +}else{ + echo ' +
'.tr('Provvigioni').' +
'; +} + +echo ' + + + + + + + + + + + + '; + From 5f1f5d525f3122ebfa0fd7f547c769e1f1a5ba98 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 09:55:49 +0200 Subject: [PATCH 12/17] Miglioria stampa provvigione --- templates/provvigione/top.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/templates/provvigione/top.php b/templates/provvigione/top.php index 56e14fdf6..aec507c1f 100644 --- a/templates/provvigione/top.php +++ b/templates/provvigione/top.php @@ -24,6 +24,13 @@ $agente = Anagrafica::where([ ['idanagrafica', '=', $id_record], ])->first(); +if(get('is_parz_pagata')=='true'){ + $text[] = "'Parzialmente pagato'"; +} +if(get('is_emessa')=='true'){ + $text[] = "'Emessa'"; +} + echo '

'.tr('Liquidazione provvigioni agente _ANAG_', [ '_ANAG_' => $agente->ragione_sociale, @@ -43,6 +50,12 @@ if(!empty($date_start) AND !empty($date_end)) { } echo ' +

+ '.tr("_TEXT_", + [ + "_TEXT_" => (empty($text) ? 'Solo fatture con stato \'Pagato\'' : 'Include fatture con stato \'Pagato\', '.implode(', ', $text)), + ]).' +

'.tr('Documento', [], ['upper' => true]).''.tr('Anagrafica', [], ['upper' => true]).''.tr('Importo', [], ['upper' => true]).''.tr('Percentuale', [], ['upper' => true]).''.tr('Provvigione', [], ['upper' => true]).'
From 0171840af3b74095529acd81004dd62a5aa77c00 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 11:15:44 +0200 Subject: [PATCH 13/17] Fix minore --- templates/provvigione/init.php | 4 ++-- templates/provvigione/piece.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/provvigione/init.php b/templates/provvigione/init.php index 3f0b78ff8..f97b4cd93 100644 --- a/templates/provvigione/init.php +++ b/templates/provvigione/init.php @@ -26,7 +26,7 @@ $module_query = ' SELECT numero_esterno, an_anagrafiche.ragione_sociale, - prezzo_unitario, + SUM(prezzo_unitario*qta) as \'Totale\', provvigione_percentuale, provvigione FROM @@ -40,7 +40,7 @@ FROM WHERE 1=1 GROUP BY - co_documenti.id, co_righe_documenti.id + co_documenti.id HAVING 2=2 ORDER BY diff --git a/templates/provvigione/piece.php b/templates/provvigione/piece.php index 536191583..6ec0e7c37 100644 --- a/templates/provvigione/piece.php +++ b/templates/provvigione/piece.php @@ -23,7 +23,7 @@ echo ' - + - '; + '; \ No newline at end of file From ddaa6cf7e37f6050709152cb5e667722de08f690 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 11:22:04 +0200 Subject: [PATCH 14/17] Fix aggiunta stampa liquidazione provvigioni --- templates/provvigione/init.php | 2 +- update/2_4_45.sql | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/templates/provvigione/init.php b/templates/provvigione/init.php index f97b4cd93..562ad0a87 100644 --- a/templates/provvigione/init.php +++ b/templates/provvigione/init.php @@ -38,7 +38,7 @@ FROM LEFT JOIN an_anagrafiche as agenti ON agenti.idanagrafica = co_documenti.idagente LEFT JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE - 1=1 + 1=1 AND provvigione > 0 GROUP BY co_documenti.id HAVING diff --git a/update/2_4_45.sql b/update/2_4_45.sql index 6aedc2482..63ca162d2 100644 --- a/update/2_4_45.sql +++ b/update/2_4_45.sql @@ -99,4 +99,8 @@ ORDER BY CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; -- Aggiornamento data ultima sessione in rapportino intervento -UPDATE `em_templates` SET `body` = '

Gentile Cliente,

\n

inviamo in allegato il rapportino numero {numero} del {data fine intervento}.

\n

Distinti saluti

', `subject` = 'Invio rapportino numero {numero} del {data fine intervento}' WHERE `em_templates`.`name` = "Rapportino intervento"; \ No newline at end of file +UPDATE `em_templates` SET `body` = '

Gentile Cliente,

\n

inviamo in allegato il rapportino numero {numero} del {data fine intervento}.

\n

Distinti saluti

', `subject` = 'Invio rapportino numero {numero} del {data fine intervento}' WHERE `em_templates`.`name` = "Rapportino intervento"; + +-- Aggiunta stampa liquidazione provvigioni +INSERT INTO `zz_prints` (`id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`, `available_options`) VALUES +((SELECT id FROM zz_modules WHERE `name` = 'Anagrafiche'), 1, 'Provvigioni', 'Provvigioni', 'Provvigioni {ragione_sociale}', 'provvigione', 'idanagrafica', '', 'fa fa-print', '', '', 0, 0, 0, 1, NULL); From 64c4f73ad7e1ba7b7741f601781168a0da7af548 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 11:44:35 +0200 Subject: [PATCH 15/17] Fix minore --- modules/preventivi/src/Preventivo.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/preventivi/src/Preventivo.php b/modules/preventivi/src/Preventivo.php index 0ea093213..6e5e01847 100755 --- a/modules/preventivi/src/Preventivo.php +++ b/modules/preventivi/src/Preventivo.php @@ -73,7 +73,6 @@ class Preventivo extends Document $id_agente = $anagrafica->idagente; $id_pagamento = $anagrafica->idpagamento_vendite; $id_segment = $id_segment ?: getSegmentPredefined($model->getModule()->id); - $id_agente = $anagrafica->idagente; $id_iva = setting('Iva predefinita'); if (empty($id_pagamento)) { From 69e638627f1ec98ccb6a1d5232dbf5c1e8885b8d Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 13:16:05 +0200 Subject: [PATCH 16/17] fix partita iva in generazione xml --- plugins/xml/asso-invoice.xsl | 79 +++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/plugins/xml/asso-invoice.xsl b/plugins/xml/asso-invoice.xsl index 4117fc248..2850a65a7 100755 --- a/plugins/xml/asso-invoice.xsl +++ b/plugins/xml/asso-invoice.xsl @@ -877,10 +877,19 @@ Identificativo fiscale ai fini IVA: - - + + + + + + + + + + + + - @@ -1135,10 +1144,20 @@ Identificativo fiscale ai fini IVA: - - - - + + + + + + + + + + + + + + @@ -1360,10 +1379,20 @@ Identificativo fiscale ai fini IVA: - - - - + + + + + + + + + + + + + + @@ -1455,8 +1484,18 @@ Identificativo fiscale ai fini IVA: - - + + + + + + + + + + + + @@ -1602,8 +1641,18 @@ Identificativo fiscale ai fini IVA: - - + + + + + + + + + + + + From ec2aff8342f76c5c8d5e0e1048b843cecf8e07b8 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 14:31:19 +0200 Subject: [PATCH 17/17] fix minore --- plugins/xml/asso-invoice.xsl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/xml/asso-invoice.xsl b/plugins/xml/asso-invoice.xsl index 2850a65a7..05adcd019 100755 --- a/plugins/xml/asso-invoice.xsl +++ b/plugins/xml/asso-invoice.xsl @@ -878,8 +878,8 @@ Identificativo fiscale ai fini IVA: - - + + @@ -1146,8 +1146,8 @@ Identificativo fiscale ai fini IVA: - - + + @@ -1381,8 +1381,8 @@ Identificativo fiscale ai fini IVA: - - + + @@ -1485,8 +1485,8 @@ Identificativo fiscale ai fini IVA: - - + + @@ -1642,8 +1642,8 @@ Identificativo fiscale ai fini IVA: - - + +
Fattura n. '.$record['numero_esterno'].' '.$record['ragione_sociale'].''.moneyFormat($record['prezzo_unitario'], 2).''.moneyFormat($record['Totale'], 2).' '.numberFormat($record['provvigione_percentuale'], 0).' % '.moneyFormat($record['provvigione'], 2).'