diff --git a/src/ve/ve6300.cpp b/src/ve/ve6300.cpp index 030098ccf..fff7b5ca2 100755 --- a/src/ve/ve6300.cpp +++ b/src/ve/ve6300.cpp @@ -463,6 +463,8 @@ void TGenerazioneEffetti_app::generate() set_options(); const bool sort_by_date = _msk->get_int(F_ORDERBY) == 0; + const bool sort_by_doc = _msk->get_int(F_ORDERBY) == 1; + const bool sort_by_cli = _msk->get_int(F_ORDERBY) == 2; const bool fast_status = _msk->get_bool(F_SPEEDSTATUS); for (long i=0L; iget(F_ANNO)); - da.put(DOC_CODNUM, codnum); - da.put(DOC_NDOC, _msk->get(F_NDOC_INI)); - a.put(DOC_ANNO, _msk->get(F_ANNO)); - a.put(DOC_CODNUM, codnum); - a.put(DOC_NDOC, _msk->get(F_NDOC_FIN)); - } + if (sort_by_doc) + { + cursor_key = 1; + da.put(DOC_ANNO, _msk->get(F_ANNO)); + da.put(DOC_CODNUM, codnum); + da.put(DOC_NDOC, _msk->get(F_NDOC_INI)); + a.put(DOC_ANNO, _msk->get(F_ANNO)); + a.put(DOC_CODNUM, codnum); + a.put(DOC_NDOC, _msk->get(F_NDOC_FIN)); + } + else + if (sort_by_cli) + { + cursor_key = 4; + const TDate dataini = _msk->get_date(F_DATA_INI); + const TDate datafin = _msk->get_date(F_DATA_FIN); + + da.put(DOC_TIPOCF, "C"); + da.put(DOC_CODCF, _msk->get(F_CODCF_INI)); + da.put(DOC_ANNO, dataini.year()); + da.put(DOC_CODNUM, codnum); + a.put(DOC_TIPOCF, "C"); + a.put(DOC_CODCF, _msk->get(F_CODCF_FIN)); + a.put(DOC_ANNO, datafin.year()); + a.put(DOC_CODNUM, codnum); + filt_expr << "BETWEEN(" << DOC_DATADOC << ",\"" << dataini.string() << "\",\"" << datafin.string() << "\")"; + } + TCursor doc_cur(&doc_rel, filt_expr, cursor_key, &da, &a); TString msg; @@ -527,10 +548,19 @@ void TGenerazioneEffetti_app::generate() msg << " al " << _msk->get(F_DATA_FIN); } else - { - msg << " dal " << _msk->get(F_NDOC_INI); - msg << " al " << _msk->get(F_NDOC_FIN); - } + if (sort_by_doc) + { + msg << " dal " << _msk->get(F_NDOC_INI); + msg << " al " << _msk->get(F_NDOC_FIN); + } + else + if (sort_by_cli) + { + msg << " da cliente " << _msk->get(F_CODCF_INI); + msg << " al cliente " << _msk->get(F_CODCF_FIN); + msg << " e dal " << _msk->get(F_DATA_INI); + msg << " al " << _msk->get(F_DATA_FIN); + } TProgind p(cur_items,msg,FALSE,TRUE); long j = 0; diff --git a/src/ve/ve6300a.h b/src/ve/ve6300a.h index a46bcd1bf..0f6a1371b 100755 --- a/src/ve/ve6300a.h +++ b/src/ve/ve6300a.h @@ -13,3 +13,5 @@ #define F_NDOC_INI 203 #define F_NDOC_FIN 204 #define F_DESCNUM 205 +#define F_CODCF_INI 206 +#define F_CODCF_FIN 207 diff --git a/src/ve/ve6300a.uml b/src/ve/ve6300a.uml index e1b262343..a987daf8e 100755 --- a/src/ve/ve6300a.uml +++ b/src/ve/ve6300a.uml @@ -43,9 +43,11 @@ RADIOBUTTON F_ORDERBY 1 76 BEGIN PROMPT 1 2 "Sequenza di ordinamento" ITEM "0|Per data documento" - MESSAGE SHOW,1@|HIDE,2@ + MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ ITEM "1|Per numero documento" - MESSAGE SHOW,2@|HIDE,1@ + MESSAGE SHOW,2@|HIDE,1@|HIDE,3@ + ITEM "2|Per Cliente" + MESSAGE SHOW,3@|SHOW,1@|HIDE,2@ FLAGS "Z" END @@ -74,7 +76,7 @@ NUMBER F_ANNO 4 BEGIN PROMPT 2 6 "Anno " CHECKTYPE REQUIRED - GROUP 2 + GROUP 2 FLAGS "A" END @@ -127,6 +129,33 @@ BEGIN WARNING "Numero documento errato" GROUP 2 END + +NUMBER F_CODCF_INI 6 +BEGIN + PROMPT 40 7 "Da Cliente " + FLAG "UR" + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_INI + DISPLAY "Cliente" CODCF + DISPLAY "Ragione sociale@60" RAGSOC + OUTPUT F_CODCF_INI CODCF + GROUP 3 +END + +NUMBER F_CODCF_FIN 6 +BEGIN + PROMPT 40 8 " A Cliente " + FLAG "UR" + USE LF_CLIFO + INPUT TIPOCF "C" + INPUT CODCF F_CODCF_FIN + COPY DISPLAY F_CODCF_INI + OUTPUT F_CODCF_FIN CODCF + NUM_EXPR #F_CODCF_FIN>=#F_CODCF_INI + WARNING "Digitare un codice maggiore o uguale al campo precedente'" + GROUP 3 +END BOOLEAN F_RAGGRUPPA BEGIN