Al momento, molti moduli (e in particolare Fatture, DDT, Ordini, Preventivi e Contratti) presentano molte strutture per l'inserimento e la modifica di elementi al proprio interno comuni se non per qualche dettaglio.
Per esempio, ognuno di questi moduli ha file differenti per eseguire le azioni di inserimento/modifica righe, articoli e descrizioni.
Propongo di unificare la parte principale HTML di queste sezioni per rendere più semplice gestirle in futuro.
In particolare, si potrebbe creare la cartella include/common/ al cui interno inserire la gestione HTML, delegando ai file del modulo la sola richiesta dei dati al database.
Esempio
File _modules/contratti/addriga.php:
<?php
include_once __DIR__.'/../../core.php';
// Info contratto
$rs = $dbo->fetchArray('SELECT * FROM co_contratti WHERE id='.prepare($id_record));
$idanagrafica = $rs[0]['idanagrafica'];
$result = [
'descrizione' => '',
'qta' => 1,
'um' => '',
'prezzo' => 0,
'sconto' => 0,
'tipo_sconto' => '',
'iva' => '',
];
$options = [
'op' => '',
'button' => '',
];
if (empty($get['idriga'])) {
$options['op'] = 'addriga';
$options['button'] = tr('Aggiungi');
// 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['iva'] = $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'] = $rss[0]['prc_guadagno'];
$result['tipo_sconto'] = 'PRC';
}
} else {
$options['op'] = 'editriga';
$options['button'] = tr('Modifica');
$rsr = $dbo->fetchArray('SELECT * FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' AND id='.prepare($get['idriga']));
$result['descrizione'] = $rsr[0]['descrizione'];
$result['qt'] = $rsr[0]['qta'];
$result['um'] = $rsr[0]['um'];
$result['idiva'] = $rsr[0]['idiva'];
$result['prezzo'] = $rsr[0]['subtotale'] / $rsr[0]['qta'];
$result['sconto'] = $rsr[0]['sconto_unitario'];
$result['tipo_sconto'] = $rsr[0]['tipo_sconto'];
}
require $docroot.'/include/common/riga.php';
Al momento, molti moduli (e in particolare Fatture, DDT, Ordini, Preventivi e Contratti) presentano molte strutture per l'inserimento e la modifica di elementi al proprio interno comuni se non per qualche dettaglio. Per esempio, ognuno di questi moduli ha file differenti per eseguire le azioni di inserimento/modifica righe, articoli e descrizioni.
Propongo di unificare la parte principale HTML di queste sezioni per rendere più semplice gestirle in futuro. In particolare, si potrebbe creare la cartella include/common/ al cui interno inserire la gestione HTML, delegando ai file del modulo la sola richiesta dei dati al database.
Esempio File _modules/contratti/addriga.php:
File include/common/riga.php: