campo-sirio/cg/cg1300.cpp
alex b3cd9c64a9 Patch level : xx.888
Files correlati     : no patch
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 01.05 patch 888 sul main trunk


git-svn-id: svn://10.65.10.50/trunk@9217 c028cbd2-c16b-5b4b-a496-9718f37d4682
2000-10-03 13:45:12 +00:00

169 lines
3.5 KiB
C++
Executable File

//********************************
//* Aggiornamento Tipo Attivita' *
//********************************
#include <applicat.h>
#include <mask.h>
#include <relation.h>
#include <tabutil.h>
#include <progind.h>
#include <mov.h>
#include <rmoviva.h>
#include "cg1.h"
#include "cg1301.h"
#include "cg1302.h"
#include "cg1303.h"
#include "cg1304.h"
#include "cg1305.h"
#include "cg1306.h"
#include "cg1307.h"
#include "cg1308.h"
#include "cglib01.h"
class TAgg_attiv : public TSkeleton_application
{
TLocalisamfile* _pcon,* _attiv;
TTable* _reg;
protected:
virtual bool create();
virtual bool destroy();
virtual void main_loop();
public:
void elabora_mov();
};
HIDDEN TAgg_attiv& app() { return (TAgg_attiv&)main_app(); }
bool TAgg_attiv::create()
{
_pcon = new TLocalisamfile(LF_PCON);
_attiv = new TLocalisamfile(LF_ATTIV);
_reg = new TTable("REG");
return TSkeleton_application::create();
}
bool TAgg_attiv::destroy()
{
delete _pcon;
delete _attiv;
delete _reg;
return TSkeleton_application::destroy();
}
void TAgg_attiv::main_loop()
{
TMask msk("cg1300a");
while (msk.run() == K_ENTER)
{
elabora_mov();
message_box("Aggiornamento completato");
}
}
void TAgg_attiv::elabora_mov()
{
TRelation rel (LF_MOV);
rel.add(LF_RMOVIVA, "NUMREG=NUMREG",1);
TCursor cursor(&rel,"",1);
TLocalisamfile& mov = rel.lfile();
TLocalisamfile& rmoviva = rel.lfile(LF_RMOVIVA);
long ditta = get_firm();
cursor = 0L;
const long nitems = cursor.items();
TProgind p(nitems ? nitems : 1, "Aggiornamento in corso..." , TRUE, TRUE, 70);
for (; cursor.pos() < cursor.items(); ++cursor)
{
p.addstatus(1);
const TString16 reg(mov.get(MOV_REG));
if (reg.empty()) continue;
const int annoiva = mov.get_int(MOV_ANNOIVA);
TRegistro registro(reg, annoiva);
const bool att_mista = registro.attivita_mista();
if (att_mista)
{
bool ok = rel.is_first_match(LF_RMOVIVA);
while (ok)
{
const char tipo = rmoviva.get_char("TIPOC");
if (tipo <= ' ')
{
TBill c(rmoviva.get_int("GRUPPO"), rmoviva.get_int("CONTO"), rmoviva.get_long("SOTTOCONTO"));
int tipoatt = c.tipo_att();
rmoviva.put("TIPOATT", tipoatt);
rmoviva.rewrite();
}
ok = rel.next_match(LF_RMOVIVA);
}
}
}
}
int cg1300(int argc, char* argv[])
{
switch (*argv[2])
{
case 'A':
{
TAgg_attiv a;
a.run(argc, argv, "Aggiornamento tipo attivita' su movimenti iva");
}
break;
case 'C':
{
TAgg_codatt a;
a.run(argc, argv,"Aggiornamento codice attivita'");
}
break;
case 'D':
{
TAgg_datacomp a;
a.run(argc, argv,"Aggiornamento data competenza");
}
break;
case 'E':
{
TAgg_codes a;
a.run(argc, argv,"Aggiornamento codice esercizio");
}
break;
case 'I':
{
TAgg_opintra a;
a.run(argc, argv, "Aggiornamento flag op. intracomunitarie");
}
break;
case 'P':
{
TAgg_nprot a;
a.run(argc, argv,"Rinumerazione numero di protocollo");
}
break;
case 'T':
{
TAgg_tconto a;
a.run(argc, argv, "Aggiornamento tipo conto"); // cg1302
}
break;
case 'Z':
elimina_zoppi(argc, argv);
break;
case 'M':
setta_meseliq(argc, argv);
break;
default:
break;
}
return 0;
}