diff --git a/include/common/form.php b/include/common/form.php index 19dfa228b..0ff5a4261 100644 --- a/include/common/form.php +++ b/include/common/form.php @@ -15,12 +15,15 @@ echo ' echo ' |response|'; +$button = $options['button'] == 'add' ? tr('Aggiungi') : tr('Modifica'); +$icon = $options['button'] == 'add' ? 'fa-plus' : 'fa-pencil'; + echo '
- +
'; diff --git a/include/common/riga.php b/include/common/riga.php index 1edd59f1f..b78dc4968 100644 --- a/include/common/riga.php +++ b/include/common/riga.php @@ -58,10 +58,12 @@ echo ' echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$result['um'].'", "ajax-source": "misure" ]} -
'; + + '; -// Costo unitario + // Costo unitario echo ' +
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "value": "'.$result['prezzo'].'", "required": 1, "icon-after": "€" ]}
'; diff --git a/modules/contratti/row-add.php b/modules/contratti/row-add.php index ec79a4347..5af8e2344 100644 --- a/modules/contratti/row-add.php +++ b/modules/contratti/row-add.php @@ -9,7 +9,7 @@ $idanagrafica = $rs[0]['idanagrafica']; // Impostazioni per la gestione $options = [ 'op' => 'addriga', - 'button' => tr('Aggiungi'), + 'action' => 'add', 'dir' => 'entrata', 'idanagrafica' => $idanagrafica, ]; diff --git a/modules/contratti/row-edit.php b/modules/contratti/row-edit.php index 292b0a8fd..8bfb55b4c 100644 --- a/modules/contratti/row-edit.php +++ b/modules/contratti/row-edit.php @@ -9,7 +9,7 @@ $idanagrafica = $rs[0]['idanagrafica']; // Impostazioni per la gestione $options = [ 'op' => 'editriga', - 'button' => tr('Modifica'), + 'action' => 'edit', 'dir' => 'entrata', 'idanagrafica' => $idanagrafica, ]; diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 665a4fada..6fcc8891b 100644 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -228,21 +228,17 @@ switch (post('op')) { $iva = ($subtot - $sconto) / 100 * $rs2[0]['percentuale']; $iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile']; - $dbo->query('INSERT INTO co_righe_preventivi(idpreventivo, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, `order`) VALUES ('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($rs2[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_preventivi AS t WHERE idpreventivo='.prepare($id_record).'))'); + $dbo->query('INSERT INTO co_righe_preventivi(idpreventivo, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, is_descrizione, `order`) VALUES ('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($rs2[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare(empty($qta)).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_preventivi AS t WHERE idpreventivo='.prepare($id_record).'))'); - $_SESSION['infos'][] = tr('Articolo aggiunto!'); - - break; - - case 'adddescrizione': - if (!empty($id_record)) { - $descrizione = post('descrizione'); - $query = 'INSERT INTO co_righe_preventivi(idpreventivo, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)'; - - if ($dbo->query($query)) { - $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!'); - } + // Messaggi informativi + if (!empty($idarticolo)) { + $_SESSION['infos'][] = tr('Articolo aggiunto!'); + } elseif (!empty($qta)) { + $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!'); + } else { + $_SESSION['infos'][] = tr('Riga aggiunta!'); } + break; case 'editriga': diff --git a/modules/preventivi/add_descrizione.php b/modules/preventivi/add_descrizione.php deleted file mode 100644 index 61a72e8ae..000000000 --- a/modules/preventivi/add_descrizione.php +++ /dev/null @@ -1,41 +0,0 @@ -fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record)); -$numero = $record[0]['numero']; -$idanagrafica = $record[0]['idanagrafica']; - -/* - Form di inserimento riga documento -*/ -echo ' -

'.tr('Preventivo numero _NUM_', [ - '_NUM_' => $numero, -]).'

- -
- - - '; - -// Descrizione -echo ' -
-
- {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]} -
-
'; - -echo ' - - -
-
- -
-
-
'; diff --git a/modules/preventivi/edit.php b/modules/preventivi/edit.php index b68767107..6170d8b03 100644 --- a/modules/preventivi/edit.php +++ b/modules/preventivi/edit.php @@ -143,9 +143,11 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica']; - Riga + - Descrizione + + + diff --git a/modules/preventivi/edit_riga.php b/modules/preventivi/edit_riga.php deleted file mode 100644 index 3b7cc29c6..000000000 --- a/modules/preventivi/edit_riga.php +++ /dev/null @@ -1,146 +0,0 @@ -fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record)); -$numero = $rs[0]['numero']; -$idanagrafica = $rs[0]['idanagrafica']; - -if (empty($idriga)) { - $op = 'addriga'; - $button = tr('Aggiungi'); - - // valori default - $idarticolo = ''; - $descrizione = ''; - $qta = 1; - $um = ''; - $subtot = 0; - $sconto = 0; - - // Leggo l'iva predefinita per l'anagrafica e se non c'è leggo quella predefinita generica - $iva = $dbo->fetchArray('SELECT idiva_vendite AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); - $idiva = $iva[0]['idiva'] ?: get_var('Iva predefinita'); - - // Sconto unitario - $rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); - if (!empty($rss)) { - $sconto = $rss[0]['prc_guadagno']; - $tipo_sconto = 'PRC'; - } -} else { - $op = 'editriga'; - $button = tr('Modifica'); - - // carico record da modificare - $q = 'SELECT * FROM co_righe_preventivi WHERE idpreventivo='.prepare($id_record).' AND id='.prepare($idriga); - $rsr = $dbo->fetchArray($q); - - $idarticolo = !empty($rsr[0]['idarticolo']) ? $rsr[0]['idarticolo'] : ''; - $descrizione = $rsr[0]['descrizione']; - $qta = $rsr[0]['qta']; - $um = $rsr[0]['um']; - $idiva = $rsr[0]['idiva']; - $subtot = $rsr[0]['subtotale'] / $rsr[0]['qta']; - $sconto = $rsr[0]['sconto_unitario']; - $tipo_sconto = $rsr[0]['tipo_sconto']; -} - -/* - Form add / edit -*/ -echo ' -

'.tr('Preventivo numero _NUM_', [ - '_NUM_' => $numero, -]).'

-
- - - '; - -if (empty($rsr[0]['is_descrizione'])) { - // Elenco articoli raggruppati per gruppi e sottogruppi - echo ' -
-
- {[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$idarticolo.'", "ajax-source": "articoli" ]} -
-
'; -} - -// Descrizione -echo ' -
-
- {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "id": "descrizione_riga", "value": '.json_encode($descrizione).', "required": 1 ]} -
-
'; - -if (empty($rsr[0]['is_descrizione'])) { - // Quantità - echo ' -
-
- {[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "value": "'.$qta.'", "required": 1, "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.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]} -
-
'; - - // Costo unitario - echo ' -
-
- {[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "€" ]} -
'; - - // Sconto unitario - echo ' -
- {[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]} -
-
'; -} - -echo ' - '; - -echo ' - - -
-
- -
-
-
'; - -echo ' - '; diff --git a/modules/preventivi/row-add.php b/modules/preventivi/row-add.php new file mode 100644 index 000000000..b807cb1bd --- /dev/null +++ b/modules/preventivi/row-add.php @@ -0,0 +1,47 @@ +fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record)); +$idanagrafica = $rs[0]['idanagrafica']; + +// Impostazioni per la gestione +$options = [ + 'op' => 'addriga', + 'action' => 'add', + 'dir' => 'entrata', + 'idanagrafica' => $idanagrafica, +]; + +// Dati di default +$result = [ + 'descrizione' => '', + 'qta' => 1, + 'um' => '', + 'prezzo' => 0, + 'sconto_unitario' => 0, + 'tipo_sconto' => '', + 'idiva' => '', +]; + +// Leggo l'iva predefinita per l'anagrafica e se non c'è leggo quella predefinita generica +$iva = $dbo->fetchArray('SELECT idiva_vendite AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); +$result['idiva'] = $iva[0]['idiva'] ?: get_var('Iva predefinita'); + +// Sconto unitario +$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); +if (!empty($rss)) { + $result['sconto_unitario'] = $rss[0]['prc_guadagno']; + $result['tipo_sconto'] = 'PRC'; +} + +// Importazione della gestione dedicata +$file = 'riga'; +if (isset($get['is_descrizione'])) { + $file = 'descrizione'; +} elseif (isset($get['is_articolo'])) { + $file = 'articolo'; +} + +echo App::load($file.'.php', $result, $options); diff --git a/modules/preventivi/row-edit.php b/modules/preventivi/row-edit.php new file mode 100644 index 000000000..f97cb9fa9 --- /dev/null +++ b/modules/preventivi/row-edit.php @@ -0,0 +1,31 @@ +fetchArray('SELECT * FROM co_preventivi WHERE id='.prepare($id_record)); +$idanagrafica = $rs[0]['idanagrafica']; + +// Impostazioni per la gestione +$options = [ + 'op' => 'editriga', + 'action' => 'edit', + 'dir' => 'entrata', + 'idanagrafica' => $idanagrafica, +]; + +// Dati della riga +$rsr = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE idpreventivo='.prepare($id_record).' AND id='.prepare($get['idriga'])); + +$result = $rsr[0]; +$result['prezzo'] = $rsr[0]['subtotale'] / $rsr[0]['qta']; + +// Importazione della gestione dedicata +$file = 'riga'; +if (!empty($result['is_descrizione'])) { + $file = 'descrizione'; +} elseif (!empty($result['idarticolo'])) { + $file = 'articolo'; +} + +echo App::load($file.'.php', $result, $options); diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index 9e0637031..202e70dfc 100644 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -109,7 +109,7 @@ if (!empty($rs)) {
- +