Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/branches/R_10_00@21167 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-11-23 15:28:56 +00:00
parent c98dcef404
commit e0762200f6
12 changed files with 481 additions and 235 deletions

View File

@ -1,5 +1,6 @@
#include <automask.h>
#include <confapp.h>
#include <relation.h>
#include "ha0200a.h"
@ -43,6 +44,8 @@ class TConf_Hardy : public TConfig_application
protected:
virtual TMask* create_mask(const TFilename& f);
virtual TMask* get_mask();
virtual void load_mask();
virtual void save_mask(bool tosave);
public:
virtual bool preprocess_config (TMask& mask, TConfig& config);
@ -76,6 +79,86 @@ bool TConf_Hardy::postprocess_config (TMask& mask, TConfig& config)
return true;
}
//questa serve per caricare gli sheet della maschera
void TConf_Hardy::load_mask()
{
TMask* m = get_mask();
if (m != NULL)
{
TConfig_application::load_mask();
//dopo aver caricato la maschera principale, fa il giro sugli sheet presenti
FOR_EACH_MASK_SHEET((*m), i, s)
{
s->destroy();
//carica la maschera del singolo sheet
TMask& sm = s->sheet_mask();
bool found = true;
for (int r = 0; found; r++)
{
//giro sui campi della maschera di sheet
FOR_EACH_MASK_FIELD(sm, j, f)
{
const TFieldref* fr = f->field();
//deve caricare solo i campi che hanno un field
if(fr != NULL)
{
const TString& value = get_config()->get(fr->name(), NULL, r);
if (value.empty() && f->dlg() == 101)
{
found = false;
break;
}
s->row(r).add(value, s->cid2index(f->dlg()));
}
}
if (found)
s->check_row(r, 1);
}
s->force_update();
}
}
}
//questa serve per salvare gli sheet della maschera (tipo quello con i codici iva)
void TConf_Hardy::save_mask(bool tosave)
{
TConfig* cnf = get_config();
if (!tosave || cnf == NULL)
return;
TConfig_application::save_mask(tosave);
TAssoc_array& v = cnf->list_variables("ha");
FOR_EACH_ASSOC_STRING(v, h, k, str)
{
const TFixed_string name = k;
if (name.find('(') > 0 && !name.starts_with("IVA"))
v.remove(name);
}
TConf_Hardy_mask& m = (TConf_Hardy_mask&) *get_mask();
FOR_EACH_MASK_SHEET(m, i, s)
{
TMask& sm = s->sheet_mask();
FOR_EACH_SHEET_ROW(*s, j, row)
{
FOR_EACH_MASK_FIELD(sm, k, f)
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const char* value = row->get(s->cid2index(f->dlg()));
cnf->set(fr->name(), value, NULL, true, j);
}
}
}
}
cnf->set_paragraph("ha");
}
bool TConf_Hardy::user_create( )
{
TConfig cfg(CONFIG_DITTA, "ha");

View File

@ -42,3 +42,12 @@
#define F_IN_TIPODOC_B 262
#define F_IN_TIPODOC_O 263
#define F_IN_TIPODOC_V 264
//comuni inportazione-esportazione
#define F_CODICI_IVA 270
//------------------------------
//campi sheet aliqute-codici iva
#define S_ALIQUOTA_IVA 101
#define S_CAMPO_CODIVA 102
#define S_CAMPO_CODIVA_DES 103

View File

@ -391,7 +391,7 @@ BEGIN
FIELD "TipoBarcode"
END
GROUPBOX DLG_NULL 76 9
GROUPBOX DLG_NULL 76 12
BEGIN
PROMPT 1 8 "@bImportazione"
END
@ -469,6 +469,79 @@ BEGIN
PROMPT 2 14 "ed al codice terminale, secondo la regola: 'TipoDocumento'+'CodiceTerminale. Es. 'F'+'001' -> F001"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "@bCodici IVA Campo da utilizzare in base alle aliquote"
END
SPREADSHEET F_CODICI_IVA 74 3
BEGIN
PROMPT 2 16 ""
ITEM "%IVA@6"
ITEM "Cod.IVA"
ITEM "Descrizione"
END
ENDPAGE
ENDMASK
ENDMASK
//---------------------------------------------------
//maschera di riga dello sheet 2 (Codici iva)
PAGE "Riga" -1 -1 64 4
NUMBER S_ALIQUOTA_IVA 6 2
BEGIN
PROMPT 1 1 "% IVA@6"
FLAGS "U"
CHECKTYPE REQUIRED
FIELD IVAaliquota
END
STRING S_CAMPO_CODIVA 4
BEGIN
PROMPT 1 2 "Cod. IVA Campo "
USE %IVA
INPUT CODTAB S_CAMPO_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_CAMPO_CODIVA CODTAB
OUTPUT S_CAMPO_CODIVA_DES S0
CHECKTYPE REQUIRED
FIELD IVAcodice
END
STRING S_CAMPO_CODIVA_DES 50
BEGIN
PROMPT 25 2 ""
USE %IVA KEY 2
INPUT S0 S_CAMPO_CODIVA_DES
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT S_CAMPO_CODIVA
CHECKTYPE REQUIRED
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_DELREC 2 2
BEGIN
PROMPT 2 1 ""
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 3 1 ""
END
ENDPAGE
ENDMASK

View File

@ -58,6 +58,8 @@ protected:
void get_part_key(TConfig& ini, TToken_string& key) const;
bool find_part_key(TConfig& ini, const TString_array& ini_paragraphs,
const int logicnum, const TToken_string& key) const;
void fill_anagrafica_cliente(TConfig& ini, TEsporta_clienti_recordset& clienti,
const bool is_fatt);
//metodi di alto livello
void genera_cliente_var_txt(TConfig& ini);
@ -120,7 +122,41 @@ TString4 TIni2Txt::ricava_segno(TConfig& ini)
}
void TIni2Txt::fill_anagrafica_cliente(TConfig& ini, TEsporta_clienti_recordset& clienti,
const bool is_fatt)
{
clienti.set_fatt("RagioneSociale", ini.get(CLI_RAGSOC), is_fatt);
//l'indirizzo va numerato
TString80 indcf = ini.get(CLI_INDCF);
indcf << " " << ini.get(CLI_CIVCF);
clienti.set_fatt("Indirizzo", indcf, is_fatt);
const TString80 localitacf = ini.get(CLI_LOCCF);
clienti.set_fatt("Localita", localitacf, is_fatt);
//panegirico per comune e provincia
const TString& statocf = ini.get(CLI_STATOCF);
if (statocf.blank())
{
const TString& comcf = ini.get(CLI_COMCF);
TToken_string key;
key.add(statocf);
key.add(comcf);
const TRectype& rec_comuni = cache().get(LF_COMUNI, key);
//se la località è vuota ci mettiamo la descrizione del comune
if (localitacf.blank())
{
TString80 dencom = rec_comuni.get(COM_DENCOM);
clienti.set_fatt("Localita", dencom, is_fatt);
}
const TString& provcf = rec_comuni.get(COM_PROVCOM);
clienti.set_fatt("Provincia", provcf, is_fatt);
}
clienti.set_fatt("CAP", ini.get(CLI_CAPCF), is_fatt);
clienti.set_fatt("PartitaIVA", ini.get(CLI_PAIV), is_fatt);
clienti.set_fatt("CodiceFiscale", ini.get(CLI_COFI), is_fatt);
}
///////////////////////////////////////////////
// metodi di alto livello
@ -144,42 +180,20 @@ void TIni2Txt::genera_cliente_var_txt(TConfig& ini)
clienti.set("CodiceTerminale", find_codag(codcf));
clienti.set("Segno", segno);
clienti.set(CLI_CODCF, codcf);
clienti.set(CLI_RAGSOC, ini.get(CLI_RAGSOC));
//l'indirizzo va numerato
TString80 indcf = ini.get(CLI_INDCF);
indcf << " " << ini.get(CLI_CIVCF);
clienti.set(CLI_INDCF, indcf);
const TString80 localitacf = ini.get(CLI_LOCCF);
clienti.set("Localita", localitacf);
//panegirico per comune e provincia
const TString& statocf = ini.get(CLI_STATOCF);
if (statocf.blank())
{
const TString& comcf = ini.get(CLI_COMCF);
TToken_string key;
key.add(statocf);
key.add(comcf);
const TRectype& rec_comuni = cache().get(LF_COMUNI, key);
//se la località è vuota ci mettiamo la descrizione del comune
if (localitacf.blank())
{
TString80 dencom = rec_comuni.get(COM_DENCOM);
clienti.set("Localita", dencom);
}
const TString& provcf = rec_comuni.get(COM_PROVCOM);
clienti.set("Provincia", provcf);
}
clienti.set(CLI_CAPCF, ini.get(CLI_CAPCF));
clienti.set("CodiceCliente", codcf);
//riempie tutti i campi dell'anagrafica cliente
fill_anagrafica_cliente(ini, clienti, false);
//e poi, se serve, i campi del cliente in allegato
const long codalleg = ini.get_long(CLI_CODALLEG);
if (codalleg > 0)
fill_anagrafica_cliente(ini, clienti, true);
clienti.set(CLI_PAIV, ini.get(CLI_PAIV));
//attenzione alla lunghezza del codpag
TString4 codpag = ini.get(CLI_CODPAG);
clienti.set(CLI_CODPAG, codpag.right(2)); //il campo sul .txt è lungo 2 e vuole i caratteri a destra!
clienti.set("CodicePagamento", codpag.right(2)); //il campo sul .txt è lungo 2 e vuole i caratteri a destra!
TString query;
query << "USE CONDV";
query << "\nFROM TIPO=C TIPOCF=C CODCF=#CODCF";
@ -193,15 +207,10 @@ void TIni2Txt::genera_cliente_var_txt(TConfig& ini)
clienti.set("CodiceListino", cod_contr);
}
//casotto sulla decodifica articoli
//"FlDecodArt"
//"DecodeCodCli"
TString16 ntel = ini.get(CLI_PTEL);
ntel << ini.get(CLI_TEL);
clienti.set(CLI_TEL, ntel);
clienti.set("NumeroTelefono", ntel);
clienti.set(CLI_CODCFFATT, ini.get(CLI_CODCFFATT));
clienti.set("TipoDoc", "F");
//panegirico del fido!
@ -209,14 +218,12 @@ void TIni2Txt::genera_cliente_var_txt(TConfig& ini)
real fido = ini.get(CLI_FIDO);
fido *= CENTO;
fido.round();
clienti.set(CLI_FIDO, fido);
clienti.set("Fido", fido);
//no consegna = sospeso (forse, anzi NO! non ci va)
//const TString& sospeso = ini.get_bool(CLI_SOSPESO) ? "S" : "";
//clienti.set("NoConsegna", sospeso);
clienti.set(CLI_COFI, ini.get(CLI_COFI));
//campi da cfven(17)
//------------------
@ -226,8 +233,7 @@ void TIni2Txt::genera_cliente_var_txt(TConfig& ini)
TString4 assfis = ini.get(CFV_ASSFIS);
//assfis.cut(2); //il loro è lungo 2!
clienti.set(CFV_ASSFIS, assfis);
clienti.set("EsenteIVA", assfis);
//prepara il nome corretto del file .txt e lo genera
//--------------------------------------------------

View File

@ -52,7 +52,7 @@ protected:
void elabora(const TMask& mask);
void genera_agenti_txt();
void genera_clienti_txt();
void genera_clienti_txt(const long da_codcli);
void genera_sospesi_txt();
void genera_righelistini_txt();
void genera_contratti_txt();
@ -64,6 +64,8 @@ protected:
void genera_tabpag_txt();
void genera_carico_txt();
void fill_anagrafica_cliente(const TISAM_recordset& archivio_clienti,
TEsporta_clienti_recordset& clienti, const bool is_fatt = false);
TFilename genera_path(const TString& prefisso);
public:
@ -113,15 +115,56 @@ void TFile2Txt::genera_agenti_txt()
}
//clienti: i commenti del metodo sono nella genera_cliente_txt() della ha1100 (che è la mamma di questo)
void TFile2Txt::genera_clienti_txt()
void TFile2Txt::fill_anagrafica_cliente(const TISAM_recordset& archivio_clienti,
TEsporta_clienti_recordset& clienti, const bool is_fatt)
{
clienti.set_fatt("RagioneSociale", archivio_clienti.get(CLI_RAGSOC), is_fatt);
TString80 indcf = archivio_clienti.get(CLI_INDCF).as_string();
indcf << " " << archivio_clienti.get(CLI_CIVCF).as_string();
clienti.set_fatt("Indirizzo", indcf, is_fatt);
const TString80 localitacf = archivio_clienti.get(CLI_LOCCF).as_string();
clienti.set_fatt("Localita", localitacf, is_fatt);
const TString& statocf = archivio_clienti.get(CLI_STATOCF).as_string();
if (statocf.blank())
{
const TString& comcf = archivio_clienti.get(CLI_COMCF).as_string();
TToken_string key;
key.add(statocf);
key.add(comcf);
const TRectype& rec_comuni = cache().get(LF_COMUNI, key);
if (localitacf.blank())
{
TString80 dencom = rec_comuni.get(COM_DENCOM);
clienti.set_fatt("Localita", dencom, is_fatt);
}
const TString& provcf = rec_comuni.get(COM_PROVCOM);
clienti.set_fatt("Provincia", provcf, is_fatt);
}
clienti.set_fatt("CAP", archivio_clienti.get(CLI_CAPCF), is_fatt);
clienti.set_fatt("PartitaIVA", archivio_clienti.get(CLI_PAIV), is_fatt);
clienti.set_fatt("CodiceFiscale", archivio_clienti.get(CLI_COFI), is_fatt);
}
//clienti: i commenti del metodo sono nella genera_cliente_txt() della ha1100 (che è la mamma di questo)
void TFile2Txt::genera_clienti_txt(const long da_codcli)
{
//controlla se c'è un codice selezionato da cui partire
TEsporta_clienti_recordset clienti;
TString query;
query << "USE CLIFO";
query << "\nJOIN CFVEN INTO TIPOCF=TIPOCF CODCF=CODCF";
query << "\nFROM TIPOCF=C";
if (da_codcli > 0L)
query << " CODCF=" << da_codcli;
query << "\nTO TIPOCF=C";
TISAM_recordset archivio_clienti(query);
@ -139,38 +182,30 @@ void TFile2Txt::genera_clienti_txt()
codage = codage.right(3);
clienti.set("CodiceTerminale", codage);
clienti.set(CLI_CODCF, archivio_clienti.get(CLI_CODCF));
clienti.set(CLI_RAGSOC, archivio_clienti.get(CLI_RAGSOC));
clienti.set("CodiceCliente", archivio_clienti.get(CLI_CODCF));
TString80 indcf = archivio_clienti.get(CLI_INDCF).as_string();
indcf << " " << archivio_clienti.get(CLI_CIVCF).as_string();
clienti.set(CLI_INDCF, indcf);
const TString80 localitacf = archivio_clienti.get(CLI_LOCCF).as_string();
clienti.set("Localita", localitacf);
//riempie l'anagrafica del cliente principale
fill_anagrafica_cliente(archivio_clienti, clienti, false);
const TString& statocf = archivio_clienti.get(CLI_STATOCF).as_string();
if (statocf.blank())
//riempie l'anagrafica del cliente in allegato (se c'è)
const long codalleg = archivio_clienti.get(CLI_CODALLEG).as_int();
if (codalleg > 0)
{
const TString& comcf = archivio_clienti.get(CLI_COMCF).as_string();
TToken_string key;
key.add(statocf);
key.add(comcf);
const TRectype& rec_comuni = cache().get(LF_COMUNI, key);
if (localitacf.blank())
{
TString80 dencom = rec_comuni.get(COM_DENCOM);
clienti.set("Localita", dencom);
}
const TString& provcf = rec_comuni.get(COM_PROVCOM);
clienti.set("Provincia", provcf);
TString queryna;
queryna << "USE CLIFO";
queryna << "\nJOIN CFVEN INTO TIPOCF=TIPOCF CODCF=CODCF";
queryna << "\nFROM TIPOCF=C CODCF=#CODALLEG";
queryna << "\nTO TIPOCF=C CODCF=#CODALLEG";
TISAM_recordset cliente_allegato(queryna);
cliente_allegato.set_var("#CODALLEG", codalleg);
fill_anagrafica_cliente(cliente_allegato, clienti, true);
}
clienti.set(CLI_CAPCF, archivio_clienti.get(CLI_CAPCF));
clienti.set(CLI_PAIV, archivio_clienti.get(CLI_PAIV));
TString4 codpag = archivio_clienti.get(CLI_CODPAG).as_string();
clienti.set(CLI_CODPAG, codpag.right(2));
clienti.set("CodicePagamento", codpag.right(2));
TString query;
query << "USE CONDV";
@ -185,13 +220,15 @@ void TFile2Txt::genera_clienti_txt()
clienti.set("CodiceListino", cod_contr);
}
//casotto sulla decodifica articoli
//"FlDecodArt"
//"DecodeCodCli"
TString16 ntel = archivio_clienti.get(CLI_PTEL).as_string();
const TString& str_sconto = archivio_clienti.get(CFV_SCONTO).as_string();
clienti.set("ScontoFineFattura", find_sconto(str_sconto));
TString80 ntel = archivio_clienti.get(CLI_PTEL).as_string();
ntel << archivio_clienti.get(CLI_TEL).as_string();
clienti.set(CLI_TEL, ntel);
clienti.set("NumeroTelefono", ntel);
clienti.set("EsenteIVA", archivio_clienti.get(CFV_ASSFIS));
clienti.set(CLI_CODCFFATT, archivio_clienti.get(CLI_CODCFFATT));
clienti.set("TipoDoc", "F");
@ -199,7 +236,7 @@ void TFile2Txt::genera_clienti_txt()
real fido = archivio_clienti.get(CLI_FIDO).as_real();
fido *= CENTO;
fido.round();
clienti.set(CLI_FIDO, fido);
clienti.set("Fido", fido);
/*const bool sospeso = archivio_clienti.get(CLI_SOSPESO).as_bool();
TString4 s;
@ -207,12 +244,6 @@ void TFile2Txt::genera_clienti_txt()
s='S';
clienti.set("NoConsegna", TVariant(s));*/
clienti.set(CLI_COFI, archivio_clienti.get(CLI_COFI));
const TString& str_sconto = archivio_clienti.get(CFV_SCONTO).as_string();
clienti.set("ScontoFineFattura", find_sconto(str_sconto));
clienti.set(CFV_ASSFIS, archivio_clienti.get(CFV_ASSFIS));
}
TFilename output_path = genera_path("clienti");
@ -571,7 +602,10 @@ void TFile2Txt::elabora(const TMask& mask)
genera_agenti_txt();
if (mask.get_bool(F_CLIENTI))
genera_clienti_txt();
{
const long da_codcli = mask.get_long(F_DA_CODCLI);
genera_clienti_txt(da_codcli);
}
if (mask.get_bool(F_SOSPESI))
genera_sospesi_txt();
@ -609,6 +643,8 @@ void TFile2Txt::main_loop()
{
TFile2Txt_mask mask;
_output_dir = mask.get(F_PATH);
if (!_output_dir.exist())
error_box("Non esiste la cartella di destinazione indicata!");
while (mask.run() == K_ENTER)
{
elabora(mask);

View File

@ -12,3 +12,5 @@
#define F_ATTREZZA 211
#define F_TABPAG 212
#define F_CARICO 213
#define F_DA_CODCLI 220

View File

@ -25,6 +25,19 @@ BEGIN
GROUP 1
END
NUMBER F_DA_CODCLI 6
BEGIN
PROMPT 12 4 "Dal: "
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_DA_CODCLI
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT F_DA_CODCLI CODCF
CHECKTYPE NORMAL
GROUP 1
END
BOOLEAN F_SOSPESI
BEGIN
PROMPT 2 5 "Sospesi"
@ -51,43 +64,43 @@ END
BOOLEAN F_PRODOTTI
BEGIN
PROMPT 20 3 "Prodotti"
PROMPT 28 3 "Prodotti"
GROUP 1
END
BOOLEAN F_LINEE
BEGIN
PROMPT 20 4 "Linee"
PROMPT 28 4 "Linee"
GROUP 1
END
BOOLEAN F_BARCODE
BEGIN
PROMPT 20 5 "Barcode"
PROMPT 28 5 "Barcode"
GROUP 1
END
BOOLEAN F_DECODART
BEGIN
PROMPT 20 6 "Codici articolo alternativi"
PROMPT 28 6 "Codici articolo alternativi"
GROUP 1
END
BOOLEAN F_ATTREZZA
BEGIN
PROMPT 45 3 "Attrezzature"
PROMPT 53 3 "Attrezzature"
GROUP 1
END
BOOLEAN F_TABPAG
BEGIN
PROMPT 45 4 "Condizioni pagamento"
PROMPT 53 4 "Condizioni pagamento"
GROUP 1
END
BOOLEAN F_CARICO
BEGIN
PROMPT 45 5 "Documenti di carico"
PROMPT 53 5 "Documenti di carico"
GROUP 1
END

View File

@ -467,7 +467,23 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
//3x) iva
const int aliquota_iva = recset.get("AliquotaIva").as_int();
//rigadoc.put(RDOC_CODIVA, codiva);
TString4 codiva;
//il codice lo si trova nella configurazione del modulo Ha (c'è un magico sheet apposito)
TConfig config(CONFIG_DITTA, "ha");
TString curr_name;
for (int j = 0; ; j++)
{
const real curr_aliq_iva = config.get("IVAaliquota", NULL, j);
if (curr_aliq_iva == ZERO)
break;
if (curr_aliq_iva.integer() == aliquota_iva)
{
codiva = config.get("IVAcodice", NULL, j);
break;
}
}
rigadoc.put(RDOC_CODIVA, codiva);
rigadoc.put(RDOC_LIVELLO, recset.get("CodiceLotto").as_string());
}

View File

@ -888,8 +888,13 @@ bool THardy_clienti::trasferisci_clienti()
ini.list_variables(lista_campi, true, "CLIENTI", true);
TSystemisamfile clienti(LF_CLIFO);
clienti.open(_lock);
clienti.open(_lock);
TRectype& rec = clienti.curr();
TSystemisamfile cfven(LF_CFVEN);
cfven.open(_lock);
TRectype& cfv_rec = cfven.curr();
THardy_iterator hi(this);
while (++hi)
{
@ -928,6 +933,16 @@ bool THardy_clienti::trasferisci_clienti()
msg << TR("Inserito cliente ") << " '" << key << '\'' << TR("con codice ") << codcf ;
log(msg);
}
//Adesso tocca all'agente che va messo in cfven
cfv_rec.zero();
cfv_rec.put(CFV_TIPOCF, "C");
cfv_rec.put(CFV_CODCF, codcf);
const TString4 codzona = get_str("IdZona");
cfv_rec.put(CFV_CODZONA, codzona);
const TString4 codag = get_str("IdAgente1"); //agente principale
cfv_rec.put(CFV_CODAG, codag);
test_write(cfven);
}
else
{
@ -936,6 +951,7 @@ bool THardy_clienti::trasferisci_clienti()
log(msg);
}
}
cfven.close();
clienti.close();
return write_enabled();
}
@ -1059,9 +1075,9 @@ bool THardy_clienti::trasferisci_destinazioni()
return write_enabled();
}
long THardy_fornitori::get_codcf(const TString &key)
long THardy_fornitori::get_codcf(const TString &key) const
{
long codcf = atoi(key.mid(3,6));
long codcf = atol(key.mid(3,6));
return codcf;
}
@ -1124,10 +1140,12 @@ bool THardy_fornitori::trasferisci()
return write_enabled();
}
TString& THardy_agenti::get_codage(const TString& key)
const TString& THardy_agenti::get_codage(const TString& key) const
{
TString16 codage(key);
return codage.right_just(5,'0');
TString& codage = get_tmp_string();
codage = key;
codage.right_just(5,'0');
return codage;
}
bool THardy_agenti::trasferisci()
@ -1149,7 +1167,7 @@ bool THardy_agenti::trasferisci()
while (++hi)
{
const TString16 key = get_str("IdAgente");
TString8 codage = get_codage(key);
const TString8 codage = get_codage(key);
if (codage > 0)
{
rec.zero();

View File

@ -209,7 +209,7 @@ public:
class THardy_fornitori : public THardy_transfer
{
protected:
long get_codcf(const TString& key);
long get_codcf(const TString& key) const;
public:
virtual bool trasferisci();
};
@ -217,7 +217,7 @@ public:
class THardy_agenti : public THardy_transfer
{
protected:
TString& get_codage(const TString& key);
const TString& get_codage(const TString& key) const;
public:
virtual bool trasferisci();
};

View File

@ -100,96 +100,113 @@ THardy_recordset::THardy_recordset(const int rec_lenght) : TAS400_recordset("AS4
}
//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(CLI_CODCF, T_N, 4, 6); //x
add_field(CLI_RAGSOC, T_X, 10, 34); //x
add_field(CLI_INDCF, T_X, 44, 34); //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(CLI_CAPCF, T_X, 98, 5); //x
add_field("CAP", T_X, 98, 5); //x
add_field("Provincia", T_X, 103, 2); //x
add_field(CLI_PAIV, T_X, 105, 11); //x
add_field(CLI_CODPAG, T_X, 116, 2); //x
add_field("CodiceListino", T_X, 118, 3); //x
add_field("CodicePromozione", T_X, 121, 3);
add_field("ScontoFineFattura", T_2Nv2N,124, 4); //x
add_field("Giro01", T_N, 128, 3);
add_field("Giro02", T_N, 131, 3);
add_field("Giro03", T_N, 134, 3);
add_field("Giro04", T_N, 137, 3);
add_field("Giro05", T_N, 140, 3);
add_field("Giro06", T_N, 143, 3);
add_field("TipoControllo", T_X, 146, 1);
add_field("FlDecodArt", T_X, 147, 1);
add_field("DecodeCodCli", T_X, 148, 6);
add_field(CLI_TEL, T_X, 154, 10); //x
add_field(CFV_ASSFIS, T_X, 164, 2); //x
add_field(CLI_CODCFFATT, T_N, 166, 6); //x
add_field("TipoDoc", T_X, 172, 1);
add_field("NoConsegna", T_X, 173, 1); //x
add_field("ScontoA", T_2N, 174, 2);
add_field("ScontoB", T_2N, 176, 2);
add_field("ScontoC", T_2N, 178, 2);
add_field("ScontoD", T_2N, 180, 2);
add_field("ScontoE", T_2N, 182, 2);
add_field("ScontoF", T_2N, 184, 2);
add_field("ScontoG", T_2N, 186, 2);
add_field("ScontoH", T_2N, 188, 2);
add_field("ScontoI", T_2N, 190, 2);
add_field("ScontoJ", T_2N, 192, 2);
add_field("ScontoK", T_2N, 194, 2);
add_field("ScontoL", T_2N, 196, 2);
add_field("ScontoM", T_2N, 198, 2);
add_field("ScontoN", T_2N, 200, 2);
add_field("ScontoO", T_2N, 202, 2);
add_field("ScontoP", T_2N, 204, 2);
add_field("ScontoQ", T_2N, 206, 2);
add_field("ScontoR", T_2N, 208, 2);
add_field("ScontoS", T_2N, 210, 2);
add_field("ScontoT", T_2N, 212, 2);
add_field(CLI_FIDO, T_Nv2N, 214, 8); //x
add_field("CodcliGiro3", T_X, 222, 6);
add_field(CLI_COFI, T_X, 228, 16); //x
add_field("Giro4", T_N, 244, 6);
add_field("FlPrezzoLibero", T_N, 250, 1);
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(253)
: TEsporta_clienti_recordset(308)
{
insert_field("Segno", T_X, 4, 1); //x
}
//Sospesi
//-------
TEsporta_sospesi_recordset::TEsporta_sospesi_recordset(int rec_length)
//Prodotti
//--------
TEsporta_prodotti_recordset::TEsporta_prodotti_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_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);
add_field("PrezzoMinimo", T_Nv3N, 57, 7);
add_eol_field();
}
//..e variazioni sospesi
TEsporta_sospesiVAR_recordset::TEsporta_sospesiVAR_recordset()
: TEsporta_sospesi_recordset(70)
//..e variazioni prodotti
TEsporta_prodottiVAR_recordset::TEsporta_prodottiVAR_recordset()
: TEsporta_prodotti_recordset(66)
{
insert_field("Segno", T_X, 4, 1); //x
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();
}
@ -215,6 +232,20 @@ TEsporta_listiniVAR_recordset::TEsporta_listiniVAR_recordset()
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)
@ -232,71 +263,6 @@ TEsporta_contratti_recordset::TEsporta_contratti_recordset(int rec_length)
add_eol_field();
}
//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();
}
//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
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);
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
}
//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("Data", 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();
}
//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();
}
//Rdoc (Carico) è una riga di un documento
//----------------
@ -310,6 +276,29 @@ TEsporta_carico_recordset::TEsporta_carico_recordset(int rec_length)
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 ()
//---------------

View File

@ -91,7 +91,8 @@ public:
class TEsporta_clienti_recordset : public THardy_recordset
{
public:
TEsporta_clienti_recordset(int rec_length = 252);
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