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
This commit is contained in:
guy 2010-12-29 10:35:58 +00:00
parent 87e660e623
commit dba14686b9
4 changed files with 86 additions and 94 deletions

View File

@ -1,41 +1,42 @@
#define F_NUMREG 101 #define F_NUMREG 101
#define F_DATAREG 102 #define F_DATAREG 102
#define F_ANNOES 103 #define F_ANNOES 103
#define F_DATACOMP 104 #define F_DATACOMP 104
#define F_DESCR 105 #define F_DESCR 105
#define F_RIFADOC 106 #define F_RIFADOC 106
#define F_CODNUM 107 #define F_CODNUM 107
#define F_NUMDOC 108 #define F_NUMDOC 108
#define F_ANNODOC 109 #define F_ANNODOC 109
#define F_CODCAUS 110 #define F_CODCAUS 110
#define F_DESCAU 111 #define F_DESCAU 111
#define F_TIPOCF 112 #define F_TIPOCF 112
#define F_CODCLI 113 #define F_CODCLI 113
#define F_CODFOR 114 #define F_CODFOR 114
#define F_RAGSOC 115 #define F_RAGSOC 115
#define F_CATVEN 116 #define F_CATVEN 116
#define F_CODLIST 117 #define F_CODLIST 117
#define F_CODCONTR 118 #define F_CODCONTR 118
#define F_CODOFF 119 #define F_CODOFF 119
#define F_TIPOCONDV 120 #define F_TIPOCONDV 120
#define F_RIGHE 121 #define F_RIGHE 121
#define F_NUMPROVV 122 #define F_NUMPROVV 122
#define F_CODCF 123 #define F_CODCF 123
#define F_CODCONDV 124 #define F_CODCONDV 124
#define F_DESCONDV 125 #define F_DESCONDV 125
#define F_EXNUMDOC 126 #define F_EXNUMDOC 126
#define F_EXANNODOC 127 #define F_EXANNODOC 127
#define F_INVENTORYMODE 128 #define F_INVENTORYMODE 128
#define F_INVENTORYMODE2 129 #define F_INVENTORYMODE2 129
#define F_VALORE_TOT 130 #define F_VALORE_TOT 130
#define H_NUMREG 131 #define H_NUMREG 131
#define H_DATAREG 132 #define H_DATAREG 132
#define H_ANNOES 133 #define H_ANNOES 133
#define H_DATACOMP 134 #define H_DATACOMP 134
#define H_DESCR 135 #define H_DESCR 135
#define F_INDSPED 136 #define F_INDSPED 136
#define F_INDIR 137 #define F_INDIR 137
#define F_NUMREGST 138
#define G_DEFMOV 1 #define G_DEFMOV 1

View File

@ -1,12 +1,9 @@
#include "mg1100.h" #include "mg1100.h"
TOOLBAR "Toolbar" 0 0 0 2 TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h> #include <relapbar.h>
ENDPAGE ENDPAGE
PAGE "Testata" 0 0 0 0 PAGE "Testata" 0 0 0 0
GROUPBOX DLG_NULL 75 6 GROUPBOX DLG_NULL 75 6
@ -17,7 +14,6 @@ END
NUMBER F_NUMREG 7 NUMBER F_NUMREG 7
BEGIN BEGIN
// FLAGS "D"
FLAGS "G" FLAGS "G"
FIELD NUMREG FIELD NUMREG
PROMPT 2 3 "Operazione numero " PROMPT 2 3 "Operazione numero "
@ -102,13 +98,18 @@ BEGIN
FIELD EX_NUMDOC FIELD EX_NUMDOC
END END
DATE F_EXANNODOC DATE F_EXANNODOC
BEGIN BEGIN
PROMPT 30 7 " del " PROMPT 30 7 "del "
FIELD EX_DATADOC FIELD EX_DATADOC
END END
NUMBER F_NUMREGST 7
BEGIN
FLAGS "D"
PROMPT 50 7 "N. su registro "
FIELD NUMREGST
END
STRING F_CODCAUS 5 STRING F_CODCAUS 5
BEGIN BEGIN
@ -372,8 +373,6 @@ SPREADSHEET F_RIGHE
BEGIN BEGIN
PROMPT 0 6 "RIGHE DI MOVIMENTO" PROMPT 0 6 "RIGHE DI MOVIMENTO"
FLAGS "AI" FLAGS "AI"
//USE LF_RMOVMAG KEY NRIG
//INPUT NUMREG F_NUMREG
ITEM "@1" ITEM "@1"
ITEM "Codice articolo" ITEM "Codice articolo"
ITEM "Liv1@10" ITEM "Liv1@10"

View File

@ -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_subsection & ss = ((TForm_subsection &)find_field('B',odd_page,"H_MOVS_INTERESSATI"));
((TForm_item &)ss.find_field("10")).enable(!print_gio); ss.find_field("10").enable(!print_gio);
((TForm_item &)ss.find_field("110")).enable(print_gio); ss.find_field("110").enable(print_gio);
_no_ff = no_ff; _no_ff = no_ff;
_sintetica = sintetica; _sintetica = sintetica;
} }

View File

@ -138,39 +138,41 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
return true; return true;
} else if (subcode=="INCNUMREGST") { } else if (subcode=="INCNUMREGST") {
_last_num_reg=max(_last_num_reg,_reg_giorn->last_numreg())+1; _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();
}
return true; return true;
} else if (subcode== "REGISTRASTAMPA") { } else if (subcode== "REGISTRASTAMPA") {
TRectype& movr = cursor()->curr(LF_MOVMAG); if (stampa_def)
if ((1 || movr.get_long("NUMREGST")<=_last_num_reg )&& stampa_def)
{ {
// movimento ancora da registrare TRectype& movr = cursor()->curr(LF_MOVMAG);
movr.put("NUMREGST",_last_num_reg+1); if (movr.get_long(MOVMAG_NUMREGST) != _last_num_reg)
cursor()->relation()->lfile(LF_MOVMAG).rewrite(); {
// movimento ancora da registrare
_reg_giorn->set_pag_stampate(last_pag_stampata+printer().getcurrentpage()); movr.put(MOVMAG_NUMREGST, _last_num_reg); // was _last_num_reg + 1
_reg_giorn->set_last_print(TDate(TODAY)); cursor()->relation()->lfile(LF_MOVMAG).rewrite();
_reg_giorn->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") { } else if (subcode== "INFO_CRONO") {
TDate datamov(cursor()->relation()->curr(LF_MOVMAG).get_date("DATAREG")); TRectype& movr = cursor()->curr(LF_MOVMAG);
switch (freq_stampa ) { const TDate datamov = movr.get_date(MOVMAG_DATAREG);
case 0: switch (freq_stampa )
valore.format(FR("%7g Movimento del %s "), (double)_last_num_reg+1, (const char *)datamov.string()); {
valore << cursor()->relation()->curr(LF_MOVMAG).get("DESCR"); case 0:
valore.format(FR("%7ld Movimento del %s "), _last_num_reg+1, (const char *)datamov.string());
valore << movr.get(MOVMAG_DESCR);
break; break;
default: default:
valore.format(FR("%7g Movimenti di %s, dal %d al %d"), (double)_last_num_reg+1, valore.format(FR("%7ld Movimenti di %s, dal %d al %d"), _last_num_reg+1,
(const char *)itom(datamov.month()), (const char*)itom(datamov.month()),
(int)((datamov.day()-1)/freq_stampa)*freq_stampa+1, (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())) ); (int)min(((datamov.day()-1)/freq_stampa+1)*freq_stampa,TDate::last_day(datamov.month(),datamov.year())) );
break; break;
} }
cf.set(valore); cf.set(valore);
@ -197,7 +199,7 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
const TRectype& anamag = cursor()->curr(LF_ANAMAG); const TRectype& anamag = cursor()->curr(LF_ANAMAG);
if (ragg_articoli) 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")); TString livello(cursor()->relation()->curr(LF_RMOVMAG).get("LIVGIAC"));
if (livello.not_empty() && livello_giac != 0) if (livello.not_empty() && livello_giac != 0)
@ -219,17 +221,16 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
{ {
if (ragg_classi) 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) if (ragg_raggart)
{ {
valore << TR(" ragg. ") << cursor()->curr(LF_ANAMAG).get(ANAMAG_RAGGFIS) << ' '; valore << TR(" ragg. ") << anamag.get(ANAMAG_RAGGFIS) << ' ';
} }
} else { } else {
vv.cut(0); vv.cut(0);
vv << TR("Art. ") << cursor()->curr(LF_ANAMAG).get(ANAMAG_CODART); vv << TR("Art. ") << anamag.get(ANAMAG_CODART);
} }
} }
valore << vv; valore << vv;
@ -263,56 +264,47 @@ bool TGiornalemag::validate(TForm_item &cf, TToken_string &s)
const char * TGiornalemag::get_cronofield(TVariable_rectype & rmovmag) 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 TRectype& movmag = cache().get(LF_MOVMAG, rmovmag.get(RMOVMAG_NUMREG));
const TDate datamov = movmag.get_date(MOVMAG_DATAREG); const TDate datamov = movmag.get_date(MOVMAG_DATAREG);
// gestione frequenza // gestione frequenza
valore->cut(0); TString16 valore;
switch (freq_stampa ) { switch (freq_stampa ) {
case 0: case 0:
valore->format("%4d%2d%2d%7d",datamov.year(), valore.format("%4d%2d%2d%7d",datamov.year(),
datamov.month(), datamov.month(),
datamov.day(), datamov.day(),
movmag.get_long("NUMREG")); movmag.get_long("NUMREG"));
break; break;
default: default:
valore->format("%4d%2d%2d",datamov.year(), valore.format("%4d%2d%2d",datamov.year(),
datamov.month(), datamov.month(),
(int)(datamov.day()/freq_stampa)); (int)(datamov.day()/freq_stampa));
} }
return *valore; return get_tmp_string() = valore;
} }
const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag) const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag)
{ {
static TString * valore=NULL; TString80 valore;
if (valore == NULL )
valore = new TString80 ;
TString80 vv; TString80 vv;
valore->cut(0);
const TString80 codart = rmovmag.get(RMOVMAG_CODART); const TString80 codart = rmovmag.get(RMOVMAG_CODART);
// gestione ragruppamenti // gestione ragruppamenti
if (!ragg_mag) if (!ragg_mag)
{ {
valore->format("%-15s",(const char *)rmovmag.get(RMOVMAG_CODMAG)); valore.format("%-15s",(const char *)rmovmag.get(RMOVMAG_CODMAG));
} }
if (ragg_articoli) if (ragg_articoli)
{ {
*valore << codart; valore << codart;
if (livello_giac) if (livello_giac)
{ {
const TString80 c2 = rmovmag.get("LIVGIAC"); const TString80 c2 = rmovmag.get(RMOVMAG_LIVGIAC);
*valore << livelli_giacenza().unpack_grpcode(c2, livello_giac); valore << livelli_giacenza().unpack_grpcode(c2, livello_giac);
} }
} }
else else
@ -320,9 +312,9 @@ const char * TGiornalemag::get_fiscfield(TVariable_rectype & rmovmag)
if (ragg_classi) if (ragg_classi)
{ {
const TRectype& anamag = cache().get(LF_ANAMAG, codart); const TRectype& anamag = cache().get(LF_ANAMAG, codart);
*valore << anamag.get(ANAMAG_CLASSEFIS); valore << anamag.get(ANAMAG_CLASSEFIS);
if (ragg_raggart) if (ragg_raggart)
*valore << anamag.get(ANAMAG_RAGGFIS); valore << anamag.get(ANAMAG_RAGGFIS);
} }
else 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()) if (codcaus.empty())
{ {
const TRectype& movmag = cache().get(LF_MOVMAG, rmovmag.get(RMOVMAG_NUMREG)); 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 if (ragg_caus) // raggruppo per "tipo" di causale
{ {
TCausale_magazzino* caus = (TCausale_magazzino*)_cau_magazzino.objptr(codcaus); TCausale_magazzino* caus = (TCausale_magazzino*)_cau_magazzino.objptr(codcaus);
*valore << caus->get("S8"); valore << caus->get("S8");
} }
else else
*valore << codcaus; valore << codcaus;
*valore << vv; valore << vv;
return *valore; return get_tmp_string() = valore;
} }
void TGiornalemag::calcola_range_movimenti(TRecnotype& primo, TRecnotype& ultimo) const void TGiornalemag::calcola_range_movimenti(TRecnotype& primo, TRecnotype& ultimo) const