Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21807 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bb5905b448
commit
a43ea43565
104
ha/ha2100.cpp
104
ha/ha2100.cpp
@ -5,6 +5,7 @@
|
||||
#include <recset.h>
|
||||
#include <reputils.h>
|
||||
#include <textset.h>
|
||||
#include <utility.h>
|
||||
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
@ -17,23 +18,6 @@
|
||||
|
||||
const char* const APPNAME = TR("Esselunga: generazione file Privat");
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TEsselunga_recordset: serve per potre scrivere il primo record che e' diverso dagli altri
|
||||
///////////////////////////////////////////////////////////
|
||||
class TEsselunga_recordset : public TAS400_recordset
|
||||
{
|
||||
protected:
|
||||
//esportazione
|
||||
void add_field(const char* name, const char* tipo, int pos, int len);
|
||||
void insert_field(const char* name, const char* tipo, int pos, int len);
|
||||
void add_eol_field();
|
||||
//importazione
|
||||
void add_trc_field(const char* tr, const char* name, const char* tipo, int pos, int len);
|
||||
|
||||
public:
|
||||
TEsselunga_recordset(const int rec_length);
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAutomask
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -119,7 +103,7 @@ public:
|
||||
};
|
||||
|
||||
TPrivat_recordset::TPrivat_recordset()
|
||||
: TAS400_recordset("AS400(51)")
|
||||
: TAS400_recordset("AS400(53)")
|
||||
{
|
||||
create_field("CDC", -1, 3, _intfld); // centro di costo
|
||||
create_field("CODART", -1, 6, _longfld); // codice articolo
|
||||
@ -130,6 +114,7 @@ TPrivat_recordset::TPrivat_recordset()
|
||||
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
|
||||
}
|
||||
|
||||
///////////////////////////////////////
|
||||
@ -141,7 +126,8 @@ protected:
|
||||
long genera_recordset(const TMask& mask, TISAM_recordset& recset);
|
||||
void elabora(const TMask& mask);
|
||||
void check_date(const TDate& datafine, TDate& dataini);
|
||||
long check_cliente(const long codcf);
|
||||
long check_cliente(const long codcf, const TString4 dipendenza);
|
||||
TFilename scrivi_testata(const TMask& mask);
|
||||
|
||||
public:
|
||||
virtual void main_loop();
|
||||
@ -202,22 +188,45 @@ long THardy_esselunga::genera_recordset(const TMask& mask, TISAM_recordset& recs
|
||||
recset.set_var("#DATAFIN", datafin);
|
||||
return recset.items();
|
||||
}
|
||||
TFilename THardy_esselunga::scrivi_testata(const TMask& mask)
|
||||
{
|
||||
const TString4 dipendenza = mask.get(F_DIPENDENZA);
|
||||
TConfig config(CONFIG_DITTA, "ha");
|
||||
TFilename file_privat = config.get("Esselunga_Path");
|
||||
if (dipendenza[0] == 'D')
|
||||
file_privat.add("CDMI");
|
||||
else
|
||||
file_privat.add("CDFI");
|
||||
file_privat.ext("txt");
|
||||
ofstream file_output(file_privat);
|
||||
TString record(260);
|
||||
// tipo record/filler/tot_record/progr_record
|
||||
record = "PVT*?*001001";
|
||||
// nome del file
|
||||
record << file_privat.name();
|
||||
// identificativo mittente
|
||||
record.overwrite(config.get("Esselunga_PIvaEsselunga"), 85);
|
||||
record.overwrite(config.get("Esselunga_TipoEmissione"), 120);
|
||||
// identificativo destinatario
|
||||
record.overwrite(config.get("Esselunga_PIvaHardy"), 138);
|
||||
record.overwrite(config.get("Esselunga_TipoEmissione"), 173);
|
||||
// formato (Ascii)
|
||||
record.overwrite("A", 191);
|
||||
// identificativo univoco del documento
|
||||
record.overwrite("0000000000000001", 243);
|
||||
file_output << record << endl;
|
||||
file_output.close();
|
||||
return file_privat;
|
||||
}
|
||||
|
||||
void THardy_esselunga::elabora(const TMask& mask)
|
||||
{
|
||||
TLog_report log;
|
||||
// lettura dei dati fissi da configurazione
|
||||
TConfig config(CONFIG_DITTA, "ha");
|
||||
const TString16 piva_esselunga = config.get("Esselunga_PIvaEsselunga");
|
||||
const TString16 piva_hardy = config.get("Esselunga_PIvaHardy");
|
||||
const TString16 cod_hardy = config.get("Esselunga_CodHardy");
|
||||
const TString16 tipo_emissione = config.get("Esselunga_TipoEmissione");
|
||||
const TString4 dipendenza = mask.get(F_DIPENDENZA);
|
||||
TFilename file_privat = config.get("Esselunga_Path");
|
||||
if (dipendenza[0] == 'D')
|
||||
file_privat.add("CDMI");
|
||||
else
|
||||
file_privat.add("CDFI");
|
||||
TFilename file_privat = scrivi_testata(mask);
|
||||
TISAM_recordset recset("");
|
||||
const long items = genera_recordset(mask, recset);
|
||||
if (items == 0)
|
||||
@ -242,33 +251,46 @@ void THardy_esselunga::elabora(const TMask& mask)
|
||||
TString80 codart_esselunga = ""; // decodifica tramite cache()
|
||||
privat.new_rec("");
|
||||
privat.set("CDC", TVariant(codcf_esselunga));
|
||||
/*
|
||||
privat.set("CODART",
|
||||
privat.set("CODFORN",
|
||||
privat.set("TIPOBOLLA",
|
||||
privat.set("NUMBOLLA",
|
||||
privat.set("DATABOLLA",
|
||||
privat.set("QTACONS",
|
||||
privat.set("QTARESA",
|
||||
*/
|
||||
privat.set("CODART", rigadoc->get(RDOC_CODART));
|
||||
privat.set("CODFORN", cod_hardy);
|
||||
//privat.set("TIPOBOLLA",
|
||||
//privat.set("NUMBOLLA",
|
||||
privat.set("DATABOLLA", recset.get(DOC_DATADOC));
|
||||
privat.set("QTACONS", rigadoc->get(RDOC_QTA));
|
||||
//privat.set("QTARESA",);
|
||||
privat.set("CODDIP", TVariant(dipendenza));
|
||||
} //FOR_EACH...
|
||||
delete doc;
|
||||
} // if check_cliente...
|
||||
} //for (bool ok = recset.move_first()...
|
||||
|
||||
//se elaborazione definitiva -> cambia lo stato ai documenti di vendita elaborati, mettendolo uguale..
|
||||
//..a quello deciso in configurazione
|
||||
const bool definitivo = mask.get_bool(F_DEFINITIVO);
|
||||
TFilename tempfile;
|
||||
tempfile.temp();
|
||||
privat.save_as(tempfile, fmt_text);
|
||||
fcopy(tempfile, file_privat, true);
|
||||
// memorizzo su campo virtuale che il doc. e' stato inviato
|
||||
const bool definitivo = mask.get_bool(F_DEFINITIVO);
|
||||
if (definitivo)
|
||||
{
|
||||
|
||||
}
|
||||
log.print_or_preview();
|
||||
}
|
||||
|
||||
long THardy_esselunga::check_cliente(const long codcf)
|
||||
long THardy_esselunga::check_cliente(const long codcf, const TString4 dipendenza)
|
||||
{
|
||||
return true;
|
||||
long codcf_hardy = -1;
|
||||
TString key;
|
||||
key.format("%ld", codcf);
|
||||
const TRectype rec_cliente = cache().get("&CEL", key);
|
||||
const bool invio = rec_cliente.get_bool("B0");
|
||||
if (invio)
|
||||
{
|
||||
const char dip_cliente = rec_cliente.get("S1")[0];
|
||||
if (dip_cliente == dipendenza[0])
|
||||
codcf_hardy = rec_cliente.get_long("I0");
|
||||
}
|
||||
return codcf_hardy;
|
||||
}
|
||||
|
||||
void THardy_esselunga::main_loop()
|
||||
|
Loading…
x
Reference in New Issue
Block a user