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("#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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user