Patch level : 4.0 614

Ricompilazione Demo : [ ]
Commento            :

Aggiunta importazione ultimo costo per commessa cantiere


git-svn-id: svn://10.65.10.50/trunk@14875 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2007-02-09 10:24:22 +00:00
parent be1c6437c2
commit c32a5ad866
5 changed files with 121 additions and 11 deletions

View File

@ -501,13 +501,17 @@ void TTrasferimentoGalileo_mask::trasferisci()
if (dsn.empty()) if (dsn.empty())
{ {
TFilename path = get(F_PATH); TFilename path = get(F_PATH);
path << "clifo.txt"; path << "clifo.txt";
TSystemisamfile clifo(LF_CLIFO); TSystemisamfile clifo(LF_CLIFO);
clifo.overwrite(path); clifo.overwrite(path);
} }
else else
{ {
TString query_header; TString query_header;
query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n"; query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n";
TGalileo_clifo pc; TGalileo_clifo pc;
pc.set_data_limite(get_date(F_DATA)); pc.set_data_limite(get_date(F_DATA));
@ -525,6 +529,7 @@ void TTrasferimentoGalileo_mask::trasferisci()
if (dsn.empty()) if (dsn.empty())
{ {
TFilename path = get(F_PATH); TFilename path = get(F_PATH);
path << "anamag.txt"; path << "anamag.txt";
TSystemisamfile anamag(LF_ANAMAG); TSystemisamfile anamag(LF_ANAMAG);
anamag.overwrite(path); anamag.overwrite(path);
@ -536,12 +541,31 @@ void TTrasferimentoGalileo_mask::trasferisci()
else else
{ {
TString query_header; TString query_header;
query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n"; query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n";
TGalileo_articoli pc; TGalileo_articoli pc;
pc.init(TR("Articoli"), query_header, log); pc.init(TR("Articoli"), query_header, log);
pc.set_data_limite(get_date(F_DATA)); pc.set_data_limite(get_date(F_DATA));
pc.set_path(get(F_PATH)); pc.set_path(get(F_PATH));
go_on = pc.trasferisci(); go_on = pc.trasferisci();
TString80 dsnc = get(F_DSN3);
if (dsnc.full())
{
TString query_header_c;
query_header_c << "ODBC(" << get(F_DSN3) << ',' << get(F_USR3) << ',' << get(F_PWD3) << ")\n";
TGalileo_articoli pcc;
TString80 ditta(get(F_DITTA));
TString80 cms(get(F_CMS));
TString80 can(get(F_CANT));
pcc.init(TR("Costi"), query_header_c, log);
pcc.set_path(get(F_PATH));
go_on = pcc.trasferisci_costi(ditta, cms, can);
}
book.add(rep); book.add(rep);
pc.dump(); pc.dump();
rep_to_print = true; rep_to_print = true;

View File

@ -145,6 +145,9 @@ class TGalileo_articoli : public TGalileo_transfer
TFilename _path; TFilename _path;
TAssoc_array _keys_articoli; TAssoc_array _keys_articoli;
TAssoc_array _keys_umart; TAssoc_array _keys_umart;
long _ditta ;
TString _cms, _can;
protected: protected:
int cancella_articolo(TLocalisamfile& clifo) const; int cancella_articolo(TLocalisamfile& clifo) const;
@ -152,6 +155,7 @@ protected:
public: public:
virtual bool trasferisci(); virtual bool trasferisci();
virtual bool trasferisci_costi(const TString & ditta, const TString & cms, const TString & can);
virtual bool dump(); virtual bool dump();
const TAssoc_array & keys_articoli() const { return _keys_articoli;} const TAssoc_array & keys_articoli() const { return _keys_articoli;}
const TAssoc_array & keys_umart() const { return _keys_umart;} const TAssoc_array & keys_umart() const { return _keys_umart;}

View File

@ -14,7 +14,13 @@
#define F_DSN2 204 #define F_DSN2 204
#define F_USR2 205 #define F_USR2 205
#define F_PWD2 206 #define F_PWD2 206
#define F_DSN3 207
#define F_USR3 208
#define F_PWD3 209
#define F_PATH 207 #define F_PATH 210
#define F_DITTA 211
#define F_CMS 212
#define F_CANT 213
#endif #endif

View File

@ -104,9 +104,45 @@ BEGIN
FLAGS "*" FLAGS "*"
END END
GROUPBOX DLG_NULL 48 5
BEGIN
PROMPT 1 11 "@bParametri database per costi"
END
STRING F_DSN3 30
BEGIN
PROMPT 2 12 "DSN "
END
STRING F_USR3 16
BEGIN
PROMPT 2 13 "User "
END
STRING F_PWD3 16
BEGIN
PROMPT 2 14 "Password "
FLAGS "*"
END
STRING F_PATH 256 35 STRING F_PATH 256 35
BEGIN BEGIN
PROMPT 2 12 "Percorso file da importare/esportare " PROMPT 2 16 "Percorso file da importare/esportare "
END
STRING F_CODDITTA 5
BEGIN
PROMPT 2 17 "Codice ditta Galileo "
END
STRING F_CMS 5
BEGIN
PROMPT 2 18 "Codice commessa Galileo "
END
STRING F_CANT 5
BEGIN
PROMPT 2 19 "Codice cantiere Galileo "
END END
ENDPAGE ENDPAGE

View File

@ -116,10 +116,12 @@ bool TGalileo_clifo::trasferisci()
TLocalisamfile clifo(LF_CLIFO); TLocalisamfile clifo(LF_CLIFO);
TRectype& rec_clifo = clifo.curr(); TRectype& rec_clifo = clifo.curr();
TRecord_cache cache_comuni(LF_COMUNI, 2); _keys.destroy();
TRecord_cache cache_comuni(LF_COMUNI, 2);
TGalileo_iterator pi(this); TGalileo_iterator pi(this);
while (++pi)
while (++pi)
{ {
const TString& contca = get_str("CONTCA"); const TString& contca = get_str("CONTCA");
const char tipocf = get_str("CLFOCP")[0]; const char tipocf = get_str("CLFOCP")[0];
@ -224,14 +226,14 @@ TGalileo_clifo::~TGalileo_clifo()
bool select_umart(const TRectype & rec, TObject * myself) bool select_umart(const TRectype & rec, TObject * myself)
{ {
TGalileo_articoli * c = (TGalileo_articoli *) myself; TGalileo_articoli * c = (TGalileo_articoli *) myself;
const TString80 key(rec.build_key()); const TString key(rec.build_key(1));
return c->keys_umart().objptr(key) != NULL; return c->keys_umart().objptr(key) != NULL;
} }
bool select_articoli(const TRectype & rec, TObject * myself) bool select_articoli(const TRectype & rec, TObject * myself)
{ {
TGalileo_articoli * c = (TGalileo_articoli *) myself; TGalileo_articoli * c = (TGalileo_articoli *) myself;
const TString80 key(rec.build_key()); const TString key(rec.build_key(1));
return c->keys_articoli().objptr(key) != NULL; return c->keys_articoli().objptr(key) != NULL;
} }
@ -258,18 +260,22 @@ bool TGalileo_articoli::dump()
if (campo_orig.full()) if (campo_orig.full())
lista_dump.add(campo_dest); lista_dump.add(campo_dest);
} }
ini.list_variables(lista_anamag, true, "UMART", true); lista_dump.add(ANAMAG_ULTCOS1);
TToken_string lista_umart;
FOR_EACH_ARRAY_ROW(lista_anamag,k,rowu) TString_array lista_umart;
TToken_string lista_dump_umart;
ini.list_variables(lista_umart, true, "UMART", true);
FOR_EACH_ARRAY_ROW(lista_umart,k,rowu)
{ {
rowu->get(0, campo_dest); rowu->get(0, campo_dest);
lista_umart.add(campo_dest); lista_dump_umart.add(campo_dest);
} }
TSystemisamfile anamag(LF_ANAMAG); TSystemisamfile anamag(LF_ANAMAG);
TSystemisamfile umart(LF_UMART); TSystemisamfile umart(LF_UMART);
TFilename path = _path; TFilename path = _path;
path.add("umart.txt"); path.add("umart.txt");
int err = umart.dump(path, lista_umart, 1, '|', '\0', '\n', true, false, int err = umart.dump(path, lista_dump_umart, 1, '|', '\0', '\n', true, false,
NULL, select_umart, this); NULL, select_umart, this);
if (err != NOERR) if (err != NOERR)
log("Errore di scrittura umart.txt", 2); log("Errore di scrittura umart.txt", 2);
@ -306,6 +312,8 @@ bool TGalileo_articoli::trasferisci()
TLocalisamfile umart(LF_UMART); TLocalisamfile umart(LF_UMART);
TRectype& rec_anamag = anamag.curr(); TRectype& rec_anamag = anamag.curr();
TRectype& rec_umart = umart.curr(); TRectype& rec_umart = umart.curr();
_keys_articoli.destroy();
_keys_umart.destroy();
TGalileo_iterator pi(this); TGalileo_iterator pi(this);
while (++pi) while (++pi)
@ -355,6 +363,33 @@ bool TGalileo_articoli::trasferisci()
return write_enabled(); return write_enabled();
} }
bool TGalileo_articoli::trasferisci_costi(const TString & ditta, const TString & cms, const TString & can)
{
TString query =
"SELECT M2RIS, M2CMD FROM GMRIS00F\n"
"WHERE (M2AZI='";
query << ditta <<" ) AND (M2COM='" << cms <<"') AND (M2CAN='" << can << "')";
TRecordset& recset = create_recordset(query);
TLocalisamfile anamag(LF_ANAMAG);
TRectype& rec_anamag = anamag.curr();
TGalileo_iterator pi(this);
while (++pi)
{
const TString& codart = get_str("M2RIS");
rec_anamag.zero();
rec_anamag.put(ANAMAG_CODART, codart);
bool good = anamag.read() == NOERR;
if (good)
{
anamag.put(ANAMAG_ULTCOS1, get_str("M2CMD"));
return test_rewrite(anamag);
}
}
return write_enabled();
}
bool TGalileo_articoli::aggiorna_record(TLocalisamfile& file, const TString_array& lista_campi) bool TGalileo_articoli::aggiorna_record(TLocalisamfile& file, const TString_array& lista_campi)
{ {
TRectype& rec = file.curr(); TRectype& rec = file.curr();
@ -396,6 +431,11 @@ bool TGalileo_articoli::aggiorna_record(TLocalisamfile& file, const TString_arra
TGalileo_articoli::TGalileo_articoli() TGalileo_articoli::TGalileo_articoli()
{ {
TConfig c(CONFIG_DITTA);
_ditta = c.get_long("GalDitta");
_cms = c.get("GalCommessa");
_can = c.get("GalCantiere");
} }
TGalileo_articoli::~TGalileo_articoli() TGalileo_articoli::~TGalileo_articoli()