Correzione per generazione automatica Fattura elettronica
This commit is contained in:
parent
482b06a974
commit
7d223890d7
|
@ -79,7 +79,7 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
|
||||||
|
|
||||||
// Filtro per Ragione sociale
|
// Filtro per Ragione sociale
|
||||||
if (!empty($conditions['ragione_sociale'])) {
|
if (!empty($conditions['ragione_sociale'])) {
|
||||||
$query = $query->where('an_anagrafiche.ragione_sociale','like', '%'.$conditions['ragione_sociale'].'%');
|
$query = $query->where('an_anagrafiche.ragione_sociale', 'like', '%'.$conditions['ragione_sociale'].'%');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtri aggiuntivi predefiniti
|
// Filtri aggiuntivi predefiniti
|
||||||
|
|
|
@ -137,27 +137,36 @@ switch (post('op')) {
|
||||||
|
|
||||||
$fattura->save();
|
$fattura->save();
|
||||||
|
|
||||||
|
// Operazioni automatiche per le Fatture Elettroniche
|
||||||
if ($fattura->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') {
|
if ($fattura->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') {
|
||||||
|
$stato_fe = $database->fetchOne('SELECT * FROM fe_stati_documento WHERE codice = '.prepare($fattura->codice_stato_fe));
|
||||||
|
$abilita_genera = empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile']);
|
||||||
|
|
||||||
// Generazione automatica della Fattura Elettronica
|
// Generazione automatica della Fattura Elettronica
|
||||||
$stato_fe = empty($fattura->codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']);
|
|
||||||
$checks = FatturaElettronica::controllaFattura($fattura);
|
$checks = FatturaElettronica::controllaFattura($fattura);
|
||||||
if ($stato_fe && empty($checks)) {
|
$fattura_elettronica = new FatturaElettronica($id_record);
|
||||||
try {
|
if ($abilita_genera && empty($checks)) {
|
||||||
$fattura_pa = new FatturaElettronica($id_record);
|
$file = $fattura_elettronica->save(base_dir().'/'.FatturaElettronica::getDirectory());
|
||||||
$file = $fattura_pa->save(base_dir().'/'.FatturaElettronica::getDirectory());
|
|
||||||
|
|
||||||
flash()->info(tr('Fattura elettronica generata correttamente!'));
|
flash()->info(tr('Fattura elettronica generata correttamente!'));
|
||||||
|
|
||||||
if (!$fattura_pa->isValid()) {
|
if (!$fattura_elettronica->isValid()) {
|
||||||
$errors = $fattura_pa->getErrors();
|
$errors = $fattura_elettronica->getErrors();
|
||||||
|
|
||||||
flash()->warning(tr('La fattura elettronica potrebbe avere delle irregolarità!').' '.tr('Controllare i seguenti campi: _LIST_', [
|
flash()->warning(tr('La fattura elettronica potrebbe avere delle irregolarità!').' '.tr('Controllare i seguenti campi: _LIST_', [
|
||||||
'_LIST_' => implode(', ', $errors),
|
'_LIST_' => implode(', ', $errors),
|
||||||
]).'.');
|
]).'.');
|
||||||
}
|
}
|
||||||
} catch (UnexpectedValueException $e) {
|
|
||||||
}
|
}
|
||||||
} elseif (!empty($checks)) {
|
// 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').':';
|
$message = tr('La fattura elettronica non è stata generata a causa di alcune informazioni mancanti').':';
|
||||||
|
|
||||||
foreach ($checks as $check) {
|
foreach ($checks as $check) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ if (!empty($tecnici_selezionati)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Blocco dei controlli se non sono presenti tecnici
|
// Blocco dei controlli se non sono presenti tecnici
|
||||||
if ( empty($tecnici) || setting('Alert occupazione tecnici')!=1 ) {
|
if (empty($tecnici) || setting('Alert occupazione tecnici') != 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -278,11 +278,10 @@ class FatturaElettronica
|
||||||
*/
|
*/
|
||||||
public function save($directory)
|
public function save($directory)
|
||||||
{
|
{
|
||||||
$name = 'Fattura Elettronica';
|
$this->delete();
|
||||||
$previous = $this->getFilename();
|
|
||||||
$data = $this->getUploadData();
|
|
||||||
|
|
||||||
Uploads::delete($previous, $data);
|
$name = 'Fattura Elettronica';
|
||||||
|
$data = $this->getUploadData();
|
||||||
|
|
||||||
// Generazione nome XML
|
// Generazione nome XML
|
||||||
$filename = $this->getFilename(true);
|
$filename = $this->getFilename(true);
|
||||||
|
@ -308,6 +307,17 @@ class FatturaElettronica
|
||||||
return ($result === false) ? null : $filename;
|
return ($result === false) ? null : $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rimuove la fattura generata.
|
||||||
|
*/
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
$previous = $this->getFilename();
|
||||||
|
$data = $this->getUploadData();
|
||||||
|
|
||||||
|
Uploads::delete($previous, $data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restituisce il nome del file XML per la fattura elettronica.
|
* Restituisce il nome del file XML per la fattura elettronica.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue