Patch level : 10.0 patch 774
Files correlati : ca2.exe Ricompilazione Demo : [ ] Commento : Programma di servizio per l'elimiazione dei conti non analitici dai movimenti contabili. Serve dopo una conversione per eliminare dai movimenti i conti che non sono stati marcati come analitici o dopo aver cambiato la configurazione dei conti git-svn-id: svn://10.65.10.50/trunk@20658 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f60908d15a
commit
baaacb9aa1
@ -9,6 +9,7 @@ int main(int argc, char** argv)
|
||||
{
|
||||
case 1: ca2200(argc, argv); break; // ripartizione movimenti analitica
|
||||
case 2: ca2300(argc, argv); break; // ricalcolo saldi
|
||||
case 3: ca2400(argc, argv); break; // eliminazione conti non analitci
|
||||
default: ca2100(argc, argv); break; // gestione movimenti
|
||||
}
|
||||
return 0;
|
||||
|
1
ca/ca2.h
1
ca/ca2.h
@ -4,5 +4,6 @@
|
||||
int ca2100(int argc, char* argv[]);
|
||||
int ca2200(int argc, char* argv[]);
|
||||
int ca2300(int argc, char* argv[]);
|
||||
int ca2400(int argc, char* argv[]);
|
||||
|
||||
#endif // __CA2_H
|
||||
|
92
ca/ca2400.cpp
Executable file
92
ca/ca2400.cpp
Executable file
@ -0,0 +1,92 @@
|
||||
#include <automask.h>
|
||||
#include <progind.h>
|
||||
#include <recset.h>
|
||||
|
||||
#include "calib01.h"
|
||||
#include "ca2.h"
|
||||
#include "ca2300a.h"
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
#include "movana.h"
|
||||
#include "rmovana.h"
|
||||
#include "saldana.h"
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// APPLICAZIONE
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
class TPulisci_app : public TSkeleton_application
|
||||
{
|
||||
|
||||
protected:
|
||||
virtual const char * extra_modules() const {return "cm";} //deve funzionare anche per le commesse
|
||||
virtual void main_loop();
|
||||
static bool elabora_movimento(const TRelation& rel, void* pJolly);
|
||||
|
||||
public:
|
||||
TPulisci_app() {}
|
||||
virtual ~TPulisci_app() {}
|
||||
};
|
||||
|
||||
bool TPulisci_app::elabora_movimento(const TRelation& rel, void* pJolly)
|
||||
{
|
||||
TAnal_mov & mov = (TAnal_mov &) rel.curr();
|
||||
bool updated = false;
|
||||
TImporto totdoc(mov.get_char(MOVANA_SEZIONE), mov.get_real(MOVANA_TOTDOC));
|
||||
|
||||
for (int i = mov.rows(); i >= 1; i--)
|
||||
{
|
||||
const TRectype & row = mov.body()[i];
|
||||
const TString code = row.get(RMOVANA_CODCONTO);
|
||||
const int gr = atoi(code.left(3));
|
||||
const int co = atoi(code.mid(3, 3));
|
||||
const long sc = atol(code.right(6));
|
||||
const TBill zio(gr, co, sc);
|
||||
|
||||
if (!zio.is_analitico())
|
||||
{
|
||||
TImporto importo(row.get_char(RMOVANA_SEZIONE), row.get_real(RMOVANA_IMPORTO));
|
||||
|
||||
updated = true;
|
||||
totdoc -= importo;
|
||||
mov.body().destroy_row(i, true);
|
||||
}
|
||||
}
|
||||
if (updated)
|
||||
{
|
||||
totdoc.normalize();
|
||||
mov.put(MOVANA_SEZIONE, totdoc.sezione());
|
||||
mov.put(MOVANA_TOTDOC, totdoc.valore());
|
||||
if (mov.rows() > 0)
|
||||
mov.rewrite(rel.lfile());
|
||||
else
|
||||
mov.remove(rel.lfile());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void TPulisci_app::main_loop()
|
||||
{
|
||||
if (ca_config().get_bool("UsePdcc") &&
|
||||
yesno_box("Si desidera eliminare i conti non analitici") &&
|
||||
yesno_box("Si desidera veramente eliminare i conti non analitici"))
|
||||
{
|
||||
TRelation rel_movana(LF_MOVANA);
|
||||
TCursor cur_movana(&rel_movana, "", 1);
|
||||
const long items = cur_movana.items();
|
||||
|
||||
if (items > 0)
|
||||
{
|
||||
rel_movana.lfile().set_curr(new TAnal_mov); //il record principale della rel e' un TMov_anal!!
|
||||
cur_movana.scan(elabora_movimento, this, "Eliminazione conti non analitici...");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int ca2400(int argc, char* argv[])
|
||||
{
|
||||
TPulisci_app app;
|
||||
app.run(argc, argv, "Eliminazione conti non analitici...");
|
||||
return 0;
|
||||
}
|
@ -39,3 +39,5 @@ Module = 15
|
||||
Flags = ""
|
||||
Item_01 = "Trasferimento dati da Contabilità Generale", "cacnv -0", "F"
|
||||
Item_02 = "Ricalcolo saldi", "ca2 -2", "F"
|
||||
Item_03 = "Eliminazione conti non analitici dai movimenti", "ca2 -3", "F"
|
||||
|
||||
|
@ -82,3 +82,4 @@ Module = 22
|
||||
Flags = ""
|
||||
Item_01 = "Trasferimento dati da Contabilità Generale", "cacnv -0", "F"
|
||||
Item_02 = "Ricalcolo saldi", "ca2 -2", "F"
|
||||
Item_03 = "Eliminazione conti non analitici dai movimenti", "ca2 -3", "F"
|
||||
|
Loading…
x
Reference in New Issue
Block a user