diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php old mode 100755 new mode 100644 index 6a8580e73..329666617 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -383,5 +383,54 @@ $riga = $contratto->getRiga($type, $id_riga); } } + break; + + case 'add_preventivo': + + $preventivo = \Modules\Preventivi\Preventivo::find(post('id_documento')); + + // Creazione del contratto al volo + if (post('create_document') == 'on') { + + $contratto = Contratto::build($preventivo->anagrafica, $preventivo->nome); + + $contratto->idpagamento = $preventivo->idpagamento; + $contratto->idsede = $preventivo->idsede; + + $contratto->id_documento_fe = $preventivo->id_documento_fe; + $contratto->codice_cup = $preventivo->codice_cup; + $contratto->codice_cig = $preventivo->codice_cig; + $contratto->num_item = $preventivo->num_item; + + $contratto->descrizione = $preventivo->descrizione; + $contratto->esclusioni = $preventivo->esclusioni; + + $contratto->save(); + + $id_record = $contratto->id; + } + + $parziale = false; + $righe = $preventivo->getRighe(); + foreach ($righe as $riga) { + if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) { + $qta = post('qta_da_evadere')[$riga->id]; + + $copia = $riga->copiaIn($contratto, $qta); + + $copia->save(); + } + + if ($riga->qta != $riga->qta_evasa) { + $parziale = true; + } + } + + ricalcola_costiagg_ordine($id_record); + + flash()->info(tr('Preventivo _NUM_ aggiunto!', [ + '_NUM_' => $preventivo->numero, + ])); + break; } diff --git a/modules/contratti/add_preventivo.php b/modules/contratti/add_preventivo.php new file mode 100644 index 000000000..78e71f893 --- /dev/null +++ b/modules/contratti/add_preventivo.php @@ -0,0 +1,68 @@ + 'add_preventivo', + 'type' => 'preventivo', + 'button' => tr('Aggiungi'), + 'documento' => $documento, + 'documento_finale' => $documento_finale, + ]; + + echo App::load('importa.php', [], $options, true); + + return; +} + +$id_anagrafica = $documento_finale->idanagrafica; + +$_SESSION['superselect']['idanagrafica'] = $id_anagrafica; + +echo ' +
+
+ {[ "type": "select", "label": "'.tr('Preventivo').'", "name": "id_documento", "ajax-source": "preventivi" ]} +
+
+ +
+ +
+ +
+ '.tr('Caricamento in corso').'... +
'; + +$file = basename(__FILE__); +echo ' + + +'; diff --git a/modules/contratti/crea_documento.php b/modules/contratti/crea_documento.php old mode 100755 new mode 100644 diff --git a/modules/preventivi/buttons.php b/modules/preventivi/buttons.php old mode 100755 new mode 100644 index d63456a58..76fbf221d --- a/modules/preventivi/buttons.php +++ b/modules/preventivi/buttons.php @@ -34,6 +34,12 @@ echo '  '.tr('Fattura').' + +
  • + +  '.tr('Contratto').' + +
  • '; diff --git a/modules/preventivi/crea_documento.php b/modules/preventivi/crea_documento.php old mode 100755 new mode 100644 index ab9cf99f2..aaa8b063d --- a/modules/preventivi/crea_documento.php +++ b/modules/preventivi/crea_documento.php @@ -9,9 +9,12 @@ $documento = Preventivo::find($id_record); if (get('documento') == 'fattura') { $final_module = 'Fatture di vendita'; $op = 'add_documento'; -} else { +} elseif (get('documento') == 'ordine') { $final_module = 'Ordini cliente'; $op = 'add_preventivo'; +} else { + $final_module = 'Contratti'; + $op = 'add_preventivo'; } $options = [ diff --git a/update/2_4_16.sql b/update/2_4_16.sql index fe8ec80c5..161d57d81 100644 --- a/update/2_4_16.sql +++ b/update/2_4_16.sql @@ -5,4 +5,7 @@ UPDATE `zz_views` SET `search` = 1 WHERE `zz_views`.`name` IN ('Categoria', 'Nom -- Aggiunta rivalsa inps e relativa iva per il calcolo del totale ivato del documento UPDATE `zz_views` SET `query` = 'righe.totale + `co_documenti`.`rivalsainps` + `co_documenti`.`iva_rivalsainps`' WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita') AND `name` = 'Totale ivato'; -UPDATE `zz_views` SET `query` = 'righe.totale + `co_documenti`.`rivalsainps` + `co_documenti`.`iva_rivalsainps`' WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto') AND `name` = 'Totale ivato'; \ No newline at end of file +UPDATE `zz_views` SET `query` = 'righe.totale + `co_documenti`.`rivalsainps` + `co_documenti`.`iva_rivalsainps`' WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto') AND `name` = 'Totale ivato'; + +-- Aggiunta campi righe contratti -- +ALTER TABLE `co_righe_contratti` ADD `original_id` INT(11) NULL DEFAULT NULL AFTER `abilita_serial` , ADD `original_type` VARCHAR(255) NULL DEFAULT NULL AFTER `original_id`; \ No newline at end of file