Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22387 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
40ec92e6fc
commit
7ec32332b9
@ -143,7 +143,7 @@ int TImporta_produzione_msk::calcola_prog(const TString& codart, const TDate& da
|
||||
rilprod.set_var("#CODART", codart);
|
||||
rilprod.set_var("#DATA", data);
|
||||
|
||||
int prog = 1;
|
||||
int prog = 0;
|
||||
|
||||
if(rilprod.move_last())
|
||||
prog += rilprod.get(RILPROD_PROG).as_int();
|
||||
@ -264,6 +264,8 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
TLocalisamfile rprod(LF_RRILPROD);
|
||||
|
||||
TAssoc_array tprod_ar;
|
||||
TAssoc_array tprod_prog;
|
||||
int prog = 0;
|
||||
|
||||
//scorro il file di input
|
||||
for(bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||
@ -275,14 +277,14 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
TString80 chiavedoc = recset.get("RDOCKEY").as_string();
|
||||
TToken_string krdoc(chiavedoc, '.');
|
||||
const TString80 codart = recset.get("CODART").as_string();
|
||||
const TString16 codlav = recset.get("CODLAV").as_string();
|
||||
TString16 codlav = recset.get("CODLAV").as_string();
|
||||
const real qtaprod = recset.get("QTAPROD").as_real();
|
||||
const bool flgsaldo = recset.get("FLGSALDO").as_string()[0] == 'S' ? true : false;
|
||||
const TString16 datastr = recset.get("DATALAV").as_string();
|
||||
const TString8 orastr = recset.get("ORALAV").as_string();
|
||||
|
||||
const char provv = 'D';
|
||||
const TString4 codnum = krdoc.get(0);
|
||||
TString4 codnum = krdoc.get(0);
|
||||
const int anno = krdoc.get_int(1);
|
||||
const long ndoc = krdoc.get_long(2);
|
||||
const int idriga = krdoc.get_int(3);
|
||||
@ -292,11 +294,10 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
|
||||
TToken_string key;
|
||||
key.add(codart);
|
||||
key.add(datafine);
|
||||
key.add(codlav);
|
||||
key.add(chiavedoc.strip("."));
|
||||
|
||||
int prog;
|
||||
chiavedoc.strip(".");
|
||||
|
||||
TString query;
|
||||
query << "USE RRILPROD\n"
|
||||
@ -310,23 +311,55 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
|
||||
query.cut(0);
|
||||
query << "USE RILPROD KEY 4\n"
|
||||
<< "SELECT OPERATORE==\"" << codlav << "\"\n"
|
||||
<< "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga << "\n"
|
||||
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga;
|
||||
<< "SELECT OPERATORE==\"" << codlav.strip(" ") << "\"\n"
|
||||
<< "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga << "\n"
|
||||
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga;
|
||||
TISAM_recordset testate(query);
|
||||
|
||||
if(!testate.empty())
|
||||
{
|
||||
TRectype& testata = testate.cursor()->curr();
|
||||
real& qta = testata.get_real(RILPROD_QTA);
|
||||
prog = testata.get_int(RILPROD_PROG);
|
||||
qta += qtaprod;
|
||||
|
||||
testata.put(RILPROD_QTA, qta);
|
||||
tprod_ar.add(key, testata);
|
||||
err = testata.rewrite_write(tprod);
|
||||
}
|
||||
else if(!tprod_ar.is_key(key))
|
||||
{
|
||||
query.cut(0);
|
||||
query << "USE RILPROD KEY 4 SELECT OPERATORE==\"" << codlav.strip(" ") << "\"\n"
|
||||
<< "BY PROG\n"
|
||||
<< "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << "\n"
|
||||
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc;
|
||||
TISAM_recordset testate1(query);
|
||||
|
||||
prog = 1;
|
||||
|
||||
if(!testate1.empty())
|
||||
{
|
||||
testate1.move_last();
|
||||
TRectype& testata = testate1.cursor()->curr();
|
||||
prog = testata.get_int(RILPROD_PROG);
|
||||
prog++;
|
||||
}
|
||||
else
|
||||
{
|
||||
query << "USE RILPROD\n"
|
||||
<< "BY PROG\n"
|
||||
<< "FROM CODART=" << codart << "DATA=#DATA\n"
|
||||
<< "TO CODART=" << codart << "DATA=#DATA";
|
||||
TISAM_recordset testate1(query);
|
||||
testate1.set_var("#DATA", datafine);
|
||||
|
||||
testate1.move_last();
|
||||
TRectype& testata = testate1.cursor()->curr();
|
||||
prog = testata.get_int(RILPROD_PROG);
|
||||
prog++;
|
||||
}
|
||||
|
||||
//se non l'ho già fatto creo il record della testata, altrimenti aggiorno le quantità
|
||||
prog = calcola_prog(codart, datafine);
|
||||
TRectype& testata = tprod.curr();
|
||||
testata.zero();
|
||||
testata.put(RILPROD_CODART, codart);
|
||||
@ -341,19 +374,18 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
testata.put(RILPROD_QTA, qtaprod);
|
||||
testata.put(RILPROD_CHIUSO, flgsaldo);
|
||||
|
||||
err = testata.rewrite_write(tprod);
|
||||
|
||||
tprod_ar.add(key, testata);
|
||||
}
|
||||
else
|
||||
{
|
||||
TRectype& testata = *(TRectype*)tprod_ar.objptr(key);
|
||||
real& qta = testata.get_real(RILPROD_QTA);
|
||||
TString supercazzone = codart;
|
||||
supercazzone.strip(" ");
|
||||
if(supercazzone == "01249000A/SL")
|
||||
int cazzone = 1;
|
||||
qta += qtaprod;
|
||||
prog = testata.get_int(RILPROD_PROG);
|
||||
testata.put(RILPROD_QTA, qta);
|
||||
err = testata.rewrite_write(tprod);
|
||||
tprod_ar.add(key, testata);
|
||||
}
|
||||
|
||||
@ -375,11 +407,12 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
}
|
||||
|
||||
//salva le testate
|
||||
FOR_EACH_ASSOC_OBJECT(tprod_ar, obj, key, itm)
|
||||
/*FOR_EACH_ASSOC_OBJECT(tprod_ar, obj, key, itm)
|
||||
{
|
||||
TToken_string k(key);
|
||||
TRectype& testata = *(TRectype*)itm;
|
||||
err = testata.rewrite_write(tprod);
|
||||
}
|
||||
}*/
|
||||
return err == NOERR ? true : false;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user