diff --git a/ce/ce4200.cpp b/ce/ce4200.cpp index 3f0799a30..66cfeb6c8 100755 --- a/ce/ce4200.cpp +++ b/ce/ce4200.cpp @@ -1,9 +1,11 @@ #include #include -#include -#include +#include +#include #include +#include "..\ve\velib.h" + #include "ce4200a.h" #include "ce4200.h" @@ -11,8 +13,6 @@ #include "cespi.h" #include "salcecms.h" -#include "..\ve\velib.h" - //=============================================================================================== //maschera @@ -40,9 +40,6 @@ class TCalc_cesp_cms_form : public TForm { public: - virtual bool validate(TForm_item &cf, TToken_string &s); - void set_testata() {set_header(1,TRUE);} - void set_pedata() {set_footer(1,FALSE); set_footer(1,TRUE);} TCalc_cesp_cms_form(); virtual ~TCalc_cesp_cms_form(); @@ -56,12 +53,6 @@ TCalc_cesp_cms_form::~TCalc_cesp_cms_form() { } -bool TCalc_cesp_cms_form::validate(TForm_item &cf, TToken_string &s) -{ - return TCalc_cesp_cms_form::validate(cf,s); //richiama la validate standard della classe genitore (TForm_cespiti) -} - - //=============================================================================================== //Applicazione @@ -78,6 +69,8 @@ protected: public: void utilizzo_per_cms(const TRectype& ammce_rec); real calc_perc_util_cesp(const TRectype& salcecms_rec, const TDate& dtinices, const TDate& dtfineces); + void elabora_docs(); + void stampa_docs(); }; @@ -185,7 +178,7 @@ void TCalc_cesp_cms::utilizzo_per_cms(const TRectype& ammce_rec) rigadoc.put(RDOC_QTA, 1); const real quota = distrib.get(); TString80 descr; //descrizione cosi' tanto x mettercela - descr.format("Quota ammortamento per l'esercizio %s", (const char *) quota.stringa()); + descr.format("Quota ammortamento"); rigadoc.put(RDOC_DESCR, descr); rigadoc.put(RDOC_PREZZO, quota); //ammortamento cespite per la commessa const real perc_cms = salcecms[i].get_real(SALCECMS_PERCUTIL); @@ -195,14 +188,60 @@ void TCalc_cesp_cms::utilizzo_per_cms(const TRectype& ammce_rec) rigadoc.put(RDOC_DATACONS, TDate(TODAY)); //data di elaborazione rigadoc.put(RDOC_CODIVA, _mask->get(F_CODIVA)); //codice IVA obbligatorio } - //scrittura del documento + //scrittura del documento sul file doc_cesp.write(); - } + }//fine if (salcecms.rows()>0) + }//fine if(qtot!=0) +} + + +void TCalc_cesp_cms::elabora_docs() +{ + TRectype darec(LF_AMMCE),arec(LF_AMMCE); + const int esercizio = _mask->get_int(F_ESERCIZIO); + darec.put(AMMCE_IDCESPITE, _mask->get(F_DA_IDCESPITE)); + arec.put(AMMCE_IDCESPITE, _mask->get(F_A_IDCESPITE)); + TString filtro; + filtro.format("(CODES==%d)&&(TPSALDO==2)&&(TPAMM==1)",esercizio); + + TRelation rel(LF_AMMCE); + TCursor cur(&rel, filtro, 1, &darec, &arec); + const long items = cur.items(); + cur.freeze(); + +//ciclo sui cespiti di AMMCE nel codes selezionato + for (cur=0; cur.pos()find_field('H', odd_page, FR_CODDITTA).set(_mask->get(F_DITTA)); + _form->find_field('H', odd_page, FR_RAGSOC).set(_mask->get(F_RAGSOC)); + _form->find_field('H', odd_page, FR_ESERCIZIO).set(_mask->get(F_ESERCIZIO)); + _form->find_field('H', odd_page, FR_DATAINIZIO).set(_mask->get(F_INIZIO_ES)); + _form->find_field('H', odd_page, FR_DATAFINE).set(_mask->get(F_FINE_ES)); + +//stampa i documenti via form (necessaria una setregion x stampare solo i documenti con la +//numerazione selezionata!!) + TCursor& curform = *_form->cursor(); + TRectype darec(curform.curr()); + darec.put(RDOC_PROVV, 'D'); + darec.put(RDOC_ANNO, _mask->get_int(F_ESERCIZIO)); + darec.put(RDOC_CODNUM, _mask->get(F_CODNUM)); + darec.put(RDOC_NDOC, _mask->get_long(F_DA_IDCESPITE)); + TRectype arec(darec); + arec.put(RDOC_NDOC, _mask->get_long(F_A_IDCESPITE)); + curform.setregion(darec, arec); + _form->print(); +} + bool TCalc_cesp_cms::create() { @@ -227,28 +266,24 @@ bool TCalc_cesp_cms::destroy() void TCalc_cesp_cms::main_loop() { - while (_mask->run() == K_ENTER) + KEY k = K_ENTER; + while (k != K_QUIT) { - TRectype darec(LF_AMMCE),arec(LF_AMMCE); + k = _mask->run(); - const int esercizio = _mask->get_int(F_ESERCIZIO); - - darec.put(AMMCE_IDCESPITE, _mask->get(F_DA_IDCESPITE)); - arec.put(AMMCE_IDCESPITE, _mask->get(F_A_IDCESPITE)); - TString filtro; - filtro.format("(CODES==%d)&&(TPSALDO==2)&&(TPAMM==1)",esercizio); + switch (k) + { + case K_ENTER: + elabora_docs(); + break; - TRelation rel(LF_AMMCE); - TCursor cur(&rel, filtro, 1, &darec, &arec); - const long items = cur.items(); - cur.freeze(); + case K_ESC: + stampa_docs(); + break; -//ciclo sui cespiti di AMMCE nel codes selezionato - for (cur=0; cur.pos()NDOC -STRING -1 -BEGIN - PROMPT 17 2 "" - FIELD DTFUNZ -END + STRINGA FR_B_CODCMS 20 + BEGIN + KEY "codcms" + PROMPT 11 1 "" + FIELD LF_RIGHEDOC->CODCMS + END + + STRINGA FR_B_DESC 30 + BEGIN + KEY "desc" + PROMPT 32 1 "" + FIELD LF_RIGHEDOC->DESCR + END + + VALUTA FR_B_VALAMM 15 + BEGIN + KEY "valamm" + PROMPT 63 1 "" + FIELD LF_RIGHEDOC->PREZZO + MESSAGE ADD,FR_B_TOTVALAMM + END + + END //end section totale_cespite + + STRINGA -1 + BEGIN + KEY "totale valore ammortizzato" + PROMPT 32 2 "@bTotale valore ammortizzato" + END + + VALUTA FR_B_TOTVALAMM 15 + BEGIN + KEY "totale valamm" + PROMPT 63 2 "@b" + END END ///////////////////////////////////////////////////////////////////////////////// +//-------------------------pie' di pagina------------------------------------------------// SECTION FOOTER ODD 3 -DATA -1 -BEGIN - PROMPT 1 2 "@bData@r " - MESSAGE _TODAY -END + STRINGA -1 + BEGIN + KEY "separatore" + PROMPT 1 1 "______________________________________________________________________________" + END -NUMERO -1 -BEGIN - PROMPT 120 2 "@bPagina@r " - MESSAGE _PAGENO -END + DATA -1 + BEGIN + PROMPT 1 2 "@bData@r " + MESSAGE _TODAY + END + + NUMERO -1 + BEGIN + PROMPT 35 2 "@bPagina@r " + MESSAGE _PAGENO + END END diff --git a/ce/ce4200a.h b/ce/ce4200a.h index 44ce3c085..aabfbd792 100755 --- a/ce/ce4200a.h +++ b/ce/ce4200a.h @@ -8,6 +8,7 @@ #define F_DA_DESC 207 #define F_A_IDCESPITE 208 #define F_A_DESC 209 +#define F_NRIGA 210 #define F_CODNUM 211 #define F_DESNUM 212 #define F_TIPODOC 213 @@ -16,5 +17,5 @@ #define F_DESTIPORIGA 216 #define F_CODIVA 217 #define F_DESIVA 218 -#define F_STAMPA 219 + diff --git a/ce/ce4200a.uml b/ce/ce4200a.uml index 331b6aa31..3a56ac930 100755 --- a/ce/ce4200a.uml +++ b/ce/ce4200a.uml @@ -1,23 +1,39 @@ #include "ce4200a.h" -TOOLBAR "" 0 -2 0 2 +TOOLBAR "" 0 -3 0 2 BUTTON DLG_ELABORA 10 2 BEGIN - PROMPT -12 -11 "~Elabora" + PROMPT -13 -11 "~Elabora" PICTURE BMP_ELABORA MESSAGE EXIT,K_ENTER END +BUTTON DLG_PRINT 10 2 +BEGIN + PROMPT -23 -11 "~Stampa" + PICTURE BMP_PRINT + MESSAGE EXIT,K_ESC +END + BUTTON DLG_QUIT 10 2 BEGIN - PROMPT -22 -11 "" + PROMPT -33 -11 "" END ENDPAGE PAGE "Calcolo saldi per commessa" -1 -1 0 -3 +LIST F_NRIGA 3 +BEGIN + PROMPT 1 100 "" + FLAGS "D" + ITEM "1|1" + FIELD NRIGA + KEY 1 +END + NUMBER F_DITTA 5 BEGIN PROMPT 1 2 "Ditta " @@ -70,6 +86,8 @@ BEGIN USE LF_SALCECMS SELECT NRIGA==1 JOIN LF_CESPI INTO IDCESPITE==IDCESPITE INPUT IDCESPITE F_DA_IDCESPITE + INPUT CODES F_ESERCIZIO + INPUT NRIGA F_NRIGA DISPLAY "Codice@10" IDCESPITE DISPLAY "Descrizione@50" LF_CESPI->DESC DISPLAY "Cat." LF_CESPI->CODCAT @@ -94,6 +112,8 @@ BEGIN FLAGS "UZ" COPY USE F_DA_IDCESPITE INPUT IDCESPITE F_A_IDCESPITE + INPUT CODES F_ESERCIZIO + INPUT NRIGA F_NRIGA COPY DISPLAY F_DA_IDCESPITE OUTPUT F_A_IDCESPITE IDCESPITE OUTPUT F_A_DESC LF_CESPI->DESC @@ -172,11 +192,6 @@ BEGIN FLAGS "D" END -BOOLEAN F_STAMPA -BEGIN - PROMPT 1 14 "Stampa i documenti" -END - ENDPAGE ENDMASK