Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21848 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2011-03-30 09:35:38 +00:00
parent 939e0f1e5d
commit f5e5b91245

View File

@ -74,6 +74,7 @@ protected:
virtual TObject* key2obj(const char* key); virtual TObject* key2obj(const char* key);
public: public:
const TString& decode(const TString& codart);
TCodArtEsselunga_cache() {} TCodArtEsselunga_cache() {}
}; };
@ -81,7 +82,7 @@ TObject* TCodArtEsselunga_cache::key2obj(const char* key)
{ {
TToken_string code(key); TToken_string code(key);
TString80 codart; code.get(0, codart); TString80 codart; code.get(0, codart);
TString16 codcf; code.get(1, codcf); const long codcf = 1000;
TISAM_recordset codcorr("USE CODCORR\nSELECT CODCF=#CODCF\nFROM CODART=#COD\nTO CODART=#COD"); TISAM_recordset codcorr("USE CODCORR\nSELECT CODCF=#CODCF\nFROM CODART=#COD\nTO CODART=#COD");
codcorr.set_var("#COD", TVariant(codart)); codcorr.set_var("#COD", TVariant(codart));
codcorr.set_var("#CODCF", TVariant(codcf)); codcorr.set_var("#CODCF", TVariant(codcf));
@ -93,28 +94,35 @@ TObject* TCodArtEsselunga_cache::key2obj(const char* key)
return NULL; return NULL;
} }
const TString& TCodArtEsselunga_cache::decode(const TString& codart)
{
return *(const TString*)objptr(codart);
}
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
// Recordset per file privat // Recordset per file privat
///////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////
class TPrivat_recordset : public TAS400_recordset class TPrivat_recordset : public TAS400_recordset
{ {
public: public:
TPrivat_recordset(); TPrivat_recordset(const TString4 dipendenza);
}; };
TPrivat_recordset::TPrivat_recordset() TPrivat_recordset::TPrivat_recordset(const TString4 dipendenza)
: TAS400_recordset("AS400(53)") : TAS400_recordset("AS400(53)")
{ {
create_field("CDC", -1, 3, _intfld); // centro di costo TConfig config(CONFIG_DITTA, "ha");
create_field("CODART", -1, 6, _longfld); // codice articolo const TString16 cod_hardy = config.get("Esselunga_CodHardy");
create_field("CODFORN", -1, 6, _longfld); // codice fornitore create_field("CDC", -1, 3, _intzerofld); // centro di costo
create_field("TIPOBOLLA", -1, 1, _alfafld); // tipo bolla create_field("CODART", -1, 6, _longzerofld); // codice articolo
create_field("CODFORN", -1, 6, _longzerofld, true, TVariant(cod_hardy)); // codice fornitore
create_field("TIPOBOLLA", -1, 1, _alfafld, true, TVariant("A")); // tipo bolla
create_field("NUMBOLLA", -1, 12, _alfafld); // numero bolla create_field("NUMBOLLA", -1, 12, _alfafld); // numero bolla
create_field("DATABOLLA", -1, 8, _longfld); // data bolla create_field("DATABOLLA", -1, 8, _longzerofld); // data bolla
create_field("QTACONS", -1, 7, _realfld); // qta consegnata create_field("QTACONS", -1, 7, _realfld); // qta consegnata
create_field("QTARESA", -1, 7, _realfld); // qta resa create_field("QTARESA", -1, 7, _realfld); // qta resa
create_field("CODDIP", -1, 1, _alfafld); // codice dipendenza create_field("CODDIP", -1, 1, _alfafld, true, TVariant(dipendenza)); // codice dipendenza
create_field("FINE-REC", -1, 2, _alfafld, true, TVariant("\r\n")); // a capo create_field("FINE-REC", -1, 2, _alfafld, true, TVariant("\r\n")); // a capo
} }
/////////////////////////////////////// ///////////////////////////////////////
@ -222,9 +230,6 @@ TFilename THardy_esselunga::scrivi_testata(const TMask& mask)
void THardy_esselunga::elabora(const TMask& mask) void THardy_esselunga::elabora(const TMask& mask)
{ {
TLog_report log; TLog_report log;
// lettura dei dati fissi da configurazione
TConfig config(CONFIG_DITTA, "ha");
const TString16 cod_hardy = config.get("Esselunga_CodHardy");
const TString4 dipendenza = mask.get(F_DIPENDENZA); const TString4 dipendenza = mask.get(F_DIPENDENZA);
TFilename file_privat = scrivi_testata(mask); TFilename file_privat = scrivi_testata(mask);
TISAM_recordset recset(""); TISAM_recordset recset("");
@ -233,7 +238,8 @@ void THardy_esselunga::elabora(const TMask& mask)
log.log(1, "Non esistono documenti che soddisfano i parametri selezionati."); log.log(1, "Non esistono documenti che soddisfano i parametri selezionati.");
// lettura dei documenti da recordset // lettura dei documenti da recordset
TProgind pi(recset.items(), TR("Elaborazione documenti in corso..."), true, true); TProgind pi(recset.items(), TR("Elaborazione documenti in corso..."), true, true);
TPrivat_recordset privat; TPrivat_recordset privat(dipendenza);
TCodArtEsselunga_cache cache_ca;
for (bool ok = recset.move_first(); ok; ok = recset.move_next()) for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{ {
if (!pi.addstatus(1)) if (!pi.addstatus(1))
@ -247,18 +253,18 @@ void THardy_esselunga::elabora(const TMask& mask)
TDocumento* doc = new TDocumento(recset.cursor()->curr()); TDocumento* doc = new TDocumento(recset.cursor()->curr());
// passo tutte le righe del documento all'AS400recordset // passo tutte le righe del documento all'AS400recordset
FOR_EACH_PHYSICAL_RDOC(*doc, r, rigadoc) FOR_EACH_PHYSICAL_RDOC(*doc, r, rigadoc)
{ {
TString80 codart_esselunga = ""; // decodifica tramite cache() const TString80& codart_esselunga = cache_ca.decode(rigadoc->get(RDOC_CODART));
privat.new_rec(""); privat.new_rec("");
privat.set("CDC", TVariant(codcf_esselunga)); privat.set("CDC", TVariant(codcf_esselunga));
privat.set("CODART", rigadoc->get(RDOC_CODART)); privat.set("CODART", codart_esselunga);
privat.set("CODFORN", cod_hardy); privat.set("NUMBOLLA", "000000000000");
//privat.set("TIPOBOLLA",
//privat.set("NUMBOLLA",
privat.set("DATABOLLA", recset.get(DOC_DATADOC)); privat.set("DATABOLLA", recset.get(DOC_DATADOC));
privat.set("QTACONS", rigadoc->get(RDOC_QTA)); real qta = rigadoc->get_real(RDOC_QTA);
//privat.set("QTARESA",); TString16 qtastr = qta.string(8,2,'0');
privat.set("CODDIP", TVariant(dipendenza)); qtastr.strip(".");
privat.set("QTACONS", qtastr);
privat.set("QTARESA", "0000000");
} //FOR_EACH... } //FOR_EACH...
delete doc; delete doc;
} // if check_cliente... } // if check_cliente...