Correzione ricalcolo scadenze
This commit is contained in:
parent
ff6358ba88
commit
66c038036d
|
@ -105,51 +105,7 @@ switch (post('op')) {
|
||||||
|
|
||||||
$fattura->save();
|
$fattura->save();
|
||||||
|
|
||||||
// Operazioni sulla dichiarazione d'intento
|
|
||||||
if (!empty($dichiarazione_precedente) && $dichiarazione_precedente->id != $fattura->id_dichiarazione_intento) {
|
|
||||||
// Correzione dichiarazione precedente
|
|
||||||
$dichiarazione_precedente->fixTotale();
|
|
||||||
$dichiarazione_precedente->save();
|
|
||||||
|
|
||||||
// Correzione nuova dichiarazione
|
|
||||||
$dichiarazione = $fattura->dichiarazione;
|
|
||||||
if (!empty($dichiarazione)) {
|
|
||||||
$dichiarazione->fixTotale();
|
|
||||||
$dichiarazione->save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ricalcolo inps, ritenuta e bollo (se la fattura non è stata pagata)
|
|
||||||
ricalcola_costiagg_fattura($id_record);
|
|
||||||
|
|
||||||
// Elimino la scadenza e tutti i movimenti, poi se la fattura è emessa le ricalcolo
|
|
||||||
if ($stato['descrizione'] == 'Bozza' or $stato['descrizione'] == 'Annullata') {
|
|
||||||
elimina_scadenze($id_record);
|
|
||||||
//elimina_movimenti($id_record, 0);
|
|
||||||
//elimino movimento anche prima nota (se pagata o parzialmente pagata)
|
|
||||||
elimina_movimenti($id_record, 1);
|
|
||||||
} elseif ($stato['descrizione'] == 'Emessa') {
|
|
||||||
elimina_scadenze($id_record);
|
|
||||||
elimina_movimenti($id_record, 0);
|
|
||||||
} elseif (($stato['descrizione'] == 'Pagato' or $stato['descrizione'] == 'Parzialmente pagato') and ($dbo->fetchNum('SELECT id FROM co_scadenziario WHERE iddocumento = '.prepare($id_record)) == 0)) {
|
|
||||||
// aggiungo la scadenza come già pagata
|
|
||||||
aggiungi_scadenza($id_record, null, 1);
|
|
||||||
aggiungi_movimento($id_record, $dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Se la fattura è in stato "Emessa" posso inserirla in scadenzario e aprire il mastrino cliente
|
|
||||||
if ($stato['descrizione'] == 'Emessa') {
|
|
||||||
aggiungi_scadenza($id_record);
|
|
||||||
aggiungi_movimento($id_record, $dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') {
|
if ($stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') {
|
||||||
// Generazione numero fattura se non presente
|
|
||||||
if (empty($fattura->numero_esterno)) {
|
|
||||||
$fattura->numero_esterno = Fattura::getNextNumeroSecondario($fattura->data, $fattura->direzione, $fattura->id_segment);
|
|
||||||
$fattura->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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']);
|
$stato_fe = empty($fattura->codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']);
|
||||||
$checks = FatturaElettronica::controllaFattura($fattura);
|
$checks = FatturaElettronica::controllaFattura($fattura);
|
||||||
|
|
|
@ -496,7 +496,49 @@ class Fattura extends Document
|
||||||
$this->attributes['rivalsainps'] = $this->rivalsa_inps;
|
$this->attributes['rivalsainps'] = $this->rivalsa_inps;
|
||||||
$this->attributes['ritenutaacconto'] = $this->ritenuta_acconto;
|
$this->attributes['ritenutaacconto'] = $this->ritenuta_acconto;
|
||||||
|
|
||||||
return parent::save($options);
|
// Informazioni sul cambio dei valori
|
||||||
|
$stato_precedente = Stato::find($this->original['idstatodocumento']);
|
||||||
|
$dichiarazione_precedente = Dichiarazione::find($this->original['id_dichiarazione_intento']);
|
||||||
|
|
||||||
|
// Generazione numero fattura se non presente
|
||||||
|
if ($stato_precedente->descrizione == 'Bozza' && $this->stato['descrizione'] == 'Emessa' && empty($this->numero_esterno)) {
|
||||||
|
$this->numero_esterno = self::getNextNumeroSecondario($this->data, $this->direzione, $this->id_segment);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Salvataggio effettivo
|
||||||
|
$result = parent::save($options);
|
||||||
|
|
||||||
|
// Operazioni al cambiamento di stato
|
||||||
|
if (
|
||||||
|
in_array($stato_precedente->descrizione, ['Bozza', 'Annullata'])
|
||||||
|
&& !in_array($this->stato['descrizione'], ['Bozza', 'Annullata'])
|
||||||
|
) {
|
||||||
|
// Registrazione scadenze
|
||||||
|
$this->registraScadenze($this->stato['descrizione'] == 'Pagato');
|
||||||
|
|
||||||
|
// Registrazione movimenti
|
||||||
|
aggiungi_movimento($this->id, $this->direzione);
|
||||||
|
} elseif (in_array($this->stato['descrizione'], ['Bozza', 'Annullata'])) {
|
||||||
|
$this->rimuoviScadenze();
|
||||||
|
|
||||||
|
elimina_movimenti($this->id, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Operazioni sulla dichiarazione d'intento
|
||||||
|
if (!empty($dichiarazione_precedente) && $dichiarazione_precedente->id != $this->id_dichiarazione_intento) {
|
||||||
|
// Correzione dichiarazione precedente
|
||||||
|
$dichiarazione_precedente->fixTotale();
|
||||||
|
$dichiarazione_precedente->save();
|
||||||
|
|
||||||
|
// Correzione nuova dichiarazione
|
||||||
|
$dichiarazione = Dichiarazione::find($this->id_dichiarazione_intento);
|
||||||
|
if (!empty($dichiarazione)) {
|
||||||
|
$dichiarazione->fixTotale();
|
||||||
|
$dichiarazione->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function delete()
|
public function delete()
|
||||||
|
|
Loading…
Reference in New Issue