From 36dd13f0b3ef5845a43ac7d61f7faad6af0319fb Mon Sep 17 00:00:00 2001 From: augusto Date: Mon, 27 Oct 1997 11:06:32 +0000 Subject: [PATCH] Corretta la stampa definitiva git-svn-id: svn://10.65.10.50/trunk@5454 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- pr/pr1300.cpp | 106 +++++++++++++++++++++++------------- pr/pr1300a.frm | 143 +++++++++++++++++++++++++++---------------------- pr/pr1300a.h | 3 +- pr/pr1300a.uml | 17 ++++-- 4 files changed, 164 insertions(+), 105 deletions(-) diff --git a/pr/pr1300.cpp b/pr/pr1300.cpp index 7aee05fd0..5876448bf 100755 --- a/pr/pr1300.cpp +++ b/pr/pr1300.cpp @@ -1,10 +1,18 @@ #include #include #include +#include + #include "provv.h" #include "pr1300a.h" + + class TStampa_schedeprovv : public TSkeleton_application { + + TMask * _m; + void riporta_pagamenti(TCursor &cur); + protected: virtual bool create(); virtual bool destroy(); @@ -13,70 +21,94 @@ protected: bool TStampa_schedeprovv::create() { + _m= new TMask ("pr1300a"); return TSkeleton_application::create(); } bool TStampa_schedeprovv::destroy() { - + delete _m; return TSkeleton_application::destroy(); } +void TStampa_schedeprovv::riporta_pagamenti(TCursor &cur) +{ + if (cur.items()==0) return; + const TRelation * r=cur.relation(); + TProgind barra(cur.items(),"Registro le provvigioni pagate"); + for (int c=0; clfile().get_real(PROV_PROVVMAT); + if (!val.is_zero() && + !r->lfile().get_bool(PROV_SALDATA)) // this should never happen! + { + r->lfile().reread(_lock); + val+=r->lfile().get_real(PROV_PROVVPAG); + r->lfile().put(PROV_PROVVPAG,val); + r->lfile().put(PROV_PROVVMAT,0); + if (val>=r->lfile().get_real(PROV_IMPPROVV)) + r->lfile().put(PROV_SALDATA,"X"); + r->lfile().rewrite(); + } + } +} + void TStampa_schedeprovv::main_loop() { - TMask m("pr1300a"); TForm frm("pr1300a"); -/* - TForm frm("pr1300a"); - const TPrint_section& head = frm.section('H', odd_page); - const TPrint_section& foot = frm.section('F', odd_page); + + //const TPrint_section& head = frm.section('H', odd_page); + //const TPrint_section& foot = frm.section('F', odd_page); - const int hh = head.height(); - const int fh = foot.height(); - const int fl = printer().formlen(); + const int hh = 3;//head.height(); + const int fh = 1;//foot.height(); + const int fl = frm.height(); int rows[4]; // Righe orizzontali rows[0] = hh-2; // Terzultima riga della testata rows[1] = hh; // Ultima riga della testata rows[2] = fl-fh+1; // Prima riga del footer rows[3] = 0; - int rows[4]; // Righe orizzontali - rows[0] = 2; // Terzultima riga della testata - rows[1] = 4; // Ultima riga della testata - rows[2] = 60; // Prima riga del footer - rows[3] = 0; - frm.genera_fincatura(odd_page, rows[0], rows[1], rows); - frm.genera_intestazioni(odd_page, rows[1]-1); -*/ - while (m.run()!=K_QUIT) + frm.genera_intestazioni(odd_page, rows[1]-1); + //frm.genera_fincatura(odd_page, rows[0], rows[1], rows); + + while (_m->run()!=K_QUIT) { // filtro e regione - if (m.get(F_FILTRO).not_empty()) - { - TString filter(PROV_SALDATA); - if (m.get(F_FILTRO)[0]=='P') - filter << "==\"X\"" ; - else - filter << "!=\"X\"" ; - frm.cursor()->setfilter(filter); - } else - frm.cursor()->setfilter(""); + if (_m->get(F_FILTRO).not_empty()) + { + TString filter(PROV_SALDATA); + if (_m->get(F_FILTRO)[0]=='P') + filter << "==\"X\"" ; + else + filter << "!=\"X\"" ; + frm.cursor()->setfilter(filter); + } else + frm.cursor()->setfilter(""); TRectype start(LF_PROVV),end(LF_PROVV); - if (m.get(F_DAAGE).not_empty()) - start.put(PROV_CODAGE,m.get(F_DAAGE)); - if (m.get(F_AAGE).not_empty()) - end.put(PROV_CODAGE,m.get(F_AAGE)); + if (_m->get(F_DAAGE).not_empty()) + start.put(PROV_CODAGE,_m->get(F_DAAGE)); + if (_m->get(F_AAGE).not_empty()) + end.put(PROV_CODAGE,_m->get(F_AAGE)); frm.cursor()->setregion(start,end); // abilita le sezioni dei totali - frm.find_field('B',odd_page,"CLIENTI").show(!m.get_bool(F_RAGGCLI)); - frm.find_field('B',odd_page,"HCLIENTI").show(!m.get_bool(F_RAGGDOC)); - frm.find_field('B',odd_page,"DOCUMENTI").show(!m.get_bool(F_RAGGDOC)); - frm.find_field('B',odd_page,"HDOCUMENTI").show(!m.get_bool(F_RAGGRATE)); - frm.find_field('B',odd_page,"RATEDOC").show(!m.get_bool(F_RAGGRATE)); + frm.find_field('B',odd_page,"CLIENTI").show(!_m->get_bool(F_RAGGCLI)); + frm.find_field('B',odd_page,"HCLIENTI").show(!_m->get_bool(F_RAGGDOC)); + frm.find_field('B',odd_page,"DOCUMENTI").show(!_m->get_bool(F_RAGGDOC)); + frm.find_field('B',odd_page,"HDOCUMENTI").show(!_m->get_bool(F_RAGGRATE)); + frm.find_field('B',odd_page,"RATEDOC").show(!_m->get_bool(F_RAGGRATE)); frm.print(); + if (_m->get(F_DEFINITIVA)[0]=='D') + { + riporta_pagamenti(*frm.cursor()); + } } } diff --git a/pr/pr1300a.frm b/pr/pr1300a.frm index 7ca25e1d1..138396223 100755 --- a/pr/pr1300a.frm +++ b/pr/pr1300a.frm @@ -24,7 +24,7 @@ BEGIN END -SECTION HEADER ODD 3 +SECTION HEADER ODD 4 STRINGA 1 40 1 BEGIN @@ -49,7 +49,7 @@ END STRINGA 5 146 BEGIN KEY "Separatore (iniziale)" - PROMPT 1 3 "------------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 4 "------------------------------------------------------------------------------------------------------------------------------------------------------" END @@ -157,6 +157,62 @@ BEGIN MESSAGE COPY,402 END +NUMBER 103 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CTotale doc./rata" "Totale documento/rata" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 3 1 "" +END +NUMBER 104 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CTotale provvigione" "Totale provv." + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 4 1 "" +END +NUMBER 105 6 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CPerc. prov." "Perc. provv." + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 5 1 "" +END +NUMBER 106 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CImporto pagato" "Importo pagato" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 6 1 "" +END +NUMBER 107 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CProvvigione pagata" "Provv. pagata" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 7 1 "" +END +NUMBER 108 15 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CImporto maturato" "Importo maturato" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 8 1 "" +END +NUMBER 109 14 +BEGIN + SPECIAL STRINGA INTESTAZIONE "@CProvvigione maturata" "Provv. maturata" + SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" + SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" + KEY "IMPORTO" + PROMPT 9 1 "" +END SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE // ************************** @@ -219,10 +275,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 103 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Totale documento/rata" "Totale documento/rata" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "IMPORTO rata" PROMPT 3 1 "" PICTURE "###.###.###.###" FIELD LF_PROVV->IMPRATA @@ -230,31 +283,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 104 14 BEGIN - SPECIAL STRINGA INTESTAZIONE "Totale provv." "Totale provv." - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "IMPORTO provvigione" PROMPT 4 1 "" PICTURE "##.###.###.###" FIELD LF_PROVV->IMPPROVV MESSAGE ADD,204 END - NUMBER 105 7 + NUMBER 105 6 BEGIN - SPECIAL STRINGA INTESTAZIONE "Perc. provv." "Perc. provv." - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "perc. provv." PROMPT 5 1 "" - PICTURE "##@,@#%" + PICTURE "##@,@#" MESSAGE _NUMEXPR,#104/#103*100 END NUMBER 106 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Importo pagato" "Importo pagato" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "IMPORTO pagato" PROMPT 6 1 "" PICTURE "###.###.###.###" FIELD PAGATO @@ -262,10 +306,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 107 14 BEGIN - SPECIAL STRINGA INTESTAZIONE "Provv. pagata" "Provv. pagata" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "provv pagata" PROMPT 7 1 "" PICTURE "##.###.###.###" FIELD PROVVPAG @@ -273,9 +314,6 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 108 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Importo maturato" "Importo maturato" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" KEY "IMPORTO" PROMPT 8 1 "" PICTURE "###.###.###.###" @@ -284,10 +322,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 109 14 BEGIN - SPECIAL STRINGA INTESTAZIONE "Provv. maturata" "Provv. maturata" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "provv mat" PROMPT 9 1 "" PICTURE "##.###.###.###" FIELD PROVVMAT @@ -311,10 +346,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 103 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Totale documento/rata" "Totale documento/rata" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "IMPORTO rata" PROMPT 3 1 "" PICTURE "###.###.###.###" FIELD LF_PROVV->IMPRATA @@ -322,31 +354,22 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 104 14 BEGIN - SPECIAL STRINGA INTESTAZIONE "Totale provv." "Totale provv." - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "totale provv" PROMPT 4 1 "" PICTURE "##.###.###.###" FIELD LF_PROVV->IMPPROVV MESSAGE ADD,204 END - NUMBER 105 7 + NUMBER 105 6 BEGIN - SPECIAL STRINGA INTESTAZIONE "Perc. provv." "Perc. provv." - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "perc provv" PROMPT 5 1 "" - PICTURE "##@,@#%" + PICTURE "##@,@#" MESSAGE _NUMEXPR,#104/#103*100 END NUMBER 106 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Importo pagato" "Importo pagato" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "IMPORTO pagato" PROMPT 6 1 "" PICTURE "###.###.###.###" FIELD PAGATO @@ -354,10 +377,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END NUMBER 107 14 BEGIN - SPECIAL STRINGA INTESTAZIONE "Provv. pagata" "Provv. pagata" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "provv pagata" PROMPT 7 1 "" PICTURE "##.###.###.###" FIELD PROVVPAG @@ -365,10 +385,7 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE END STRINGA 108 15 BEGIN - SPECIAL STRINGA INTESTAZIONE "Importo maturato" "Importo maturato" - SPECIAL NUMERO OFFSET "0" "Offset iniziale campo" - SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra" - KEY "IMPORTO" + KEY "flag saldato" PROMPT 8 1 " SALDATA " END END // RATA @@ -403,11 +420,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE MESSAGE ADD,304 GROUP G_TOTDOC END - NUMBER 205 7 + NUMBER 205 6 BEGIN KEY "IMPORTO" PROMPT 5 1 "" - PICTURE "##@,@#%" + PICTURE "##@,@#" MESSAGE _NUMEXPR,#204/#203*100 END NUMBER 206 15 @@ -474,11 +491,11 @@ SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE MESSAGE ADD,404 GROUP G_TOTCLI END - NUMBER 305 7 + NUMBER 305 6 BEGIN KEY "IMPORTO" PROMPT 5 1 "" - PICTURE "##@,@#%" + PICTURE "##@,@#" MESSAGE _NUMEXPR,#304/#303*100 END NUMBER 306 15 @@ -541,11 +558,11 @@ END // end clienti PICTURE "##.###.###.###" GROUP G_TOTAGE END - NUMBER 405 7 + NUMBER 405 6 BEGIN KEY "IMPORTO" PROMPT 5 2 "" - PICTURE "##@,@#%" + PICTURE "##@,@#" MESSAGE _NUMEXPR,#404/#403*100 GROUP G_TOTAGE END diff --git a/pr/pr1300a.h b/pr/pr1300a.h index 63a37ea05..740028450 100755 --- a/pr/pr1300a.h +++ b/pr/pr1300a.h @@ -3,4 +3,5 @@ #define F_RAGGRATE 103 #define F_RAGGDOC 104 #define F_RAGGCLI 105 -#define F_FILTRO 106 \ No newline at end of file +#define F_FILTRO 106 +#define F_DEFINITIVA 107 diff --git a/pr/pr1300a.uml b/pr/pr1300a.uml index 20e42fc00..b95043e36 100755 --- a/pr/pr1300a.uml +++ b/pr/pr1300a.uml @@ -24,9 +24,18 @@ BEGIN GROUP G_CODAGE END +LIST F_DEFINITIVA 30 +BEGIN + PROMPT 2 5 " Stampa " + ITEM "P|provvisoria" + MESSAGE ENABLE,F_FILTRO + ITEM "D|definitiva" + MESSAGE "D",F_FILTRO|DISABLE,F_FILTRO +END + LIST F_FILTRO 30 BEGIN - PROMPT 2 5 " Stampo " + PROMPT 2 7 " Stampo " ITEM "|tutte le provvigioni" ITEM "D|solo le provv. da pagare" ITEM "P|solo le provv. gia' pagate" @@ -34,21 +43,21 @@ END BOOL F_RAGGCLI BEGIN - PROMPT 2 7 "Raggruppo i clienti" + PROMPT 2 9 "Raggruppo i clienti" MESSAGE TRUE "X",F_RAGGDOC|DISABLE,F_RAGGDOC MESSAGE FALSE ENABLE,F_RAGGDOC END BOOL F_RAGGDOC BEGIN - PROMPT 2 9 "Raggruppo i documenti" + PROMPT 2 11 "Raggruppo i documenti" MESSAGE TRUE "X",F_RAGGRATE|DISABLE,F_RAGGRATE MESSAGE FALSE ENABLE,F_RAGGRATE END BOOL F_RAGGRATE BEGIN - PROMPT 2 11 "Raggruppo le rate" + PROMPT 2 13 "Raggruppo le rate" END