From 530ceaabf4686d67abd3d884c8e052d26f54372e Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Thu, 9 Aug 2018 10:14:26 +0200 Subject: [PATCH] Miglioramenti strutturali --- composer.json | 5 +- modules/anagrafiche/src/Anagrafica.php | 17 ++++ modules/fatture/actions.php | 48 ++-------- modules/fatture/edit.php | 38 ++++---- modules/fatture/init.php | 2 + modules/fatture/{ => src}/Fattura.php | 96 +++++++++---------- modules/fatture/{ => src}/Riga.php | 5 + modules/fatture/{ => src}/Stato.php | 0 modules/fatture/{ => src}/Tipo.php | 0 .../{ => src}/FatturaElettronica.php | 0 10 files changed, 99 insertions(+), 112 deletions(-) create mode 100644 modules/anagrafiche/src/Anagrafica.php rename modules/fatture/{ => src}/Fattura.php (80%) rename modules/fatture/{ => src}/Riga.php (72%) rename modules/fatture/{ => src}/Stato.php (100%) rename modules/fatture/{ => src}/Tipo.php (100%) rename plugins/fatturazione/{ => src}/FatturaElettronica.php (100%) diff --git a/composer.json b/composer.json index 785754fcc..d8b9f6d20 100644 --- a/composer.json +++ b/composer.json @@ -56,8 +56,9 @@ "autoload": { "psr-4": { "": "src/", - "Modules\\": "modules/", - "Plugins\\": "plugins/" + "Modules\\Fatture\\": "modules/fatture/src", + "Modules\\Anagrafiche\\": "modules/anagrafiche/src", + "Plugins\\Fatturazione\\": "plugins/fatturazione/src" }, "files": [ "lib/functions.php", diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php new file mode 100644 index 000000000..3db902678 --- /dev/null +++ b/modules/anagrafiche/src/Anagrafica.php @@ -0,0 +1,17 @@ +hasMany(Fattura::class, 'idanagrafica'); + } +} diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index a8a5b64e5..8310a15a6 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -2,6 +2,8 @@ include_once __DIR__.'/../../core.php'; +use Modules\Fatture\Fattura; + // Necessaria per la funzione add_movimento_magazzino include_once Modules::filepath('Articoli', 'modutil.php'); include_once Modules::filepath('Interventi', 'modutil.php'); @@ -20,49 +22,19 @@ switch (post('op')) { case 'add': $idanagrafica = post('idanagrafica'); $data = post('data'); - $dir = post('dir'); $idtipodocumento = post('idtipodocumento'); - $id_segment = post('id_segment'); - $numero = get_new_numerofattura($data); - if ($dir == 'entrata') { - $numero_esterno = get_new_numerosecondariofattura($data); - $idconto = setting('Conto predefinito fatture di vendita'); - $conto = 'vendite'; - } else { - $numero_esterno = ''; - $idconto = setting('Conto predefinito fatture di acquisto'); - $conto = 'acquisti'; - } - - $campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti'; - - // Tipo di pagamento + banca predefinite dall'anagrafica - $query = 'SELECT id, (SELECT idbanca_'.$conto.' FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).') AS idbanca FROM co_pagamenti WHERE id = (SELECT '.$campo.' AS pagamento FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'; - $rs = $dbo->fetchArray($query); - $idpagamento = $rs[0]['id']; - $idbanca = $rs[0]['idbanca']; - - // Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni - if ($dir == 'entrata' && $idpagamento == '') { - $idpagamento = setting('Tipo di pagamento predefinito'); - } - - // Se non è impostata la banca dell'anagrafica, uso quella del pagamento. - if (empty($idbanca)) { - // Banca predefinita del pagamento - $query = 'SELECT id FROM co_banche WHERE id_pianodeiconti3 = (SELECT idconto_'.$conto.' FROM co_pagamenti WHERE id = '.prepare($idpagamento).')'; - $rs = $dbo->fetchArray($query); - $idbanca = $rs[0]['id']; - } - - $query = 'INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, idbanca, data, idstatodocumento, idsede, id_segment) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($idbanca).', '.prepare($data).', (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`=\'Bozza\'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).'), '.prepare($id_segment).')'; - $dbo->query($query); - $id_record = $dbo->lastInsertedID(); + $fattura = Modules\Fatture\Fattura::create([ + 'idanagrafica' => $idanagrafica, + 'data' => $data, + 'id_segment' => $id_segment, + 'idtipodocumento' => $idtipodocumento, + ]); + $id_record = $fattura->id; flash()->info(tr('Aggiunta fattura numero _NUM_!', [ - '_NUM_' => $numero, + '_NUM_' => $fattura->numero, ])); break; diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 6f428320d..bb7cbac79 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -440,14 +440,11 @@ if (!empty($operations)) { echo '