From dba14686b9fa9e3fe07b4031e02ee6903c52c1ca Mon Sep 17 00:00:00 2001 From: guy Date: Wed, 29 Dec 2010 10:35:58 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : mg1100.msk mg3.exe mg4.exe Ricompilazione Demo : [ ] Commento : Corretta stampa ed aggiornamento registro di magazzino git-svn-id: svn://10.65.10.50/branches/R_10_00@21376 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- mg/mg1100.h | 51 +++++++++++------------ mg/mg1100.uml | 15 ++++--- mg/mg3300.cpp | 4 +- mg/mg4300.cpp | 110 +++++++++++++++++++++++--------------------------- 4 files changed, 86 insertions(+), 94 deletions(-) diff --git a/mg/mg1100.h b/mg/mg1100.h index 09c88f44f..3b55eaf82 100755 --- a/mg/mg1100.h +++ b/mg/mg1100.h @@ -1,41 +1,42 @@ -#define F_NUMREG 101 -#define F_DATAREG 102 +#define F_NUMREG 101 +#define F_DATAREG 102 #define F_ANNOES 103 #define F_DATACOMP 104 #define F_DESCR 105 -#define F_RIFADOC 106 -#define F_CODNUM 107 -#define F_NUMDOC 108 -#define F_ANNODOC 109 -#define F_CODCAUS 110 -#define F_DESCAU 111 -#define F_TIPOCF 112 -#define F_CODCLI 113 -#define F_CODFOR 114 -#define F_RAGSOC 115 -#define F_CATVEN 116 -#define F_CODLIST 117 -#define F_CODCONTR 118 -#define F_CODOFF 119 +#define F_RIFADOC 106 +#define F_CODNUM 107 +#define F_NUMDOC 108 +#define F_ANNODOC 109 +#define F_CODCAUS 110 +#define F_DESCAU 111 +#define F_TIPOCF 112 +#define F_CODCLI 113 +#define F_CODFOR 114 +#define F_RAGSOC 115 +#define F_CATVEN 116 +#define F_CODLIST 117 +#define F_CODCONTR 118 +#define F_CODOFF 119 #define F_TIPOCONDV 120 -#define F_RIGHE 121 -#define F_NUMPROVV 122 -#define F_CODCF 123 +#define F_RIGHE 121 +#define F_NUMPROVV 122 +#define F_CODCF 123 #define F_CODCONDV 124 #define F_DESCONDV 125 #define F_EXNUMDOC 126 -#define F_EXANNODOC 127 +#define F_EXANNODOC 127 #define F_INVENTORYMODE 128 #define F_INVENTORYMODE2 129 -#define F_VALORE_TOT 130 +#define F_VALORE_TOT 130 -#define H_NUMREG 131 -#define H_DATAREG 132 +#define H_NUMREG 131 +#define H_DATAREG 132 #define H_ANNOES 133 #define H_DATACOMP 134 #define H_DESCR 135 -#define F_INDSPED 136 -#define F_INDIR 137 +#define F_INDSPED 136 +#define F_INDIR 137 +#define F_NUMREGST 138 #define G_DEFMOV 1 diff --git a/mg/mg1100.uml b/mg/mg1100.uml index 42152f7d0..e117f3f78 100755 --- a/mg/mg1100.uml +++ b/mg/mg1100.uml @@ -1,12 +1,9 @@ #include "mg1100.h" TOOLBAR "Toolbar" 0 0 0 2 - #include - ENDPAGE - PAGE "Testata" 0 0 0 0 GROUPBOX DLG_NULL 75 6 @@ -17,7 +14,6 @@ END NUMBER F_NUMREG 7 BEGIN -// FLAGS "D" FLAGS "G" FIELD NUMREG PROMPT 2 3 "Operazione numero " @@ -102,13 +98,18 @@ BEGIN FIELD EX_NUMDOC END - DATE F_EXANNODOC BEGIN - PROMPT 30 7 " del " + PROMPT 30 7 "del " FIELD EX_DATADOC END +NUMBER F_NUMREGST 7 +BEGIN + FLAGS "D" + PROMPT 50 7 "N. su registro " + FIELD NUMREGST +END STRING F_CODCAUS 5 BEGIN @@ -372,8 +373,6 @@ SPREADSHEET F_RIGHE BEGIN PROMPT 0 6 "RIGHE DI MOVIMENTO" FLAGS "AI" - //USE LF_RMOVMAG KEY NRIG - //INPUT NUMREG F_NUMREG ITEM "@1" ITEM "Codice articolo" ITEM "Liv1@10" diff --git a/mg/mg3300.cpp b/mg/mg3300.cpp index 75d6257e8..935899e54 100755 --- a/mg/mg3300.cpp +++ b/mg/mg3300.cpp @@ -544,8 +544,8 @@ void TForm_schedemag::set_options(bool no_valori, bool no_ff, bool sintetica, bo } TForm_subsection & ss = ((TForm_subsection &)find_field('B',odd_page,"H_MOVS_INTERESSATI")); - ((TForm_item &)ss.find_field("10")).enable(!print_gio); - ((TForm_item &)ss.find_field("110")).enable(print_gio); + ss.find_field("10").enable(!print_gio); + ss.find_field("110").enable(print_gio); _no_ff = no_ff; _sintetica = sintetica; } diff --git a/mg/mg4300.cpp b/mg/mg4300.cpp index c4a9d4f5c..b77c9b7d1 100755 --- a/mg/mg4300.cpp +++ b/mg/mg4300.cpp @@ -138,39 +138,41 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s) return true; } else if (subcode=="INCNUMREGST") { - _last_num_reg=max(_last_num_reg,_reg_giorn->last_numreg())+1; - if (stampa_def) - { - _reg_giorn->set_last_numreg(_last_num_reg); - _reg_giorn->rewrite(); - } + _last_num_reg = max(_last_num_reg,_reg_giorn->last_numreg()) + 1; return true; } else if (subcode== "REGISTRASTAMPA") { - TRectype& movr = cursor()->curr(LF_MOVMAG); - if ((1 || movr.get_long("NUMREGST")<=_last_num_reg )&& stampa_def) + if (stampa_def) { - // movimento ancora da registrare - movr.put("NUMREGST",_last_num_reg+1); - cursor()->relation()->lfile(LF_MOVMAG).rewrite(); - - _reg_giorn->set_pag_stampate(last_pag_stampata+printer().getcurrentpage()); - _reg_giorn->set_last_print(TDate(TODAY)); - _reg_giorn->rewrite(); - } - + TRectype& movr = cursor()->curr(LF_MOVMAG); + if (movr.get_long(MOVMAG_NUMREGST) != _last_num_reg) + { + // movimento ancora da registrare + movr.put(MOVMAG_NUMREGST, _last_num_reg); // was _last_num_reg + 1 + cursor()->relation()->lfile(LF_MOVMAG).rewrite(); + } + if (_last_num_reg > _reg_giorn->last_numreg()) + { + _reg_giorn->set_last_numreg(_last_num_reg); + _reg_giorn->set_pag_stampate(last_pag_stampata+printer().getcurrentpage()); + _reg_giorn->set_last_print(TDate(TODAY)); + _reg_giorn->rewrite(); + } + } } else if (subcode== "INFO_CRONO") { - TDate datamov(cursor()->relation()->curr(LF_MOVMAG).get_date("DATAREG")); - switch (freq_stampa ) { - case 0: - valore.format(FR("%7g Movimento del %s "), (double)_last_num_reg+1, (const char *)datamov.string()); - valore << cursor()->relation()->curr(LF_MOVMAG).get("DESCR"); + TRectype& movr = cursor()->curr(LF_MOVMAG); + const TDate datamov = movr.get_date(MOVMAG_DATAREG); + switch (freq_stampa ) + { + case 0: + valore.format(FR("%7ld Movimento del %s "), _last_num_reg+1, (const char *)datamov.string()); + valore << movr.get(MOVMAG_DESCR); break; - default: - valore.format(FR("%7g Movimenti di %s, dal %d al %d"), (double)_last_num_reg+1, - (const char *)itom(datamov.month()), - (int)((datamov.day()-1)/freq_stampa)*freq_stampa+1, - (int)min(((datamov.day()-1)/freq_stampa+1)*freq_stampa,TDate::last_day(datamov.month(),datamov.year())) ); + default: + valore.format(FR("%7ld Movimenti di %s, dal %d al %d"), _last_num_reg+1, + (const char*)itom(datamov.month()), + (int)((datamov.day()-1)/freq_stampa)*freq_stampa+1, + (int)min(((datamov.day()-1)/freq_stampa+1)*freq_stampa,TDate::last_day(datamov.month(),datamov.year())) ); break; } cf.set(valore); @@ -197,7 +199,7 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s) const TRectype& anamag = cursor()->curr(LF_ANAMAG); if (ragg_articoli) { - valore << TR("Art.") << cursor()->curr(LF_ANAMAG).get(ANAMAG_CODART) << ' '; + valore << TR("Art.") << anamag.get(ANAMAG_CODART) << ' '; TString livello(cursor()->relation()->curr(LF_RMOVMAG).get("LIVGIAC")); if (livello.not_empty() && livello_giac != 0) @@ -219,17 +221,16 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s) { if (ragg_classi) { - valore << TR("Classe fiscale ") << cursor()->curr(LF_ANAMAG).get(ANAMAG_CLASSEFIS) << ' '; + valore << TR("Classe fiscale ") << anamag.get(ANAMAG_CLASSEFIS) << ' '; if (ragg_raggart) { - valore << TR(" ragg. ") << cursor()->curr(LF_ANAMAG).get(ANAMAG_RAGGFIS) << ' '; + valore << TR(" ragg. ") << anamag.get(ANAMAG_RAGGFIS) << ' '; } } else { vv.cut(0); - vv << TR("Art. ") << cursor()->curr(LF_ANAMAG).get(ANAMAG_CODART); - + vv << TR("Art. ") << anamag.get(ANAMAG_CODART); } } valore << vv; @@ -263,56 +264,47 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s) const char * TGiornalemag::get_cronofield(TVariable_rectype & rmovmag) -{ - // static buffer - static TString * valore=NULL; - if (valore == NULL ) - valore = new TString16; - +{ const TRectype& movmag = cache().get(LF_MOVMAG, rmovmag.get(RMOVMAG_NUMREG)); const TDate datamov = movmag.get_date(MOVMAG_DATAREG); // gestione frequenza - valore->cut(0); - switch (freq_stampa ) { + TString16 valore; + switch (freq_stampa ) { case 0: - valore->format("%4d%2d%2d%7d",datamov.year(), + valore.format("%4d%2d%2d%7d",datamov.year(), datamov.month(), datamov.day(), movmag.get_long("NUMREG")); break; default: - valore->format("%4d%2d%2d",datamov.year(), + valore.format("%4d%2d%2d",datamov.year(), datamov.month(), (int)(datamov.day()/freq_stampa)); } - return *valore; + return get_tmp_string() = valore; } const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag) { - static TString * valore=NULL; - if (valore == NULL ) - valore = new TString80 ; - + TString80 valore; TString80 vv; - valore->cut(0); const TString80 codart = rmovmag.get(RMOVMAG_CODART); // gestione ragruppamenti if (!ragg_mag) { - valore->format("%-15s",(const char *)rmovmag.get(RMOVMAG_CODMAG)); + valore.format("%-15s",(const char *)rmovmag.get(RMOVMAG_CODMAG)); } if (ragg_articoli) { - *valore << codart; + valore << codart; if (livello_giac) { - const TString80 c2 = rmovmag.get("LIVGIAC"); - *valore << livelli_giacenza().unpack_grpcode(c2, livello_giac); + const TString80 c2 = rmovmag.get(RMOVMAG_LIVGIAC); + valore << livelli_giacenza().unpack_grpcode(c2, livello_giac); } } else @@ -320,9 +312,9 @@ const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag) if (ragg_classi) { const TRectype& anamag = cache().get(LF_ANAMAG, codart); - *valore << anamag.get(ANAMAG_CLASSEFIS); + valore << anamag.get(ANAMAG_CLASSEFIS); if (ragg_raggart) - *valore << anamag.get(ANAMAG_RAGGFIS); + valore << anamag.get(ANAMAG_RAGGFIS); } else { @@ -337,7 +329,7 @@ const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag) } } - TString16 codcaus = rmovmag.get(RMOVMAG_CODCAUS); + TString8 codcaus = rmovmag.get(RMOVMAG_CODCAUS); if (codcaus.empty()) { const TRectype& movmag = cache().get(LF_MOVMAG, rmovmag.get(RMOVMAG_NUMREG)); @@ -347,12 +339,12 @@ const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag) if (ragg_caus) // raggruppo per "tipo" di causale { TCausale_magazzino* caus = (TCausale_magazzino*)_cau_magazzino.objptr(codcaus); - *valore << caus->get("S8"); + valore << caus->get("S8"); } else - *valore << codcaus; - *valore << vv; - return *valore; + valore << codcaus; + valore << vv; + return get_tmp_string() = valore; } void TGiornalemag::calcola_range_movimenti(TRecnotype& primo, TRecnotype& ultimo) const