@@ -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