Corretta numerazione pagine e stampa riepiloghi IVA/scadenze nel
caso di piu' copie di uno stesso documento. git-svn-id: svn://10.65.10.50/trunk@3767 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8767aec9c8
commit
6d51e166be
@ -14,7 +14,51 @@
|
||||
|
||||
#include "ve1100.h"
|
||||
#include "ve0100b.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// classe TStampa_Doc_Vendita customizzata dalla TApplication per l'applicazione principale
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
enum behaviour {
|
||||
skip,
|
||||
go,
|
||||
cancel
|
||||
};
|
||||
|
||||
class TDocVen_Form;
|
||||
|
||||
class TStampa_Doc_Vendita: public TApplication {
|
||||
TString _codnum; // codice di numerazione
|
||||
TString _provv; // stampa provvisioria
|
||||
int _anno; // anno della documentazione
|
||||
int _ncopie, _base_page_no; // numero di copie per ogni documento, numero della pagina base per stampare il numero di pagina
|
||||
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
||||
TDate _dadata, _adata; // estremi di data dei documenti
|
||||
bool _order_by_num; // flag che indica se e' stato selezionato l'ordine principale per numero documento
|
||||
bool _interattivo; // flag che indica se il prog. funziona in interattivo o in batch
|
||||
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
||||
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
||||
TDocVen_Form *_form; // puntatore al form di stampa
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual bool destroy(void);
|
||||
virtual bool menu(MENU_TAG);
|
||||
int select(void);
|
||||
virtual void print(void);
|
||||
virtual void on_firm_change(void);
|
||||
virtual behaviour on_module_change(const TString &, TString &); // funzione chiamata ad ogni cambio modulo durante la stampa
|
||||
virtual bool query_final_print(void); // funzione chiamata all'inizializzazione per sapere se la stampa è definitiva
|
||||
static bool date2num_handler(TMask_field& f, KEY key);
|
||||
static bool range_handler(TMask_field& f, KEY key);
|
||||
static bool filter_rows(const TRelation * r);
|
||||
public:
|
||||
int base_no() { return _base_page_no;}
|
||||
};
|
||||
|
||||
|
||||
inline TStampa_Doc_Vendita& app() { return (TStampa_Doc_Vendita&) main_app(); }
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// classe TDocVen_Form customizzata dalla Form per i documenti di vendita
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@ -51,6 +95,7 @@ protected:
|
||||
public:
|
||||
const TString &get_module_code() { return _module; } // ritorna il codice del modulo di carta
|
||||
TString_array & exclude_list() { return _exclude_array; }
|
||||
TDocumentoEsteso* doc() { return _doc; }
|
||||
TDocVen_Form(const char *, TRelation &, TDocumentoEsteso * );
|
||||
virtual ~TDocVen_Form();
|
||||
};
|
||||
@ -718,7 +763,7 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
||||
|
||||
// Messaggio per stampare il numero di pagina corrente
|
||||
if (code== "_PAGENO") {
|
||||
TString16 pg; pg << int(printer().getcurrentpage());
|
||||
TString16 pg; pg << int(printer().getcurrentpage() - app().base_no());
|
||||
cf.set(pg); cf.put_paragraph(pg);
|
||||
cf.set("");
|
||||
}
|
||||
@ -729,42 +774,6 @@ bool TDocVen_Form::validate(TForm_item &cf, TToken_string &s) {
|
||||
// classe TStampa_Doc_Vendita customizzata dalla TApplication per l'applicazione principale
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
enum behaviour {
|
||||
skip,
|
||||
go,
|
||||
cancel
|
||||
};
|
||||
|
||||
|
||||
|
||||
class TStampa_Doc_Vendita: public TApplication {
|
||||
TString _codnum; // codice di numerazione
|
||||
TString _provv; // stampa provvisioria
|
||||
int _anno; // anno della documentazione
|
||||
int _ncopie; // numero di copie per ogni documento
|
||||
long _dalnum, _alnum; // estremi di numerazione dei documenti
|
||||
TDate _dadata, _adata; // estremi di data dei documenti
|
||||
bool _order_by_num; // flag che indica se e' stato selezionato l'ordine principale per numero documento
|
||||
bool _interattivo; // flag che indica se il prog. funziona in interattivo o in batch
|
||||
bool _definitiva; // flag che indica se la stampa è definitiva o no
|
||||
TRelation *_firmrel; // puntatore alla relazione che gestisce i dati della ditta corrente
|
||||
TDocVen_Form *_form; // puntatore al form di stampa
|
||||
protected:
|
||||
virtual bool create(void);
|
||||
virtual bool destroy(void);
|
||||
virtual bool menu(MENU_TAG);
|
||||
int select(void);
|
||||
virtual void print(void);
|
||||
virtual void on_firm_change(void);
|
||||
virtual behaviour on_module_change(const TString &, TString &); // funzione chiamata ad ogni cambio modulo durante la stampa
|
||||
virtual bool query_final_print(void); // funzione chiamata all'inizializzazione per sapere se la stampa è definitiva
|
||||
static bool date2num_handler(TMask_field& f, KEY key);
|
||||
static bool range_handler(TMask_field& f, KEY key);
|
||||
static bool filter_rows(const TRelation * r);
|
||||
};
|
||||
|
||||
inline TStampa_Doc_Vendita& app() { return (TStampa_Doc_Vendita&) main_app(); }
|
||||
|
||||
bool TStampa_Doc_Vendita::date2num_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
@ -949,6 +958,7 @@ void TStampa_Doc_Vendita::print() {
|
||||
TProgind* pi;
|
||||
if (!is_vis)
|
||||
pi = new TProgind(cur.items(),"Stampa documenti in corso...",FALSE,TRUE,10);
|
||||
_base_page_no = 0;
|
||||
for (cur= 0; cur.pos()<cur.items(); ++cur) { // ciclo sugli elementi del cursore di stampa
|
||||
if (!is_vis)
|
||||
pi->addstatus(1L);
|
||||
@ -993,7 +1003,12 @@ void TStampa_Doc_Vendita::print() {
|
||||
fcur.set_filterfunction(filter_rows); // setta il filtro per escludere alcuni tipi riga indicati nel form
|
||||
// Da implementare quando verra gestito il numero di copie
|
||||
for (int j=0; j<ncopie; j++)
|
||||
{
|
||||
_form->print(); // stampa il form corrente
|
||||
_base_page_no = printer().getcurrentpage() -1; // Numero base della pagina
|
||||
_form->doc()->summary_reset();
|
||||
_form->doc()->scadenze_reset();
|
||||
}
|
||||
if (_definitiva && (numerazione_definitiva(doc) != 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user