Aggiunta conversione causali di pagamento

git-svn-id: svn://10.65.10.50/trunk@2404 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-01-09 10:30:18 +00:00
parent f32b35bfa1
commit 67c4f0bef0

View File

@ -2,15 +2,17 @@
#include <applicat.h> #include <applicat.h>
#include <assoc.h> #include <assoc.h>
#include <isam.h>
#include <mailbox.h> #include <mailbox.h>
#include <progind.h> #include <progind.h>
#include <prefix.h> #include <prefix.h>
#include <relation.h>
#include <scanner.h> #include <scanner.h>
#include <tabutil.h> #include <tabutil.h>
#include <urldefid.h> #include <urldefid.h>
#include <utility.h> #include <utility.h>
#include <extcdecl.h> #include <extcdecl.h>
#if XVT_OS == XVT_OS_WIN #if XVT_OS == XVT_OS_WIN
#include <direct.h> #include <direct.h>
#define RMDIR _rmdir #define RMDIR _rmdir
@ -18,6 +20,7 @@
#define RMDIR rmdir #define RMDIR rmdir
#endif #endif
#include <causali.h>
#include <rmov.h> #include <rmov.h>
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8] ditta" #define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8] ditta"
@ -157,14 +160,15 @@ public:
void liala(const char* table); void liala(const char* table);
bool patch_uff(TRectype & rec, const char * const fnames[]); bool patch_uff(TRectype & rec, const char * const fnames[]);
bool collate(TRectype & rec, const char * f1, const char * f2); bool collate(TRectype & rec, const char * f1, const char * f2);
void patch_com(void); void patch_com();
void zero_770(void); void zero_770();
void convert_patty(void); void convert_patty();
void convert_codconc(void); void convert_codconc();
void convert_profili(void); void convert_profili();
void convert_caus_attiv(void); void convert_caus_attiv();
void rebuild_indexes(void); void rebuild_indexes();
void rebuild_dir_indexes(void); void rebuild_dir_indexes();
void aggiorna_causali_pagamento() const;
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {} TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
}; };
@ -228,20 +232,19 @@ bool TConversione_archivi::menu(MENU_TAG)
f.load(lf, '|', '\0', '\n', TRUE, TRUE); f.load(lf, '|', '\0', '\n', TRUE, TRUE);
} }
break; break;
case 2: case 2:
liala("LIA"); liala("LIA");
liala("PLA"); liala("PLA");
break; break;
case 3: case 3:
if (_codditta == 0) if (_codditta == 0)
patch_com(); patch_com();
case 4: case 4:
if (_codditta == 0) if (_codditta == 0)
zero_770(); zero_770();
case 5: case 5:
convert_patty(); convert_patty();
case 6: case 6:
{
if (_codditta == 0) if (_codditta == 0)
{ {
convert_codconc(); convert_codconc();
@ -252,22 +255,19 @@ bool TConversione_archivi::menu(MENU_TAG)
//Cancella tutti i vecchi profili, sostituendoli con i nuovi //Cancella tutti i vecchi profili, sostituendoli con i nuovi
convert_profili(); convert_profili();
} }
case 7: case 7:
{ if (_codditta == 0)
if (_codditta == 0) convert_caus_attiv();
convert_caus_attiv(); break;
break;
}
case 8: case 8:
{ if (_codditta == 0)
if (_codditta == 0) rebuild_indexes();
rebuild_indexes(); case 9:
break; aggiorna_causali_pagamento();
} break;
} default:
default: break;
break;
} }
return FALSE; return FALSE;
} }
@ -843,6 +843,46 @@ void TConversione_archivi::rebuild_dir_indexes()
} }
} }
void TConversione_archivi::aggiorna_causali_pagamento() const
{
const int NEWROW = 8;
TLocalisamfile caus(LF_CAUSALI);
TRecord_array rcaus(LF_RCAUSALI, CAU_NRIGA);
for (int err = caus.first(); err == NOERR; err = caus.next())
{
const int tipomov = caus.get_int(CAU_TIPOMOV);
if (tipomov != 3)
continue; // Considera solo pagamenti
TRectype* key = new TRectype(LF_RCAUSALI);
key->put(CAU_CODCAUS, caus.get(CAU_CODCAUS));
rcaus.read(key); // Leggi righe causale
if (rcaus.exist(NEWROW))
{
const TRectype& riga = rcaus.row(NEWROW);
if (riga.get_int(CAU_GRUPPO) == 0) // Se il gruppo e' vuoto ...
return; // ... allora conversione gia' effettuata
}
for (int r = rcaus.last_row(); r >= NEWROW; r = rcaus.pred_row(r))
{
TRectype riga = rcaus.row(r); // Memorizzo vecchia riga
rcaus.destroy_row(r); // Cancello vecchia riga
riga.put(CAU_NRIGA, r+1);
rcaus.add_row(riga); // Spostala avanti di un posto
}
if (rcaus.last_row() >= NEWROW)
{
rcaus.row(NEWROW, TRUE); // Aggiungi riga vuota di sentinella
rcaus.rewrite(); // Aggiorna righe causale
}
}
}
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// Programma di conversione archivi speciale // Programma di conversione archivi speciale
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////