From 32acfde9b6e29be475ff1e3fd727d3f8358eb141 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 23 Jun 2011 09:57:33 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22311 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ps/ps0430300.cpp | 204 ++++++++++++++-------------------------------- ps/ps0430300a.uml | 8 +- 2 files changed, 66 insertions(+), 146 deletions(-) diff --git a/ps/ps0430300.cpp b/ps/ps0430300.cpp index 4ccb5ef84..02787a352 100755 --- a/ps/ps0430300.cpp +++ b/ps/ps0430300.cpp @@ -131,6 +131,8 @@ protected: public: void generate_orders(); void generate_carics(); + void write_docs(const char tipo, const TMask& mask, const long minforn, const long maxforn, TAssoc_array& orders); + virtual bool create(); virtual void main_loop(); virtual bool destroy(); @@ -873,6 +875,63 @@ void TCreazione_ordini::aggiorna_stato_doc_orig(const TRectype& rdoc) } } +void TCreazione_ordini::write_docs(const char tipo, const TMask& mask, const long minforn, const long maxforn, TAssoc_array& orders) +{ + TString msg; + switch (tipo) + { + case 'C': msg << "Registrazione documenti di carico"; break; + case 'O': msg << "Registrazione ordini"; break; + default: break; + } + + TProgind pi(orders.items(), msg, true, true); + TString cmdline; + int cnt = 0; + TString8 key; + long mindoc = 0, maxdoc = 0; + for (long cod = minforn; cod <= maxforn; cod++) + { + key.format("%ld", cod); + TDocumento* d = (TDocumento*)orders.objptr(key); + if (d != NULL) + { + if (!pi.addstatus(1)) + break; + if (d->write() == NOERR) + { + if (cmdline.blank()) + { + const TTipo_documento& tipo = d->tipo(); + TFilename rep; + tipo.main_print_profile(rep, 0); + + if (rep.ends_with("rep", true)) // Esiste il nuovo report :-) + cmdline = "ve1 -2"; + else // Esiste il vecchio form :-( + cmdline = "ve1 -0"; + } //if (cmdline.blank())... + cnt++; + const long ndoc = d->get_long(DOC_NDOC); + if (mindoc <= 0 || ndoc < mindoc) + mindoc = ndoc; + if (ndoc > maxdoc) + maxdoc = ndoc; + } //if (d->write() == NOERR)... + } //if (d != NULL)... + } //for (long cod = minforn; cod <= maxforn; cod++)... + if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt)) + { + const TString& codnum = mask.get(F_CODNUM); + const TDate datadoc(TODAY); + const int anno = datadoc.year(); + cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc; + TExternal_app prg(cmdline); + prg.run(true, true, false); + } //if (yesno_box(TR("Sono... + +} + void TCreazione_ordini::generate_carics() { TGenera_ordini_mask& mask = *_mask; @@ -896,14 +955,6 @@ void TCreazione_ordini::generate_carics() //const bool ultimo_prezzo = mask.get(F_PREZZO) == "U"; const TString& commessat = mask.get(F_CDCT); const TString& faset = mask.get(F_FSCT); - - //TString8 codmag(mask.get(F_MAG)); - //codmag.right_just(3); - //codmag << mask.get(F_DEP); - - //TString8 codmagc(mask.get(F_MAGC)); - //codmagc.right_just(3); - //codmagc << mask.get(F_DEPC); TLocalisamfile righedoc(LF_RIGHEDOC); @@ -978,50 +1029,6 @@ void TCreazione_ordini::generate_carics() TRiga_documento& rdoc = d->new_row("01"); - - /* guy si e' molto arrabbiato nel leggere queste righe di pseudo codice (attenzione, morde!) - const TString codart(row->get(sf.cid2index(S_CODART))); - - //rdoc.put(RDOC_CODMAG, codmag); - //rdoc.put(RDOC_CODMAGC, codmagc); - rdoc.put(RDOC_CODART, codart); - rdoc.put(RDOC_CODARTMAG, codart); - rdoc.put(RDOC_CHECKED, "X"); - rdoc.put(RDOC_DESCR, row->get(sf.cid2index(S_DESCART))); - - //const TString descr_agg(row->get(sf.cid2index(S_DESCRAGG))); - //if (descr_agg.full()) - //{ - // rdoc.put(RDOC_DESCLUNGA, "X"); - // rdoc.put(RDOC_DESCEST, descr_agg); - //} - - rdoc.put(RDOC_UMQTA, row->get(sf.cid2index(S_UM))); - rdoc.put(RDOC_QTA, qta); - rdoc.put(RDOC_DATACONS, datacons); - - const TRectype& articolo = cache().get(LF_ANAMAG, codart); - //TPrice prezzo; - //if (ultimo_prezzo) - // prezzo = articolo.get_real(ANAMAG_ULTCOS1); - //else - // prezzo = articolo.get_real(ANAMAG_COSTSTD); - //prezzo.change_value(codval); - //rdoc.put(RDOC_PREZZO, prezzo.get_num()); - if (codiva.full()) - rdoc.put(RDOC_CODIVA, codiva); - else - rdoc.put(RDOC_CODIVA, articolo.get(ANAMAG_CODIVA)); - rdoc.put(RDOC_CODCMS, commessa); - rdoc.put(RDOC_FASCMS, fase); - - for (int i = 0; i < 10 ; i++) - if (_userfld.row(i).full()) - rdoc.put(_userfld.row(i), mask.get(F_USER1 + i)); - - rdoc.put(RDOC_CODAGG1, row->get(sf.cid2index(F_CODAGG1))); - rdoc.put(RDOC_CODAGG2, row->get(sf.cid2index(F_CODAGG2))); - */ const TDate dataord = row->get(sf.cid2index(S_DATADOC)); const long ndoc = row->get_long(sf.cid2index(S_NUMDOC)); const int nriga = row->get_int(sf.cid2index(S_NUMRIGA)); @@ -1058,52 +1065,7 @@ void TCreazione_ordini::generate_carics() if (orders.items() > 0) { - TProgind pi(orders.items(), TR("Registrazione documenti di carico"), true, true); - TString cmdline; - int cnt = 0; - TString8 key; - long mindoc = 0, maxdoc = 0; - for (long cod = minforn; cod <= maxforn; cod++) - { - key.format("%ld", cod); - TDocumento* d = (TDocumento*)orders.objptr(key); - if (d != NULL) - { - if (!pi.addstatus(1)) - break; - if (d->write() == NOERR) - { - if (cmdline.blank()) - { - const TTipo_documento& tipo = d->tipo(); - TFilename rep; - tipo.main_print_profile(rep, 1); - - rep.ext("rep"); - - if (rep.custom_path()) // Esiste il nuovo report :-) - cmdline = "ve1 -2"; - else // Esiste il vecchio form :-( - cmdline = "ve1 -0"; - } - cnt++; - const long ndoc = d->get_long(DOC_NDOC); - if (mindoc <= 0 || ndoc < mindoc) - mindoc = ndoc; - if (ndoc > maxdoc) - maxdoc = ndoc; - } - } - } - if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt)) - { - const TString& codnum = mask.get(F_CODNUM); - const TDate datadoc(TODAY); - const int anno = datadoc.year(); - cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc; - TExternal_app prg(cmdline); - prg.run(true, true, false); - } + write_docs('C', mask, minforn, maxforn, orders); } } @@ -1250,51 +1212,7 @@ void TCreazione_ordini::generate_orders() if (orders.items() > 0) { - TProgind pi(orders.items(), TR("Registrazione ordini"), true, true); - TString cmdline; - int cnt = 0; - TString8 key; - long mindoc = 0, maxdoc = 0; - for (long cod = minforn; cod <= maxforn; cod++) - { - key.format("%ld", cod); - TDocumento* d = (TDocumento*)orders.objptr(key); - if (d != NULL) - { - if (!pi.addstatus(1)) - break; - if (d->write() == NOERR) - { - if (cmdline.blank()) - { - const TTipo_documento& tipo = d->tipo(); - TFilename rep; - tipo.main_print_profile(rep, 0); - rep.ext("rep"); - - if (rep.custom_path()) // Esiste il nuovo report :-) - cmdline = "ve1 -2"; - else // Esiste il vecchio form :-( - cmdline = "ve1 -0"; - } - cnt++; - const long ndoc = d->get_long(DOC_NDOC); - if (mindoc <= 0 || ndoc < mindoc) - mindoc = ndoc; - if (ndoc > maxdoc) - maxdoc = ndoc; - } - } - } - if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt)) - { - const TString& codnum = mask.get(F_CODNUM); - const TDate datadoc(TODAY); - const int anno = datadoc.year(); - cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc; - TExternal_app prg(cmdline); - prg.run(true, true, false); - } + write_docs('O', mask, minforn, maxforn, orders); } } diff --git a/ps/ps0430300a.uml b/ps/ps0430300a.uml index 448db8cf6..833d40af2 100755 --- a/ps/ps0430300a.uml +++ b/ps/ps0430300a.uml @@ -281,8 +281,9 @@ GR -1 78 4 BE PR 1 1 "@bTipologia documento ordine" EN -ST 157 4 -BE + +STRING F_CODNUM 4 +BEGIN PR 2 2 "Numerazione " US %NUM SE (CODTAB=="BACQ")||(CODTAB=="MAG")||(CODTAB=="ORF")||(CODTAB=="ORFT")||(CODTAB=="MAGT") IN CODTAB 157 @@ -301,7 +302,8 @@ FLAG "UG" CH REQUIRED FI OR14_NUM ME RESET,174|RESET,175 -EN +END + ST 158 50 30 BE PR 24 2 ""