Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22560 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6c4ce55e07
commit
605becd52b
@ -1,18 +1,9 @@
|
||||
#include <xvt.h>
|
||||
#include <checks.h>
|
||||
|
||||
#include "pd6292.h"
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
const int n = (argc > 1) ? atoi(&argv[1][1]) : 0;
|
||||
|
||||
switch(n)
|
||||
{
|
||||
case 0:
|
||||
pd6292100(argc, argv); break;
|
||||
default:
|
||||
error_box("Usare: pd6292 -0");break;
|
||||
}
|
||||
pd6292100(argc, argv);
|
||||
return 0;
|
||||
}
|
||||
|
@ -42,26 +42,29 @@ void TBEM_cache::discarding(const THash_object* obj)
|
||||
//KEY2OBJ: metodo che sceglie il documento giusto da disco in modo da poterlo continuare
|
||||
TObject* TBEM_cache::key2obj(const char* key)
|
||||
{
|
||||
TToken_string chiave(key);
|
||||
TDoc_key kdoc(key);
|
||||
TToken_string chiave(key);
|
||||
//chiave di doc
|
||||
TString query;
|
||||
query << "USE DOC\n"
|
||||
<< "FROM PROVV=D ANNO=" << kdoc.anno() << " CODNUM=" << kdoc.codnum() << " NDOC=" << kdoc.ndoc() << "\n"
|
||||
<< "TO PROVV=D ANNO=" << kdoc.anno() << " CODNUM=" << kdoc.codnum() << " NDOC=" << kdoc.ndoc();
|
||||
<< "FROM PROVV=D ANNO=" << chiave.get_int(0) << " CODNUM=" << chiave.get(1) << " NDOC=" << chiave.get_int(2) << "\n"
|
||||
<< "TO PROVV=D ANNO=" << chiave.get_int(0) << " CODNUM=" << chiave.get(1) << " NDOC=" << chiave.get_int(2);
|
||||
TISAM_recordset rset(query);
|
||||
|
||||
TDocumento* doc = NULL;
|
||||
|
||||
if (rset.move_first())
|
||||
doc = new TDocumento(rset.cursor()->curr());
|
||||
doc = new TDocumento(rset.cursor()->curr());
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
//DOC: metodo che restituisce un puntatore ad un documento identificato dalla chiave doc
|
||||
TDocumento& TBEM_cache::doc(const int anno, const TString4 codnum, const long ndoc)
|
||||
{
|
||||
TDoc_key kdoc(anno, codnum, ndoc);
|
||||
TToken_string kdoc;
|
||||
kdoc.add(anno);
|
||||
kdoc.add(codnum);
|
||||
kdoc.add(ndoc);
|
||||
return *(TDocumento*)objptr(kdoc);
|
||||
}
|
||||
|
||||
@ -70,6 +73,7 @@ TBEM_cache::TBEM_cache() : TCache(20)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////
|
||||
//// TIMPORTA_PRODUZIONE_REC ////
|
||||
///////////////////////////////////////
|
||||
@ -100,8 +104,11 @@ TImporta_produzione_rec::TImporta_produzione_rec(const char* filename)
|
||||
//Classe TImporta_produzione_msk
|
||||
class TImporta_produzione_msk : public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
const int id2rownum(TDocumento& doc, long id) const;
|
||||
|
||||
int calcola_prog(const TString& codart, const TDate& data);
|
||||
int calcola_nriga(const TString& codart, const TDate& data, const long prog);
|
||||
bool genera_produzione(const TFilename& file);
|
||||
@ -143,7 +150,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 = 0;
|
||||
int prog = 1;
|
||||
|
||||
if(rilprod.move_last())
|
||||
prog += rilprod.get(RILPROD_PROG).as_int();
|
||||
@ -187,9 +194,19 @@ void TImporta_produzione_msk::sposta_file(const TString& file)
|
||||
fileori.fremove();
|
||||
}
|
||||
|
||||
const int TImporta_produzione_msk::id2rownum(TDocumento& doc, long id) const
|
||||
{
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(doc, r, row)
|
||||
{
|
||||
if (row->get_long(RDOC_IDRIGA) == id)
|
||||
return row->get_int(RDOC_NRIGA);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool TImporta_produzione_msk::chiudi_bem()
|
||||
{
|
||||
const TDate data = get_date(F_DATA);
|
||||
const TDate data = get_date(F_DATA);
|
||||
|
||||
TLocalisamfile rilprod(LF_RILPROD);
|
||||
TBEM_cache ca;
|
||||
@ -219,10 +236,24 @@ bool TImporta_produzione_msk::chiudi_bem()
|
||||
const TString16 codlav = trec.get(RILPROD_OPERATORE);
|
||||
const TDate data = trec.get_date(RILPROD_DATA);
|
||||
|
||||
TString query;
|
||||
query << "USE DOC\n"
|
||||
<< "FROM PROVV=D ANNO=" << anno << " CODNUM=" << codnum << " NDOC=" << ndoc << "\n"
|
||||
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum << " NDOC=" << ndoc;
|
||||
TISAM_recordset rset(query);
|
||||
|
||||
if(rset.items == 0)
|
||||
{
|
||||
TString str;
|
||||
str << "ATTENZIONE. Il documento " << codnum << '-' << ndoc << " non esiste!";
|
||||
warning_box(str);
|
||||
continue;
|
||||
}
|
||||
|
||||
TDocumento& doc = ca.doc(anno, codnum, ndoc);
|
||||
if(!doc.empty())
|
||||
{
|
||||
const int nriga = doc.id2rownum(idriga);
|
||||
const int nriga = id2rownum(doc, idriga);
|
||||
TRiga_documento& row = doc[nriga];
|
||||
|
||||
if(row.get(RDOC_FASCMS) == codlav)
|
||||
@ -264,8 +295,6 @@ 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())
|
||||
@ -283,8 +312,11 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
const TString16 datastr = recset.get("DATALAV").as_string();
|
||||
const TString8 orastr = recset.get("ORALAV").as_string();
|
||||
|
||||
if(datastr.blank())
|
||||
continue;
|
||||
|
||||
const char provv = 'D';
|
||||
TString4 codnum = krdoc.get(0);
|
||||
TString80 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);
|
||||
@ -297,11 +329,12 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
key.add(codlav);
|
||||
key.add(chiavedoc.strip("."));
|
||||
|
||||
chiavedoc.strip(".");
|
||||
int prog;
|
||||
|
||||
|
||||
TString query;
|
||||
query << "USE RRILPROD\n"
|
||||
<< "SELECT (DATAINI==" << datafine << ")&&(ORAINI==" << orafine << ")\n"
|
||||
query << "USE RRILPROD\n"
|
||||
<< "SELECT (DATAINI==\"" << datafine << "\")&&(ORAINI==\"" << orafine << "\")\n"
|
||||
<< "FROM CODART=" << codart << " DATA=#DATA\n"
|
||||
<< "TO CODART=" << codart << " DATA=#DATA";
|
||||
TISAM_recordset righe(query);
|
||||
@ -316,7 +349,7 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
<< "TO PROVV=D ANNO=" << anno << " CODNUM=" << codnum.strip(" ") << " NDOC=" << ndoc << " NRIGA=" << idriga;
|
||||
TISAM_recordset testate(query);
|
||||
|
||||
if(!testate.empty())
|
||||
if(testate.items() > 0)
|
||||
{
|
||||
TRectype& testata = testate.cursor()->curr();
|
||||
real& qta = testata.get_real(RILPROD_QTA);
|
||||
@ -337,7 +370,7 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
|
||||
prog = 1;
|
||||
|
||||
if(!testate1.empty())
|
||||
if(testate1.items() > 0)
|
||||
{
|
||||
testate1.move_last();
|
||||
TRectype& testata = testate1.cursor()->curr();
|
||||
@ -396,23 +429,17 @@ bool TImporta_produzione_msk::genera_produzione(const TFilename& file)
|
||||
riga.put(RRILPROD_DATA, datafine);
|
||||
riga.put(RRILPROD_PROG, prog);
|
||||
riga.put(RRILPROD_NRIGA, calcola_nriga(codart, datafine, prog));
|
||||
riga.put(RRILPROD_OPERATORE, codlav);
|
||||
riga.put(RRILPROD_DATAINI, datafine);
|
||||
riga.put(RRILPROD_ORAINI, orafine);
|
||||
riga.put(RRILPROD_DATAFINE, datafine);
|
||||
riga.put(RRILPROD_ORAFINE, orafine);
|
||||
riga.put(RRILPROD_OPERATORE, codlav);
|
||||
riga.put(RRILPROD_QTA, qtaprod);
|
||||
|
||||
err = riga.rewrite_write(rprod);
|
||||
}
|
||||
|
||||
//salva le testate
|
||||
/*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