Skip to content

Commit f272f85

Browse files
committed
fix: rigenerazione scadenze passando da Non valida a Emessa
1 parent 66e2cae commit f272f85

1 file changed

Lines changed: 8 additions & 72 deletions

File tree

modules/fatture/src/Fattura.php

Lines changed: 8 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ public function save(array $options = [])
598598
// Operazioni al cambiamento di stato
599599
// Bozza o Annullato -> Stato diverso da Bozza o Annullato
600600
if (
601-
(in_array($id_stato_precedente, [$id_stato_bozza, $id_stato_annullata])
601+
(in_array($id_stato_precedente, [$id_stato_bozza, $id_stato_annullata, $id_stato_non_valida])
602602
&& !in_array($id_stato_attuale, [$id_stato_bozza, $id_stato_annullata, $id_stato_non_valida]))
603603
|| $options[0] == 'forza_emissione'
604604
) {
@@ -851,77 +851,6 @@ public function getBanca()
851851
}
852852

853853
// Metodi statici
854-
855-
/**
856-
* Determina la banca dell'azienda da utilizzare per il documento.
857-
*
858-
* @param Anagrafica $azienda
859-
* @param int $id_pagamento
860-
* @param string $conto
861-
* @param string $direzione
862-
* @param Anagrafica $anagrafica_controparte
863-
* @return int|null
864-
*/
865-
private static function getBancaAzienda(Anagrafica $azienda, int $id_pagamento, string $conto, string $direzione, Anagrafica $anagrafica_controparte): ?int
866-
{
867-
$database = database();
868-
869-
// Per le fatture di vendita, priorità alla banca dell'azienda
870-
// Per le fatture di acquisto, priorità alla banca del fornitore
871-
$anagrafica_principale = ($direzione == 'entrata') ? $azienda : $anagrafica_controparte;
872-
873-
// 1. Banca predefinita dell'anagrafica principale per il tipo di operazione
874-
$id_banca = $anagrafica_principale->{"idbanca_{$conto}"};
875-
876-
// 2. Banca dell'azienda con conto corrispondente al tipo di pagamento (predefinita)
877-
if (empty($id_banca)) {
878-
$id_banca = self::getBancaByPagamento($database, $azienda->id, $id_pagamento, $conto, true);
879-
}
880-
881-
// 3. Banca dell'azienda con conto corrispondente al tipo di pagamento (qualsiasi)
882-
if (empty($id_banca)) {
883-
$id_banca = self::getBancaByPagamento($database, $azienda->id, $id_pagamento, $conto, false);
884-
}
885-
886-
// 4. Fallback: banca predefinita dell'azienda
887-
if (empty($id_banca)) {
888-
$banca_predefinita = Banca::where('id_anagrafica', $azienda->id)
889-
->where('predefined', 1)
890-
->first();
891-
$id_banca = $banca_predefinita?->id;
892-
}
893-
894-
return $id_banca;
895-
}
896-
897-
/**
898-
* Cerca una banca dell'azienda associata al tipo di pagamento.
899-
*
900-
* @param object $database
901-
* @param int $id_anagrafica
902-
* @param int $id_pagamento
903-
* @param string $conto
904-
* @param bool $solo_predefinita
905-
* @return int|null
906-
*/
907-
private static function getBancaByPagamento($database, int $id_anagrafica, int $id_pagamento, string $conto, bool $solo_predefinita): ?int
908-
{
909-
$where_predefined = $solo_predefinita ? 'AND `predefined`=1' : '';
910-
911-
$query = "SELECT `id` FROM `co_banche`
912-
WHERE `deleted_at` IS NULL
913-
{$where_predefined}
914-
AND `id_pianodeiconti3` = (SELECT idconto_{$conto} FROM `co_pagamenti` WHERE `id` = :id_pagamento)
915-
AND `id_anagrafica` = :id_anagrafica";
916-
917-
$result = $database->fetchOne($query, [
918-
':id_pagamento' => $id_pagamento,
919-
':id_anagrafica' => $id_anagrafica,
920-
]);
921-
922-
return $result['id'] ?? null;
923-
}
924-
925854
/**
926855
* Calcola il nuovo numero di fattura.
927856
*
@@ -1045,6 +974,13 @@ public function getTotaleCSVAttribute()
1045974

1046975
/**
1047976
* Determina la banca dell'azienda da utilizzare per il documento.
977+
*
978+
* @param Anagrafica $azienda
979+
* @param int $id_pagamento
980+
* @param string $conto
981+
* @param string $direzione
982+
* @param Anagrafica $anagrafica_controparte
983+
* @return int|null
1048984
*/
1049985
private static function getBancaAzienda(Anagrafica $azienda, int $id_pagamento, string $conto, string $direzione, Anagrafica $anagrafica_controparte): ?int
1050986
{

0 commit comments

Comments
 (0)