Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :riporto hardy dalla 11 (esportazione sospesivar) git-svn-id: svn://10.65.10.50/branches/R_10_00@21010 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0f1e5bec87
commit
bed09775ba
133
ha/ha1100.cpp
133
ha/ha1100.cpp
@ -5,6 +5,9 @@
|
||||
#include <utility.h>
|
||||
|
||||
#include <comuni.h>
|
||||
#include <pagsca.h>
|
||||
#include <partite.h>
|
||||
#include <scadenze.h>
|
||||
#include "../mg/umart.h"
|
||||
|
||||
#include "halib.h"
|
||||
@ -52,11 +55,15 @@ protected:
|
||||
|
||||
//metodi di medio livello
|
||||
void crea_nome_txt(const TString& prefisso, TFilename& output_path);
|
||||
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;
|
||||
|
||||
//metodi di alto livello
|
||||
void genera_cliente_txt(TConfig& ini);
|
||||
void genera_riga_listino_txt(TConfig& ini);
|
||||
void genera_prodotto_txt(TConfig& ini);
|
||||
void genera_sospeso_txt(TConfig& ini, TString_array& ini_paragraphs);
|
||||
|
||||
virtual void main_loop();
|
||||
|
||||
@ -336,11 +343,133 @@ void TIni2Txt::genera_prodotto_txt(TConfig& ini)
|
||||
}
|
||||
|
||||
|
||||
void TIni2Txt::get_part_key(TConfig& ini, TToken_string& key) const
|
||||
{
|
||||
//tracciato: tipocf-sottoconto(=codcf)-anno-numpart-nriga
|
||||
key.cut(0);
|
||||
key.add(ini.get(PART_TIPOCF));
|
||||
key.add(ini.get(PART_SOTTOCONTO));
|
||||
key.add(ini.get_int(PART_ANNO));
|
||||
key.add(ini.get(PART_NUMPART));
|
||||
key.add(ini.get_int(PART_NRIGA));
|
||||
}
|
||||
|
||||
|
||||
bool TIni2Txt::find_part_key(TConfig& ini, const TString_array& ini_paragraphs,
|
||||
const int logicnum, const TToken_string& key) const
|
||||
{
|
||||
TString4 start;
|
||||
start << logicnum << ',';
|
||||
|
||||
//cerca i pagamenti della partita
|
||||
FOR_EACH_ARRAY_ROW(ini_paragraphs, t, row)
|
||||
{
|
||||
if (row->starts_with(start))
|
||||
{
|
||||
TToken_string key_row;
|
||||
ini.set_paragraph(*row);
|
||||
get_part_key(ini, key_row);
|
||||
if (key_row == key)
|
||||
return true;
|
||||
} //if (part_row->starts_with("30...
|
||||
} //FOR_EACH_ARRAY_ROW(ini_paragraphs, t...
|
||||
return false;
|
||||
}
|
||||
|
||||
void TIni2Txt::genera_sospeso_txt(TConfig& ini, TString_array& ini_paragraphs)
|
||||
{
|
||||
TEsporta_sospesiVAR_recordset sospeso;
|
||||
sospeso.new_rec("");
|
||||
|
||||
const TString4 segno = ricava_segno(ini);
|
||||
|
||||
//delirio di campi da part (28) pagsca (29) scad(30)
|
||||
//--------------------------------------------------
|
||||
//ricava il numreg dal mov
|
||||
const long numreg = ini.get_long(MOV_NUMREG, "23");
|
||||
TAssoc_array clienti;
|
||||
|
||||
//costruisce la lista dei clienti presenti nel .ini
|
||||
FOR_EACH_ARRAY_ROW(ini_paragraphs, r, riga)
|
||||
{
|
||||
if (riga->starts_with("28,"))
|
||||
{
|
||||
const long part_numreg = ini.get_long(PART_NREG, *riga); //va specificata il paragrafo alla prima get
|
||||
const char tipocf = ini.get_char(PART_TIPOCF);
|
||||
if (numreg == part_numreg && tipocf == 'C')
|
||||
clienti.add(ini.get(PART_SOTTOCONTO));
|
||||
}
|
||||
}
|
||||
|
||||
FOR_EACH_ARRAY_ROW(ini_paragraphs, s, part_row)
|
||||
{
|
||||
if (part_row->starts_with("28,"))
|
||||
{
|
||||
const int tipomov = ini.get_int(PART_TIPOMOV, *part_row);
|
||||
const char tipocf = ini.get_char(PART_TIPOCF);
|
||||
const TString8 codcf = ini.get(PART_SOTTOCONTO);
|
||||
const bool part_chiusa = ini.get_bool(PART_CHIUSA);
|
||||
//cerca le partite, derivanti da fatture, dei soli clienti che ha nella lista clienti
|
||||
if (!part_chiusa && tipomov == 1 && tipocf == 'C' && clienti.is_key(codcf))
|
||||
{
|
||||
TToken_string key;
|
||||
get_part_key(ini, key);
|
||||
|
||||
const long numfatt = ini.get_long(PART_NUMDOC);
|
||||
const TDate datadoc = ini.get(PART_DATADOC);
|
||||
const TString8 numpart = key.get(3);
|
||||
|
||||
//cerca i pagamenti della rata
|
||||
if (find_part_key(ini, ini_paragraphs, LF_SCADENZE, key))
|
||||
{
|
||||
real imp_rata = ini.get(SCAD_IMPORTO);
|
||||
const TDate data_rata = ini.get(SCAD_DATASCAD);
|
||||
real imp_pag;
|
||||
if (find_part_key(ini, ini_paragraphs, LF_PAGSCA, key))
|
||||
{
|
||||
const char acc_sal = ini.get(PAGSCA_ACCSAL)[0];
|
||||
imp_pag = acc_sal == 'S' ? imp_rata : real(ini.get(PAGSCA_IMPORTO));
|
||||
}
|
||||
//se il pagamento non chiude la rata -> il saldo resta in sospeso e il record va aggiunto
|
||||
if (imp_pag < imp_rata)
|
||||
{
|
||||
real residuo = imp_rata - imp_pag;
|
||||
|
||||
//riempie il record da esportare
|
||||
sospeso.set("CodiceTerminale", 0L);
|
||||
sospeso.set("Segno", segno);
|
||||
sospeso.set("CodiceCliente", codcf);
|
||||
sospeso.set("NumeroFattura", numfatt);
|
||||
sospeso.set("DataFattura", format_data_6(datadoc));
|
||||
residuo *= CENTO;
|
||||
residuo.round();
|
||||
sospeso.set("ImportoResiduo", residuo);
|
||||
imp_rata.round();
|
||||
sospeso.set("ImpOriginalDoc", imp_rata);
|
||||
sospeso.set("DataScadenza", format_data_6(data_rata));
|
||||
sospeso.set("TipoDocumento", "F");
|
||||
}
|
||||
} //if (find_part_key(ini, ini_paragraphs, LF_SCADENZE...
|
||||
} //if (tipomov == 1 && tipocf...
|
||||
} //if (part_row->starts_with("28,...
|
||||
} //FOR_EACH_ARRAY_ROW(ini_paragraphs, s...
|
||||
|
||||
//prepara il nome corretto del file .txt da generare
|
||||
//--------------------------------------------------
|
||||
const TString prefisso = "sospesivar";
|
||||
TFilename output_path;
|
||||
crea_nome_txt(prefisso, output_path);
|
||||
|
||||
sospeso.save_as(output_path, fmt_text);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TIni2Txt::main_loop()
|
||||
{
|
||||
//stabilisce una volta per tutte ad inizio programma quale cavolo è la directory dove sbattere i .txt generati
|
||||
TConfig hardy(CONFIG_DITTA, "ha");
|
||||
_output_dir = hardy.get("OuputPath");
|
||||
_output_dir = hardy.get("OutputPath");
|
||||
|
||||
//dalla riga di comando raccatta il path completo del file .ini da tradurre
|
||||
TFilename path = argv(2);
|
||||
@ -358,6 +487,8 @@ void TIni2Txt::main_loop()
|
||||
genera_cliente_txt(input_ini_file);
|
||||
|
||||
//sospesi
|
||||
if (ini_paragraphs.find("28,1,1") >= 0)
|
||||
genera_sospeso_txt(input_ini_file, ini_paragraphs);
|
||||
|
||||
//listino
|
||||
if (ini_paragraphs.find("52") >= 0)
|
||||
|
@ -3,7 +3,8 @@
|
||||
#include <progind.h>
|
||||
|
||||
#include <comuni.h>
|
||||
|
||||
#include <scadenze.h>
|
||||
#include "../cg/cgsaldac.h"
|
||||
#include "../ve/condv.h"
|
||||
|
||||
#include "halib.h"
|
||||
@ -211,6 +212,57 @@ void TFile2Txt::genera_clienti_txt()
|
||||
|
||||
void TFile2Txt::genera_sospesi_txt()
|
||||
{
|
||||
TEsporta_sospesi_recordset sospesi;
|
||||
|
||||
TString query;
|
||||
query << "USE PART";
|
||||
query << "\nSELECT (CHIUSA!=\"X\")&&(TIPOMOV=1)";
|
||||
query << "\nFROM TIPOC=C";
|
||||
query << "\nTO TIPOC=C";
|
||||
|
||||
TISAM_recordset archivio_part(query);
|
||||
const long archivio_part_items = archivio_part.items();
|
||||
|
||||
TProgind progind(archivio_part_items, "Sospesi...", false, true);
|
||||
for (bool ok = archivio_part.move_first(); ok; ok = archivio_part.move_next())
|
||||
{
|
||||
progind.addstatus(1);
|
||||
|
||||
sospesi.new_rec("");
|
||||
|
||||
sospesi.set("CodiceTerminale", 0L);
|
||||
|
||||
//per riempire i campi è necessario un po' di casino sulla partita in esame
|
||||
const TRectype& rec_part = archivio_part.cursor()->curr();
|
||||
TPartita partita(rec_part);
|
||||
//cerca il saldo, il totale del doc originale, il residuo
|
||||
TImporto saldo, doc, pag, imp;
|
||||
partita.calcola_saldo(saldo, doc, pag, imp);
|
||||
TImporto residuo = doc;
|
||||
residuo -= saldo;
|
||||
|
||||
const int nriga = rec_part.get_int(PART_NRIGA);
|
||||
const TRiga_scadenze& scad = partita.rata(nriga, 1);
|
||||
const TDate datascad = scad.get_date(SCAD_DATASCAD);
|
||||
|
||||
//e vai che riempiamo i campi
|
||||
const TString& codcf = rec_part.get(PART_SOTTOCONTO);
|
||||
sospesi.set("CodiceCliente", codcf);
|
||||
const TString& ndoc = rec_part.get(PART_NUMDOC);
|
||||
sospesi.set("NumeroFattura", ndoc);
|
||||
const TDate datadoc = rec_part.get_date(PART_DATADOC);
|
||||
sospesi.set("DataFattura", format_data_6(datadoc));
|
||||
sospesi.set("ImportoResiduo", residuo.valore());
|
||||
sospesi.set("ImpOriginalDoc", doc.valore());
|
||||
sospesi.set("DataScadenza", format_data_6(datascad));
|
||||
TString16 cod_partita;
|
||||
cod_partita << rec_part.get_int(PART_ANNO) << "-" << rec_part.get(PART_NUMPART);
|
||||
sospesi.set("Partita", cod_partita);
|
||||
sospesi.set("TipoDoc", "F");
|
||||
}
|
||||
|
||||
TFilename output_path = genera_path("sospesi");
|
||||
sospesi.save_as(output_path, fmt_text);
|
||||
}
|
||||
|
||||
//listini: i commenti del metodo sono nella genera_listino_txt() della ha1100
|
||||
@ -291,9 +343,9 @@ void TFile2Txt::genera_contratti_txt()
|
||||
righe_contratti.set(RCONDV_SCONTO, find_sconto(str_sconto));
|
||||
|
||||
TDate dataini = archivio_rcondv.get("CONDV.VALIN").as_date();
|
||||
righe_contratti.set(CONDV_VALIN, dataini.string(full, '\0'));
|
||||
righe_contratti.set(CONDV_VALIN, format_data_8(dataini));
|
||||
TDate datafine = archivio_rcondv.get("CONDV.VALFIN").as_date();
|
||||
righe_contratti.set(CONDV_VALFIN, datafine.string(full, '\0'));
|
||||
righe_contratti.set(CONDV_VALFIN, format_data_8(datafine));
|
||||
}
|
||||
|
||||
TFilename output_path = genera_path("particolari");
|
||||
|
@ -42,6 +42,8 @@ class TUpload2Campo : public TSkeleton_application
|
||||
|
||||
protected:
|
||||
void elabora_SU(THardy_upload_recordset& recset, TLog_report& log);
|
||||
void elabora_BR(THardy_upload_recordset& recset, TLog_report& log);
|
||||
void elabora_VC(THardy_upload_recordset& recset, TLog_report& log);
|
||||
|
||||
void elabora(const TMask& mask);
|
||||
|
||||
@ -53,6 +55,32 @@ public:
|
||||
|
||||
void TUpload2Campo::elabora_SU(THardy_upload_recordset& recset, TLog_report& log)
|
||||
{
|
||||
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
||||
const TString& cod_age = recset.get(AGE_CODAGE).as_string();
|
||||
const TString& descr_age = recset.get(AGE_RAGSOC).as_string();
|
||||
TString msg;
|
||||
msg << "Scartati dati agente " << cod_term << " " << descr_age;
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
||||
void TUpload2Campo::elabora_BR(THardy_upload_recordset& recset, TLog_report& log)
|
||||
{
|
||||
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
||||
const long ndoc = recset.get("NumeroDoc").as_int();
|
||||
TString msg;
|
||||
msg << "Scartato movimento magazzino. Terminale: " << cod_term << " N.Doc: " << ndoc;
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
||||
|
||||
void TUpload2Campo::elabora_VC(THardy_upload_recordset& recset, TLog_report& log)
|
||||
{
|
||||
const TString& cod_term = recset.get("CodiceTerminale").as_string();
|
||||
const TString& codcf = recset.get(CLI_CODCF).as_string();
|
||||
const TString& ragsoc = recset.get(CLI_RAGSOC).as_string();
|
||||
TString msg;
|
||||
msg << "Scartato nuovo cliente. Terminale: " << cod_term << " CodCli: " << codcf << " Ragsoc: " << ragsoc;
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
||||
|
||||
@ -89,14 +117,19 @@ void TUpload2Campo::elabora(const TMask& mask)
|
||||
elabora_SU(recset, log);
|
||||
break;
|
||||
case 1: //tipo record: TF (Testata Fattura)
|
||||
//elabora_TF(recset, log);
|
||||
break;
|
||||
case 2: //tipo record: RF (Riga Fattura)
|
||||
//elabora_RF(recset, log);
|
||||
break;
|
||||
case 3: //tipo record: SI (incasso documenti)
|
||||
//elabora_SI(recset, log);
|
||||
break;
|
||||
case 4: //tipo record: BR (movimenti magazzino)
|
||||
elabora_BR(recset, log);
|
||||
break;
|
||||
case 5: //tipo record: VC (Variazioni Cliente)
|
||||
//elabora_VC(recset, log);
|
||||
break;
|
||||
default: //se il tipo record non esiste nella lista dei tipi record si incazza e lo scrive!
|
||||
{
|
||||
@ -105,7 +138,7 @@ void TUpload2Campo::elabora(const TMask& mask)
|
||||
log.log_error(msg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} //switch(pos)..
|
||||
|
||||
|
||||
|
||||
|
93
ha/halib.cpp
93
ha/halib.cpp
@ -94,6 +94,9 @@ THardy_recordset::THardy_recordset(const int rec_lenght) : TAS400_recordset("AS4
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Recordset specifici per i dati da trasferire INPUT
|
||||
/////////////////////////////////////////////////////////////
|
||||
//questo invece è il metodo magico che vale per il caricamento da file esterno
|
||||
THardy_upload_recordset::THardy_upload_recordset(const TFilename& filename)
|
||||
: THardy_recordset(256)
|
||||
@ -155,7 +158,7 @@ THardy_upload_recordset::THardy_upload_recordset(const TFilename& filename)
|
||||
//--------------
|
||||
add_trc_field("RF", "TipoRecord", T_X, 1, 2); //x
|
||||
add_trc_field("RF", "CodiceTerminale", T_N, 3, 3); //x
|
||||
add_trc_field("RF", RDOC_NDOC, T_N, 6, 5); //x
|
||||
add_trc_field("RF", RDOC_NDOC, T_N, 6, 5); //x
|
||||
add_trc_field("RF", DOC_DATADOC, T_X, 11, 6); //x testata
|
||||
add_trc_field("RF", DOC_CODCF, T_X, 17, 6); //x testata
|
||||
add_trc_field("RF", DOC_CODCFFATT, T_X, 23, 6); //x testata
|
||||
@ -180,6 +183,52 @@ THardy_upload_recordset::THardy_upload_recordset(const TFilename& filename)
|
||||
add_trc_field("RF", "CodcliGiro3", T_X, 98, 6);
|
||||
add_trc_field("RF", "CodiceLotto", T_X, 104,10); //noi lo leghiamo all'articolo
|
||||
|
||||
//Tipo record SI
|
||||
//--------------
|
||||
add_trc_field("SI", "TipoRecord", T_X, 1, 2); //x
|
||||
add_trc_field("SI", "CodiceTerminale", T_N, 3, 3); //x
|
||||
add_trc_field("SI", "CodiceCliente", T_X, 6, 6);
|
||||
add_trc_field("SI", "NumeroFattura", T_X, 12, 12);
|
||||
add_trc_field("SI", "DataFattura", T_X, 24, 6);
|
||||
add_trc_field("SI", "NonUsato", T_N, 30, 9);
|
||||
add_trc_field("SI", "ImportoIncassato", T_Nv2N, 39, 9);
|
||||
add_trc_field("SI", "DataIncasso", T_X, 48, 6);
|
||||
add_trc_field("SI", "Partita", T_X, 54, 15);
|
||||
add_trc_field("SI", "TipoDocumento", T_X, 69, 1);
|
||||
add_trc_field("SI", "DataEmissione", T_X, 70, 6);
|
||||
add_trc_field("SI", "PagamentoCarta", T_X, 76, 1);
|
||||
|
||||
//Tipo record BR
|
||||
//--------------
|
||||
add_trc_field("BR", "TipoRecord", T_X, 1, 2); //x
|
||||
add_trc_field("BR", "CodiceTerminale", T_N, 3, 3); //x
|
||||
add_trc_field("BR", "NumeroRiga", T_N, 6, 3);
|
||||
add_trc_field("BR", "NumeroDoc", T_N, 9, 5);
|
||||
add_trc_field("BR", "DataMov", T_X, 14, 6);
|
||||
add_trc_field("BR", "CodiceArticolo", T_X, 20, 5);
|
||||
add_trc_field("BR", "Qta[int]", T_N, 25, 5);
|
||||
add_trc_field("BR", "Qta[dec]", T_N, 30, 2);
|
||||
add_trc_field("BR", "Mittente", T_N, 32, 3);
|
||||
add_trc_field("BR", "Destinatario", T_N, 35, 3);
|
||||
add_trc_field("BR", "CausaleMov", T_N, 38, 2);
|
||||
add_trc_field("BR", "CodiceLotto", T_X, 40, 10);
|
||||
|
||||
//Tipo record VC
|
||||
//--------------
|
||||
add_trc_field("VC", "TipoRecord", T_X, 1, 2); //x
|
||||
add_trc_field("VC", "CodiceTerminale", T_N, 3, 3); //x
|
||||
add_trc_field("VC", CLI_CODCF, T_X, 6, 6); //x
|
||||
add_trc_field("VC", CLI_RAGSOC, T_X, 12, 34); //x
|
||||
add_trc_field("VC", CLI_INDCF, T_X, 46, 34); //x
|
||||
add_trc_field("VC", "Localita", T_X, 80, 20); //x attenzione che potrebbe essere il com_dencom
|
||||
add_trc_field("VC", CLI_CAPCF, T_X, 100, 5); //x
|
||||
add_trc_field("VC", "Provincia", T_X, 105, 2); //x da questo e da dencom ricaviamo il codcom
|
||||
add_trc_field("VC", CLI_PAIV, T_X, 107, 16); //x
|
||||
add_trc_field("VC", CLI_CODPAG, T_X, 123, 1); //x
|
||||
add_trc_field("VC", "CodiceListino", T_X, 124, 3);
|
||||
add_trc_field("VC", "TipoDocumento", T_X, 127, 1);
|
||||
add_trc_field("VC", CLI_COFI, T_X, 128, 16); //x
|
||||
|
||||
|
||||
load_file(filename);
|
||||
}
|
||||
@ -249,6 +298,30 @@ TEsporta_clientiVAR_recordset::TEsporta_clientiVAR_recordset()
|
||||
insert_field("Segno", T_X, 4, 1); //x
|
||||
}
|
||||
|
||||
|
||||
//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_X, 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
|
||||
}
|
||||
//..e variazioni sospesi
|
||||
TEsporta_sospesiVAR_recordset::TEsporta_sospesiVAR_recordset()
|
||||
: TEsporta_sospesi_recordset(68)
|
||||
{
|
||||
insert_field("Segno", T_X, 4, 1); //x
|
||||
}
|
||||
|
||||
|
||||
//Righe Listini
|
||||
//-------------
|
||||
TEsporta_listini_recordset::TEsporta_listini_recordset(int rec_length)
|
||||
@ -408,12 +481,6 @@ TEsporta_pagamenti_recordset::TEsporta_pagamenti_recordset(int rec_length)
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Recordset specifici per i dati da trasferire INPUT
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Metodi di utility
|
||||
/////////////////////////////////////////////////////////////
|
||||
@ -441,13 +508,23 @@ const TString& find_codag(const long codcf)
|
||||
return codag.right(3); //il loro codagente è lungo 3!!!
|
||||
}
|
||||
|
||||
//il dio dei programmatori ci perdoni!
|
||||
const TString& format_data_8(const TDate& data)
|
||||
{
|
||||
const int day = data.day();
|
||||
const int month = data.month();
|
||||
const int year = data.year();
|
||||
TString& str_data = get_tmp_string();
|
||||
str_data << day << month << year;
|
||||
str_data.format("%02d%02d%04d", day, month, year);
|
||||
return str_data;
|
||||
}
|
||||
|
||||
const TString& format_data_6(const TDate& data)
|
||||
{
|
||||
const int day = data.day();
|
||||
const int month = data.month();
|
||||
const int year = data.year();
|
||||
TString& str_data = get_tmp_string();
|
||||
str_data.format("%02d%02d%02d", day, month, year%100);
|
||||
return str_data;
|
||||
}
|
||||
|
20
ha/halib.h
20
ha/halib.h
@ -99,6 +99,21 @@ public:
|
||||
TEsporta_clientiVAR_recordset();
|
||||
};
|
||||
|
||||
|
||||
//Sospesi ()
|
||||
//-----------------------
|
||||
class TEsporta_sospesi_recordset : public THardy_recordset
|
||||
{
|
||||
public:
|
||||
TEsporta_sospesi_recordset(int rec_length = 67);
|
||||
};
|
||||
//..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
|
||||
@ -153,8 +168,8 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//Rmovmag (Carico)
|
||||
//----------------
|
||||
//Carico (rdoc di carico)
|
||||
//-----------------------
|
||||
class TEsporta_carico_recordset : public THardy_recordset
|
||||
{
|
||||
public:
|
||||
@ -215,3 +230,4 @@ public:
|
||||
real find_sconto(const TString& str_sconto);
|
||||
const TString& find_codag(const long codcf);
|
||||
const TString& format_data_8(const TDate& data);
|
||||
const TString& format_data_6(const TDate& data);
|
Loading…
x
Reference in New Issue
Block a user