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
This commit is contained in:
luca 2011-06-23 09:57:33 +00:00
parent 704a59156d
commit 32acfde9b6
2 changed files with 66 additions and 146 deletions

View File

@ -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);
}
}

View File

@ -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 ""