mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-29 09:11:11 +01:00
Correzione ricalcolo scadenze
This commit is contained in:
parent
ff6358ba88
commit
66c038036d
@ -105,51 +105,7 @@ switch (post('op')) {
|
||||
|
||||
$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') {
|
||||
// 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
|
||||
$stato_fe = empty($fattura->codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']);
|
||||
$checks = FatturaElettronica::controllaFattura($fattura);
|
||||
|
@ -496,7 +496,49 @@ class Fattura extends Document
|
||||
$this->attributes['rivalsainps'] = $this->rivalsa_inps;
|
||||
$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()
|
||||
|
Loading…
Reference in New Issue
Block a user