- Correzione errori su invio a sistema del saldaconto scoperti con le mie prove prima di spedire a Milano.

- Trovato anche un errore nella funzione recupera_scadenze() di cglib04.cpp che riguarda la ricezione saldaconto da sistema.


git-svn-id: svn://10.65.10.50/trunk@3856 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
ale 1996-10-30 15:19:21 +00:00
parent 4b10ce9dc3
commit 9cebacf72d
3 changed files with 41 additions and 18 deletions

View File

@ -143,8 +143,8 @@ public:
void SC_inviato(char,int,int,long,int,TString&,int); void SC_inviato(char,int,int,long,int,TString&,int);
int nprogre_interno(long nreg, int nrig); int nprogre_interno(long nreg, int nrig);
void aggiorna_array_rate(TString& npart, int nrata); void aggiorna_array_rate(char tipo,int g,int c,long s,int anno,TString& npart, int nrata);
int ultima_rata_partita(TString& npart); int ultima_rata_partita(char tipo,int g,int c,long s,int anno,TString& npart);
void partita2trasfer(TString& record, bool crea_record_riferimento = TRUE); void partita2trasfer(TString& record, bool crea_record_riferimento = TRUE);
void pagsca2trasfer (TString& record, real& importo, real& importoval); void pagsca2trasfer (TString& record, real& importo, real& importoval);
long crea_record_riferimento_PN(); long crea_record_riferimento_PN();

View File

@ -173,6 +173,7 @@ bool TInv_cont::invio_contabilita()
_numrec_pcon = 0; _numrec_pcon = 0;
_numrec_pn = 0; _numrec_pn = 0;
_numrec_iva = 0; _numrec_iva = 0;
_numrec_sc = 0;
_tras_file.open(_header); _tras_file.open(_header);
@ -501,6 +502,10 @@ bool TInv_cont::invio_tab_cau()
TString movap = _tcaus->get(CAU_MOVAP); TString movap = _tcaus->get(CAU_MOVAP);
record.overwrite(movap,212); //Segnalino di causale apertura/chiusura record.overwrite(movap,212); //Segnalino di causale apertura/chiusura
int tipomov = _tcaus->get_int(CAU_TIPOMOV);
str.format("%d", tipomov);
record.overwrite(str,208); //Tipo movimento del saldaconto
int num = 0; int num = 0;
int pos_gcs = 41; int pos_gcs = 41;
int pos_sez = 191; int pos_sez = 191;
@ -1484,6 +1489,8 @@ long TInv_cont::crea_record_riferimento_PN()
_tras_file.write_control_rec(record,size); _tras_file.write_control_rec(record,size);
_numrec_pn++;
return _ultima_nreg; return _ultima_nreg;
} }
@ -1625,11 +1632,13 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
int contocl = _tpart->get_int (PART_CONTOCL); int contocl = _tpart->get_int (PART_CONTOCL);
str.format("%02d", contocl); str.format("%02d", contocl);
record.overwrite(str,170); //Conto cliente record.overwrite(str,170); //Conto cliente
_numrec_sc++;
} }
void TInv_cont::aggiorna_array_rate(TString& numpart, int rata) void TInv_cont::aggiorna_array_rate(char tipo,int g,int c,long s,int anno,TString& numpart, int rata)
{ {
TString key (format("%-7s", (const char*) numpart)); TString key (format("%c%02d%02d%06ld%4d%-7s", tipo, g, c, s, anno, (const char*) numpart));
if (!_ultima_rata.is_key(key)) if (!_ultima_rata.is_key(key))
{ {
@ -1645,10 +1654,10 @@ void TInv_cont::aggiorna_array_rate(TString& numpart, int rata)
} }
} }
int TInv_cont::ultima_rata_partita(TString& numpart) int TInv_cont::ultima_rata_partita(char tipo,int g,int c,long s,int anno,TString& numpart)
{ {
int rata = 1; int rata = 1;
TString key (format("%-7s", (const char*) numpart)); TString key (format("%c%02d%02d%06ld%4d%-7s", tipo, g, c, s, anno, (const char*) numpart));
if (!_ultima_rata.is_key(key)) if (!_ultima_rata.is_key(key))
{ {
@ -1671,12 +1680,17 @@ void TInv_cont::pagsca2trasfer(TString& record,real& importo,real& importoval)
TString str; TString str;
int size = 256; int size = 256;
char tipo = _tpagsca->get_char(PAGSCA_TIPOC);
int g = _tpagsca->get_int (PAGSCA_GRUPPO);
int c = _tpagsca->get_int (PAGSCA_CONTO);
long s = _tpagsca->get_long(PAGSCA_SOTTOCONTO);
int anno = _tpagsca->get_int (PAGSCA_ANNO);
TString numpart = _tpagsca->get (PAGSCA_NUMPART); TString numpart = _tpagsca->get (PAGSCA_NUMPART);
int nriga = _tpagsca->get_int (PAGSCA_NRIGA); int nriga = _tpagsca->get_int (PAGSCA_NRIGA);
int nrata = _tpagsca->get_int (PAGSCA_NRATA); int nrata = _tpagsca->get_int (PAGSCA_NRATA);
if (nriga == 9999 && nrata == 9999) if (nriga == 9999 && nrata == 9999)
nrata = ultima_rata_partita(numpart); nrata = ultima_rata_partita(tipo,g,c,s,anno,numpart);
str.format("%02d", nrata); str.format("%02d", nrata);
record.overwrite(str,35); //Numero di rata record.overwrite(str,35); //Numero di rata
@ -1764,8 +1778,13 @@ bool TInv_cont::invio_mov_SC()
str.format("%02d", nrata); str.format("%02d", nrata);
record.overwrite(str,35); //Numero di rata record.overwrite(str,35); //Numero di rata
char tipo = _tscad->get_char(SCAD_TIPOCF);
int g = _tscad->get_int (SCAD_GRUPPO);
int c = _tscad->get_int (SCAD_CONTO);
long s = _tscad->get_long(SCAD_SOTTOCONTO);
int anno = _tscad->get_int (SCAD_ANNO);
numpart = _tscad->get(SCAD_NUMPART); numpart = _tscad->get(SCAD_NUMPART);
aggiorna_array_rate(numpart,nrata); aggiorna_array_rate(tipo,g,c,s,anno,numpart,nrata);
codpag = _tscad->get(SCAD_CODPAG); codpag = _tscad->get(SCAD_CODPAG);
str.format("%-2s", (const char*) codpag); str.format("%-2s", (const char*) codpag);

View File

@ -2542,6 +2542,7 @@ int TTransfer_file::recupera_scadenze(TString& record,TString& tipo)
TRecnotype rec = _tscad->recno(); TRecnotype rec = _tscad->recno();
TIsamtempfile& scad = *_tscad; TIsamtempfile& scad = *_tscad;
int num_scad = 0; int num_scad = 0;
TString recs,file;
int rata = atoi(record.sub(35,37)); int rata = atoi(record.sub(35,37));
@ -2558,7 +2559,10 @@ int TTransfer_file::recupera_scadenze(TString& record,TString& tipo)
for (scad.read(); !scad.eof(); scad.next()) for (scad.read(); !scad.eof(); scad.next())
{ {
if (scad.curr() > scadenza) break; recs = scadenza.get(SCAD_NUMPART);
file = scad.get(SCAD_NUMPART);
if (scad.curr() != scadenza || file != recs) break;
if (scad.get_int(SCAD_NRATA) != rata) continue; if (scad.get_int(SCAD_NRATA) != rata) continue;