From 86f42becf9ab794e017e378288dcbcbfd659d287 Mon Sep 17 00:00:00 2001 From: guy <guy@c028cbd2-c16b-5b4b-a496-9718f37d4682> Date: Sat, 29 Oct 2011 08:35:57 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : Generazione record per tutta la gerarchia di subagenti, agenti e capozona git-svn-id: svn://10.65.10.50/branches/R_10_00@22471 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ha/ha1100.cpp | 6 +- ha/ha1200.cpp | 40 +++--- ha/ha1250.cpp | 347 +++++++++++++++++++++++++++++++++++++++++++++++++- ha/ha1250.h | 193 +++++++++++++++++++++++++++- ha/halib.cpp | 331 ----------------------------------------------- ha/halib.h | 191 +-------------------------- 6 files changed, 569 insertions(+), 539 deletions(-) diff --git a/ha/ha1100.cpp b/ha/ha1100.cpp index 3ae113053..d3adb5d59 100755 --- a/ha/ha1100.cpp +++ b/ha/ha1100.cpp @@ -8,9 +8,12 @@ #include <pagsca.h> #include <partite.h> #include <scadenze.h> -#include "../mg/umart.h" + #include "halib.h" +#include "ha1250.h" + +#include <mov.h> class THardy_config : public TConfig @@ -519,7 +522,6 @@ void TIni2Txt::main_loop() //prodotti if (ini_paragraphs.find("47") >= 0) genera_prodotto_var_txt(input_ini_file); - } } diff --git a/ha/ha1200.cpp b/ha/ha1200.cpp index 5433bac03..178a4c1ab 100755 --- a/ha/ha1200.cpp +++ b/ha/ha1200.cpp @@ -110,7 +110,6 @@ bool TFile2Txt::genera_nomi_output(const char* nome, TFilename& txt, TFilename& return txt.exist(); } - bool TFile2Txt::salva_recordset(TRecordset& recset, const char* nome) const { TFilename txt_path, tmp_path; @@ -185,6 +184,8 @@ bool TFile2Txt::genera_agenti_txt() agenti.set("CodiceTerminale", codage); agenti.set(AGE_CODAGE, codage); agenti.set(AGE_RAGSOC, archivio_agenti.get(AGE_RAGSOC)); + + agenti.duplica_capi_zona(); } return salva_recordset(agenti, "agenti"); @@ -255,8 +256,7 @@ bool TFile2Txt::genera_clienti_txt(const long da_codcli) //il codice terminale � il codagente legato al cliente (codice agente lungo 5, codice terminale lungo 3) const TString8 codage = archivio_clienti.get("CFVEN.CODAG").as_string(); - const TString4 codterm = codage.right(3); - clienti.set("CodiceTerminale", codterm); + clienti.set("CodiceTerminale", codage.right(3)); const long codcf = archivio_clienti.get(CLI_CODCF).as_int(); clienti.set("CodiceCliente", codcf); @@ -355,6 +355,7 @@ bool TFile2Txt::genera_clienti_txt(const long da_codcli) s='S'; clienti.set("NoConsegna", TVariant(s));*/ + clienti.duplica_capi_zona(); } //for (bool ok = archivio_clienti.move_first()... return salva_recordset(clienti, "clienti"); @@ -420,6 +421,8 @@ bool TFile2Txt::genera_sospesi_txt(const long da_codcli) cod_partita << anno << "-" << numpart; sospesi.set("Partita", cod_partita); sospesi.set("TipoDocumento", "F"); + + sospesi.duplica_capi_zona(); } } @@ -435,8 +438,7 @@ bool TFile2Txt::genera_righelistini_txt() const long agenti_items = agenti.items(); for (bool ok = agenti.move_first(); ok; ok = agenti.move_next()) { - TString8 codage = agenti.get(AGE_CODAGE).as_string(); - codage = codage.right(3); + const TString4 codage = agenti.get(AGE_CODAGE).as_string().right(3); TString query; query << "USE RCONDV"; @@ -473,6 +475,8 @@ bool TFile2Txt::genera_righelistini_txt() const TString& str_sconto = archivio_rcondv.get(RCONDV_SCONTO).as_string(); righe_listini.set(RCONDV_SCONTO, hd_find_sconto(str_sconto)); + + righe_listini.duplica_capi_zona(); } } @@ -520,6 +524,8 @@ bool TFile2Txt::genera_contratti_txt() const TDate dataini = archivio_rcondv.get("CONDV.VALIN").as_date(); righe_contratti.set(CONDV_VALIN, hd_format_date8(dataini)); righe_contratti.set(CONDV_VALFIN, hd_format_date8(datafine)); + + righe_contratti.duplica_capi_zona(); } return salva_recordset(righe_contratti, "particolari"); @@ -596,14 +602,9 @@ bool TFile2Txt::genera_prodotti_txt() bool TFile2Txt::genera_barcode_txt() { TEsporta_barcode_recordset barcode; - - TString query; - query << "USE CODCORR"; - query << "\nSELECT (TIPO=#TIPO)"; - - TISAM_recordset archivio_codcorr(query); - TConfig config(CONFIG_DITTA, "ha"); - const TString& tipo = config.get("TipoBarcode"); + + TISAM_recordset archivio_codcorr("USE CODCORR SELECT (TIPO=#TIPO)"); + const TString& tipo = ini_get_string(CONFIG_DITTA, "ha", "TipoBarcode"); archivio_codcorr.set_var("#TIPO", tipo); const long archivio_codcorr_items = archivio_codcorr.items(); @@ -613,11 +614,8 @@ bool TFile2Txt::genera_barcode_txt() progind.addstatus(1); barcode.new_rec(""); - - const TString& codice_a_barre = archivio_codcorr.get(CODCORR_CODARTALT).as_string(); - barcode.set(CODCORR_CODARTALT, codice_a_barre); - const TString& codice_art = archivio_codcorr.get(CODCORR_CODART).as_string(); - barcode.set(CODCORR_CODART, codice_art); + barcode.set(CODCORR_CODARTALT, archivio_codcorr.get(CODCORR_CODARTALT)); + barcode.set(CODCORR_CODART, archivio_codcorr.get(CODCORR_CODART)); } return salva_recordset(barcode, "barcode"); @@ -684,6 +682,8 @@ bool TFile2Txt::genera_attrezzature_txt() attrezzature.set("DataAssegnamento", hd_format_date8(data_ass)); TDate data_fabb = archivio_attr.get("D1").as_date(); attrezzature.set("DataFabbricazione", hd_format_date8(data_fabb)); + + attrezzature.duplica_capi_zona(); } salva_recordset(attrezzature, "attrezzature"); @@ -729,6 +729,8 @@ bool TFile2Txt::genera_attrezzature_txt() importo.round(); storico.set("Importo", importo); storico.set("ChiusuraComodato", archivio_storico.get("B0")); + + storico.duplica_capi_zona(); } return salva_recordset(storico, "storico"); @@ -835,6 +837,7 @@ bool TFile2Txt::genera_carico_txt(const TMask& mask) qta.round(); carico.set("QuantitaCaricata", qta); carico.set("CodiceLotto", archivio_rdoc.get(RDOC_LIVELLO)); + carico.duplica_capi_zona(); } return accoda_recordset(carico, "carico"); @@ -880,6 +883,7 @@ bool TFile2Txt::genera_ripristino_txt(const TMask& mask) qta.round(); ripristino.set("QuantitaCaricata", qta); ripristino.set("CodiceLotto", archivio_mag.get(MAG_LIVELLO)); + ripristino.duplica_capi_zona(); } return salva_recordset(ripristino, "carico"); diff --git a/ha/ha1250.cpp b/ha/ha1250.cpp index 421a3b2f8..82853cb3c 100755 --- a/ha/ha1250.cpp +++ b/ha/ha1250.cpp @@ -2,6 +2,7 @@ #include <config.h> #include <execp.h> #include <progind.h> +#include <recarray.h> #include <relation.h> #include <utility.h> @@ -226,4 +227,348 @@ bool THardy_transaction::create() */ return TSkeleton_application::create(); -} \ No newline at end of file +} + + +///////////////////////////////////////////////////////////// +// Recordset specifici per i dati da trasferire OUTPUT +///////////////////////////////////////////////////////////// +//questo serve solo per l'ultima riga con il return (\r\n) +void THardy_recordset::add_eol_field() +{ + create_field("ACapo", -1, 2, _alfafld, false, TVariant("\r\n")); +} + +//questo � il metodo magico che vale per tutti +void THardy_recordset::add_field(const char* name, const char* tipo, int pos, int len) +{ + const TFixed_string str_tipo(tipo); + if (str_tipo.ends_with("N")) + { + create_field(name, pos-1, len, _intzerofld); + return; + } + create_field(name, pos-1, len, _alfafld); +} + +void THardy_recordset::add_trc_field(const char* tr, const char* name, const char* tipo, int pos, int len) +{ + CHECK(tr && strlen(tr) == 2, "Lunghezza tipo record errata!!"); + TString80 trc_name; + trc_name << tr << '.' << name; + add_field(trc_name, tipo, pos, len); +} + +void THardy_recordset::insert_field(const char* name, const char* tipo, int pos, int len) +{ + if (pos >= 1) + { + TArray& trc = (TArray&)*_trc.first_item(); + FOR_EACH_ARRAY_ITEM(trc, r, itm) + { + TAS400_column_info& fld = (TAS400_column_info&)*itm; + if (fld._pos+1 >= pos) + { + fld._pos += len; + } + } + } + add_field(name, tipo, pos, len); +} + +void THardy_recordset::duplica_capi_zona() +{ + TString8 ct = get("CodiceTerminale").as_string(); + while (ct.full()) + { + ct.right_just(5, '0'); + ct = cache().get(LF_AGENTI, ct, AGE_CODCAPO).right(3); + if (ct.full()) + { + const TToken_string& r = row(items()-1); + new_rec(r); + set("CodiceTerminale", ct); + } + } +} + +//al costruttore viene passato come parametro la lunghezza del tracciato +THardy_recordset::THardy_recordset(const int rec_lenght) : TAS400_recordset("AS400()") +{ + TString16 query; + query << "AS400(" << rec_lenght << ")"; + TFilename cazzone; + parse_query(query, cazzone); +} + + +//Agenti +//------- +TEsporta_agenti_recordset::TEsporta_agenti_recordset() +: THardy_recordset(77) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field(AGE_CODAGE, T_N, 4, 3); //x + add_field("NonUsato", T_X, 7, 6); + add_field("Targa", T_X, 13, 8); + add_field("nDDT", T_N, 21, 5); + add_field("nFATT", T_N, 26, 5); + add_field("nBOLLA", T_N, 31, 5); + add_field(AGE_RAGSOC, T_X, 36, 30); //x + add_field("nORD", T_N, 66, 5); + add_field("nSAGIT", T_N, 71, 5); + add_eol_field(); +} + +//------------------------------------------------------------------------------------ +//Clienti +//------- + +void TEsporta_clienti_recordset::set_fatt(const char* fld_name, const TVariant& value, const bool is_fatt) +{ + TString80 new_fld_name = fld_name; + if (is_fatt) + new_fld_name << "Fatt"; + + THardy_recordset::set(new_fld_name, value); +} + +TEsporta_clienti_recordset::TEsporta_clienti_recordset(int recsize) : THardy_recordset(recsize) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field("CodiceCliente", T_N, 4, 6); //x + add_field("RagioneSociale", T_X, 10, 34); //x + add_field("Indirizzo", T_X, 44, 34); //x + add_field("Localita", T_X, 78, 20); //x + add_field("CAP", T_X, 98, 5); //x + add_field("Provincia", T_X, 103, 2); //x + add_field("PartitaIVA", T_X, 105, 11); //x + add_field("CodiceFiscale", T_X, 116, 16); //x + add_field("RagioneSocialeFatt", T_X, 132, 34); //x da qui i dati di codalleg + add_field("IndirizzoFatt", T_X, 166, 34); //x + add_field("LocalitaFatt", T_X, 200, 20); //x + add_field("CAPFatt", T_X, 220, 5); //x + add_field("ProvinciaFatt", T_X, 225, 2); //x + add_field("PartitaIVAFatt", T_X, 227, 11); //x + add_field("CodiceFiscaleFatt", T_X, 238, 16); //x //fine dati di codalleg + add_field("CodicePagamento", T_X, 254, 2); //x + add_field("CodiceListino", T_X, 256, 3); //x + add_field("CodicePromozione", T_X, 259, 3); + add_field("ScontoFineFattura", T_2Nv2N,262, 4); //x + add_field("Giro01", T_N, 266, 3); + add_field("Giro02", T_N, 269, 3); + add_field("Giro03", T_N, 272, 3); + add_field("Giro04", T_N, 275, 3); + add_field("Giro05", T_N, 278, 3); + add_field("Giro06", T_N, 281, 3); + add_field("NumeroTelefono", T_X, 284, 10); //x + add_field("EsenteIVA", T_X, 294, 2); //x + add_field("TipoDoc", T_X, 296, 1); + add_field("NoConsegna", T_X, 297, 1); //x + add_field("Fido", T_Nv2N, 298, 8); //x + + add_eol_field(); +} +//..e variazioni clienti +TEsporta_clientiVAR_recordset::TEsporta_clientiVAR_recordset() +: TEsporta_clienti_recordset(308) +{ + insert_field("Segno", T_X, 4, 1); //x +} + +//Prodotti +//-------- +TEsporta_prodotti_recordset::TEsporta_prodotti_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field(ANAMAG_CODART, T_X, 1, 5); //x + add_field(ANAMAG_DESCR, T_X, 6, 30); //x + add_field(UMART_PREZZO, T_Nv3N, 36, 7); //x + add_field(ANAMAG_CODIVA, T_N, 43, 2); //x attenzione che � una aliquota! + add_field(UMART_UM, T_X, 45, 2); //x + add_field("NONusato", T_X, 47, 1); + add_field(ANAMAG_SCONTO, T_2Nv2N,48, 4); //x + add_field("ScontoArt2", T_2Nv2N,52, 4); + add_field("Fascia", T_X, 56, 1); //x prodotto da controllare (tazzine) + add_field("PrezzoMinimo", T_Nv3N, 57, 7); + add_eol_field(); +} +//..e variazioni prodotti +TEsporta_prodottiVAR_recordset::TEsporta_prodottiVAR_recordset() +: TEsporta_prodotti_recordset(66) +{ + insert_field("Segno", T_X, 1, 1); //x +} + +//Linee +//----- +TEsporta_linee_recordset::TEsporta_linee_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("Fascia", T_X, 1, 1); + add_field("Descrizione", T_X, 2, 50); + add_eol_field(); +} + + +//Righe Listini +//------------- +TEsporta_listini_recordset::TEsporta_listini_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field(RCONDV_COD, T_X, 4, 3); //x + add_field(RCONDV_CODRIGA, T_X, 7, 5); //x + add_field(RCONDV_PREZZO, T_Nv3N, 12, 7); //x + add_field(RCONDV_SCONTO, T_2Nv2N,19, 4); //x + add_field("Sconto2", T_2Nv2N,23, 4); + add_field("Sconto3", T_2Nv2N,27, 4); + add_field("CasaMandante", T_NS, 31, 6); + add_eol_field(); +} +//..e variazioni listini +TEsporta_listiniVAR_recordset::TEsporta_listiniVAR_recordset() +: TEsporta_listini_recordset(39) +{ + insert_field("Segno", T_X, 4, 1); //x +} + + +//Offerte +//------- +TEsporta_offerte_recordset::TEsporta_offerte_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field(CONDV_COD, T_X, 1, 3); + add_field(CONDV_COD, T_X, 4, 3); + add_field(CONDV_VALIN, T_X, 7, 8); + add_field(CONDV_VALFIN, T_X, 15, 8); + add_eol_field(); +} + + +//Righe Contratti +//--------------- +TEsporta_contratti_recordset::TEsporta_contratti_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field(CONDV_CODCF, T_N, 4, 6); //x + add_field(RCONDV_CODRIGA, T_X, 10, 5); //x + add_field(RCONDV_PREZZO, T_Nv3N, 15, 7); //x + add_field(RCONDV_SCONTO, T_2Nv2N,22, 4); //x + add_field("Sconto2", T_2Nv2N,26, 4); + add_field("Sconto3", T_2Nv2N,30, 4); + add_field(CONDV_VALIN, T_X, 34, 8); //x + add_field(CONDV_VALFIN, T_X, 42, 8); //x + add_eol_field(); +} + + +//Rdoc (Carico) � una riga di un documento o un movimento di magazzino nel caso del ripristino +//------------- +TEsporta_carico_recordset::TEsporta_carico_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field("CodiceArticolo", T_X, 4, 5); //x + add_field("QuantitaCaricata",T_Nv2N,9, 7); //x + add_field("CodiceLotto", T_X, 16, 10); + add_eol_field(); +} + +//Sospesi +//------- +TEsporta_sospesi_recordset::TEsporta_sospesi_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); //x + add_field("CodiceCliente", T_N, 4, 6); //x + add_field("NumeroFattura", T_X, 10, 12); //x + add_field("DataFattura", T_X, 22, 6); //x + add_field("ImportoResiduo", T_Nv2N, 28, 9); //x + add_field("ImpOriginalDoc", T_N, 37, 9); //x + add_field("DataScadenza", T_X, 46, 6); //x + add_field("Partita", T_X, 52, 15); //x + add_field("TipoDocumento", T_X, 67, 1); //x + add_eol_field(); +} +//..e variazioni sospesi +TEsporta_sospesiVAR_recordset::TEsporta_sospesiVAR_recordset() +: TEsporta_sospesi_recordset(70) +{ + insert_field("Segno", T_X, 4, 1); //x +} + + +//Decodart () +//--------------- +TEsporta_decodart_recordset::TEsporta_decodart_recordset() +: THardy_recordset(49) +{ + add_field(CODCORR_CODART, T_X, 1, 5); //x + add_field(CODCORR_CODCF, T_N, 6, 6); //x + add_field(CODCORR_CODARTALT, T_X, 12, 6); //x + add_field(CODCORR_DESCR, T_X, 18,30); //x + add_eol_field(); +} + + +//Barcode +//--------------- +TEsporta_barcode_recordset::TEsporta_barcode_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field(CODCORR_CODARTALT, T_X, 1, 20); //x + add_field(CODCORR_CODART, T_X, 21, 5); //x + add_eol_field(); +} + + +//Attrezzature +//--------------- +TEsporta_attrezzature_recordset::TEsporta_attrezzature_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); + add_field("CodiceArticolo", T_X, 4, 5); + add_field("Progressivo", T_N, 9, 7); + add_field("Matricola", T_X, 16, 15); + add_field("DescrAttrezz", T_X, 31, 50); + add_field("CodiceCliente", T_N, 81, 6); + add_field("CodiceSedeCliente",T_N, 87, 3); + add_field("DataAssegnamento", T_X, 90, 8); + add_field("DataFabbricazione",T_X, 98, 8); + add_eol_field(); +} + +//Storico Attrezzature +//-------------------- +TEsporta_storico_attrezzature_recordset::TEsporta_storico_attrezzature_recordset(int rec_length) +: THardy_recordset(rec_length) +{ + add_field("CodiceTerminale", T_N, 1, 3); + add_field("CodiceArticolo", T_X, 4, 5); + add_field("Progressivo", T_N, 9, 7); + add_field("ProgrIntervento", T_N, 16, 5); + add_field("DataIntervento", T_X, 21, 8); + add_field("TipoIntervento", T_X, 29, 1); + add_field("DescrIntervento", T_X, 30, 50); + add_field("CodArtIntervento", T_X, 80, 5); + add_field("UnitaMisura", T_X, 85, 2); + add_field("Quantita", T_Nv2N,87, 7); + add_field("Importo", T_Nv2N,94, 9); + add_field("ChiusuraComodato", T_X, 103, 1); + add_eol_field(); +} + +//Pagamenti +//--------------- +TEsporta_pagamenti_recordset::TEsporta_pagamenti_recordset() +: THardy_recordset(27) +{ + add_field("CodicePagamento", T_X, 1, 2); //x + add_field("DescrPagamento", T_X, 3, 20); //x + add_field("GiorniScadenza", T_N, 23, 3); //x + add_eol_field(); +} diff --git a/ha/ha1250.h b/ha/ha1250.h index c0d776204..43b25d29a 100755 --- a/ha/ha1250.h +++ b/ha/ha1250.h @@ -1,6 +1,18 @@ +#ifndef __HA1250_H +#define __HA1250_H + #include <applicat.h> #include <mask.h> #include <reputils.h> +#include <textset.h> + +#include "../mg/anamag.h" +#include "../mg/codcorr.h" +#include "../mg/rmovmag.h" +#include "../mg/umart.h" +#include "../pr/agenti.h" +#include "../ve/condv.h" +#include "../ve/rcondv.h" class THardy_transaction : public TSkeleton_application { @@ -23,4 +35,183 @@ protected: public: virtual void main_loop(); virtual bool create(); -}; \ No newline at end of file +}; + +//------------------------------------------------------------ +// Hardy_recordset: serve per l'OUTPUT +//------------------------------------------------------------ + +///////////////////////////////////////////////////////////// +// Recordset specifici per i dati da trasferire +///////////////////////////////////////////////////////////// +//classe generica per poter aggiungere pedissequamente i campi seguendo le tracce sulla documentazione +//tipologie di campo secondo il ricevente +#define T_N "N" +#define T_2N "2N" +#define T_Nv2N "N,2N" +#define T_Nv3N "N,3N" +#define T_2Nv2N "2N,2N" +#define T_X "X" +#define T_NS "NS" + +class THardy_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: + void duplica_capi_zona(); + THardy_recordset(const int rec_length); +}; + + +//Agenti +//------- +class TEsporta_agenti_recordset : public THardy_recordset +{ +public: + TEsporta_agenti_recordset(); +}; + + +//Clienti (clifo + cfven) +//----------------------- +class TEsporta_clienti_recordset : public THardy_recordset +{ +public: + void set_fatt(const char* fld_name, const TVariant& value, const bool is_fatt); + TEsporta_clienti_recordset(int recsize = 307); +}; +//..e variazioni clienti! +class TEsporta_clientiVAR_recordset : public TEsporta_clienti_recordset +{ +public: + TEsporta_clientiVAR_recordset(); +}; + + +//Sospesi () +//----------------------- +class TEsporta_sospesi_recordset : public THardy_recordset +{ +public: + TEsporta_sospesi_recordset(int rec_length = 69); +}; +//..e variazioni sospesi! +class TEsporta_sospesiVAR_recordset : public TEsporta_sospesi_recordset +{ +public: + TEsporta_sospesiVAR_recordset(); +}; + +//Listini (condv + rcondv) +//------------------------ +class TEsporta_listini_recordset : public THardy_recordset +{ +public: + TEsporta_listini_recordset(int rec_length = 38); +}; +//..e variazioni listini +class TEsporta_listiniVAR_recordset : public TEsporta_listini_recordset +{ +public: + TEsporta_listiniVAR_recordset(); +}; + +//Contratti (Particolari) (condv + rcondv) +//---------------------------------------- +class TEsporta_contratti_recordset : public THardy_recordset +{ +public: + TEsporta_contratti_recordset(int rec_length = 51); +}; + +//Offerte (Promo) (condv + rcondv) +//---------------------------------------- +class TEsporta_offerte_recordset : public THardy_recordset +{ +public: + TEsporta_offerte_recordset(int rec_length = 24); +}; + +//Prodotti (anamag + umart) +//------------------------- +class TEsporta_prodotti_recordset : public THardy_recordset +{ +public: + TEsporta_prodotti_recordset(int rec_length = 65); +}; +//..e variazioni prodotti +class TEsporta_prodottiVAR_recordset : public TEsporta_prodotti_recordset +{ +public: + TEsporta_prodottiVAR_recordset(); +}; + + +//Linee +//----- +class TEsporta_linee_recordset : public THardy_recordset +{ +public: + TEsporta_linee_recordset(int rec_length = 53); +}; + + +//Carico (rdoc di carico) +//----------------------- +class TEsporta_carico_recordset : public THardy_recordset +{ +public: + TEsporta_carico_recordset(int rec_length = 27); +}; + + +//Decodart () +//---------------- +class TEsporta_decodart_recordset : public THardy_recordset +{ +public: + TEsporta_decodart_recordset(); +}; + +//Barcode () +//--------------- +class TEsporta_barcode_recordset : public THardy_recordset +{ +public: + TEsporta_barcode_recordset(int rec_length = 27); +}; + +//Attrezzature () +//---------------- +class TEsporta_attrezzature_recordset : public THardy_recordset +{ +public: + TEsporta_attrezzature_recordset(int rec_length = 107); +}; + +//Storico Attrezzature () +//----------------------- +class TEsporta_storico_attrezzature_recordset : public THardy_recordset +{ +public: + TEsporta_storico_attrezzature_recordset(int rec_length = 105); +}; + +//Pagamenti () +//----------------- +class TEsporta_pagamenti_recordset : public THardy_recordset +{ +public: + TEsporta_pagamenti_recordset(); +}; + + + +#endif \ No newline at end of file diff --git a/ha/halib.cpp b/ha/halib.cpp index 0f23d2a5b..dc6e02b29 100755 --- a/ha/halib.cpp +++ b/ha/halib.cpp @@ -48,337 +48,6 @@ TContratto_premi::TContratto_premi(const TRectype& rec_doc) : TDocumento(rec_doc) {} - -///////////////////////////////////////////////////////////// -// Recordset specifici per i dati da trasferire OUTPUT -///////////////////////////////////////////////////////////// -//questo serve solo per l'ultima riga con il return (\r\n) -void THardy_recordset::add_eol_field() -{ - create_field("ACapo", -1, 2, _alfafld, false, TVariant("\r\n")); -} - -//questo � il metodo magico che vale per tutti -void THardy_recordset::add_field(const char* name, const char* tipo, int pos, int len) -{ - const TFixed_string str_tipo(tipo); - if (str_tipo.ends_with("N")) - { - create_field(name, pos-1, len, _intzerofld); - return; - } - create_field(name, pos-1, len, _alfafld); -} - -void THardy_recordset::add_trc_field(const char* tr, const char* name, const char* tipo, int pos, int len) -{ - CHECK(tr && strlen(tr) == 2, "Lunghezza tipo record errata!!"); - TString80 trc_name; - trc_name << tr << '.' << name; - add_field(trc_name, tipo, pos, len); -} - - - -void THardy_recordset::insert_field(const char* name, const char* tipo, int pos, int len) -{ - if (pos >= 1) - { - TArray& trc = (TArray&)*_trc.first_item(); - FOR_EACH_ARRAY_ITEM(trc, r, itm) - { - TAS400_column_info& fld = (TAS400_column_info&)*itm; - if (fld._pos+1 >= pos) - { - fld._pos += len; - } - } - } - add_field(name, tipo, pos, len); -} - -//al costruttore viene passato come parametro la lunghezza del tracciato -THardy_recordset::THardy_recordset(const int rec_lenght) : TAS400_recordset("AS400()") -{ - TString16 query; - query << "AS400(" << rec_lenght << ")"; - TFilename cazzone; - parse_query(query, cazzone); -} - - -//Agenti -//------- -TEsporta_agenti_recordset::TEsporta_agenti_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field(AGE_CODAGE, T_N, 4, 3); //x - add_field("NonUsato", T_X, 7, 6); - add_field("Targa", T_X, 13, 8); - add_field("nDDT", T_N, 21, 5); - add_field("nFATT", T_N, 26, 5); - add_field("nBOLLA", T_N, 31, 5); - add_field(AGE_RAGSOC, T_X, 36, 30); //x - add_field("nORD", T_N, 66, 5); - add_field("nSAGIT", T_N, 71, 5); - add_eol_field(); -} - -//------------------------------------------------------------------------------------ -//Clienti -//------- - -void TEsporta_clienti_recordset::set_fatt(const char* fld_name, const TVariant& value, const bool is_fatt) -{ - TString80 new_fld_name = fld_name; - if (is_fatt) - new_fld_name << "Fatt"; - - THardy_recordset::set(new_fld_name, value); -} - -TEsporta_clienti_recordset::TEsporta_clienti_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field("CodiceCliente", T_N, 4, 6); //x - add_field("RagioneSociale", T_X, 10, 34); //x - add_field("Indirizzo", T_X, 44, 34); //x - add_field("Localita", T_X, 78, 20); //x - add_field("CAP", T_X, 98, 5); //x - add_field("Provincia", T_X, 103, 2); //x - add_field("PartitaIVA", T_X, 105, 11); //x - add_field("CodiceFiscale", T_X, 116, 16); //x - add_field("RagioneSocialeFatt", T_X, 132, 34); //x da qui i dati di codalleg - add_field("IndirizzoFatt", T_X, 166, 34); //x - add_field("LocalitaFatt", T_X, 200, 20); //x - add_field("CAPFatt", T_X, 220, 5); //x - add_field("ProvinciaFatt", T_X, 225, 2); //x - add_field("PartitaIVAFatt", T_X, 227, 11); //x - add_field("CodiceFiscaleFatt", T_X, 238, 16); //x //fine dati di codalleg - add_field("CodicePagamento", T_X, 254, 2); //x - add_field("CodiceListino", T_X, 256, 3); //x - add_field("CodicePromozione", T_X, 259, 3); - add_field("ScontoFineFattura", T_2Nv2N,262, 4); //x - add_field("Giro01", T_N, 266, 3); - add_field("Giro02", T_N, 269, 3); - add_field("Giro03", T_N, 272, 3); - add_field("Giro04", T_N, 275, 3); - add_field("Giro05", T_N, 278, 3); - add_field("Giro06", T_N, 281, 3); - add_field("NumeroTelefono", T_X, 284, 10); //x - add_field("EsenteIVA", T_X, 294, 2); //x - add_field("TipoDoc", T_X, 296, 1); - add_field("NoConsegna", T_X, 297, 1); //x - add_field("Fido", T_Nv2N, 298, 8); //x - - add_eol_field(); -} -//..e variazioni clienti -TEsporta_clientiVAR_recordset::TEsporta_clientiVAR_recordset() -: TEsporta_clienti_recordset(308) -{ - insert_field("Segno", T_X, 4, 1); //x -} - -//Prodotti -//-------- -TEsporta_prodotti_recordset::TEsporta_prodotti_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field(ANAMAG_CODART, T_X, 1, 5); //x - add_field(ANAMAG_DESCR, T_X, 6, 30); //x - add_field(UMART_PREZZO, T_Nv3N, 36, 7); //x - add_field(ANAMAG_CODIVA, T_N, 43, 2); //x attenzione che � una aliquota! - add_field(UMART_UM, T_X, 45, 2); //x - add_field("NONusato", T_X, 47, 1); - add_field(ANAMAG_SCONTO, T_2Nv2N,48, 4); //x - add_field("ScontoArt2", T_2Nv2N,52, 4); - add_field("Fascia", T_X, 56, 1); //x prodotto da controllare (tazzine) - add_field("PrezzoMinimo", T_Nv3N, 57, 7); - add_eol_field(); -} -//..e variazioni prodotti -TEsporta_prodottiVAR_recordset::TEsporta_prodottiVAR_recordset() -: TEsporta_prodotti_recordset(66) -{ - insert_field("Segno", T_X, 1, 1); //x -} - -//Linee -//----- -TEsporta_linee_recordset::TEsporta_linee_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("Fascia", T_X, 1, 1); - add_field("Descrizione", T_X, 2, 50); - add_eol_field(); -} - - -//Righe Listini -//------------- -TEsporta_listini_recordset::TEsporta_listini_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field(RCONDV_COD, T_X, 4, 3); //x - add_field(RCONDV_CODRIGA, T_X, 7, 5); //x - add_field(RCONDV_PREZZO, T_Nv3N, 12, 7); //x - add_field(RCONDV_SCONTO, T_2Nv2N,19, 4); //x - add_field("Sconto2", T_2Nv2N,23, 4); - add_field("Sconto3", T_2Nv2N,27, 4); - add_field("CasaMandante", T_NS, 31, 6); - add_eol_field(); -} -//..e variazioni listini -TEsporta_listiniVAR_recordset::TEsporta_listiniVAR_recordset() -: TEsporta_listini_recordset(39) -{ - insert_field("Segno", T_X, 4, 1); //x -} - - -//Offerte -//------- -TEsporta_offerte_recordset::TEsporta_offerte_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field(CONDV_COD, T_X, 1, 3); - add_field(CONDV_COD, T_X, 4, 3); - add_field(CONDV_VALIN, T_X, 7, 8); - add_field(CONDV_VALFIN, T_X, 15, 8); - add_eol_field(); -} - - -//Righe Contratti -//--------------- -TEsporta_contratti_recordset::TEsporta_contratti_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field(CONDV_CODCF, T_N, 4, 6); //x - add_field(RCONDV_CODRIGA, T_X, 10, 5); //x - add_field(RCONDV_PREZZO, T_Nv3N, 15, 7); //x - add_field(RCONDV_SCONTO, T_2Nv2N,22, 4); //x - add_field("Sconto2", T_2Nv2N,26, 4); - add_field("Sconto3", T_2Nv2N,30, 4); - add_field(CONDV_VALIN, T_X, 34, 8); //x - add_field(CONDV_VALFIN, T_X, 42, 8); //x - add_eol_field(); -} - - -//Rdoc (Carico) � una riga di un documento o un movimento di magazzino nel caso del ripristino -//------------- -TEsporta_carico_recordset::TEsporta_carico_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field("CodiceArticolo", T_X, 4, 5); //x - add_field("QuantitaCaricata",T_Nv2N,9, 7); //x - add_field("CodiceLotto", T_X, 16, 10); - add_eol_field(); -} - -//Sospesi -//------- -TEsporta_sospesi_recordset::TEsporta_sospesi_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); //x - add_field("CodiceCliente", T_N, 4, 6); //x - add_field("NumeroFattura", T_X, 10, 12); //x - add_field("DataFattura", T_X, 22, 6); //x - add_field("ImportoResiduo", T_Nv2N, 28, 9); //x - add_field("ImpOriginalDoc", T_N, 37, 9); //x - add_field("DataScadenza", T_X, 46, 6); //x - add_field("Partita", T_X, 52, 15); //x - add_field("TipoDocumento", T_X, 67, 1); //x - add_eol_field(); -} -//..e variazioni sospesi -TEsporta_sospesiVAR_recordset::TEsporta_sospesiVAR_recordset() -: TEsporta_sospesi_recordset(70) -{ - insert_field("Segno", T_X, 4, 1); //x -} - - -//Decodart () -//--------------- -TEsporta_decodart_recordset::TEsporta_decodart_recordset() -: THardy_recordset(49) -{ - add_field(CODCORR_CODART, T_X, 1, 5); //x - add_field(CODCORR_CODCF, T_N, 6, 6); //x - add_field(CODCORR_CODARTALT, T_X, 12, 6); //x - add_field(CODCORR_DESCR, T_X, 18,30); //x - add_eol_field(); -} - - -//Barcode -//--------------- -TEsporta_barcode_recordset::TEsporta_barcode_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field(CODCORR_CODARTALT, T_X, 1, 20); //x - add_field(CODCORR_CODART, T_X, 21, 5); //x - add_eol_field(); -} - - -//Attrezzature -//--------------- -TEsporta_attrezzature_recordset::TEsporta_attrezzature_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); - add_field("CodiceArticolo", T_X, 4, 5); - add_field("Progressivo", T_N, 9, 7); - add_field("Matricola", T_X, 16, 15); - add_field("DescrAttrezz", T_X, 31, 50); - add_field("CodiceCliente", T_N, 81, 6); - add_field("CodiceSedeCliente",T_N, 87, 3); - add_field("DataAssegnamento", T_X, 90, 8); - add_field("DataFabbricazione",T_X, 98, 8); - add_eol_field(); -} - -//Storico Attrezzature -//-------------------- -TEsporta_storico_attrezzature_recordset::TEsporta_storico_attrezzature_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodiceTerminale", T_N, 1, 3); - add_field("CodiceArticolo", T_X, 4, 5); - add_field("Progressivo", T_N, 9, 7); - add_field("ProgrIntervento", T_N, 16, 5); - add_field("DataIntervento", T_X, 21, 8); - add_field("TipoIntervento", T_X, 29, 1); - add_field("DescrIntervento", T_X, 30, 50); - add_field("CodArtIntervento", T_X, 80, 5); - add_field("UnitaMisura", T_X, 85, 2); - add_field("Quantita", T_Nv2N,87, 7); - add_field("Importo", T_Nv2N,94, 9); - add_field("ChiusuraComodato", T_X, 103, 1); - add_eol_field(); -} - -//Pagamenti -//--------------- -TEsporta_pagamenti_recordset::TEsporta_pagamenti_recordset(int rec_length) -: THardy_recordset(rec_length) -{ - add_field("CodicePagamento", T_X, 1, 2); //x - add_field("DescrPagamento", T_X, 3, 20); //x - add_field("GiorniScadenza", T_N, 23, 3); //x - add_eol_field(); -} - /////////////////////////////////////////////////////////// // TCodArtEsselunga_cache /////////////////////////////////////////////////////////// diff --git a/ha/halib.h b/ha/halib.h index 5f2b65d43..1fe1cf742 100755 --- a/ha/halib.h +++ b/ha/halib.h @@ -1,16 +1,10 @@ -#ifndef __TEXTSET_H -#include <textset.h> -#endif __TEXTSET_H +#ifndef __HALIB_H +#define __HALIB_H #ifndef __VELIB_H #include "../ve/velib.h" #endif -#include "../mg/rmovmag.h" -#include "../pr/agenti.h" -#include "../ve/condv.h" -#include "../ve/rcondv.h" - //definizioni delle righe dei contratti premio Hardy (da includere nei .cpp) #define HARDY_TIPORIGA_MERCE "H01" #define HARDY_TIPORIGA_SOMMA "H02" @@ -43,183 +37,6 @@ public: TContratto_premi(const TRectype& rec_doc); }; - - -///////////////////////////////////////////////////////////// -// Recordset specifici per i dati da trasferire -///////////////////////////////////////////////////////////// -//classe generica per poter aggiungere pedissequamente i campi seguendo le tracce sulla documentazione -//tipologie di campo secondo il ricevente -#define T_N "N" -#define T_2N "2N" -#define T_Nv2N "N,2N" -#define T_Nv3N "N,3N" -#define T_2Nv2N "2N,2N" -#define T_X "X" -#define T_NS "NS" - - -//------------------------------------------------------------ -// Hardy_recordset: serve per l'OUTPUT -//------------------------------------------------------------ - -class THardy_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: - THardy_recordset(const int rec_length); -}; - - -//Agenti -//------- -class TEsporta_agenti_recordset : public THardy_recordset -{ -public: - TEsporta_agenti_recordset(int rec_length = 77); -}; - - -//Clienti (clifo + cfven) -//----------------------- -class TEsporta_clienti_recordset : public THardy_recordset -{ -public: - void set_fatt(const char* fld_name, const TVariant& value, const bool is_fatt); - TEsporta_clienti_recordset(int rec_length = 307); -}; -//..e variazioni clienti! -class TEsporta_clientiVAR_recordset : public TEsporta_clienti_recordset -{ -public: - TEsporta_clientiVAR_recordset(); -}; - - -//Sospesi () -//----------------------- -class TEsporta_sospesi_recordset : public THardy_recordset -{ -public: - TEsporta_sospesi_recordset(int rec_length = 69); -}; -//..e variazioni sospesi! -class TEsporta_sospesiVAR_recordset : public TEsporta_sospesi_recordset -{ -public: - TEsporta_sospesiVAR_recordset(); -}; - -//Listini (condv + rcondv) -//------------------------ -class TEsporta_listini_recordset : public THardy_recordset -{ -public: - TEsporta_listini_recordset(int rec_length = 38); -}; -//..e variazioni listini -class TEsporta_listiniVAR_recordset : public TEsporta_listini_recordset -{ -public: - TEsporta_listiniVAR_recordset(); -}; - -//Contratti (Particolari) (condv + rcondv) -//---------------------------------------- -class TEsporta_contratti_recordset : public THardy_recordset -{ -public: - TEsporta_contratti_recordset(int rec_length = 51); -}; - -//Offerte (Promo) (condv + rcondv) -//---------------------------------------- -class TEsporta_offerte_recordset : public THardy_recordset -{ -public: - TEsporta_offerte_recordset(int rec_length = 24); -}; - -//Prodotti (anamag + umart) -//------------------------- -class TEsporta_prodotti_recordset : public THardy_recordset -{ -public: - TEsporta_prodotti_recordset(int rec_length = 65); -}; -//..e variazioni prodotti -class TEsporta_prodottiVAR_recordset : public TEsporta_prodotti_recordset -{ -public: - TEsporta_prodottiVAR_recordset(); -}; - - -//Linee -//----- -class TEsporta_linee_recordset : public THardy_recordset -{ -public: - TEsporta_linee_recordset(int rec_length = 53); -}; - - -//Carico (rdoc di carico) -//----------------------- -class TEsporta_carico_recordset : public THardy_recordset -{ -public: - TEsporta_carico_recordset(int rec_length = 27); -}; - - -//Decodart () -//---------------- -class TEsporta_decodart_recordset : public THardy_recordset -{ -public: - TEsporta_decodart_recordset(); -}; - -//Barcode () -//--------------- -class TEsporta_barcode_recordset : public THardy_recordset -{ -public: - TEsporta_barcode_recordset(int rec_length = 27); -}; - -//Attrezzature () -//---------------- -class TEsporta_attrezzature_recordset : public THardy_recordset -{ -public: - TEsporta_attrezzature_recordset(int rec_length = 107); -}; - -//Storico Attrezzature () -//----------------------- -class TEsporta_storico_attrezzature_recordset : public THardy_recordset -{ -public: - TEsporta_storico_attrezzature_recordset(int rec_length = 105); -}; - -//Pagamenti () -//----------------- -class TEsporta_pagamenti_recordset : public THardy_recordset -{ -public: - TEsporta_pagamenti_recordset(int rec_length = 27); -}; - /////////////////////////////////////////////////////////// // TCodArtEsselunga_cache /////////////////////////////////////////////////////////// @@ -245,4 +62,6 @@ const TDate upload_format_date6(const TString& str_data); long hd_key2cli(const TString& key); long hd_key2for(const TString& key); void hd_key2conto(const TString& key, int& gr, int& co, long& so); -const TString& hd_get_next_att_key(const TString& codart); \ No newline at end of file +const TString& hd_get_next_att_key(const TString& codart); + +#endif