From 2878e0164b0bc3297e71ded81c967a296a001d5b Mon Sep 17 00:00:00 2001 From: Beppe Date: Thu, 16 Dec 2021 12:25:25 +0100 Subject: [PATCH] Righe aggiuntive in interventi da tipologie interventi --- modules/interventi/edit.php | 1 + modules/interventi/modutil.php | 17 ++++ modules/tipi_intervento/actions.php | 56 ++++++++++++ modules/tipi_intervento/add_righe.php | 117 +++++++++++++++++++++++++ modules/tipi_intervento/ajax_righe.php | 54 ++++++++++++ modules/tipi_intervento/edit.php | 18 ++++ update/2_4_28.sql | 18 +++- 7 files changed, 280 insertions(+), 1 deletion(-) create mode 100755 modules/tipi_intervento/add_righe.php create mode 100755 modules/tipi_intervento/ajax_righe.php diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 0ef14e84c..cc488eaf8 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -595,6 +595,7 @@ function caricaTecnici() { localLoading(container, true); return $.get("'.$structure->fileurl('ajax_tecnici.php').'?id_module='.$id_module.'&id_record='.$id_record.'", function(data) { + caricaRighe(); container.html(data); localLoading(container, false); }); diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index 8e4b3e921..f0a1b6d2c 100755 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -28,6 +28,7 @@ use Modules\Fatture\Components\Riga; use Modules\Fatture\Fattura; use Modules\Interventi\Components\Sessione; use Modules\Interventi\Intervento; +use Modules\Interventi\Components\Riga as RigaIntervento; use Util\Generator; use Util\Ini; @@ -109,6 +110,22 @@ function add_tecnico($id_intervento, $idtecnico, $inizio, $fine, $idcontratto = } } + //Inserisco le righe aggiuntive previste dal tipo di intervento + $righe_aggiuntive = database()->fetchArray("SELECT * FROM in_righe_tipiinterventi WHERE id_tipointervento=".prepare($sessione->idtipointervento)); + + foreach($righe_aggiuntive as $riga_aggiuntiva){ + $riga = RigaIntervento::build($intervento); + + $riga->descrizione = $riga_aggiuntiva['descrizione']; + $riga->um = $riga_aggiuntiva['um']; + + $riga->costo_unitario = $riga_aggiuntiva['prezzo_acquisto']; + $riga->setPrezzoUnitario( $riga_aggiuntiva['prezzo_vendita'], $riga_aggiuntiva['idiva'] ); + $riga->qta = $riga_aggiuntiva['qta']; + + $riga->save(); + } + return true; } diff --git a/modules/tipi_intervento/actions.php b/modules/tipi_intervento/actions.php index c5333ba92..1093cfade 100755 --- a/modules/tipi_intervento/actions.php +++ b/modules/tipi_intervento/actions.php @@ -113,5 +113,61 @@ switch (post('op')) { 'idtipointervento' => $id_record, ]); + break; + + case 'addriga': + + $idiva = post('idiva'); + $descrizione = post('descrizione'); + $qta = post('qta'); + $um = post('um'); + $id_tipointervento = post('id_tipointervento'); + $prezzo_acquisto = post('prezzo_acquisto'); + $prezzo_vendita = post('prezzo_vendita'); + $subtotale = $qta * $prezzo_vendita; + + $query = 'INSERT INTO in_righe_tipiinterventi(id_tipointervento, prezzo_acquisto, prezzo_vendita, descrizione, qta, um, subtotale, idiva) VALUES ('.prepare($id_tipointervento).', '.prepare($prezzo_acquisto).', '.prepare($prezzo_vendita).', '.prepare($descrizione).', '.prepare($qta).', '.prepare($um).', '.prepare($subtotale).', '.prepare($idiva).')'; + $dbo->query($query); + + flash()->info(tr('Riga aggiunta!')); + + break; + + case 'editriga': + + $idiva = post('idiva'); + $descrizione = post('descrizione'); + $qta = post('qta'); + $um = post('um'); + $idriga = post('idriga'); + $id_tipointervento = post('id_tipointervento'); + $prezzo_acquisto = post('prezzo_acquisto'); + $prezzo_vendita = post('prezzo_vendita'); + $subtotale = $qta * $prezzo_vendita; + + $query = 'UPDATE in_righe_tipiinterventi SET'. + ' descrizione='.prepare($descrizione).','. + ' qta='.prepare($qta).','. + ' idiva='.prepare($idiva).','. + ' um='.prepare($um).','. + ' id_tipointervento='.prepare($id_tipointervento).','. + ' prezzo_acquisto='.prepare($prezzo_acquisto).','. + ' prezzo_vendita='.prepare($prezzo_vendita).','. + ' subtotale='.$subtotale. + ' WHERE id='.prepare($idriga); + $dbo->query($query); + + flash()->info(tr('Riga modificata!')); + + break; + + case 'delriga': + + $idriga = post('idriga'); + $query = "DELETE FROM in_righe_tipiinterventi WHERE id=".prepare($idriga); + $dbo->query($query); + + flash()->info(tr('Riga eliminata!')); + break; } diff --git a/modules/tipi_intervento/add_righe.php b/modules/tipi_intervento/add_righe.php new file mode 100755 index 000000000..34d9da03c --- /dev/null +++ b/modules/tipi_intervento/add_righe.php @@ -0,0 +1,117 @@ + '.tr('Aggiungi'); + + // valori default + $descrizione = ''; + $qta = 1; + $um = 'ore'; + $idiva = setting('Iva predefinita'); + $prezzo_vendita = '0'; + $prezzo_acquisto = '0'; +} else { + $op = 'editriga'; + $button = ' '.tr('Modifica'); + + // carico record da modificare + $q = 'SELECT * FROM in_righe_tipiinterventi WHERE id='.prepare($idriga); + $rsr = $dbo->fetchArray($q); + + $descrizione = $rsr[0]['descrizione']; + $qta = $rsr[0]['qta']; + $um = $rsr[0]['um']; + $idiva = $rsr[0]['idiva']; + $prezzo_vendita = $rsr[0]['prezzo_vendita']; + $prezzo_acquisto = $rsr[0]['prezzo_acquisto']; + +} + +/* + Form di inserimento +*/ +echo ' +
+ + + '; + +// Descrizione +echo ' +
+
+ {[ "type": "textarea", "label": "'.tr('Descrizione').'", "id": "descrizione_riga", "name": "descrizione", "required": 1, "value": '.json_encode($descrizione).' ]} +
+
+
'; + +// Quantità +echo ' +
+
+ {[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]} +
'; + +// Unità di misura +echo ' +
+ {[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]} +
'; + +// Iva +echo ' +
+ {[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "ajax-source": "iva" ]} +
+
'; + +// Prezzo di acquisto +echo ' +
+
+ {[ "type": "number", "label": "'.tr('Prezzo di acquisto (un.)').'", "name": "prezzo_acquisto", "required": 1, "value": "'.$prezzo_acquisto.'", "icon-after": "€" ]} +
'; + +// Prezzo di vendita +echo ' +
+ {[ "type": "number", "label": "'.tr('Prezzo di vendita (un.)').'", "name": "prezzo_vendita", "required": 1, "value": "'.$prezzo_vendita.'", "icon-after": "€" ]} +
+
'; + +echo ' + +
+
+ +
+
+
'; + +?> + + diff --git a/modules/tipi_intervento/ajax_righe.php b/modules/tipi_intervento/ajax_righe.php new file mode 100755 index 000000000..00a2e022e --- /dev/null +++ b/modules/tipi_intervento/ajax_righe.php @@ -0,0 +1,54 @@ +fetchArray("SELECT * FROM in_righe_tipiinterventi WHERE id_tipointervento=".prepare($id_record)); + + echo ' + + + + + + + + + + '; + + foreach($righe as $riga){ + $rs = $dbo->fetchArray("SELECT percentuale FROM co_iva WHERE id=".$riga['idiva']); + $iva = ($riga['subtotale'] * $rs[0]['percentuale'])/100; + + echo' + + + + + + + + + '; + } + + echo' +
'.tr('Descrizione').''.tr('Q.tà').''.tr('Prezzo di acquisto').''.tr('Prezzo di vendita').''.tr('Iva').''.tr('Subtotale').''.tr('#').'
'.$riga['descrizione'].''.number_format($riga['qta'], 2, ',', '.').' '.$riga['um'].''.number_format($riga['prezzo_acquisto'], 2, ',', '.').' €'.number_format($riga['prezzo_vendita'], 2, ',', '.').' €'.number_format($iva, 2, ',', '.').' €'.number_format($riga['subtotale'], 2, ',', '.').' €
'; + + +?> + + diff --git a/modules/tipi_intervento/edit.php b/modules/tipi_intervento/edit.php index 14ad1e8d4..da29850db 100755 --- a/modules/tipi_intervento/edit.php +++ b/modules/tipi_intervento/edit.php @@ -87,6 +87,24 @@ include_once __DIR__.'/../../core.php'; +
+
+

+
+ +
+
+
+ +
+
+
+
+ +
+
+
+