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:
luca 2011-07-08 15:53:14 +00:00
parent 40ec92e6fc
commit 7ec32332b9

View File

@ -143,7 +143,7 @@ int TImporta_produzione_msk::calcola_prog(const TString& codart, const TDate& da
rilprod.set_var("#CODART", codart); rilprod.set_var("#CODART", codart);
rilprod.set_var("#DATA", data); rilprod.set_var("#DATA", data);
int prog = 1; int prog = 0;
if(rilprod.move_last()) if(rilprod.move_last())
prog += rilprod.get(RILPROD_PROG).as_int(); prog += rilprod.get(RILPROD_PROG).as_int();
@ -264,6 +264,8 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
TLocalisamfile rprod(LF_RRILPROD); TLocalisamfile rprod(LF_RRILPROD);
TAssoc_array tprod_ar; TAssoc_array tprod_ar;
TAssoc_array tprod_prog;
int prog = 0;
//scorro il file di input //scorro il file di input
for(bool ok = recset.move_first(); ok; ok = recset.move_next()) 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(); TString80 chiavedoc = recset.get("RDOCKEY").as_string();
TToken_string krdoc(chiavedoc, '.'); TToken_string krdoc(chiavedoc, '.');
const TString80 codart = recset.get("CODART").as_string(); 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 real qtaprod = recset.get("QTAPROD").as_real();
const bool flgsaldo = recset.get("FLGSALDO").as_string()[0] == 'S' ? true : false; const bool flgsaldo = recset.get("FLGSALDO").as_string()[0] == 'S' ? true : false;
const TString16 datastr = recset.get("DATALAV").as_string(); const TString16 datastr = recset.get("DATALAV").as_string();
const TString8 orastr = recset.get("ORALAV").as_string(); const TString8 orastr = recset.get("ORALAV").as_string();
const char provv = 'D'; const char provv = 'D';
const TString4 codnum = krdoc.get(0); TString4 codnum = krdoc.get(0);
const int anno = krdoc.get_int(1); const int anno = krdoc.get_int(1);
const long ndoc = krdoc.get_long(2); const long ndoc = krdoc.get_long(2);
const int idriga = krdoc.get_int(3); const int idriga = krdoc.get_int(3);
@ -292,11 +294,10 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
TToken_string key; TToken_string key;
key.add(codart); key.add(codart);
key.add(datafine);
key.add(codlav); key.add(codlav);
key.add(chiavedoc.strip(".")); key.add(chiavedoc.strip("."));
int prog; chiavedoc.strip(".");
TString query; TString query;
query << "USE RRILPROD\n" query << "USE RRILPROD\n"
@ -310,23 +311,55 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
query.cut(0); query.cut(0);
query << "USE RILPROD KEY 4\n" query << "USE RILPROD KEY 4\n"
<< "SELECT OPERATORE==\"" << codlav << "\"\n" << "SELECT OPERATORE==\"" << codlav.strip(" ") << "\"\n"
<< "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga << "\n" << "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga << "\n"
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum << "NRIGA=" << idriga; << "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga;
TISAM_recordset testate(query); TISAM_recordset testate(query);
if(!testate.empty()) if(!testate.empty())
{ {
TRectype& testata = testate.cursor()->curr(); TRectype& testata = testate.cursor()->curr();
real& qta = testata.get_real(RILPROD_QTA); real& qta = testata.get_real(RILPROD_QTA);
prog = testata.get_int(RILPROD_PROG);
qta += qtaprod; qta += qtaprod;
testata.put(RILPROD_QTA, qta);
tprod_ar.add(key, testata); tprod_ar.add(key, testata);
err = testata.rewrite_write(tprod);
} }
else if(!tprod_ar.is_key(key)) 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à //se non l'ho già fatto creo il record della testata, altrimenti aggiorno le quantità
prog = calcola_prog(codart, datafine);
TRectype& testata = tprod.curr(); TRectype& testata = tprod.curr();
testata.zero(); testata.zero();
testata.put(RILPROD_CODART, codart); 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_QTA, qtaprod);
testata.put(RILPROD_CHIUSO, flgsaldo); testata.put(RILPROD_CHIUSO, flgsaldo);
err = testata.rewrite_write(tprod);
tprod_ar.add(key, testata); tprod_ar.add(key, testata);
} }
else else
{ {
TRectype& testata = *(TRectype*)tprod_ar.objptr(key); TRectype& testata = *(TRectype*)tprod_ar.objptr(key);
real& qta = testata.get_real(RILPROD_QTA); real& qta = testata.get_real(RILPROD_QTA);
TString supercazzone = codart;
supercazzone.strip(" ");
if(supercazzone == "01249000A/SL")
int cazzone = 1;
qta += qtaprod; qta += qtaprod;
prog = testata.get_int(RILPROD_PROG); prog = testata.get_int(RILPROD_PROG);
testata.put(RILPROD_QTA, qta); testata.put(RILPROD_QTA, qta);
err = testata.rewrite_write(tprod);
tprod_ar.add(key, testata); tprod_ar.add(key, testata);
} }
@ -375,11 +407,12 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
} }
//salva le testate //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; TRectype& testata = *(TRectype*)itm;
err = testata.rewrite_write(tprod); err = testata.rewrite_write(tprod);
} }*/
return err == NOERR ? true : false; return err == NOERR ? true : false;
} }