Aggiunte procedure di servizio
git-svn-id: svn://10.65.10.50/trunk@1401 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
89b0e7f3ba
commit
98ecd1aa2d
26
cg/cg1300.h
Executable file
26
cg/cg1300.h
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef __CG1300_H
|
||||||
|
#define __CG1300_H
|
||||||
|
|
||||||
|
#define F_CODDITTA 101
|
||||||
|
#define F_RAGSOC 102
|
||||||
|
#define F_ANNO 103
|
||||||
|
#define F_REG 104
|
||||||
|
#define F_PROT 105
|
||||||
|
|
||||||
|
#endif // __CG1300_H
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
41
cg/cg1300a.uml
Executable file
41
cg/cg1300a.uml
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
#include "cg1300.h"
|
||||||
|
|
||||||
|
PAGE "" -1 -1 70 8
|
||||||
|
|
||||||
|
NUMBER F_CODDITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Ditta "
|
||||||
|
FLAGS "FRD"
|
||||||
|
USE LF_NDITTE KEY 1
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
INPUT CODDITTA F_CODDITTA
|
||||||
|
OUTPUT F_CODDITTA CODDITTA
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Ragione sociale "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 10 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
76
cg/cg1300b.uml
Executable file
76
cg/cg1300b.uml
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#include "cg1300.h"
|
||||||
|
|
||||||
|
PAGE "Rinumerazione numero protocollo" -1 -1 72 12
|
||||||
|
|
||||||
|
NUMBER F_CODDITTA 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Ditta "
|
||||||
|
FLAGS "FRD"
|
||||||
|
USE LF_NDITTE KEY 1
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
INPUT CODDITTA F_CODDITTA
|
||||||
|
OUTPUT F_CODDITTA CODDITTA
|
||||||
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_RAGSOC 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Ragione sociale "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Anno "
|
||||||
|
HELP "Anno di riferimento"
|
||||||
|
//FLAGS "A"
|
||||||
|
VALIDATE FIXLEN_FUNC 4
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Indicare l'anno"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_REG 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 5 "Codice registro "
|
||||||
|
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#103)
|
||||||
|
INPUT CODTAB[1,4] F_ANNO
|
||||||
|
INPUT CODTAB[5,7] F_REG
|
||||||
|
DISPLAY "Anno " CODTAB[1,4]
|
||||||
|
DISPLAY "Codice " CODTAB[5,7]
|
||||||
|
DISPLAY "Descrizione @40" S0
|
||||||
|
OUTPUT F_ANNO CODTAB[1,4]
|
||||||
|
OUTPUT F_REG CODTAB[5,7]
|
||||||
|
FLAGS "U"
|
||||||
|
VALIDATE ZEROFILL_FUNC 3
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Indicare il codice registro"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_PROT 5
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 6 "Numero di protocollo "
|
||||||
|
HELP "Numero progressivo di protocollo IVA"
|
||||||
|
NUM_EXPR (#F_PROT>0)
|
||||||
|
WARNING "Inserire un numero maggiore di zero"
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_CANCEL 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -1 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
ENDMASK
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
84
cg/cg1301.cpp
Executable file
84
cg/cg1301.cpp
Executable file
@ -0,0 +1,84 @@
|
|||||||
|
//**************************************************
|
||||||
|
//* Aggiornamento Flag Operazioni Intracomunitarie *
|
||||||
|
//**************************************************
|
||||||
|
#include <mov.h>
|
||||||
|
#include <rmoviva.h>
|
||||||
|
#include <caus.h>
|
||||||
|
#include "cg2103.h"
|
||||||
|
#include "cg1301.h"
|
||||||
|
|
||||||
|
bool TAgg_opintra::create()
|
||||||
|
{
|
||||||
|
TApplication::create();
|
||||||
|
|
||||||
|
_causali = new TLocalisamfile(LF_ATTIV);
|
||||||
|
|
||||||
|
dispatch_e_menu (BAR_ITEM(1));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_opintra::destroy()
|
||||||
|
{
|
||||||
|
delete _causali;
|
||||||
|
return TApplication::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_opintra::menu(MENU_TAG m)
|
||||||
|
{
|
||||||
|
TMask msk("cg1300a");
|
||||||
|
|
||||||
|
while (msk.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
look_mov();
|
||||||
|
message_box("Aggiornamento completato");
|
||||||
|
//return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAgg_opintra::look_mov()
|
||||||
|
{
|
||||||
|
TLocalisamfile caus(LF_CAUSALI);
|
||||||
|
|
||||||
|
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 TDate datareg = mov.get_date(MOV_DATAREG);
|
||||||
|
if (datareg < "01-01-93") continue;
|
||||||
|
|
||||||
|
const TString16 codcaus(mov.get(MOV_CODCAUS));
|
||||||
|
if (codcaus.not_empty())
|
||||||
|
{
|
||||||
|
caus.setkey(1);
|
||||||
|
caus.put(CAU_CODCAUS, codcaus);
|
||||||
|
if (caus.read() == NOERR)
|
||||||
|
{
|
||||||
|
bool intra = caus.get_bool(CAU_INTRACOM);
|
||||||
|
bool ok = rel.is_first_match(LF_RMOVIVA);
|
||||||
|
while (ok)
|
||||||
|
{
|
||||||
|
rmoviva.put(RMI_INTRA, intra);
|
||||||
|
rmoviva.rewrite();
|
||||||
|
ok = rel.next_match(LF_RMOVIVA);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
23
cg/cg1301.h
Executable file
23
cg/cg1301.h
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <urldefid.h>
|
||||||
|
#include <prefix.h>
|
||||||
|
|
||||||
|
class TAgg_opintra : public TApplication
|
||||||
|
{
|
||||||
|
TLocalisamfile* _causali;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual bool menu(MENU_TAG m);
|
||||||
|
|
||||||
|
void look_mov();
|
||||||
|
|
||||||
|
TAgg_opintra() {};
|
||||||
|
virtual ~TAgg_opintra() {};
|
||||||
|
};
|
159
cg/cg1302.cpp
Executable file
159
cg/cg1302.cpp
Executable file
@ -0,0 +1,159 @@
|
|||||||
|
//****************************
|
||||||
|
//* Aggiornamento Tipo Conto *
|
||||||
|
//****************************
|
||||||
|
#include <mov.h>
|
||||||
|
#include <rmoviva.h>
|
||||||
|
#include <nditte.h>
|
||||||
|
#include "conto.h"
|
||||||
|
#include "cg1302.h"
|
||||||
|
|
||||||
|
const int TAgg_tconto::look_reg (const char* cod, int anno)
|
||||||
|
{
|
||||||
|
TTable tab_reg("REG");
|
||||||
|
TString codtab;
|
||||||
|
codtab.format("%4d%-3s", anno, cod);
|
||||||
|
int tipo_reg;
|
||||||
|
|
||||||
|
tab_reg.zero();
|
||||||
|
tab_reg.put("CODTAB", codtab);
|
||||||
|
if (tab_reg.read() == NOERR)
|
||||||
|
tipo_reg = tab_reg.get_int("I0");
|
||||||
|
else
|
||||||
|
tipo_reg = 0;
|
||||||
|
|
||||||
|
return tipo_reg;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_tconto::user_create()
|
||||||
|
{
|
||||||
|
_rel = new TRelation(LF_MOV);
|
||||||
|
_rel->add(LF_RMOVIVA, "NUMREG=NUMREG",1);
|
||||||
|
_cur = new TCursor(_rel,"",1);
|
||||||
|
add_cursor(_cur);
|
||||||
|
|
||||||
|
add_file (LF_MOV);
|
||||||
|
add_file (LF_RMOVIVA);
|
||||||
|
|
||||||
|
_pcon = new TLocalisamfile(LF_PCON);
|
||||||
|
_nditte = new TLocalisamfile(LF_NDITTE);
|
||||||
|
_tabreg = new TTable("REG");
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_tconto::user_destroy()
|
||||||
|
{
|
||||||
|
delete _rel;
|
||||||
|
delete _cur;
|
||||||
|
delete _pcon;
|
||||||
|
delete _nditte;
|
||||||
|
delete _tabreg;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_tconto::set_print(int)
|
||||||
|
{
|
||||||
|
TMask msk("cg1300a");
|
||||||
|
|
||||||
|
while (msk.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
setta_intestazione();
|
||||||
|
printer().footerlen(5);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_tconto::preprocess_page(int file,int counter)
|
||||||
|
{
|
||||||
|
if (counter) return TRUE;
|
||||||
|
|
||||||
|
TCursor* cur = current_cursor();
|
||||||
|
if (file == LF_MOV)
|
||||||
|
{
|
||||||
|
TString16 reg = cur->curr().get(MOV_REG);
|
||||||
|
if (reg.empty()) return FALSE;
|
||||||
|
}
|
||||||
|
else if (file == LF_RMOVIVA)
|
||||||
|
{
|
||||||
|
TRectype pcon(LF_PCON);
|
||||||
|
int gruppo = cur->curr(LF_RMOVIVA).get_int(RMI_GRUPPO);
|
||||||
|
int conto = cur->curr(LF_RMOVIVA).get_int(RMI_CONTO);
|
||||||
|
long sottoconto = cur->curr(LF_RMOVIVA).get_long(RMI_SOTTOCONTO);
|
||||||
|
long numreg = cur->curr(LF_RMOVIVA).get_long(RMI_NUMREG);
|
||||||
|
int nrigimp = cur->curr(LF_RMOVIVA).get_int("RIGAIMP");
|
||||||
|
|
||||||
|
TBill tc (gruppo,conto,0L);
|
||||||
|
tc.read(pcon);
|
||||||
|
if (!pcon.empty())
|
||||||
|
if (pcon.get_char("TMCF") != '\0')
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
tc.set(gruppo,conto,sottoconto);
|
||||||
|
tc.read(pcon);
|
||||||
|
if (!pcon.empty())
|
||||||
|
{
|
||||||
|
if (tc.sospeso())
|
||||||
|
{
|
||||||
|
set_row(1, "@4g%7ld@23g%3d@31g%3d@37g%3d@45g%6ld ** Conto sospeso **",
|
||||||
|
numreg, nrigimp, gruppo, conto, sottoconto);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
TString16 reg = cur->curr().get(MOV_REG);
|
||||||
|
int annoiva = cur->curr().get_int(MOV_ANNOIVA);
|
||||||
|
if (look_reg(reg, annoiva) == 1) //cerca il tipo del registro
|
||||||
|
{
|
||||||
|
int t = tc.tipo_cr();
|
||||||
|
if (t == 2 || t == 3 || t == 8)
|
||||||
|
{
|
||||||
|
_rel->lfile(LF_RMOVIVA).put(RMI_TIPOCR, 4);
|
||||||
|
_rel->lfile(LF_RMOVIVA).rewrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
set_row(1, "@4g%7ld@23g%3d@31g%3d@37g%3d@45g%6ld ** Conto inesistente **",
|
||||||
|
numreg, nrigimp, gruppo, conto, sottoconto);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAgg_tconto::setta_intestazione()
|
||||||
|
{
|
||||||
|
int soh = 1;
|
||||||
|
TString sep(132);
|
||||||
|
TString ragsoc(50);
|
||||||
|
|
||||||
|
TLocalisamfile nditte(LF_NDITTE);
|
||||||
|
nditte.zero();
|
||||||
|
nditte.put(NDT_CODDITTA, get_firm());
|
||||||
|
if (nditte.read() == NOERR)
|
||||||
|
ragsoc = nditte.get(NDT_RAGSOC);
|
||||||
|
|
||||||
|
reset_header();
|
||||||
|
|
||||||
|
sep << "Ditta " << get_firm();
|
||||||
|
sep << " " << ragsoc;
|
||||||
|
|
||||||
|
sep.left_just(132);
|
||||||
|
|
||||||
|
set_header (soh++, (const char*) sep);
|
||||||
|
|
||||||
|
sep = "";
|
||||||
|
sep << "Data @< Pag. @#";
|
||||||
|
|
||||||
|
sep.right_just(127);
|
||||||
|
|
||||||
|
sep.overwrite ("AGGIORNAMENTO TIPO CONTO SU MOVIMENTI IVA - Lista errori");
|
||||||
|
set_header (soh++, (const char*)sep);
|
||||||
|
sep.fill('-');
|
||||||
|
set_header (soh++, (const char *) sep);
|
||||||
|
set_header (soh++, "Numero Registrazione Riga Gruppo Conto Sottoconto");
|
||||||
|
set_header (soh++, (const char *) sep);
|
||||||
|
set_header (soh, "");
|
||||||
|
}
|
27
cg/cg1302.h
Executable file
27
cg/cg1302.h
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#include <printapp.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <urldefid.h>
|
||||||
|
#include <prefix.h>
|
||||||
|
|
||||||
|
class TAgg_tconto : public TPrintapp
|
||||||
|
{
|
||||||
|
TLocalisamfile* _pcon,* _nditte;
|
||||||
|
TTable* _tabreg;
|
||||||
|
TRelation* _rel;
|
||||||
|
TCursor* _cur;
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual bool user_create();
|
||||||
|
virtual bool user_destroy();
|
||||||
|
virtual bool set_print(int i);
|
||||||
|
virtual bool preprocess_page(int, int);
|
||||||
|
|
||||||
|
void setta_intestazione();
|
||||||
|
const int look_reg(const char*, int);
|
||||||
|
|
||||||
|
TAgg_tconto() {};
|
||||||
|
virtual ~TAgg_tconto() {};
|
||||||
|
};
|
149
cg/cg1303.cpp
Executable file
149
cg/cg1303.cpp
Executable file
@ -0,0 +1,149 @@
|
|||||||
|
//***********************************
|
||||||
|
//* Rinumerazione numero protocollo *
|
||||||
|
//***********************************
|
||||||
|
#include <mov.h>
|
||||||
|
#include "cg1300.h"
|
||||||
|
#include "cg1303.h"
|
||||||
|
|
||||||
|
HIDDEN TAgg_nprot& app() { return (TAgg_nprot&) main_app(); }
|
||||||
|
|
||||||
|
bool TAgg_nprot::filtra_mov(const TRelation* r)
|
||||||
|
{
|
||||||
|
TLocalisamfile& mov = r->lfile();
|
||||||
|
|
||||||
|
const int annoiva = mov.get_int(MOV_ANNOIVA);
|
||||||
|
const TString16 reg = mov.get(MOV_REG);
|
||||||
|
|
||||||
|
if (app()._anno == annoiva && app()._reg == reg)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_nprot::create()
|
||||||
|
{
|
||||||
|
TApplication::create();
|
||||||
|
|
||||||
|
_tabreg = new TTable("REG");
|
||||||
|
|
||||||
|
dispatch_e_menu (BAR_ITEM(1));
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_nprot::destroy()
|
||||||
|
{
|
||||||
|
delete _tabreg;
|
||||||
|
|
||||||
|
return TApplication::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAgg_nprot::menu(MENU_TAG m)
|
||||||
|
{
|
||||||
|
TMask msk("cg1300b");
|
||||||
|
|
||||||
|
TConfig conf(CONFIG_DITTA);
|
||||||
|
int annoiva = conf.get_int("AnLiIv");
|
||||||
|
|
||||||
|
msk.set(F_ANNO, annoiva);
|
||||||
|
|
||||||
|
while (msk.run() == K_ENTER)
|
||||||
|
{
|
||||||
|
_anno = msk.get_int(F_ANNO);
|
||||||
|
_reg = msk.get(F_REG);
|
||||||
|
_prot = msk.get_long(F_PROT);
|
||||||
|
|
||||||
|
rinumera_prot();
|
||||||
|
|
||||||
|
msk.reset(F_REG);
|
||||||
|
msk.reset(F_PROT);
|
||||||
|
//return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TAgg_nprot::rinumera_prot()
|
||||||
|
{
|
||||||
|
TRelation rel (LF_MOV);
|
||||||
|
TLocalisamfile& mov = rel.lfile();
|
||||||
|
|
||||||
|
//TString80 filter;
|
||||||
|
//filter.format("ANNOIVA=%04d && REG=\"%s\"", _anno, (const char*)_reg);
|
||||||
|
//TCursor cursor(&rel, filter, 2);
|
||||||
|
|
||||||
|
TCursor cursor(&rel, "", 2);
|
||||||
|
cursor.set_filterfunction(filtra_mov);
|
||||||
|
|
||||||
|
cursor = 0L;
|
||||||
|
const long nitems = cursor.items();
|
||||||
|
|
||||||
|
//TProgind p(nitems ? nitems : 1, "Elaborazione in corso..." , TRUE, TRUE, 70);
|
||||||
|
TProgind* p = NULL;
|
||||||
|
|
||||||
|
if (nitems > 0L)
|
||||||
|
p = new TProgind (nitems, "Elaborazione in corso..." , TRUE, TRUE, 70);
|
||||||
|
|
||||||
|
long protiva, uprotiva;
|
||||||
|
|
||||||
|
for (; cursor.pos() < cursor.items(); ++cursor)
|
||||||
|
{
|
||||||
|
if (p) p->addstatus(1);
|
||||||
|
protiva = mov.get_long(MOV_PROTIVA);
|
||||||
|
uprotiva = mov.get_long(MOV_UPROTIVA);
|
||||||
|
if (protiva != _prot && uprotiva != _prot) continue;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (uprotiva != 0l)
|
||||||
|
_prot = uprotiva;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (protiva != _prot && uprotiva != _prot) //sono alla fine del file
|
||||||
|
{
|
||||||
|
delete p;
|
||||||
|
return message_box("Non trovato record con protocollo indicato: rinumerazione non avvenuta");
|
||||||
|
}
|
||||||
|
|
||||||
|
++cursor;
|
||||||
|
|
||||||
|
long nprot,uprot,dprot;
|
||||||
|
dprot = uprot = 0L;
|
||||||
|
nprot = _prot;
|
||||||
|
|
||||||
|
for (; cursor.pos() < cursor.items(); ++cursor)
|
||||||
|
{
|
||||||
|
if (p) p->addstatus(1);
|
||||||
|
protiva = mov.get_long(MOV_PROTIVA);
|
||||||
|
uprotiva = mov.get_long(MOV_UPROTIVA);
|
||||||
|
|
||||||
|
nprot = nprot+1+dprot; //stile RPG
|
||||||
|
dprot = 0L;
|
||||||
|
uprot = 0L;
|
||||||
|
dprot = (uprotiva == 0L) ? 0L : (uprotiva - protiva);
|
||||||
|
uprot = (uprotiva == 0L) ? 0L : (nprot + dprot);
|
||||||
|
|
||||||
|
mov.put(MOV_PROTIVA, nprot);
|
||||||
|
mov.put(MOV_UPROTIVA, uprot);
|
||||||
|
mov.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
TTable reg("REG");
|
||||||
|
TString16 s; s.format("%04d%s", _anno, (const char*)_reg);
|
||||||
|
reg.zero();
|
||||||
|
reg.put("CODTAB", s);
|
||||||
|
if (reg.read() == NOERR)
|
||||||
|
{
|
||||||
|
reg.put("I5", nprot + dprot);
|
||||||
|
reg.rewrite();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
delete p;
|
||||||
|
return error_box("Impossibile leggere il registro %s anno %s",
|
||||||
|
(const char*)_reg, (const char*)_anno);
|
||||||
|
}
|
||||||
|
delete p;
|
||||||
|
return message_box("Rinumerazione numero protocollo completata");
|
||||||
|
}
|
||||||
|
|
29
cg/cg1303.h
Executable file
29
cg/cg1303.h
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <urldefid.h>
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
class TAgg_nprot : public TApplication
|
||||||
|
{
|
||||||
|
TTable* _tabreg;
|
||||||
|
TString16 _reg;
|
||||||
|
int _anno;
|
||||||
|
long _prot;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static bool filtra_mov(const TRelation*);
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual bool menu(MENU_TAG m);
|
||||||
|
|
||||||
|
int rinumera_prot();
|
||||||
|
|
||||||
|
TAgg_nprot() : _reg("") {};
|
||||||
|
virtual ~TAgg_nprot() {};
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user