diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a6f12c55..281426ee8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Aggiunto campo data ricezione per le **Fatture di acquisto** - Aggiunta stampa **Preventivo** senza costi totali - Aggiunto export massivo XML fatture + - Aggiunte le impostazioni "Riferimento dei documenti nelle stampe" e "Riferimento dei documenti in Fattura Elettronica" per permettere l'inclusione o meno delle relative diciture in stampe e Fattura Elettronica + - Aggiunto supporto all'importazione delle Fatture Elettroniche Semplificate ### Modificato (Changed) diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index 0637ff746..b9b28a941 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -26,17 +26,11 @@ switch (post('op')) { $sede->save(); - if (empty(post('ragione_sociale'))) { - $ragione_sociale = post('cognome').' '.post('nome'); - } else { - $ragione_sociale = post('ragione_sociale'); - } - // Informazioni sull'anagrafica $anagrafica->codice = post('codice'); $anagrafica->tipo = post('tipo'); $anagrafica->codice_destinatario = post('codice_destinatario'); - $anagrafica->ragione_sociale = $ragione_sociale; + $anagrafica->ragione_sociale = post('ragione_sociale'); $anagrafica->nome = post('nome'); $anagrafica->cognome = post('cognome'); @@ -127,14 +121,9 @@ switch (post('op')) { case 'add': $idtipoanagrafica = post('idtipoanagrafica'); + $ragione_sociale = post('ragione_sociale'); - if (empty(post('ragione_sociale'))) { - $ragione_sociale = post('cognome').' '.post('nome'); - } else { - $ragione_sociale = post('ragione_sociale'); - } - - $anagrafica = Anagrafica::build($ragione_sociale, $idtipoanagrafica); + $anagrafica = Anagrafica::build($ragione_sociale, post('nome'), post('cognome'), $idtipoanagrafica); $id_record = $anagrafica->id; // Se ad aggiungere un cliente è un agente, lo imposto come agente di quel cliente @@ -152,8 +141,6 @@ switch (post('op')) { $idagente = ($agente_is_logged && in_array($id_cliente, $idtipoanagrafica)) ? $user['idanagrafica'] : 0; - $anagrafica->nome = post('nome'); - $anagrafica->cognome = post('cognome'); $anagrafica->partita_iva = post('piva'); $anagrafica->codice_fiscale = post('codice_fiscale'); $anagrafica->indirizzo = post('indirizzo'); @@ -178,7 +165,7 @@ switch (post('op')) { // Lettura tipologia della nuova anagrafica $descrizioni_tipi = $anagrafica->tipi()->get()->pluck('descrizione')->toArray(); if (isAjaxRequest() && in_array(post('tipoanagrafica'), $descrizioni_tipi)) { - echo json_encode(['id' => $id_record, 'text' => $ragione_sociale]); + echo json_encode(['id' => $id_record, 'text' => $anagrafica->ragione_sociale]); } flash()->info(tr('Aggiunta nuova anagrafica di tipo _TYPE_', [ diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index 8c45d93fe..b80ec939c 100644 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -36,12 +36,15 @@ class Anagrafica extends Model * * @return self */ - public static function build($ragione_sociale, array $tipologie = []) + public static function build($ragione_sociale, $nome = '', $cognome = '', array $tipologie = []) { $model = parent::build(); $model->ragione_sociale = $ragione_sociale; + $model->nome = $nome; + $model->cognome = $cognome; + $ultimo = database()->fetchOne('SELECT codice FROM an_anagrafiche ORDER BY CAST(codice AS SIGNED) DESC LIMIT 1'); $codice = Generator::generate(setting('Formato codice anagrafica'), $ultimo['codice']); @@ -179,6 +182,20 @@ class Anagrafica extends Model $this->attributes['piva'] = trim(strtoupper($value)); } + public function setNomeAttribute($value) + { + $this->attributes['nome'] = trim($value); + + $this->fixRagioneSociale(); + } + + public function setCognomeAttribute($value) + { + $this->attributes['cognome'] = trim($value); + + $this->fixRagioneSociale(); + } + public function setCodiceFiscaleAttribute($value) { $this->attributes['codice_fiscale'] = trim(strtoupper($value)); @@ -219,4 +236,11 @@ class Anagrafica extends Model { return $this; } + + protected function fixRagioneSociale() + { + if (!empty($this->cognome) || !empty($this->nome)) { + $this->ragione_sociale = $this->cognome.' '.$this->nome; + } + } } diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php index a30de556d..99049cc22 100644 --- a/plugins/importFE/actions.php +++ b/plugins/importFE/actions.php @@ -39,7 +39,7 @@ switch (filter('op')) { break; case 'delete': - $directory = Plugins\ImportFE\FatturaElettronica::getImportDirectory(); + $directory = FatturaElettronica::getImportDirectory(); delete($directory.'/'.get('name')); @@ -48,12 +48,18 @@ switch (filter('op')) { case 'generate': $filename = post('filename'); - $fattura_pa = new FatturaElettronica($filename); + $info = [ + 'id_pagamento' => post('pagamento'), + 'id_segment' => post('id_segment'), + 'id_tipo' => post('id_tipo'), + 'articoli' => post('articoli'), + 'iva' => post('iva'), + 'conto' => post('conto'), + 'movimentazione' => post('movimentazione'), + ]; - $id_record = $fattura_pa->saveFattura(post('pagamento'), post('id_segment'), post('id_tipo')); - $fattura_pa->saveRighe(post('articoli'), post('iva'), post('conto'), post('movimentazione')); - - $fattura_pa->saveAllegati(); + $fattura_pa = FatturaElettronica::manage($filename); + $id_record = $fattura_pa->save($info); $idrivalsainps = 0; $idritenutaacconto = 0; diff --git a/plugins/importFE/rows.php b/plugins/importFE/rows.php index b44dce62b..db379f9a5 100644 --- a/plugins/importFE/rows.php +++ b/plugins/importFE/rows.php @@ -2,7 +2,7 @@ include_once __DIR__.'/../../core.php'; -$fattura_pa = new Plugins\ImportFE\FatturaElettronica(get('filename')); +$fattura_pa = \Plugins\ImportFE\FatturaElettronica::manage(get('filename')); echo '