From d9cae84697bef5f9130aaf8dcd820c6f16d1b465 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Fri, 8 Nov 2024 16:30:19 +0100 Subject: [PATCH] feat: gestione spedizione porto e vettore in ordini --- modules/ddt/actions.php | 6 ++++ modules/ddt/edit.php | 2 +- modules/ordini/actions.php | 3 ++ modules/ordini/edit.php | 61 ++++++++++++++++++++++++++++++++++---- templates/ordini/body.php | 32 ++++++++++++++++++++ templates/ordini/init.php | 9 +++++- update/2_6.sql | 5 +++- 7 files changed, 110 insertions(+), 8 deletions(-) diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 661efc028..8daf27729 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -304,6 +304,12 @@ switch (filter('op')) { $ddt->idreferente = $documento->idreferente; $ddt->idagente = $documento->idagente; + if (filter('op') == 'add_ordine') { + $ddt->idspedizione = $documento->idspedizione; + $ddt->idporto = $documento->idporto; + $ddt->idvettore = $documento->idvettore; + } + $ddt->save(); $id_record = $ddt->id; diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 0288e835f..ea0b4efcf 100755 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -274,7 +274,7 @@ $esterno = $dbo->selectOne('dt_spedizione', 'esterno', [ 'id' => $record['idspedizione'], ])['esterno']; ?> - {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-": "add|first()->id; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|", "class": "" ]} + {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-after": "add|first()->id; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|", "class": "" ]}
diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 34ce5550d..aef304f5d 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -94,6 +94,9 @@ switch (post('op')) { $ordine->idagente = post('idagente'); $ordine->idstatoordine = $idstatoordine; $ordine->idpagamento = $idpagamento; + $ordine->idspedizione = post('idspedizione'); + $ordine->idporto = post('idporto'); + $ordine->idvettore = post('idvettore'); $ordine->idsede = $idsede; $ordine->idconto = post('idconto'); $ordine->idrivalsainps = $idrivalsainps; diff --git a/modules/ordini/edit.php b/modules/ordini/edit.php index c83eeacf6..3a198c45c 100755 --- a/modules/ordini/edit.php +++ b/modules/ordini/edit.php @@ -144,26 +144,77 @@ echo '
-
> +
> {[ "type": "text", "label": "", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$" ]}
-
+
{[ "type": "text", "label": "", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
-
+
{[ "type": "date", "label": "", "name": "data", "required": 1, "value": "$data$" ]}
-
+
{[ "type": "select", "label": "", "name": "idpagamento", "required": 0, "ajax-source": "pagamenti", "value": "$idpagamento$" ]}
+
-
+
+
+ {[ "type": "select", "label": "", "name": "idspedizione", "placeholder": "-", "values": "query=SELECT `dt_spedizione`.`id`, `dt_spedizione_lang`.`title` as `descrizione`, `esterno` FROM `dt_spedizione` LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione_lang`.`id_record` = `dt_spedizione`.`id` AND `dt_spedizione_lang`.`id_lang` = id); ?>) ORDER BY `title` ASC", "value": "$idspedizione$" ]} +
+ +
+ {[ "type": "select", "label": "", "name": "idporto", "placeholder": "-", "help": "
  • Franco: pagamento del trasporto a carico del mittente
  • Assegnato: pagamento del trasporto a carico del destinatario
  • '); ?>", "values": "query=SELECT `dt_porto`.`id`, `dt_porto_lang`.`title` as descrizione FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto`.`id` = `dt_porto_lang`.`id_record` AND `dt_porto_lang`.`id_lang` = id); ?>) ORDER BY `title` ASC", "value": "$idporto$" ]} +
    + +
    + selectOne('dt_spedizione', 'esterno', [ + 'id' => $record['idspedizione'], + ])['esterno']; + ?> + {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-after": "add|first()->id; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|", "class": "" ]} +
    + +
    {[ "type": "number", "label": "", "name": "sconto_finale", "value": "sconto_finale_percentuale ?: $ordine->sconto_finale; ?>", "icon-after": "choice|untprc|sconto_finale) ? 'PRC' : 'UNT'; ?>", "help": "." ]}
    + + setRows(27, 0, 31); +// Informazioni aggiuntive +echo ' + + + + + + + + + + + + + + + + +
    + '.tr('Porto', [], ['upper' => true]).' + + '.tr('Tipo di spedizione', [], ['upper' => true]).' + + '.tr('Vettore', [], ['upper' => true]).' +
    + $porto$   + + $spedizione$   + + $vettore$   +
    '; + // Intestazione tabella per righe echo " diff --git a/templates/ordini/init.php b/templates/ordini/init.php index 8b1942d00..63657a37c 100755 --- a/templates/ordini/init.php +++ b/templates/ordini/init.php @@ -66,10 +66,17 @@ if (!empty($documento->idsede)) { $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $pagamento = $dbo->fetchOne('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `co_pagamenti`.`id` = '.prepare($documento->idpagamento)); +$porto = $dbo->fetchOne('SELECT `dt_porto`.*, `dt_porto_lang`.`title` as descrizione FROM `dt_porto` LEFT JOIN `dt_porto_lang` ON (`dt_porto`.`id` = `dt_porto_lang`.`id_record` AND `dt_porto_lang`.`id_lang` ='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_porto`.`id` = '.prepare($documento['idporto'])); +$spedizione = $dbo->fetchOne('SELECT `dt_spedizione`.*, `dt_spedizione_lang`.`title` as descrizione FROM `dt_spedizione` LEFT JOIN `dt_spedizione_lang` ON (`dt_spedizione`.`id`=`dt_spedizione_lang`.`id_record` AND `dt_spedizione_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `dt_spedizione`.`id` = '.prepare($documento['idspedizione'])); +$vettore = $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare($documento['idvettore'])); + // Sostituzioni specifiche $custom = [ 'tipo_doc' => Stringy\Stringy::create($documento->tipo->getTranslation('title'))->toUpperCase(), 'numero' => $numero, 'data' => Translator::dateToLocale($documento['data']), 'pagamento' => $pagamento['descrizione'], -]; + 'porto' => $porto['descrizione'], + 'spedizione' => $spedizione['descrizione'], + 'vettore' => $vettore['ragione_sociale'] +]; \ No newline at end of file diff --git a/update/2_6.sql b/update/2_6.sql index 9967a6e6d..aaf380692 100644 --- a/update/2_6.sql +++ b/update/2_6.sql @@ -99,4 +99,7 @@ ALTER TABLE `mg_articoli` ADD `modello` VARCHAR(255) NULL AFTER `id_marchio`; UPDATE `zz_segments` SET `clause` = 'in_interventi.idstatointervento NOT IN(SELECT in_statiintervento.id FROM in_statiintervento WHERE is_completato=1)' WHERE `zz_segments`.`name` = 'Non completate' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Interventi'); INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES -(NULL, 'v1', 'retrieve', 'pagamenti', 'Modules\\Pagamenti\\API\\v1\\Pagamenti', 1); \ No newline at end of file +(NULL, 'v1', 'retrieve', 'pagamenti', 'Modules\\Pagamenti\\API\\v1\\Pagamenti', 1); + +-- Aggiunto spedizione porto e vettore in ordini +ALTER TABLE `or_ordini` ADD `idspedizione` TINYINT NULL AFTER `codice_commessa`, ADD `idporto` TINYINT NULL AFTER `idspedizione`, ADD `idvettore` INT NULL AFTER `idporto`; \ No newline at end of file