Terminata gestione statti in stampa
git-svn-id: svn://10.65.10.50/trunk@5100 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
443b5f0e63
commit
d96cba6d93
@ -5,11 +5,11 @@
|
|||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include "ve0100b.h"
|
#include "ve0100b.h"
|
||||||
|
|
||||||
int numerazione_definitiva(TDocumento& doc, const int final_status)
|
int numerazione_definitiva(TDocumento& doc)
|
||||||
{
|
{
|
||||||
if (doc.get("PROVV") == "D")
|
if (doc.get("PROVV") == "D" && doc.stampabile())
|
||||||
{
|
{
|
||||||
doc.put("STATO",final_status); // Se e' gia' in definitiva aggiorna solo lo stato
|
doc.stato(doc.tipo().stato_finale_stampa()); // Se e' gia' in definitiva aggiorna solo lo stato
|
||||||
return doc.rewrite();
|
return doc.rewrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ int numerazione_definitiva(TDocumento& doc, const int final_status)
|
|||||||
TDocumento bak_doc;
|
TDocumento bak_doc;
|
||||||
|
|
||||||
bak_doc = doc; // Setta il flag di nuovo documento
|
bak_doc = doc; // Setta il flag di nuovo documento
|
||||||
bak_doc.put("STATO",final_status);
|
bak_doc.put("STATO",doc.tipo().stato_finale_stampa());
|
||||||
bak_doc.put("PROVV","D");
|
bak_doc.put("PROVV","D");
|
||||||
bak_doc.put("NDOC",-1L);
|
bak_doc.put("NDOC",-1L);
|
||||||
const int pr = bak_doc.physical_rows();
|
const int pr = bak_doc.physical_rows();
|
||||||
|
@ -6,6 +6,6 @@
|
|||||||
#include "velib.h"
|
#include "velib.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int numerazione_definitiva(TDocumento &, const int); // prototipo della funzione di rinumerazione definitiva dei documenti
|
int numerazione_definitiva(TDocumento &); // prototipo della funzione di rinumerazione definitiva dei documenti
|
||||||
|
|
||||||
#endif // __VE0100B_H
|
#endif // __VE0100B_H
|
||||||
|
@ -78,7 +78,6 @@ class TDocumento_form : public TForm
|
|||||||
TCond_vendita * _condv;
|
TCond_vendita * _condv;
|
||||||
TString_array _exclude_array; // array di coppie tipo/articolo da escludere dalla stampa
|
TString_array _exclude_array; // array di coppie tipo/articolo da escludere dalla stampa
|
||||||
TDocumentoEsteso * _doc; // Documento da stampare
|
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 _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
|
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.
|
TString_array _group_decimals; // Array di TToken_string per ogni gruppo definito in GENERAL.
|
||||||
@ -115,7 +114,6 @@ public:
|
|||||||
void print_documento();
|
void print_documento();
|
||||||
bool valid() { return _valid; }
|
bool valid() { return _valid; }
|
||||||
bool doc_arrange();
|
bool doc_arrange();
|
||||||
const int final_status() { return _final_status; }
|
|
||||||
int ncopie() { return _doc->tipo().ncopie(); }
|
int ncopie() { return _doc->tipo().ncopie(); }
|
||||||
const TString &get_module_code() { return _module; } // ritorna il codice del modulo di carta
|
const TString &get_module_code() { return _module; } // ritorna il codice del modulo di carta
|
||||||
TString_array & exclude_list() { return _exclude_array; }
|
TString_array & exclude_list() { return _exclude_array; }
|
||||||
@ -151,16 +149,6 @@ TDocumento_form::TDocumento_form(TRectype&/*TDocumentoEsteso**/ doc, TRelation&
|
|||||||
error_box("Nome profilo o form di stampa non valido nella tabella TIP");
|
error_box("Nome profilo o form di stampa non valido nella tabella TIP");
|
||||||
return;
|
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...
|
|
||||||
if (interattivo)
|
|
||||||
{
|
|
||||||
error_box("Non è possibile stampare il documento %s %s con stato non valido", (const char*) codnum, (const char*) numdoc); // ...viene mostrato un messaggio (solo in modo interattivo)...
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -950,11 +938,10 @@ class TStampaDoc_application: public TApplication
|
|||||||
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
||||||
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
||||||
TDocumento_form *_form; // puntatore al form di stampa
|
TDocumento_form *_form; // puntatore al form di stampa
|
||||||
TLocalisamfile * _clifo;
|
TArray _file;
|
||||||
TLocalisamfile * _cfven;
|
|
||||||
TLocalisamfile * _occas;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void open_files(int logicnum, ...);
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
virtual bool destroy();
|
virtual bool destroy();
|
||||||
virtual bool menu(MENU_TAG);
|
virtual bool menu(MENU_TAG);
|
||||||
@ -1023,6 +1010,8 @@ void TStampaDoc_application::print_selected()
|
|||||||
for (long i = 0; i < items; i++)
|
for (long i = 0; i < items; i++)
|
||||||
{
|
{
|
||||||
cur = i; // Posiziona il documento
|
cur = i; // Posiziona il documento
|
||||||
|
if (_definitiva && !((TDocumento &) cur.curr()).stampabile())
|
||||||
|
continue;
|
||||||
_form = new TDocumento_form(cur.curr()/*documento*/, *_firmrel, _definitiva, _interattivo); // Istanzia il form
|
_form = new TDocumento_form(cur.curr()/*documento*/, *_firmrel, _definitiva, _interattivo); // Istanzia il form
|
||||||
|
|
||||||
if (!_form->valid()) break; // interrompe la stampa se il doc corrente non e' tra i tipi validi
|
if (!_form->valid()) break; // interrompe la stampa se il doc corrente non e' tra i tipi validi
|
||||||
@ -1035,7 +1024,8 @@ void TStampaDoc_application::print_selected()
|
|||||||
break; // Se vi sono errori interrompe la stampa
|
break; // Se vi sono errori interrompe la stampa
|
||||||
if (module_changed) whattodo = on_module_change(modulo, modulo_prec); // se il modulo è cambiato dalla stampa precedente interroga la funzione per sapere che comportamento tenere
|
if (module_changed) whattodo = on_module_change(modulo, modulo_prec); // se il modulo è cambiato dalla stampa precedente interroga la funzione per sapere che comportamento tenere
|
||||||
if (whattodo==cancel) break; // se non si può procedere la stampa viene interrotta
|
if (whattodo==cancel) break; // se non si può procedere la stampa viene interrotta
|
||||||
if (whattodo==skip) continue; // Salta il documento corrente
|
if (whattodo==skip)
|
||||||
|
continue; // Salta il documento corrente
|
||||||
// altrimenti prosegue
|
// altrimenti prosegue
|
||||||
|
|
||||||
// Carica il numero di copie da stampare per questo form
|
// Carica il numero di copie da stampare per questo form
|
||||||
@ -1048,7 +1038,7 @@ void TStampaDoc_application::print_selected()
|
|||||||
_form->doc().summary_reset();
|
_form->doc().summary_reset();
|
||||||
_form->doc().scadenze_reset();
|
_form->doc().scadenze_reset();
|
||||||
}
|
}
|
||||||
if (_definitiva && (numerazione_definitiva(_form->doc(),_form->final_status()) != NOERR))
|
if (_definitiva && (numerazione_definitiva(_form->doc()) != NOERR))
|
||||||
{ // se la stampa è definitiva viene lanciata la procedura di rinumerazione
|
{ // se la stampa è definitiva viene lanciata la procedura di rinumerazione
|
||||||
if (_interattivo) error_box("Non è possibile completare la procedura di numerazione definitiva dei documenti. Errore %d", doc.status());
|
if (_interattivo) error_box("Non è possibile completare la procedura di numerazione definitiva dei documenti. Errore %d", doc.status());
|
||||||
break;
|
break;
|
||||||
@ -1173,6 +1163,18 @@ bool TStampaDoc_application::range_handler(TMask_field& f, KEY key)
|
|||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TStampaDoc_application::open_files(int logicnum, ...)
|
||||||
|
{
|
||||||
|
va_list marker;
|
||||||
|
va_start(marker, logicnum);
|
||||||
|
while (logicnum > 0)
|
||||||
|
{
|
||||||
|
CHECKD(_file.objptr(logicnum) == NULL, "File gia' aperto: ", logicnum);
|
||||||
|
_file.add(new TLocalisamfile(logicnum), logicnum);
|
||||||
|
logicnum = va_arg(marker, int);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool TStampaDoc_application::create()
|
bool TStampaDoc_application::create()
|
||||||
{
|
{
|
||||||
TApplication::create();
|
TApplication::create();
|
||||||
@ -1181,9 +1183,7 @@ bool TStampaDoc_application::create()
|
|||||||
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA"); // si posiziona sulla prima unita' locale della ditta
|
_firmrel->add(LF_UNLOC,"CODDITTA=CODDITTA"); // si posiziona sulla prima unita' locale della ditta
|
||||||
_firmrel->add(LF_COMUNI, "COM=STATORES+COMRES", 1, LF_ANAG, 100+LF_COMUNI);
|
_firmrel->add(LF_COMUNI, "COM=STATORES+COMRES", 1, LF_ANAG, 100+LF_COMUNI);
|
||||||
_firmrel->add(LF_COMUNI, "COM=STATORES+COMRF", 1, LF_ANAG, 200+LF_COMUNI);
|
_firmrel->add(LF_COMUNI, "COM=STATORES+COMRF", 1, LF_ANAG, 200+LF_COMUNI);
|
||||||
_occas = new TLocalisamfile(LF_OCCAS);
|
open_files(LF_TABCOM, LF_TAB, LF_OCCAS, LF_CLIFO, LF_CFVEN, LF_MOVMAG, LF_RMOVMAG, 0);
|
||||||
_clifo = new TLocalisamfile(LF_CLIFO);
|
|
||||||
_cfven = new TLocalisamfile(LF_CFVEN);
|
|
||||||
const int argc = TApplication::argc();
|
const int argc = TApplication::argc();
|
||||||
|
|
||||||
_is_lista = argc == 3 && argv(2)[0] == 'L';
|
_is_lista = argc == 3 && argv(2)[0] == 'L';
|
||||||
@ -1227,9 +1227,6 @@ bool TStampaDoc_application::create()
|
|||||||
bool TStampaDoc_application::destroy()
|
bool TStampaDoc_application::destroy()
|
||||||
{
|
{
|
||||||
delete _firmrel; // distruzione della relazione di gestione della ditta corrente
|
delete _firmrel; // distruzione della relazione di gestione della ditta corrente
|
||||||
delete _clifo;
|
|
||||||
delete _cfven;
|
|
||||||
delete _occas;
|
|
||||||
return TApplication::destroy();
|
return TApplication::destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user