diff --git a/ve/velib04a.cpp b/ve/velib04a.cpp index 4cd365838..b79edd53e 100755 --- a/ve/velib04a.cpp +++ b/ve/velib04a.cpp @@ -470,10 +470,16 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do od = 0; const char tipo = campione.get_char(DOC_TIPOCF); const long codice = campione.get_long(DOC_CODCF); + TDocumento & out = doc_out[od]; - if (tipo != doc_out[od].get_char(DOC_TIPOCF) || - codice != doc_out[od].get_long(DOC_CODCF)) + if (tipo != out.get_char(DOC_TIPOCF) || + codice != out.get_long(DOC_CODCF)) return error_box("Documenti incompatibili: cliente/fornitore diverso"); + + const TString4 codnum(out.get(DOC_CODNUM)); + + if (cached_numerazione(codnum).num_provv()) + out.put(DOC_PROVV, 'P'); } else { @@ -503,7 +509,12 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do const int anno = data_elab.year(); const TString4 codnum(campione.get(DOC_CODNUM)); const TString4 tipo_out(get("S8")); // Tipo del documento di output - TDocumento* new_doc = new TDocumento('D', anno, codnum, -1); + char provv = 'D'; + + if (cached_numerazione(codice_numerazione_finale()).num_provv()) + provv = 'P'; + + TDocumento* new_doc = new TDocumento(provv, anno, codnum, -1); // Attenzione! Il cambio del tipo documento provocherebbe il reset delle variabili // Per cui lo scrivo temporaneamente nel tipo del documento d'ingresso