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())
{
TFilename path = get(F_PATH);
path << "clifo.txt";
TSystemisamfile clifo(LF_CLIFO);
clifo.overwrite(path);
}
else
{
TString query_header;
query_header << "ODBC(" << get(F_DSN1) << ',' << get(F_USR1) << ',' << get(F_PWD1) << ")\n";
TGalileo_clifo pc;
pc.set_data_limite(get_date(F_DATA));
@ -525,6 +529,7 @@ void TTrasferimentoGalileo_mask::trasferisci()
if (dsn.empty())
{
TFilename path = get(F_PATH);
path << "anamag.txt";
TSystemisamfile anamag(LF_ANAMAG);
anamag.overwrite(path);
@ -536,12 +541,31 @@ void TTrasferimentoGalileo_mask::trasferisci()
else
{
TString query_header;
query_header << "ODBC(" << get(F_DSN2) << ',' << get(F_USR2) << ',' << get(F_PWD2) << ")\n";
TGalileo_articoli pc;
pc.init(TR("Articoli"), query_header, log);
pc.set_data_limite(get_date(F_DATA));
pc.set_path(get(F_PATH));
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);
pc.dump();
rep_to_print = true;

View File

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

View File

@ -14,7 +14,13 @@
#define F_DSN2 204
#define F_USR2 205
#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

View File

@ -104,9 +104,45 @@ BEGIN
FLAGS "*"
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
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
ENDPAGE

View File

@ -116,10 +116,12 @@ bool TGalileo_clifo::trasferisci()
TLocalisamfile clifo(LF_CLIFO);
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);
while (++pi)
while (++pi)
{
const TString& contca = get_str("CONTCA");
const char tipocf = get_str("CLFOCP")[0];
@ -224,14 +226,14 @@ TGalileo_clifo::~TGalileo_clifo()
bool select_umart(const TRectype & rec, TObject * 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;
}
bool select_articoli(const TRectype & rec, TObject * 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;
}
@ -258,18 +260,22 @@ bool TGalileo_articoli::dump()
if (campo_orig.full())
lista_dump.add(campo_dest);
}
ini.list_variables(lista_anamag, true, "UMART", true);
TToken_string lista_umart;
FOR_EACH_ARRAY_ROW(lista_anamag,k,rowu)
lista_dump.add(ANAMAG_ULTCOS1);
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);
lista_umart.add(campo_dest);
lista_dump_umart.add(campo_dest);
}
TSystemisamfile anamag(LF_ANAMAG);
TSystemisamfile umart(LF_UMART);
TFilename path = _path;
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);
if (err != NOERR)
log("Errore di scrittura umart.txt", 2);
@ -306,6 +312,8 @@ bool TGalileo_articoli::trasferisci()
TLocalisamfile umart(LF_UMART);
TRectype& rec_anamag = anamag.curr();
TRectype& rec_umart = umart.curr();
_keys_articoli.destroy();
_keys_umart.destroy();
TGalileo_iterator pi(this);
while (++pi)
@ -355,6 +363,33 @@ bool TGalileo_articoli::trasferisci()
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)
{
TRectype& rec = file.curr();
@ -396,6 +431,11 @@ bool TGalileo_articoli::aggiorna_record(TLocalisamfile& file, const TString_arra
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()