diff --git a/modules/articoli/actions.php b/modules/articoli/actions.php index 666d856bb..0fc7986ad 100755 --- a/modules/articoli/actions.php +++ b/modules/articoli/actions.php @@ -364,6 +364,47 @@ switch (post('op')) { flash()->info(tr('Articolo eliminato!')); break; + + case 'add-movimento': + + $articolo = Articolo::find(post('idarticolo')); + $tipo_movimento = post('tipo_movimento'); + $descrizione = post('movimento'); + $data = post('data'); + $qta = post('qta'); + + $idsede_partenza = post('idsede_partenza'); + $idsede_destinazione = post('idsede_destinazione'); + + if ($tipo_movimento == 'carico' || $tipo_movimento == 'scarico') { + if ($tipo_movimento == 'carico') { + $id_sede_azienda = $idsede_destinazione; + $id_sede_controparte = 0; + } elseif ($tipo_movimento == 'scarico') { + $id_sede_azienda = $idsede_partenza; + $id_sede_controparte = 0; + + $qta = -$qta; + } + + // Registrazione del movimento con variazione della quantità + $articolo->movimenta($qta, $descrizione, $data, 1, [ + 'idsede' => $id_sede_azienda, + ]); + + } elseif ($tipo_movimento == 'spostamento') { + // Registrazione del movimento verso la sede di destinazione + $articolo->registra($qta, $descrizione, $data, 1, [ + 'idsede' => $idsede_destinazione, + ]); + + // Registrazione del movimento dalla sede di origine + $articolo->registra(-$qta, $descrizione, $data, 1, [ + 'idsede' => $idsede_partenza, + ]); + } + + break; } // Operazioni aggiuntive per l'immagine diff --git a/modules/articoli/modals/add_movimento.php b/modules/articoli/modals/add_movimento.php new file mode 100755 index 000000000..583f0e6e9 --- /dev/null +++ b/modules/articoli/modals/add_movimento.php @@ -0,0 +1,225 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +// Imposto come azienda l'azienda predefinita per selezionare le sedi a cui ho accesso +// select-options + +?> +
+ + + +
+
+ {["type": "select", "label": "", "name": "idarticolo", "ajax-source": "articoli", "value": "", "required": 1, "readonly": 1, "select-options": {"permetti_movimento_a_zero": 1, "idanagrafica": , "idsede_partenza": 0, "idsede_destinazione": 0 } ]} +
+ +
+ {["type": "number", "label": "", "name": "qta", "decimals": "qta", "value": "1", "required": 1 ]} +
+ +
+ {["type": "date", "label": "", "name": "data", "value": "-now-", "required": 1 ]} +
+ +
+ {["type": "select", "label": "", "name": "causale", "values": "query=SELECT id, nome as text, descrizione, tipo_movimento FROM mg_causali_movimenti", "value": 1, "required": 1 ]} + +
+
+ +
+
+ {["type": "textarea", "label": "", "name": "movimento", "required": 1, "value": "Carico manuale" ]} +
+
+ +
+
+ {[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "0", "required": 1, "disabled": "1" ]} +
+ +
+ {[ "type": "select", "label": "", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "0", "required": 1 ]} +
+
+ + +
+
+ +
+
+
+ + +
+ + + +'; + +if (setting('Attiva scorciatoie da tastiera')) { + echo ' +'; +} + +echo ' +'; diff --git a/modules/articoli/plugins/articoli.movimenti.php b/modules/articoli/plugins/articoli.movimenti.php index d9492b951..829935fc1 100755 --- a/modules/articoli/plugins/articoli.movimenti.php +++ b/modules/articoli/plugins/articoli.movimenti.php @@ -19,12 +19,38 @@ include_once __DIR__.'/../../../core.php'; +echo ' +
+
+

'.tr('Articolo').'

+
+ +
+
+
+ '.tr("Codice: ").''.$articolo->codice.' +
+ +
+ '.tr("Descrizione: ").''.$articolo->descrizione.' +
+
+
+
'; + // Movimentazione degli articoli echo '

'.tr('Movimenti').'

'; + +echo ' + + + '.tr('Movimenta articolo').' + '; + if (empty($_GET['movimentazione_completa'])) { echo '