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);
public:
const TString& decode(const TString& codart);
TCodArtEsselunga_cache() {}
};
@ -81,7 +82,7 @@ TObject* TCodArtEsselunga_cache::key2obj(const char* key)
{
TToken_string code(key);
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");
codcorr.set_var("#COD", TVariant(codart));
codcorr.set_var("#CODCF", TVariant(codcf));
@ -93,28 +94,35 @@ TObject* TCodArtEsselunga_cache::key2obj(const char* key)
return NULL;
}
const TString& TCodArtEsselunga_cache::decode(const TString& codart)
{
return *(const TString*)objptr(codart);
}
/////////////////////////////////////////////////////////////
// Recordset per file privat
/////////////////////////////////////////////////////////////
class TPrivat_recordset : public TAS400_recordset
{
public:
TPrivat_recordset();
TPrivat_recordset(const TString4 dipendenza);
};
TPrivat_recordset::TPrivat_recordset()
TPrivat_recordset::TPrivat_recordset(const TString4 dipendenza)
: TAS400_recordset("AS400(53)")
{
create_field("CDC", -1, 3, _intfld); // centro di costo
create_field("CODART", -1, 6, _longfld); // codice articolo
create_field("CODFORN", -1, 6, _longfld); // codice fornitore
create_field("TIPOBOLLA", -1, 1, _alfafld); // tipo bolla
TConfig config(CONFIG_DITTA, "ha");
const TString16 cod_hardy = config.get("Esselunga_CodHardy");
create_field("CDC", -1, 3, _intzerofld); // centro di costo
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("DATABOLLA", -1, 8, _longfld); // data bolla
create_field("DATABOLLA", -1, 8, _longzerofld); // data bolla
create_field("QTACONS", -1, 7, _realfld); // qta consegnata
create_field("QTARESA", -1, 7, _realfld); // qta resa
create_field("CODDIP", -1, 1, _alfafld); // codice dipendenza
create_field("FINE-REC", -1, 2, _alfafld, true, TVariant("\r\n")); // a capo
create_field("CODDIP", -1, 1, _alfafld, true, TVariant(dipendenza)); // codice dipendenza
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)
{
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);
TFilename file_privat = scrivi_testata(mask);
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.");
// lettura dei documenti da recordset
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())
{
if (!pi.addstatus(1))
@ -247,18 +253,18 @@ void THardy_esselunga::elabora(const TMask& mask)
TDocumento* doc = new TDocumento(recset.cursor()->curr());
// passo tutte le righe del documento all'AS400recordset
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.set("CDC", TVariant(codcf_esselunga));
privat.set("CODART", rigadoc->get(RDOC_CODART));
privat.set("CODFORN", cod_hardy);
//privat.set("TIPOBOLLA",
//privat.set("NUMBOLLA",
privat.set("CODART", codart_esselunga);
privat.set("NUMBOLLA", "000000000000");
privat.set("DATABOLLA", recset.get(DOC_DATADOC));
privat.set("QTACONS", rigadoc->get(RDOC_QTA));
//privat.set("QTARESA",);
privat.set("CODDIP", TVariant(dipendenza));
real qta = rigadoc->get_real(RDOC_QTA);
TString16 qtastr = qta.string(8,2,'0');
qtastr.strip(".");
privat.set("QTACONS", qtastr);
privat.set("QTARESA", "0000000");
} //FOR_EACH...
delete doc;
} // if check_cliente...