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:
parent
f32b35bfa1
commit
67c4f0bef0
114
ba/bacnv.cpp
114
ba/bacnv.cpp
@ -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
|
||||
///////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user