Patch level : 2.2 84
Files correlati : cacnv.exe ca2.exe Ricompilazione Demo : [ ] Commento : Modlo contabilità analitica aggiunta ricostruzione saldi . Aggiungere a menu git-svn-id: svn://10.65.10.50/trunk@13003 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5c694c8d6c
commit
d4460260d7
@ -7,8 +7,9 @@ int main(int argc, char** argv)
|
|||||||
const int r = (argc > 1) ? argv[1][1] - '0' : 0;
|
const int r = (argc > 1) ? argv[1][1] - '0' : 0;
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case 1: ca2200(argc, argv); break; //ribaltamenti movimenti analitica
|
case 1: ca2200(argc, argv); break; // ribaltamenti movimenti analitica
|
||||||
default: ca2100(argc,argv); break; // gestione movimenti
|
case 2: ca2300(argc, argv); break; // ricalcolo saldi
|
||||||
|
default: ca2100(argc,argv); break; // gestione movimenti
|
||||||
}
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
return 0;
|
return 0;
|
||||||
|
1
ca/ca2.h
1
ca/ca2.h
@ -1,2 +1,3 @@
|
|||||||
int ca2100(int argc, char* argv[]);
|
int ca2100(int argc, char* argv[]);
|
||||||
int ca2200(int argc, char* argv[]);
|
int ca2200(int argc, char* argv[]);
|
||||||
|
int ca2300(int argc, char* argv[]);
|
||||||
|
137
ca/ca2300.cpp
Executable file
137
ca/ca2300.cpp
Executable file
@ -0,0 +1,137 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <automask.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <recarray.h>
|
||||||
|
#include <relation.h>
|
||||||
|
|
||||||
|
#include "calib01.h"
|
||||||
|
#include "ca2.h"
|
||||||
|
#include "ca2300a.h"
|
||||||
|
|
||||||
|
#include "movana.h"
|
||||||
|
#include "rmovana.h"
|
||||||
|
#include "saldana.h"
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// MASCHERA
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
class TRic_saldi_msk : public TAutomask
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual bool on_field_event(TOperable_field& o, TField_event fe, long jolly) { return true; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TRic_saldi_msk();
|
||||||
|
virtual ~TRic_saldi_msk(){};
|
||||||
|
};
|
||||||
|
|
||||||
|
TRic_saldi_msk::TRic_saldi_msk() :TAutomask ("ca2300a") { }
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// TAnal_mov_ric
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
class TAnal_mov_ric : public TAnal_mov
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual int readat(TBaseisamfile& f, TRecnotype nrec, word lockop);
|
||||||
|
virtual int read(TBaseisamfile& f, word op, word lockop);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TAnal_mov_ric(long numreg = 0) : TAnal_mov(numreg) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
int TAnal_mov_ric::readat(TBaseisamfile& f, TRecnotype nrec, word lockop)
|
||||||
|
{
|
||||||
|
const int err = TMultiple_rectype::readat(f, nrec, lockop);
|
||||||
|
|
||||||
|
kill_saldi();
|
||||||
|
update_saldi(false);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TAnal_mov_ric::read(TBaseisamfile& f, word op, word lockop)
|
||||||
|
{
|
||||||
|
const int err = TMultiple_rectype::read(f, op, lockop);
|
||||||
|
|
||||||
|
kill_saldi();
|
||||||
|
update_saldi(false);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// APPLICAZIONE
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
class TRic_saldi_app : public TSkeleton_application
|
||||||
|
{
|
||||||
|
TRic_saldi_msk * _mask;
|
||||||
|
|
||||||
|
virtual const char * extra_modules() const {return "cm";} //deve funzionare anche per le commesse
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual void main_loop();
|
||||||
|
static bool elabora_movimento(const TRelation& rel, void* pJolly) { return true; }
|
||||||
|
static bool remove_saldo(const TRelation& rel, void* pJolly);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TRic_saldi_app() {}
|
||||||
|
virtual ~TRic_saldi_app() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
bool TRic_saldi_app::create()
|
||||||
|
{
|
||||||
|
_mask = new TRic_saldi_msk;
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TRic_saldi_app::destroy()
|
||||||
|
{
|
||||||
|
delete _mask;
|
||||||
|
return TSkeleton_application::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TRic_saldi_app::remove_saldo(const TRelation& rel, void* pJolly)
|
||||||
|
{
|
||||||
|
((TRelation &)rel).remove();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TRic_saldi_app::main_loop()
|
||||||
|
{
|
||||||
|
while (_mask->run() == K_ENTER)
|
||||||
|
{
|
||||||
|
const int anno = _mask->get_int(F_ANNO);
|
||||||
|
TRelation rel_saldi(LF_SALDANA);
|
||||||
|
TRectype rec_saldi(rel_saldi.curr());
|
||||||
|
|
||||||
|
rec_saldi.put(SALDANA_ANNO, anno);
|
||||||
|
TCursor cur_saldi(&rel_saldi, "", 1, &rec_saldi, &rec_saldi);
|
||||||
|
const long items_saldi = cur_saldi.items();
|
||||||
|
|
||||||
|
if (items_saldi > 0)
|
||||||
|
cur_saldi.scan(remove_saldo, this, "Azzeramento saldi...");
|
||||||
|
|
||||||
|
TRelation rel_movana(LF_MOVANA);
|
||||||
|
TString filter; filter.format("ANNOES==%04d", anno) ;
|
||||||
|
|
||||||
|
TCursor cur_movana(&rel_movana, filter, 1);
|
||||||
|
const long items = cur_movana.items();
|
||||||
|
//usa la scan dei TCursor,quindi niente progind e for,x' gia' nel metodo
|
||||||
|
if (items > 0)
|
||||||
|
{
|
||||||
|
rel_movana.lfile().set_curr(new TAnal_mov_ric); //il record principale della rel e' un TMov_anal!!
|
||||||
|
cur_movana.scan(elabora_movimento, this, "Ricostruzione saldi...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int ca2300(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TRic_saldi_app app;
|
||||||
|
app.run(argc, argv, "Ricostruzione saldi di analitica");
|
||||||
|
return 0;
|
||||||
|
}
|
1
ca/ca2300a.h
Executable file
1
ca/ca2300a.h
Executable file
@ -0,0 +1 @@
|
|||||||
|
#define F_ANNO 101
|
49
ca/ca2300a.uml
Executable file
49
ca/ca2300a.uml
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#include "ca2300a.h"
|
||||||
|
|
||||||
|
PAGE "Ricalcolo Saldi Analitica" -1 -1 47 10
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 16 1 "ATTENZIONE"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Il ricalcolo dei saldi puo' richiedere"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 4 "tempo. Siate certi di voler proseguire."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 3 6 "Codice esercizio "
|
||||||
|
USE ESC
|
||||||
|
INPUT CODTAB F_ANNO
|
||||||
|
DISPLAY "Codice Esercizio" CODTAB
|
||||||
|
DISPLAY "Data inizio esercizio" D0
|
||||||
|
DISPLAY "Data fine esercizio " D1
|
||||||
|
OUTPUT F_ANNO CODTAB
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
FLAGS "Z"
|
||||||
|
HELP "Codice esercizio per il quale si desidera il ricalcolo dei saldi"
|
||||||
|
WARNING "Il codice esercizio e' obbligatorio"
|
||||||
|
ADD RUN cg0 -5 esc
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
@ -364,7 +364,8 @@ void TConversione_cm2ca::check_phase(const TRectype& analriga)
|
|||||||
|
|
||||||
void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal)
|
void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAssoc_array& cg_lines_to_anal)
|
||||||
{
|
{
|
||||||
TAnal_mov analmov; //testata movimento analitico
|
TLocalisamfile f(LF_MOVANA);
|
||||||
|
TAnal_mov analmov; //testata movimento analitico
|
||||||
//riempie le righe di testata del movimento prima nota mov
|
//riempie le righe di testata del movimento prima nota mov
|
||||||
TMovimentoPN mov;
|
TMovimentoPN mov;
|
||||||
TRectype& mov_head = mov.curr();
|
TRectype& mov_head = mov.curr();
|
||||||
@ -511,7 +512,7 @@ void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAss
|
|||||||
//Se e' riuscita la scrittura dei movimenti di analitica (MOVANA,RMOVANA)ed e' una conversione..
|
//Se e' riuscita la scrittura dei movimenti di analitica (MOVANA,RMOVANA)ed e' una conversione..
|
||||||
//..DEFINITIVA,riordina le righe e le testate dei movimenti originari (MOV,RMOV,RMOVIVA)..
|
//..DEFINITIVA,riordina le righe e le testate dei movimenti originari (MOV,RMOV,RMOVIVA)..
|
||||||
//..riscrivendole
|
//..riscrivendole
|
||||||
if (analmov.write() == NOERR && definitiva)
|
if (analmov.write(f) == NOERR && definitiva)
|
||||||
{
|
{
|
||||||
//RIGHE MOVIMENTI CONTABILI
|
//RIGHE MOVIMENTI CONTABILI
|
||||||
TArray cg_records;
|
TArray cg_records;
|
||||||
|
@ -1160,6 +1160,7 @@ bool TAnal_mov::save_saldi()
|
|||||||
int err = saldi.read(_isequal, _testandlock);
|
int err = saldi.read(_isequal, _testandlock);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
{
|
{
|
||||||
|
saldi.zero();
|
||||||
saldi.put(SALDANA_ANNO, key.get(1));
|
saldi.put(SALDANA_ANNO, key.get(1));
|
||||||
saldi.put(SALDANA_COSTO, key.get());
|
saldi.put(SALDANA_COSTO, key.get());
|
||||||
saldi.put(SALDANA_COMMESSA, key.get());
|
saldi.put(SALDANA_COMMESSA, key.get());
|
||||||
@ -1174,9 +1175,9 @@ bool TAnal_mov::save_saldi()
|
|||||||
const char* fld_val = NULL;
|
const char* fld_val = NULL;
|
||||||
switch (tipo)
|
switch (tipo)
|
||||||
{
|
{
|
||||||
case 'P': fld_sez = SALDANA_SEZIONEP; fld_val = SALDANA_SALDOP; break;
|
case 'P': fld_sez = SALDANA_SEZIONEP; fld_val = SALDANA_SALDOP; break;
|
||||||
case 'V': fld_sez = SALDANA_SEZIONEV; fld_val = SALDANA_SALDOV; break;
|
case 'V': fld_sez = SALDANA_SEZIONEV; fld_val = SALDANA_SALDOV; break;
|
||||||
default : fld_sez = SALDANA_SEZIONE; fld_val = SALDANA_SALDO; break;
|
default : fld_sez = SALDANA_SEZIONE; fld_val = SALDANA_SALDO; break;
|
||||||
}
|
}
|
||||||
TImporto saldo(saldi.get_char(fld_sez), saldi.get_real(fld_val));
|
TImporto saldo(saldi.get_char(fld_sez), saldi.get_real(fld_val));
|
||||||
saldo += imp;
|
saldo += imp;
|
||||||
@ -1197,14 +1198,16 @@ bool TAnal_mov::save_saldi()
|
|||||||
int TAnal_mov::readat(TBaseisamfile& f, TRecnotype nrec, word lockop)
|
int TAnal_mov::readat(TBaseisamfile& f, TRecnotype nrec, word lockop)
|
||||||
{
|
{
|
||||||
const int err = TMultiple_rectype::readat(f, nrec, lockop);
|
const int err = TMultiple_rectype::readat(f, nrec, lockop);
|
||||||
load_saldi(true);
|
|
||||||
|
load_saldi(true);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TAnal_mov::read(TBaseisamfile& f, word op, word lockop)
|
int TAnal_mov::read(TBaseisamfile& f, word op, word lockop)
|
||||||
{
|
{
|
||||||
const int err = TMultiple_rectype::read(f, op, lockop);
|
const int err = TMultiple_rectype::read(f, op, lockop);
|
||||||
load_saldi(true);
|
|
||||||
|
load_saldi(true);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1235,7 +1238,10 @@ int TAnal_mov::remove(TBaseisamfile& f) const
|
|||||||
int TAnal_mov::read(long numreg, word lock)
|
int TAnal_mov::read(long numreg, word lock)
|
||||||
{
|
{
|
||||||
put(MOVANA_NUMREG, numreg);
|
put(MOVANA_NUMREG, numreg);
|
||||||
return TMultiple_rectype::read(_isequal, lock);
|
const int err = TMultiple_rectype::read(_isequal, lock);
|
||||||
|
|
||||||
|
load_saldi(true);
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
TAnal_mov::TAnal_mov(long numreg) : TMultiple_rectype(LF_MOVANA)
|
TAnal_mov::TAnal_mov(long numreg) : TMultiple_rectype(LF_MOVANA)
|
||||||
|
@ -121,6 +121,7 @@ class TAnal_mov : public TMultiple_rectype
|
|||||||
protected:
|
protected:
|
||||||
TImporto& saldo(const TRectype& rec);
|
TImporto& saldo(const TRectype& rec);
|
||||||
void load_saldi(bool reset);
|
void load_saldi(bool reset);
|
||||||
|
void kill_saldi() { _saldi.destroy(); }
|
||||||
void update_saldi(bool kill);
|
void update_saldi(bool kill);
|
||||||
bool save_saldi();
|
bool save_saldi();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user