Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@22258 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2011-06-10 14:06:55 +00:00
parent 0838913ed5
commit c3149487f7
3 changed files with 77 additions and 19 deletions

View File

@ -399,6 +399,8 @@ void TEdit_rdocs_mask::fill_sheet()
TString query; TString query;
query << "USE DOC KEY 2"; query << "USE DOC KEY 2";
query << "\nSELECT (CODNUM=#CODNUM)"; query << "\nSELECT (CODNUM=#CODNUM)";
//se vengono incluse le BEM evase -> ci vuole un anno da cui partire per non passare..
//..il tempo a scandire documenti dello scorso millennio!
if (includi_evasi) if (includi_evasi)
query << "&&(ANNO>=#DAANNO)"; query << "&&(ANNO>=#DAANNO)";
else else
@ -434,16 +436,23 @@ void TEdit_rdocs_mask::fill_sheet()
//per ogni documento prende le sole righe non evase e le carica sullo sheet //per ogni documento prende le sole righe non evase e le carica sullo sheet
TDocumento doc(rec); TDocumento doc(rec);
bool rdoc_da_considerare = false;
FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc) FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc)
{ {
//di default pensa di scartare la riga
bool rdoc_da_considerare = false;
//solo le righe BEM con una qta iniziale > 0 contano qualcosa!
const real qta = rdoc->get_real(RDOC_QTA); const real qta = rdoc->get_real(RDOC_QTA);
if (qta > ZERO) if (qta > ZERO)
{ {
//guy mi perdoni!
const bool riga_bem_evasa = rdoc->is_evasa();
const bool riga_bem_evadibile = rdoc->is_evadibile();
if (includi_evasi) if (includi_evasi)
rdoc_da_considerare = rdoc->is_evadibile(); rdoc_da_considerare = riga_bem_evadibile;
else else
rdoc_da_considerare = !rdoc->is_evasa() && rdoc->is_evadibile(); rdoc_da_considerare = !riga_bem_evasa && riga_bem_evadibile;
//se la riga ha passato i primi controlli...
if (rdoc_da_considerare) if (rdoc_da_considerare)
{ {
if (lav.full() && rdoc->get(RDOC_CODCMS) != lav) if (lav.full() && rdoc->get(RDOC_CODCMS) != lav)
@ -452,12 +461,52 @@ void TEdit_rdocs_mask::fill_sheet()
continue; continue;
if (codart.full() && rdoc->get(RDOC_CODART) != codart) if (codart.full() && rdoc->get(RDOC_CODART) != codart)
continue; continue;
//se sono richieste anche le righe evase, vuole solo quelle evase le cui bolle di consegna appartengono..
//..all'intervallo di date selezionato sulla maschera (contorto ma vero...)
if (includi_evasi && riga_bem_evasa)
{
//date limite per documento di consegna
const TDate da_data = get_date(F_DADATA_EV);
const TDate a_data = get_date(F_ADATA_EV);
sf_righe.autoload_line(++k, *rdoc); //aggiunge una riga nuova riempiendola con tutti i campi che hanno FIELD nella maschera //campi riga BEM corrente in esame
} const long daanno = rdoc->get_long(RDOC_ANNO);
} const TString& dacodnum = rdoc->get(RDOC_CODNUM);
} const long dandoc = rdoc->get_long(RDOC_NDOC);
} const long daidriga = rdoc->get_long(RDOC_IDRIGA);
TString rquery;
rquery << "USE RDOC KEY 4";
rquery << "\nFROM DAPROVV=D DAANNO=#DAANNO DACODNUM=#DACODNUM DANDOC=#DANDOC DAIDRIGA=#DAIDRIGA";
rquery << "\nTO DAPROVV=D DAANNO=#DAANNO DACODNUM=#DACODNUM DANDOC=#DANDOC DAIDRIGA=#DAIDRIGA";
TISAM_recordset righe_recset(rquery);
righe_recset.set_var("#DAANNO", daanno);
righe_recset.set_var("#DACODNUM", dacodnum);
righe_recset.set_var("#DANDOC", dandoc);
righe_recset.set_var("#DAIDRIGA", daidriga);
//ricava il recordset delle righe di bolla di consegna che hanno evaso la riga BEM in esame
const int ritems = righe_recset.items();
for (bool ok = righe_recset.move_first(); ok; ok = righe_recset.move_next())
{
TToken_string doc_babbo_key;
doc_babbo_key.add(righe_recset.get(RDOC_PROVV).as_string());
doc_babbo_key.add(righe_recset.get(RDOC_ANNO).as_int());
doc_babbo_key.add(righe_recset.get(RDOC_CODNUM).as_string());
doc_babbo_key.add(righe_recset.get(RDOC_NDOC).as_int());
const TRectype& doc_babbo = cache().get(LF_DOC, doc_babbo_key);
const TDate datadoc_babbo = doc_babbo.get_date(DOC_DATADOC);
if (datadoc_babbo < da_data || datadoc_babbo > a_data)
rdoc_da_considerare = false;
}
} //if (includi_evasi && riga_bem_evasa)..
if (rdoc_da_considerare)
sf_righe.autoload_line(++k, *rdoc); //aggiunge una riga nuova riempiendola con tutti i campi che hanno FIELD nella maschera
} //if (rdoc_da_considerare)...
} //if (qta > ZERO)...
} //FOR_EACH_PHYSICAL_RDOC(doc, r, rdoc)...
} //for (bool ok...
//richiesta del cazzo della euroforesi: ordinare le righe per codart; si sono poi resi conto loro stessi che era.. //richiesta del cazzo della euroforesi: ordinare le righe per codart; si sono poi resi conto loro stessi che era..
//..una richiesta del cazzo e l'hanno abbandonata //..una richiesta del cazzo e l'hanno abbandonata

View File

@ -14,9 +14,9 @@
#define F_CODART 314 #define F_CODART 314
#define F_DESCR 315 #define F_DESCR 315
#define F_INCL_EVASI 316 #define F_INCL_EVASI 316
#define F_DA_ANNO 317 #define F_DA_ANNO 317
//#define F_DADATA_EV 317 #define F_DADATA_EV 318
//#define F_ADATA_EV 318 #define F_ADATA_EV 319
#define F_RIGHE 320 #define F_RIGHE 320

View File

@ -33,7 +33,7 @@ ENDPAGE
PAGE "Produttivita' giornaliera" 0 0 0 -3 PAGE "Produttivita' giornaliera" 0 0 0 -3
GROUPBOX DLG_NULL 76 10 GROUPBOX DLG_NULL 76 11
BEGIN BEGIN
PROMPT 0 0 "@bParametri documenti" PROMPT 0 0 "@bParametri documenti"
END END
@ -207,28 +207,37 @@ END
BOOLEAN F_INCL_EVASI BOOLEAN F_INCL_EVASI
BEGIN BEGIN
PROMPT 2 8 "Includi evasi" PROMPT 2 8 "Includi evasi"
MESSAGE FALSE HIDE,F_DA_ANNO MESSAGE FALSE HIDE,3@
MESSAGE TRUE SHOW,F_DA_ANNO MESSAGE TRUE SHOW,3@
END END
NUMBER F_DA_ANNO 4 NUMBER F_DA_ANNO 4
BEGIN BEGIN
PROMPT 20 8 "Dall' anno " PROMPT 20 8 "BEM dall' anno:"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "A" FLAGS "A"
GROUP 3
END END
/*DATA F_DADATA_EV TEXT DLG_NULL
BEGIN BEGIN
PROMPT 20 8 "Dalla data " PROMPT 2 9 "@bConsegnato"
GROUP 3
END
DATA F_DADATA_EV
BEGIN
PROMPT 15 9 "Dal "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
GROUP 3
END END
DATA F_ADATA_EV DATA F_ADATA_EV
BEGIN BEGIN
PROMPT 45 8 "Alla data " PROMPT 35 9 "al "
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END*/ GROUP 3
END
SPREADSHEET F_RIGHE SPREADSHEET F_RIGHE
BEGIN BEGIN