Aggiunta gestione stato finale del documento

git-svn-id: svn://10.65.10.50/trunk@4582 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-06-10 16:25:07 +00:00
parent 3b73abde84
commit 9184a09b4c

View File

@ -16,7 +16,7 @@
#include "ve1100.h"
#include "ve0100b.h"
#include "velib.h"
#include "sconti.h"
#define LISTADOC "listadoc"
#define Usage "Usage: ve1 -0 {[codnum anno {D|P} dalnum alnum {D|P} [ncopie]] | [L]}"
@ -76,9 +76,10 @@ class TDocumento_form : public TForm
TRelation &_firmrel; // relazione di gestione dei dati della ditta corrente
TString _module; // codice del modulo di carta associato a questo al form
TCliFor *_cliente; // oggetto per le informazioni sul cliente
TCond_vendita * _condv;
TCond_vendita *_condv; //
TString_array _exclude_array; // array di coppie tipo/articolo da escludere dalla stampa
TDocumentoEsteso * _doc; // Documento da stampare
int _final_status; // stato finale del documento
bool _valid, _cli_loaded; // flag che indica se il form e' valido | se l'oggetto cliente è già stato caricato
bool _is_lista; // flag che indica se il form e' usato per la stampa della lista documenti
TString_array _group_decimals; // Array di TToken_string per ogni gruppo definito in GENERAL.
@ -115,6 +116,7 @@ public:
void print_documento();
bool valid() { return _valid; }
bool doc_arrange();
const int final_status() { return _final_status; }
int ncopie() { return _doc->tipo().ncopie(); }
const TString &get_module_code() { return _module; } // ritorna il codice del modulo di carta
TString_array & exclude_list() { return _exclude_array; }
@ -151,6 +153,7 @@ TDocumento_form::TDocumento_form(TRectype&/*TDocumentoEsteso**/ doc, TRelation&
return;
}
TConfig config(profilo, "STAMPA"); // apre il file di configurazione del profilo
_final_status = config.get_int("STATOFINALE");
TToken_string stati((const char*)config.get("STATIVALIDI"), ','); // legge gli stati validi di questo tipo di documento
if (definitiva && (stati.get_pos(doc.get(DOC_STATO))== -1))
// se lo stato del doc. corrente non è valido...
@ -173,9 +176,9 @@ TDocumento_form::TDocumento_form(TRectype&/*TDocumentoEsteso**/ doc, TRelation&
_cliente= new TCliFor;
_cli_loaded= FALSE;
_is_lista = FALSE;
_condv = new TCond_vendita(_cliente);
_doc = new TDocumentoEsteso(doc, _condv); // istanzia TDocumentoEsteso
_doc = new TDocumentoEsteso(doc,_condv); // istanzia TDocumentoEsteso
_docfile = new TDocisamfile(_doc);
_rdocfile = new TRDocisamfile(_doc);
relation()->replace(_docfile,0);
@ -1060,13 +1063,12 @@ void TStampaDoc_application::print_selected()
_form->doc().summary_reset();
_form->doc().scadenze_reset();
}
delete _form;
if (_definitiva && (numerazione_definitiva(doc) != NOERR))
if (_definitiva && (numerazione_definitiva(doc,_form->final_status()) != NOERR))
{ // se la stampa è definitiva viene lanciata la procedura di rinumerazione
if (_interattivo) error_box("Non è possibile completare la procedura di numerazione definitiva dei documenti");
break;
}
delete _form;
}
// Non viene fatta la delete documento perche' gia' presente nella distruzione del cursore, avendo fatto una set_curr()