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 <assoc.h>
#include <isam.h>
#include <mailbox.h>
#include <progind.h>
#include <prefix.h>
#include <relation.h>
#include <scanner.h>
#include <tabutil.h>
#include <urldefid.h>
#include <utility.h>
#include <extcdecl.h>
#if XVT_OS == XVT_OS_WIN
#include <direct.h>
#define RMDIR _rmdir
@ -18,6 +20,7 @@
#define RMDIR rmdir
#endif
#include <causali.h>
#include <rmov.h>
#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7|8] ditta"
@ -157,14 +160,15 @@ public:
void liala(const char* table);
bool patch_uff(TRectype & rec, const char * const fnames[]);
bool collate(TRectype & rec, const char * f1, const char * f2);
void patch_com(void);
void zero_770(void);
void convert_patty(void);
void convert_codconc(void);
void convert_profili(void);
void convert_caus_attiv(void);
void rebuild_indexes(void);
void rebuild_dir_indexes(void);
void patch_com();
void zero_770();
void convert_patty();
void convert_codconc();
void convert_profili();
void convert_caus_attiv();
void rebuild_indexes();
void rebuild_dir_indexes();
void aggiorna_causali_pagamento() const;
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);
}
break;
case 2:
liala("LIA");
liala("PLA");
break;
case 3:
if (_codditta == 0)
patch_com();
case 4:
if (_codditta == 0)
zero_770();
case 5:
convert_patty();
case 6:
{
case 2:
liala("LIA");
liala("PLA");
break;
case 3:
if (_codditta == 0)
patch_com();
case 4:
if (_codditta == 0)
zero_770();
case 5:
convert_patty();
case 6:
if (_codditta == 0)
{
convert_codconc();
@ -252,22 +255,19 @@ bool TConversione_archivi::menu(MENU_TAG)
//Cancella tutti i vecchi profili, sostituendoli con i nuovi
convert_profili();
}
}
case 7:
{
if (_codditta == 0)
convert_caus_attiv();
break;
}
if (_codditta == 0)
convert_caus_attiv();
break;
case 8:
{
if (_codditta == 0)
rebuild_indexes();
break;
}
}
default:
break;
if (_codditta == 0)
rebuild_indexes();
case 9:
aggiorna_causali_pagamento();
break;
default:
break;
}
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
///////////////////////////////////////////////////////////