diff --git a/assets/src/js/functions/functions.js b/assets/src/js/functions/functions.js index 9c2d7783b..aac7ca8b5 100755 --- a/assets/src/js/functions/functions.js +++ b/assets/src/js/functions/functions.js @@ -478,6 +478,7 @@ function replaceAll(str, find, replace) { } function cleanup_inputs() { + $('.bound').removeClass("bound"); $('.superselect, .superselectajax').select2().select2("destroy"); } diff --git a/include/common/barcode.php b/include/common/barcode.php new file mode 100644 index 000000000..f0939890b --- /dev/null +++ b/include/common/barcode.php @@ -0,0 +1,194 @@ + +
+ {[ "type": "text", "label": "'.tr('Barcode').'", "name": "barcode", "value": "", "icon-before": "" ]} +
+ + + + + + +
+
+ + + + + + + + +
'.tr('Articolo').''.$intestazione_prezzo.''.tr('Sconto').''.tr('Q.tà').'#
+
+
'; + +echo ' + + + + + + + + + + + + + + + +'; diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index 1bd1255d3..8de100f70 100755 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -254,5 +254,46 @@ switch ($resource) { $search_fields[] = 'valore LIKE '.prepare('%'.$search.'%'); } + break; + + case 'articoli_barcode': + $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); + + $query = 'SELECT mg_articoli.*, + IFNULL(mg_fornitore_articolo.codice_fornitore, mg_articoli.codice) AS codice, + IFNULL(mg_fornitore_articolo.descrizione, mg_articoli.descrizione) AS descrizione, + IFNULL(mg_fornitore_articolo.prezzo_acquisto, mg_articoli.prezzo_acquisto) AS prezzo_acquisto, + mg_articoli.'.($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita').' AS prezzo_vendita, + mg_articoli.prezzo_vendita_ivato AS prezzo_vendita_ivato, + IFNULL(mg_fornitore_articolo.qta_minima, 0) AS qta_minima, + mg_fornitore_articolo.id AS id_dettaglio_fornitore + FROM mg_articoli + LEFT JOIN mg_fornitore_articolo ON mg_fornitore_articolo.id_articolo = mg_articoli.id AND mg_fornitore_articolo.deleted_at IS NULL AND mg_fornitore_articolo.id_fornitore = '.prepare($superselect['idanagrafica']).' + |where|'; + + $where[] = 'barcode='.prepare(get('barcode')); + $where[] = 'mg_articoli.attivo = 1'; + $where[] = 'mg_articoli.deleted_at IS NULL'; + + $custom = [ + 'id' => 'id', + 'codice' => 'codice', + 'descrizione' => 'descrizione', + 'qta' => 'qta', + 'um' => 'um', + 'categoria' => 'categoria', + 'sottocategoria' => 'sottocategoria', + 'idiva_vendita' => 'idiva_vendita', + 'iva_vendita' => 'iva_vendita', + 'idconto_vendita' => 'idconto_vendita', + 'idconto_vendita_title' => 'idconto_vendita_title', + 'idconto_acquisto' => 'idconto_acquisto', + 'idconto_acquisto_title' => 'idconto_acquisto_title', + 'prezzo_acquisto' => 'prezzo_acquisto', + 'prezzo_vendita' => 'prezzo_vendita', + 'id_dettaglio_fornitore' => 'id_dettaglio_fornitore', + 'barcode' => 'barcode', + ]; + break; } diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 4dcb00804..8bb70fa93 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -114,6 +114,38 @@ switch (post('op')) { break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($contratto, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index b7ecd6e2a..8f9113ddf 100755 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -310,6 +310,11 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; + echo ' '.tr('Riga').' diff --git a/modules/contratti/plugins/contratti.consuntivo.php b/modules/contratti/plugins/contratti.consuntivo.php index ee0f443fa..dc732e653 100755 --- a/modules/contratti/plugins/contratti.consuntivo.php +++ b/modules/contratti/plugins/contratti.consuntivo.php @@ -208,8 +208,7 @@ if (!empty($interventi)) { '; $stati = $interventi->groupBy('idstatointervento'); - if (count($stati)>0){ - + if (count($stati) > 0) { // Totali per stato echo ' @@ -235,7 +234,6 @@ if (!empty($interventi)) { '; } - } echo ' diff --git a/modules/contratti/row-add.php b/modules/contratti/row-add.php index 8b8ced5c8..2afd54a62 100755 --- a/modules/contratti/row-add.php +++ b/modules/contratti/row-add.php @@ -53,6 +53,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 53e77f15d..b0bce2e89 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -133,6 +133,38 @@ switch (post('op')) { flash()->info(tr('Ddt modificato correttamente!')); break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($ddt, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 5fd589f40..e807ed847 100755 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -329,6 +329,11 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; + echo ' '.tr('Riga').' diff --git a/modules/ddt/row-add.php b/modules/ddt/row-add.php index 1b85f88ab..8177ffd4b 100755 --- a/modules/ddt/row-add.php +++ b/modules/ddt/row-add.php @@ -54,6 +54,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 28b248869..e2c82d0ad 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -392,6 +392,43 @@ switch (post('op')) { break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Inversione quantità per Note + if (!empty($record['is_reversed'])) { + $qta = -$qta; + } + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($fattura, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); @@ -402,6 +439,7 @@ switch (post('op')) { } $qta = post('qta'); + // Inversione quantità per Note if (!empty($record['is_reversed'])) { $qta = -$qta; } diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index ffe245d73..3ea577dd8 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -672,6 +672,10 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; echo ' diff --git a/modules/fatture/row-add.php b/modules/fatture/row-add.php index 34f7feaed..e809ca2d0 100755 --- a/modules/fatture/row-add.php +++ b/modules/fatture/row-add.php @@ -76,6 +76,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 3bd0bdcf3..eec11e777 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -205,6 +205,38 @@ $riga = $intervento->getRiga($type, $id_riga); break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($intervento, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index f6fd2e7de..bd03c2146 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -233,6 +233,11 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; + echo ' '.tr('Riga').' diff --git a/modules/interventi/row-add.php b/modules/interventi/row-add.php index 81a78a7c6..72c6e198c 100755 --- a/modules/interventi/row-add.php +++ b/modules/interventi/row-add.php @@ -56,6 +56,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 4f79fdb6a..397285c2d 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -112,6 +112,38 @@ switch (post('op')) { break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($ordine, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index 7917e821b..48ef08628 100755 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -34,7 +34,7 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = true;
- {[ "type": "text", "label": "", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]} + {[ "type": "text", "label": "", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
@@ -186,6 +186,11 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; + echo ' '.tr('Riga').' diff --git a/modules/ordini/row-add.php b/modules/ordini/row-add.php index cfe4c8bf1..3b90d064c 100755 --- a/modules/ordini/row-add.php +++ b/modules/ordini/row-add.php @@ -54,6 +54,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 020a9eded..3d9c917e9 100755 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -147,6 +147,38 @@ switch (post('op')) { break; + case 'manage_barcode': + foreach (post('qta') as $id_articolo => $qta) { + if ($id_articolo == '-id-') { + continue; + } + + // Dati di input + $sconto = post('sconto')[$id_articolo]; + $tipo_sconto = post('tipo_sconto')[$id_articolo]; + $prezzo_unitario = post('prezzo_unitario')[$id_articolo]; + $id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo]; + $id_iva = $originale->idiva_vendita ? $originale->idiva_vendita : setting('Iva predefinita'); + + // Creazione articolo + $originale = ArticoloOriginale::find($id_articolo); + $articolo = Articolo::build($preventivo, $originale); + $articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null; + + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); + if ($dir == 'entrata') { + $articolo->costo_unitario = $originale->prezzo_acquisto; + } + $articolo->setSconto($sconto, $tipo_sconto); + $articolo->qta = $qta; + + $articolo->save(); + } + + flash()->info(tr('Articoli aggiunti!')); + + break; + case 'manage_articolo': if (post('idriga') != null) { $articolo = Articolo::find(post('idriga')); diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index c0b11eb8f..4d04074c8 100755 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -208,6 +208,16 @@ if (!$block_edit) { '.tr('Articolo').' '; + echo ' + + '.tr('Barcode').' + '; + + echo ' + + '.tr('Barcode').' + '; + echo ' '.tr('Riga').' diff --git a/modules/preventivi/plugins/preventivi.consuntivo.php b/modules/preventivi/plugins/preventivi.consuntivo.php index 16d1db7d2..e3d438d71 100755 --- a/modules/preventivi/plugins/preventivi.consuntivo.php +++ b/modules/preventivi/plugins/preventivi.consuntivo.php @@ -207,8 +207,7 @@ if (!empty($interventi)) { '; $stati = $interventi->groupBy('idstatointervento'); - if (count($stati)>0){ - + if (count($stati) > 0) { // Totali per stato echo ' @@ -234,7 +233,6 @@ if (!empty($interventi)) { '; } - } echo ' diff --git a/modules/preventivi/row-add.php b/modules/preventivi/row-add.php index 0d61ae466..a1db725e6 100755 --- a/modules/preventivi/row-add.php +++ b/modules/preventivi/row-add.php @@ -53,6 +53,10 @@ if (get('is_descrizione') !== null) { $file = 'sconto'; $options['op'] = 'manage_sconto'; +} elseif (get('is_barcode') !== null) { + $file = 'barcode'; + + $options['op'] = 'manage_barcode'; } echo App::load($file.'.php', $result, $options); diff --git a/plugins/notes.php b/plugins/notes.php index cc6e5eded..2045b1a41 100755 --- a/plugins/notes.php +++ b/plugins/notes.php @@ -95,7 +95,6 @@ if ($structure->permission == 'rw') { '; } - echo '