- 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);
int nprogre_interno(long nreg, int nrig);
void aggiorna_array_rate(TString& npart, int nrata);
int ultima_rata_partita(TString& npart);
void aggiorna_array_rate(char tipo,int g,int c,long s,int anno,TString& npart, int nrata);
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 pagsca2trasfer (TString& record, real& importo, real& importoval);
long crea_record_riferimento_PN();

View File

@ -172,7 +172,8 @@ bool TInv_cont::invio_contabilita()
_numrec_clifo = 0;
_numrec_pcon = 0;
_numrec_pn = 0;
_numrec_iva = 0;
_numrec_iva = 0;
_numrec_sc = 0;
_tras_file.open(_header);
@ -499,7 +500,11 @@ bool TInv_cont::invio_tab_cau()
record.overwrite(" ",249);
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 pos_gcs = 41;
@ -1483,6 +1488,8 @@ long TInv_cont::crea_record_riferimento_PN()
record.overwrite(str,219); //Flag Cliente / Fornitore
_tras_file.write_control_rec(record,size);
_numrec_pn++;
return _ultima_nreg;
}
@ -1625,11 +1632,13 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
int contocl = _tpart->get_int (PART_CONTOCL);
str.format("%02d", contocl);
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))
{
@ -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;
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))
{
@ -1670,13 +1679,18 @@ void TInv_cont::pagsca2trasfer(TString& record,real& importo,real& importoval)
{
TString str;
int size = 256;
TString numpart = _tpagsca->get (PAGSCA_NUMPART);
int nriga = _tpagsca->get_int(PAGSCA_NRIGA);
int nrata = _tpagsca->get_int(PAGSCA_NRATA);
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);
int nriga = _tpagsca->get_int (PAGSCA_NRIGA);
int nrata = _tpagsca->get_int (PAGSCA_NRATA);
if (nriga == 9999 && nrata == 9999)
nrata = ultima_rata_partita(numpart);
nrata = ultima_rata_partita(tipo,g,c,s,anno,numpart);
str.format("%02d", nrata);
record.overwrite(str,35); //Numero di rata
@ -1763,9 +1777,14 @@ bool TInv_cont::invio_mov_SC()
int nrata = _tscad->get_int(SCAD_NRATA);
str.format("%02d", nrata);
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);
aggiorna_array_rate(numpart,nrata);
aggiorna_array_rate(tipo,g,c,s,anno,numpart,nrata);
codpag = _tscad->get(SCAD_CODPAG);
str.format("%-2s", (const char*) codpag);

View File

@ -2541,7 +2541,8 @@ int TTransfer_file::recupera_scadenze(TString& record,TString& tipo)
{
TRecnotype rec = _tscad->recno();
TIsamtempfile& scad = *_tscad;
int num_scad = 0;
int num_scad = 0;
TString recs,file;
int rata = atoi(record.sub(35,37));
@ -2557,8 +2558,11 @@ int TTransfer_file::recupera_scadenze(TString& record,TString& tipo)
TRectype scadenza (scad.curr());
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;