Skip to content

Commit d158d27

Browse files
committed
fix: conteggio documenti collegati
1 parent 1f7594b commit d158d27

1 file changed

Lines changed: 29 additions & 19 deletions

File tree

src/Common/DocumentiCollegati.php

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -763,35 +763,45 @@ private static function getDocumentiDDT($id_ddt)
763763

764764
/**
765765
* Conta i documenti collegati a un record specifico
766+
* Conta sia i documenti precedenti che quelli successivi nel flusso di evasione
766767
*
767768
* @param int $id_record ID del record
768769
* @param string $tipo_record Tipo di record (es. 'intervento', 'fattura_vendita', ecc.)
769-
* @return int Numero di documenti collegati
770+
* @return int Numero di documenti collegati (precedenti + successivi)
770771
*/
771772
public static function countDocumenti($id_record, $tipo_record = 'intervento')
772773
{
773774
if (empty($id_record) || !is_numeric($id_record)) {
774775
return 0;
775776
}
776777

777-
// In base al tipo di record, esegui il conteggio appropriato
778-
switch ($tipo_record) {
779-
case 'intervento':
780-
return self::countDocumentiIntervento($id_record);
781-
case 'fattura_vendita':
782-
return self::countDocumentiFatturaVendita($id_record);
783-
case 'fattura_acquisto':
784-
return self::countDocumentiFatturaAcquisto($id_record);
785-
case 'contratto':
786-
return self::countDocumentiContratto($id_record);
787-
case 'preventivo':
788-
return self::countDocumentiPreventivo($id_record);
789-
case 'ordine':
790-
return self::countDocumentiOrdine($id_record);
791-
case 'ddt':
792-
return self::countDocumentiDDT($id_record);
793-
default:
794-
return 0;
778+
try {
779+
// Recupera i documenti precedenti e successivi
780+
$documenti_precedenti = self::getDocumentiPrecedenti($id_record, $tipo_record);
781+
$documenti_successivi = self::getDocumentiSuccessivi($id_record, $tipo_record);
782+
783+
// Conta sia i documenti precedenti che quelli successivi
784+
return count($documenti_precedenti) + count($documenti_successivi);
785+
} catch (\Exception $e) {
786+
// In caso di errore, torna ai metodi di conteggio tradizionali
787+
switch ($tipo_record) {
788+
case 'intervento':
789+
return self::countDocumentiIntervento($id_record);
790+
case 'fattura_vendita':
791+
return self::countDocumentiFatturaVendita($id_record);
792+
case 'fattura_acquisto':
793+
return self::countDocumentiFatturaAcquisto($id_record);
794+
case 'contratto':
795+
return self::countDocumentiContratto($id_record);
796+
case 'preventivo':
797+
return self::countDocumentiPreventivo($id_record);
798+
case 'ordine':
799+
return self::countDocumentiOrdine($id_record);
800+
case 'ddt':
801+
return self::countDocumentiDDT($id_record);
802+
default:
803+
return 0;
804+
}
795805
}
796806
}
797807

0 commit comments

Comments
 (0)