diff --git a/ha/hacnv100a.ini b/ha/hacnv100a.ini index 3acaa33fa..027e1a563 100755 --- a/ha/hacnv100a.ini +++ b/ha/hacnv100a.ini @@ -482,7 +482,7 @@ DATACOMP = DATADOC = DataDocumento DATA74TER = MESELIQ = -NUMDOC = _STREXPR,LEFT(NumDocumento; 7) +NUMDOC = _STREXPR,RIGHT(NumDocumento; 7) //TIPODOC = *** conversione FlTipoDocumento CODCAUS = IdCausale DESCR = Descrizione1 diff --git a/ha/hacnv300.cpp b/ha/hacnv300.cpp index c97a9031e..ec196fd4e 100755 --- a/ha/hacnv300.cpp +++ b/ha/hacnv300.cpp @@ -9,58 +9,124 @@ #include #include #include +#include +#include "../cg/cglib01.h" +#include "../cg/cg2103.h" +#include "../cg/cgsaldac.h" +#include "../cg/cgpagame.h" + +#include const char* const APPNAME = TR("Importazione scadenze"); -/////////////////////////////////////////////////////////// -// Trasferimenti veri e propri -/////////////////////////////////////////////////////////// - -class THardy_scadenze : public THardy_transfer -{ -public: - virtual bool trasferisci(); -}; - /////////////////////////////////////////////////////////// // THardy_scadenze /////////////////////////////////////////////////////////// +class THardy_scadenze : public THardy_transfer +{ +protected: + void conto2billcampo(const TString& hd_tipoc, const TString& hd_key, TBill& conto); +public: + virtual bool trasferisci(); +}; + +// calcola conto campo a partire da conto hardy +void THardy_scadenze::conto2billcampo(const TString& hd_tipoc, const TString& hd_key, TBill& conto) +{ + TConfig& ini = config(); + int gr, co; + long so; + char tipoc; + char tipocc = hd_tipoc[0]; + switch (tipocc) + { + case 'S': + { + tipoc = ' '; + hd_key2conto(hd_key, gr, co, so); + } + break; + case 'C': + { + tipoc = 'C'; + gr = ini.get_int("CLI_GRUPPO", "Parametri"); + co = ini.get_int("CLI_CONTO", "Parametri"); + so = hd_key2cli(hd_key); + } + break; + case 'F': + { + tipoc = 'F'; + gr = ini.get_int("FOR_GRUPPO", "Parametri"); + co = ini.get_int("FOR_CONTO", "Parametri"); + so = hd_key2forn(hd_key); + } + break; + default: + { + tipoc = ' '; + gr = co = so = 0; + } + break; + } + conto.set(gr, co, so, tipoc); +} + bool THardy_scadenze::trasferisci() { - /* TString query = "SELECT * " - "FROM dbo.Scadenze" + "FROM dbo.Scadenze " + "WHERE Esercizio=2010"; "ORDER BY dbo.Scadenze.Esercizio, dbo.Scadenze.Protocollo "; TRecordset& recset = create_recordset(query); THardy_iterator hi(this); - TPartita* game = NULL; int curr_ese = 0; int curr_pro = 0; - real importo = ZERO; - + const TDate datareg(TODAY); + TDate datascad, datadoc; + TString16 numdoc; + TImporto importo; + TBill clifo; while (++hi) { - const int esercizio = get("Esercizio").as_int(); - const int protocollo = get("Protocollo").as_int(); + const int esercizio = get_long("Esercizio"); + const int protocollo = get_long("Protocollo"); if ((esercizio != curr_ese) || (protocollo != curr_pro)) { // se la partita non è a zero, scrivo una scadenza - if (importo != ZERO) - //write_scadenza(); - importo = ZERO; + if (!importo.is_zero()) + { + TPartita game(clifo, curr_ese, format("%7d", curr_pro)); + TRiga_partite& partita = game.new_row(); + partita.put(PART_DATAREG, datareg); + partita.put(PART_DATADOC, datadoc); + partita.put(PART_NUMDOC, numdoc); + partita.add(PART_IMPTOTDOC, importo.valore()); + partita.put(PART_IMPORTO, importo.valore()); + TRiga_scadenze& scadenza = partita.new_row(); + scadenza.put(SCAD_DATASCAD, datascad); + scadenza.put(SCAD_IMPORTO, importo.valore()); + game.write(); + } + const TString& key = get_str("IdConto"); + TString4 hdtipoc = get_str("IdContoTp"); + conto2billcampo(hdtipoc, key, clifo); + importo.reset(); + datascad = TDate(get_str("DataScadenza")); + datadoc = TDate(get_str("DataDocumento")); + numdoc = get_str("NumDocumento"); + numdoc = numdoc.right(7); curr_ese = esercizio; curr_pro = protocollo; } - real importo_dare = get_real("Dare"); - real importo_avere = get_real("Avere"); - importo+=(importo_dare-importo_avere); + TImporto importo_res('D', get_real("Dare") - get_real("Avere")); + importo += importo_res; } - */ return write_enabled(); }