Spostamento generazione xml nella classe Fattura
This commit is contained in:
parent
619e4f6c57
commit
448b79ade8
|
@ -64,8 +64,6 @@ switch (post('op')) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'update':
|
case 'update':
|
||||||
$stato_precedente = $fattura->stato;
|
|
||||||
|
|
||||||
$stato = Stato::find(post('idstatodocumento'));
|
$stato = Stato::find(post('idstatodocumento'));
|
||||||
$fattura->stato()->associate($stato);
|
$fattura->stato()->associate($stato);
|
||||||
|
|
||||||
|
@ -145,59 +143,45 @@ switch (post('op')) {
|
||||||
|
|
||||||
$fattura->setScontoFinale(post('sconto_finale'), post('tipo_sconto_finale'));
|
$fattura->setScontoFinale(post('sconto_finale'), post('tipo_sconto_finale'));
|
||||||
|
|
||||||
$fattura->save();
|
$results = $fattura->save();
|
||||||
|
$message = '';
|
||||||
|
|
||||||
// Operazioni automatiche per le Fatture Elettroniche
|
foreach ($results as $numero => $result) {
|
||||||
if ($fattura->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') {
|
foreach ($result as $title => $links) {
|
||||||
$stato_fe = $database->fetchOne('SELECT * FROM fe_stati_documento WHERE codice = '.prepare($fattura->codice_stato_fe));
|
foreach ($links as $link => $errors) {
|
||||||
$abilita_genera = empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']);
|
if (empty($title)) {
|
||||||
|
flash()->warning(tr('La fattura elettronica num. _NUM_ potrebbe avere delle irregolarità!', [
|
||||||
// Generazione automatica della Fattura Elettronica
|
'_NUM_' => $numero,
|
||||||
$checks = FatturaElettronica::controllaFattura($fattura);
|
]).' '.tr('Controllare i seguenti campi: _LIST_', [
|
||||||
$fattura_elettronica = new FatturaElettronica($id_record);
|
|
||||||
if ($abilita_genera && empty($checks)) {
|
|
||||||
$file = $fattura_elettronica->save(base_dir().'/'.FatturaElettronica::getDirectory());
|
|
||||||
|
|
||||||
flash()->info(tr('Fattura elettronica generata correttamente!'));
|
|
||||||
|
|
||||||
if (!$fattura_elettronica->isValid()) {
|
|
||||||
$errors = $fattura_elettronica->getErrors();
|
|
||||||
|
|
||||||
flash()->warning(tr('La fattura elettronica potrebbe avere delle irregolarità!').' '.tr('Controllare i seguenti campi: _LIST_', [
|
|
||||||
'_LIST_' => implode(', ', $errors),
|
'_LIST_' => implode(', ', $errors),
|
||||||
]).'.');
|
]).'.');
|
||||||
}
|
} else {
|
||||||
}
|
|
||||||
// Visualizzazione degli errori
|
|
||||||
elseif (!empty($checks)) {
|
|
||||||
// Rimozione eventuale fattura generata erronamente
|
|
||||||
// Fix per la modifica di dati interni su fattura già generata
|
|
||||||
if ($abilita_genera) {
|
|
||||||
$fattura_elettronica->delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Messaggi informativi sulle problematiche
|
|
||||||
$message = tr('La fattura elettronica non è stata generata a causa di alcune informazioni mancanti').':';
|
|
||||||
|
|
||||||
foreach ($checks as $check) {
|
|
||||||
$message .= '
|
$message .= '
|
||||||
<p><b>'.$check['name'].' '.$check['link'].'</b></p>
|
<p><b>'.$title.' '.$link.'</b></p>
|
||||||
<ul>';
|
<ul>';
|
||||||
|
|
||||||
foreach ($check['errors'] as $error) {
|
foreach ($errors as $error) {
|
||||||
if (!empty($error)) {
|
if (!empty($error)) {
|
||||||
$message .= '
|
$message .= '
|
||||||
<li>'.$error.'</li>';
|
<li>'.$error.'</li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$message .= '
|
$message .= '
|
||||||
</ul>';
|
</ul>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($message) {
|
||||||
|
// Messaggi informativi sulle problematiche
|
||||||
|
$message = tr('La fattura elettronica numero _NUM_ non è stata generata a causa di alcune informazioni mancanti', [
|
||||||
|
'_NUM_' => $numero,
|
||||||
|
]).':'.$message;
|
||||||
|
|
||||||
flash()->warning($message);
|
flash()->warning($message);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
aggiorna_sedi_movimenti('documenti', $id_record);
|
aggiorna_sedi_movimenti('documenti', $id_record);
|
||||||
|
|
||||||
|
|
|
@ -565,7 +565,7 @@ class Fattura extends Document
|
||||||
$is_fiscale = $this->isFiscale();
|
$is_fiscale = $this->isFiscale();
|
||||||
|
|
||||||
// Salvataggio effettivo
|
// Salvataggio effettivo
|
||||||
$result = parent::save($options);
|
parent::save($options);
|
||||||
|
|
||||||
// Fix dei campi statici
|
// Fix dei campi statici
|
||||||
$this->id_riga_bollo = $this->gestoreBollo->manageRigaMarcaDaBollo();
|
$this->id_riga_bollo = $this->gestoreBollo->manageRigaMarcaDaBollo();
|
||||||
|
@ -581,7 +581,7 @@ class Fattura extends Document
|
||||||
}
|
}
|
||||||
|
|
||||||
// Salvataggio effettivo
|
// Salvataggio effettivo
|
||||||
$result = parent::save($options);
|
parent::save($options);
|
||||||
|
|
||||||
// Operazioni al cambiamento di stato
|
// Operazioni al cambiamento di stato
|
||||||
// Bozza o Annullato -> Stato diverso da Bozza o Annullato
|
// Bozza o Annullato -> Stato diverso da Bozza o Annullato
|
||||||
|
@ -621,6 +621,42 @@ class Fattura extends Document
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Operazioni automatiche per le Fatture Elettroniche
|
||||||
|
if ($this->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $this->stato['descrizione'] == 'Emessa') {
|
||||||
|
$stato_fe = database()->fetchOne('SELECT * FROM fe_stati_documento WHERE codice = '.prepare($this->codice_stato_fe));
|
||||||
|
$abilita_genera = empty($this->codice_stato_fe) || intval($stato_fe['is_generabile']);
|
||||||
|
|
||||||
|
// Generazione automatica della Fattura Elettronica
|
||||||
|
$checks = FatturaElettronica::controllaFattura($this);
|
||||||
|
$fattura_elettronica = new FatturaElettronica($this->id);
|
||||||
|
if ($abilita_genera && empty($checks)) {
|
||||||
|
$fattura_elettronica->save(base_dir().'/'.FatturaElettronica::getDirectory());
|
||||||
|
|
||||||
|
if (!$fattura_elettronica->isValid()) {
|
||||||
|
$errors = $fattura_elettronica->getErrors();
|
||||||
|
|
||||||
|
$result[$this->numero_esterno][0][0] = $errors;
|
||||||
|
}
|
||||||
|
} elseif (!empty($checks)) {
|
||||||
|
// Rimozione eventuale fattura generata erronamente
|
||||||
|
// Fix per la modifica di dati interni su fattura già generata
|
||||||
|
if ($abilita_genera) {
|
||||||
|
$fattura_elettronica->delete();
|
||||||
|
}
|
||||||
|
foreach ($checks as $check) {
|
||||||
|
$errors = [];
|
||||||
|
foreach ($check['errors'] as $error) {
|
||||||
|
if (!empty($error)) {
|
||||||
|
$errors = $error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($errors)) {
|
||||||
|
$result[$this->numero_esterno][$check['name']][$check['link']] = $check['errors'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue