Aggiunta la gestione del saldo DARE e AVERE e dei totali IMPONIBILI.
Aggiuta la ricerca per descrizione dei conti e dei clienti nelle maschere. git-svn-id: svn://10.65.10.50/trunk@129 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c9d6658992
commit
03532d4a93
@ -49,6 +49,10 @@
|
|||||||
#define F_CORRVALUTA 134
|
#define F_CORRVALUTA 134
|
||||||
#define F_DATA74TER 135
|
#define F_DATA74TER 135
|
||||||
#define F_DESCAGG 136
|
#define F_DESCAGG 136
|
||||||
|
#define F_DARE 137
|
||||||
|
#define F_AVERE 138
|
||||||
|
#define F_IMPONIBILI 139
|
||||||
|
#define F_IMPOSTE 140
|
||||||
#define F_SHEETCG 300
|
#define F_SHEETCG 300
|
||||||
#define F_SHEETIVA 301
|
#define F_SHEETIVA 301
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ END
|
|||||||
|
|
||||||
SPREADSHEET F_SHEETCG
|
SPREADSHEET F_SHEETCG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 ""
|
PROMPT 0 9 ""
|
||||||
ITEM "Dare@17"
|
ITEM "Dare@17"
|
||||||
ITEM "Avere@17"
|
ITEM "Avere@17"
|
||||||
ITEM " @1"
|
ITEM " @1"
|
||||||
@ -186,6 +186,20 @@ BEGIN
|
|||||||
ITEM " @1"
|
ITEM " @1"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_DARE 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 -1 "Saldo Dare "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_AVERE 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 -1 "Saldo Avere "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -315,7 +315,7 @@ STRING F_PIVACLIENTE 14
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "Partita IVA "
|
PROMPT 1 11 "Partita IVA "
|
||||||
GROUP 1
|
GROUP 1
|
||||||
USE LF_CLIFO KEY 3
|
USE LF_CLIFO KEY 5
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT STATOPAIV F_STATOPAIV
|
INPUT STATOPAIV F_STATOPAIV
|
||||||
INPUT PAIV F_PIVACLIENTE
|
INPUT PAIV F_PIVACLIENTE
|
||||||
@ -331,7 +331,7 @@ STRING F_PIVAFORNITORE 14
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 "Partita IVA "
|
PROMPT 1 11 "Partita IVA "
|
||||||
GROUP 2
|
GROUP 2
|
||||||
USE LF_CLIFO KEY 3
|
USE LF_CLIFO KEY 5
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT STATOPAIV F_STATOPAIV
|
INPUT STATOPAIV F_STATOPAIV
|
||||||
INPUT PAIV F_PIVAFORNITORE
|
INPUT PAIV F_PIVAFORNITORE
|
||||||
@ -534,7 +534,7 @@ END
|
|||||||
|
|
||||||
SPREADSHEET F_SHEETIVA 0 7
|
SPREADSHEET F_SHEETIVA 0 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 4 ""
|
PROMPT 0 4 ""
|
||||||
ITEM "Imponibile@14"
|
ITEM "Imponibile@14"
|
||||||
ITEM "Iva@4"
|
ITEM "Iva@4"
|
||||||
ITEM "Det@1"
|
ITEM "Det@1"
|
||||||
@ -547,10 +547,23 @@ BEGIN
|
|||||||
ITEM "Descrizione Conto@50"
|
ITEM "Descrizione Conto@50"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_IMPONIBILI 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 11 "Totale imponibili "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_IMPOSTE 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 11 "Totale imposte "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
SPREADSHEET F_SHEETCG
|
SPREADSHEET F_SHEETCG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 11 ""
|
PROMPT 0 12 ""
|
||||||
ITEM "Dare@17"
|
ITEM "Dare@17"
|
||||||
ITEM "Avere@17"
|
ITEM "Avere@17"
|
||||||
ITEM " @1"
|
ITEM " @1"
|
||||||
@ -568,6 +581,20 @@ BEGIN
|
|||||||
ITEM " @1"
|
ITEM " @1"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
NUMBER F_DARE 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 -1 "Saldo Dare "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_AVERE 17
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 -1 "Saldo Avere "
|
||||||
|
FLAGS "DRV"
|
||||||
|
PICTURE "."
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
248
cg/cg2101.cpp
248
cg/cg2101.cpp
@ -13,209 +13,213 @@
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
TMovimentoPN::TMovimentoPN()
|
TMovimentoPN::TMovimentoPN()
|
||||||
: TRelation(LF_MOV), _oldcg(0), _oldiva(0)
|
: TRelation(LF_MOV), _oldcg(0), _oldiva(0)
|
||||||
{
|
{
|
||||||
add(LF_RMOV, "NUMREG=NUMREG");
|
add(LF_RMOV, "NUMREG=NUMREG");
|
||||||
add(LF_RMOVIVA, "NUMREG=NUMREG");
|
add(LF_RMOVIVA, "NUMREG=NUMREG");
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMovimentoPN::destroy_rows()
|
void TMovimentoPN::destroy_rows()
|
||||||
{
|
{
|
||||||
_cg.destroy();
|
_cg.destroy();
|
||||||
_iva.destroy();
|
_iva.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TRectype& TMovimentoPN::cg(int i)
|
TRectype& TMovimentoPN::cg(int i)
|
||||||
{
|
{
|
||||||
TRectype* r = (TRectype*)_cg.objptr(i);
|
TRectype* r = (TRectype*)_cg.objptr(i);
|
||||||
if (r == NULL)
|
if (r == NULL)
|
||||||
{
|
{
|
||||||
r = new TRectype(LF_RMOV);
|
r = new TRectype(LF_RMOV);
|
||||||
_cg.add(r, i);
|
_cg.add(r, i);
|
||||||
}
|
}
|
||||||
return *r;
|
return *r;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype& TMovimentoPN::iva(int i)
|
TRectype& TMovimentoPN::iva(int i)
|
||||||
{
|
{
|
||||||
TRectype* r = (TRectype*)_iva.objptr(i);
|
TRectype* r = (TRectype*)_iva.objptr(i);
|
||||||
if (r == NULL)
|
if (r == NULL)
|
||||||
{
|
{
|
||||||
r = new TRectype(LF_RMOVIVA);
|
r = new TRectype(LF_RMOVIVA);
|
||||||
_iva.add(r, i);
|
_iva.add(r, i);
|
||||||
}
|
}
|
||||||
return *r;
|
return *r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::read_mov_rows()
|
int TMovimentoPN::read_mov_rows()
|
||||||
{
|
{
|
||||||
const TLocalisamfile* rm = lfile(LF_RMOV);
|
const TLocalisamfile* rm = lfile(LF_RMOV);
|
||||||
const TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
const TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
||||||
position_rels();
|
position_rels();
|
||||||
|
|
||||||
destroy_rows();
|
destroy_rows();
|
||||||
for(bool ok = is_first_match(LF_RMOV); ok; ok = next_match(LF_RMOV))
|
for(bool ok = is_first_match(LF_RMOV); ok; ok = next_match(LF_RMOV))
|
||||||
{
|
{
|
||||||
const int row = rm->get_int(RMV_NUMRIG) - 1;
|
const int row = rm->get_int(RMV_NUMRIG) - 1;
|
||||||
cg(row) = rm->curr();
|
cg(row) = rm->curr();
|
||||||
}
|
}
|
||||||
_oldcg = cg_items();
|
_oldcg = cg_items();
|
||||||
|
|
||||||
for(ok = is_first_match(LF_RMOVIVA); ok; ok = next_match(LF_RMOVIVA))
|
for(ok = is_first_match(LF_RMOVIVA); ok; ok = next_match(LF_RMOVIVA))
|
||||||
{
|
{
|
||||||
const int row = ri->get_int(RMI_NUMRIG) - 1;
|
const int row = ri->get_int(RMI_NUMRIG) - 1;
|
||||||
iva(row) = ri->curr();
|
iva(row) = ri->curr();
|
||||||
}
|
}
|
||||||
_oldiva = iva_items();
|
_oldiva = iva_items();
|
||||||
|
|
||||||
return NOERR;
|
return NOERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::read(TIsamop op, TReclock lockop, TDate& atdate)
|
int TMovimentoPN::read(TIsamop op, TReclock lockop, TDate& atdate)
|
||||||
{
|
{
|
||||||
int err = file()->read(op, lockop, atdate);
|
int err = file()->read(op, lockop, atdate);
|
||||||
if (err == NOERR) err = read_mov_rows();
|
if (err == NOERR) err = read_mov_rows();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::write_rec(bool re, const TRectype& rec, TLocalisamfile* f)
|
int TMovimentoPN::write_rec(bool re, const TRectype& rec, TLocalisamfile* f)
|
||||||
{
|
{
|
||||||
if (re)
|
if (re)
|
||||||
{
|
{
|
||||||
const bool scrivi = f->rewrite(rec) != NOERR;
|
const bool scrivi = f->rewrite(rec) != NOERR;
|
||||||
if (scrivi) f->write(rec);
|
if (scrivi) f->write(rec);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
f->write(rec);
|
f->write(rec);
|
||||||
}
|
}
|
||||||
|
|
||||||
return f->status();
|
return f->status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::cancella(TLocalisamfile* f, int da, int a)
|
int TMovimentoPN::cancella(TLocalisamfile* f, int da, int a)
|
||||||
{
|
{
|
||||||
const long numreg = lfile()->get_long("NUMREG");
|
const long numreg = lfile()->get_long("NUMREG");
|
||||||
for (int i = da; i <= a; i++)
|
for (int i = da; i <= a; i++)
|
||||||
{
|
{
|
||||||
f->zero();
|
f->zero();
|
||||||
f->put("NUMREG", numreg);
|
f->put("NUMREG", numreg);
|
||||||
f->put("NUMRIG", i);
|
f->put("NUMRIG", i);
|
||||||
if (f->read(_isequal, _lock) == NOERR)
|
if (f->read(_isequal, _lock) == NOERR)
|
||||||
f->remove();
|
f->remove();
|
||||||
}
|
}
|
||||||
return f->status();
|
return f->status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::registra(bool re, bool force)
|
int TMovimentoPN::registra(bool re, bool force)
|
||||||
{
|
{
|
||||||
TLocalisamfile* m = lfile();
|
TLocalisamfile* m = lfile();
|
||||||
|
|
||||||
const int err = write_rec(re, m->curr(), m);
|
const int err = write_rec(re, m->curr(), m);
|
||||||
if (err != NOERR) return err;
|
if (err != NOERR) return err;
|
||||||
|
|
||||||
TLocalisamfile* rm = lfile(LF_RMOV);
|
TLocalisamfile* rm = lfile(LF_RMOV);
|
||||||
TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
||||||
|
|
||||||
const long numreg = m->get_long("NUMREG");
|
const long numreg = m->get_long("NUMREG");
|
||||||
|
|
||||||
for (int i = 0 ; i < cg_items(); i++)
|
for (int i = 0 ; i < cg_items(); i++)
|
||||||
{
|
{
|
||||||
if (!re) cg(i).put("NUMREG", numreg);
|
if (!re) cg(i).put("NUMREG", numreg);
|
||||||
const int err = write_rec(re, cg(i), rm);
|
const int err = write_rec(re, cg(i), rm);
|
||||||
if (!force && err != NOERR) return err;
|
if (!force && err != NOERR) return err;
|
||||||
}
|
}
|
||||||
if (i < _oldcg)
|
if (i < _oldcg)
|
||||||
cancella(rm, i+1, _oldcg);
|
cancella(rm, i+1, _oldcg);
|
||||||
_oldcg = cg_items();
|
_oldcg = cg_items();
|
||||||
|
|
||||||
for (i = 0 ; i < iva_items(); i++)
|
for (i = 0 ; i < iva_items(); i++)
|
||||||
{
|
{
|
||||||
if (!re) iva(i).put("NUMREG", numreg);
|
if (!re) iva(i).put("NUMREG", numreg);
|
||||||
const int err = write_rec(re, iva(i), ri);
|
const int err = write_rec(re, iva(i), ri);
|
||||||
if (!force && err != NOERR) return err;
|
if (!force && err != NOERR) return err;
|
||||||
}
|
}
|
||||||
if (i < _oldiva)
|
if (i < _oldiva)
|
||||||
cancella(ri, i+1, _oldiva);
|
cancella(ri, i+1, _oldiva);
|
||||||
_oldiva = iva_items();
|
_oldiva = iva_items();
|
||||||
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::write(bool force, TDate&)
|
int TMovimentoPN::write(bool force, TDate&)
|
||||||
{
|
{
|
||||||
const TLocalisamfile& r = *lfile();
|
const TLocalisamfile& r = *lfile();
|
||||||
const int annoiva = r.get_int("ANNOIVA");
|
const int annoiva = r.get_int("ANNOIVA");
|
||||||
const TString16 reg(r.get("REG"));
|
const TString16 reg(r.get("REG"));
|
||||||
TRegistro registro(reg, annoiva);
|
TRegistro registro(reg, annoiva);
|
||||||
|
|
||||||
if (reg.not_empty() && registro.tipo_attivita() == "M")
|
if (registro.iva() != nessuna_iva)
|
||||||
{
|
{
|
||||||
|
const bool mista = registro.tipo_attivita() == "M";
|
||||||
for (int i = 0; i < iva_items(); i++)
|
for (int i = 0; i < iva_items(); i++)
|
||||||
{
|
{
|
||||||
const int riga = iva(i).get_int("RIGAIMP");
|
int tipoatt = 1;
|
||||||
int tipoatt = 0;
|
if (mista)
|
||||||
if (riga)
|
|
||||||
{
|
{
|
||||||
const TRectype& r = cg(riga-1);
|
const int riga = iva(i).get_int("RIGAIMP");
|
||||||
const char tipo = r.get_char("TIPOC");
|
if (riga)
|
||||||
if (tipo == ' ')
|
{
|
||||||
{
|
const TRectype& r = cg(riga-1);
|
||||||
TConto c(r.get_int("GRUPPO"), r.get_int("CONTO"), r.get_long("SOTTOCONTO"));
|
const char tipo = r.get_char("TIPOC");
|
||||||
TRectype conto(LF_PCON); c.read(conto);
|
if (tipo == ' ')
|
||||||
const TIndbil ib = (TIndbil)conto.get_int("INDBIL");
|
{
|
||||||
if (ib == ib_passivita || ib == ib_ricavi)
|
TConto c(r.get_int("GRUPPO"), r.get_int("CONTO"), r.get_long("SOTTOCONTO"));
|
||||||
{
|
TRectype conto(LF_PCON); c.read(conto);
|
||||||
int ricser = conto.get_int("RICSER");
|
const TIndbil ib = (TIndbil)conto.get_int("INDBIL");
|
||||||
tipoatt = (ricser <= 0) ? 2 : 1;
|
if (ib == ib_passivita || ib == ib_ricavi)
|
||||||
}
|
{
|
||||||
}
|
int ricser = conto.get_int("RICSER");
|
||||||
}
|
tipoatt = (ricser == 0) ? 2 : 1;
|
||||||
iva(i).put("TIPOATT", tipoatt);
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iva(i).put("TIPOATT", tipoatt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_oldcg = _oldiva = 0;
|
_oldcg = _oldiva = 0;
|
||||||
int err = registra(FALSE, force);
|
int err = registra(FALSE, force);
|
||||||
|
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
if (reg.not_empty())
|
if (reg.not_empty())
|
||||||
{
|
{
|
||||||
const long protiva = r.get_long("PROTIVA");
|
const long protiva = r.get_long("PROTIVA");
|
||||||
const long uprotiva = r.get_long("UPROTIVA");
|
const long uprotiva = r.get_long("UPROTIVA");
|
||||||
const TDate datareg = r.get_date("DATAREG");
|
const TDate datareg = r.get_date("DATAREG");
|
||||||
registro.update(max(protiva, uprotiva), datareg);
|
registro.update(max(protiva, uprotiva), datareg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::rewrite(bool force, TDate&)
|
int TMovimentoPN::rewrite(bool force, TDate&)
|
||||||
{
|
{
|
||||||
return registra(TRUE, force);
|
return registra(TRUE, force);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::remove(TDate&)
|
int TMovimentoPN::remove(TDate&)
|
||||||
{
|
{
|
||||||
TLocalisamfile* m = lfile();
|
TLocalisamfile* m = lfile();
|
||||||
TLocalisamfile* rm = lfile(LF_RMOV);
|
TLocalisamfile* rm = lfile(LF_RMOV);
|
||||||
TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
TLocalisamfile* ri = lfile(LF_RMOVIVA);
|
||||||
|
|
||||||
cancella(rm, 1, _oldcg);
|
cancella(rm, 1, _oldcg);
|
||||||
cancella(ri, 1, _oldiva);
|
cancella(ri, 1, _oldiva);
|
||||||
m->remove();
|
m->remove();
|
||||||
_oldcg = _oldiva = 0;
|
_oldcg = _oldiva = 0;
|
||||||
return m->status();
|
return m->status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
136
cg/cg2102.cpp
136
cg/cg2102.cpp
@ -266,11 +266,17 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo)
|
|||||||
case 'F': // Ritenute Fiscali
|
case 'F': // Ritenute Fiscali
|
||||||
case 'S': // Ritenute Sociali
|
case 'S': // Ritenute Sociali
|
||||||
case 'D': // IVA Detraibile
|
case 'D': // IVA Detraibile
|
||||||
case 'N':last = 3; break; // IVA Non detraibile
|
case 'N':
|
||||||
case 'T': // Totale documento
|
last = 3; // IVA Non detraibile
|
||||||
case 'I':last = 6; break; // Imponibile
|
break;
|
||||||
default :last = 0; break; // Solo contabile
|
case 'T': // Totale documento
|
||||||
}
|
case 'I':
|
||||||
|
last = 7; // Imponibile
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
last = 0; // Solo contabile
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
TSheet_field& cg = cgs();
|
TSheet_field& cg = cgs();
|
||||||
for (int i = 0; i < last; i++)
|
for (int i = 0; i < last; i++)
|
||||||
@ -343,14 +349,7 @@ void TPrimanota_application::cgs_pack()
|
|||||||
{
|
{
|
||||||
const real imp = get_cgs_imp(i);
|
const real imp = get_cgs_imp(i);
|
||||||
if (imp == 0.0)
|
if (imp == 0.0)
|
||||||
{
|
|
||||||
del = TRUE;
|
del = TRUE;
|
||||||
/*
|
|
||||||
const TConto c(r, 6, 0x0); // Remove if import=0 and Bill not used
|
|
||||||
del = !bill_used(c);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (del)
|
if (del)
|
||||||
rows.destroy(i, FALSE);
|
rows.destroy(i, FALSE);
|
||||||
@ -360,6 +359,44 @@ void TPrimanota_application::cgs_pack()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
real TPrimanota_application::calcola_saldo() const
|
||||||
|
{
|
||||||
|
TArray& rows = cgs().rows_array();
|
||||||
|
const int max = rows.items();
|
||||||
|
|
||||||
|
real tdare, tavere;
|
||||||
|
for (int i = 0; i < max; i++)
|
||||||
|
{
|
||||||
|
TToken_string& r = (TToken_string&)rows[i];
|
||||||
|
const real dare(r.get(0));
|
||||||
|
const real avere(r.get());
|
||||||
|
|
||||||
|
tdare += dare;
|
||||||
|
tavere += avere;
|
||||||
|
}
|
||||||
|
|
||||||
|
real saldo = tdare-tavere;
|
||||||
|
switch (saldo.sign())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
mask().set(F_DARE, saldo.string());
|
||||||
|
mask().reset(F_AVERE);
|
||||||
|
break;
|
||||||
|
case -1:
|
||||||
|
mask().reset(F_DARE);
|
||||||
|
saldo = -saldo;
|
||||||
|
mask().set(F_AVERE, saldo.string());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mask().reset(F_DARE);
|
||||||
|
mask().reset(F_AVERE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return saldo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handler dello sheet di contabilita'
|
// Handler dello sheet di contabilita'
|
||||||
// Certified 90%
|
// Certified 90%
|
||||||
bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
||||||
@ -367,22 +404,15 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
{
|
{
|
||||||
TSheet_field& cg = app().cgs();
|
TSheet_field& cg = app().cgs();
|
||||||
bool empty = TRUE;
|
real saldo = app().calcola_saldo();
|
||||||
real saldo;
|
if (saldo != ZERO)
|
||||||
for (int i = 0; i < cg.items(); i++)
|
|
||||||
{
|
|
||||||
const real imp = app().get_cgs_imp(i);
|
|
||||||
if (empty) empty = imp == 0.0;
|
|
||||||
saldo += imp;
|
|
||||||
}
|
|
||||||
if (saldo != 0.0)
|
|
||||||
{
|
{
|
||||||
const char* ss = saldo.string(".");
|
const char* ss = saldo.string(".");
|
||||||
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (empty)
|
if (app().get_cgs_imp(0) == ZERO)
|
||||||
return f.error_box("Il movimento non contiene nessuna riga contabile!");
|
return f.error_box("Il movimento non ha una prima riga contabile valida!");
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -394,16 +424,21 @@ bool TPrimanota_application::cg_notify(int r, KEY k)
|
|||||||
TToken_string& row = cg.row(r);
|
TToken_string& row = cg.row(r);
|
||||||
const char tipo = row.empty() ? ' ' : row.right(1)[0];
|
const char tipo = row.empty() ? ' ' : row.right(1)[0];
|
||||||
|
|
||||||
if (k == K_SPACE)
|
switch(k)
|
||||||
{
|
{
|
||||||
TMask& m = cg.sheet_mask();
|
case K_SPACE:
|
||||||
m.enable(DLG_DELREC, tipo == ' ');
|
cg.sheet_mask().enable(DLG_DELREC, tipo == ' ');
|
||||||
} else
|
break;
|
||||||
if (k == K_DEL)
|
case K_ENTER:
|
||||||
{
|
app().calcola_saldo();
|
||||||
if (tipo != ' ')
|
break;
|
||||||
return error_box("La riga %d non puo' essere cancellata", r+1);
|
case K_DEL:
|
||||||
}
|
if (tipo != ' ')
|
||||||
|
return error_box("La riga %d non puo' essere cancellata", r+1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,7 +532,7 @@ bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
|
|||||||
const real& percent = cod2IVA(f.mask().get(102));
|
const real& percent = cod2IVA(f.mask().get(102));
|
||||||
real imposta = abs(imponibile) * percent / 100.0;
|
real imposta = abs(imponibile) * percent / 100.0;
|
||||||
imposta.ceil();
|
imposta.ceil();
|
||||||
if (imponibile.sign() < 0) imposta = -imposta;
|
if (imponibile < ZERO) imposta = -imposta;
|
||||||
|
|
||||||
const real val(f.get());
|
const real val(f.get());
|
||||||
if (val != imposta)
|
if (val != imposta)
|
||||||
@ -506,8 +541,8 @@ bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
const TString16 wrong(val.string("."));
|
const TString16 wrong(val.string("."));
|
||||||
const TString16 right(imposta.string("."));
|
const TString16 right(imposta.string("."));
|
||||||
if (f.warning_box("Imposta di '%s' errata: dovrebbe essere '%s'",
|
f.warning_box("Imposta di '%s' errata: dovrebbe essere '%s'",
|
||||||
(const char*)wrong, (const char*)right));
|
(const char*)wrong, (const char*)right);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
@ -524,6 +559,26 @@ bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
real TPrimanota_application::calcola_imp() const
|
||||||
|
{
|
||||||
|
TArray& rows = ivas().rows_array();
|
||||||
|
const int max = rows.items();
|
||||||
|
|
||||||
|
real imponibili, imposte;
|
||||||
|
for (int r = 0; r < max; r++)
|
||||||
|
{
|
||||||
|
TToken_string& row = (TToken_string&)rows[r];
|
||||||
|
imponibili += real(row.get(0));
|
||||||
|
imposte += real(row.get(3));
|
||||||
|
}
|
||||||
|
|
||||||
|
mask().set(F_IMPONIBILI, imponibili.string());
|
||||||
|
mask().set(F_IMPOSTE, imposte.string());
|
||||||
|
|
||||||
|
return imponibili+imposte;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Certified 50%
|
// Certified 50%
|
||||||
bool TPrimanota_application::iva_notify(int r, KEY k)
|
bool TPrimanota_application::iva_notify(int r, KEY k)
|
||||||
{
|
{
|
||||||
@ -590,6 +645,9 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
else
|
else
|
||||||
app().add_cgs_imp(oldposiva, imp-oldiva);
|
app().add_cgs_imp(oldposiva, imp-oldiva);
|
||||||
oldiva = imp;
|
oldiva = imp;
|
||||||
|
|
||||||
|
app().calcola_imp();
|
||||||
|
app().calcola_saldo();
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -601,13 +659,7 @@ bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
|
|||||||
{
|
{
|
||||||
if (k != K_ENTER) return TRUE;
|
if (k != K_ENTER) return TRUE;
|
||||||
|
|
||||||
real imp;
|
const real imp = app().calcola_imp();
|
||||||
for (int r = 0; r < app().ivas().items(); r++)
|
|
||||||
{
|
|
||||||
TToken_string& row = app().ivas().row(r);
|
|
||||||
imp += real(row.get(0)); // imponibile
|
|
||||||
imp += real(row.get(3)); // imposta
|
|
||||||
}
|
|
||||||
|
|
||||||
const TMask& m = f.mask();
|
const TMask& m = f.mask();
|
||||||
real tot(m.get(F_TOTALE));
|
real tot(m.get(F_TOTALE));
|
||||||
|
154
cg/cg2102.h
154
cg/cg2102.h
@ -23,119 +23,121 @@
|
|||||||
|
|
||||||
class TPrimanota_application : public TRelation_application
|
class TPrimanota_application : public TRelation_application
|
||||||
{
|
{
|
||||||
TMovimentoPN* _rel;
|
TMovimentoPN* _rel;
|
||||||
TLocalisamfile* _tabcom;
|
TLocalisamfile* _tabcom;
|
||||||
TLocalisamfile* _tab;
|
TLocalisamfile* _tab;
|
||||||
TLocalisamfile* _caus;
|
TLocalisamfile* _caus;
|
||||||
TLocalisamfile* _rcaus;
|
TLocalisamfile* _rcaus;
|
||||||
TLocalisamfile* _clifo;
|
TLocalisamfile* _clifo;
|
||||||
TLocalisamfile* _pcon;
|
TLocalisamfile* _pcon;
|
||||||
TLocalisamfile* _attiv;
|
TLocalisamfile* _attiv;
|
||||||
TLocalisamfile* _saldo;
|
TLocalisamfile* _saldo;
|
||||||
TLocalisamfile* _comuni;
|
TLocalisamfile* _comuni;
|
||||||
TLocalisamfile* _occas;
|
TLocalisamfile* _occas;
|
||||||
TLocalisamfile* _nditte;
|
TLocalisamfile* _nditte;
|
||||||
|
|
||||||
TCausale _causale; // Causale corrente
|
TCausale _causale; // Causale corrente
|
||||||
TLibro_giornale _giornale; // Libro giornale corrente
|
TLibro_giornale _giornale; // Libro giornale corrente
|
||||||
TipoIVA _iva; // Tipo di IVA corrente
|
TipoIVA _iva; // Tipo di IVA corrente
|
||||||
|
|
||||||
TSaldo_agg _saldi; // Saldi da aggiornare
|
TSaldo_agg _saldi; // Saldi da aggiornare
|
||||||
|
|
||||||
TMask* _msk[4]; // Maschere di query, cg, iva
|
TMask* _msk[4]; // Maschere di query, cg, iva
|
||||||
long _lastreg; // Numero ultima registrazione
|
long _lastreg; // Numero ultima registrazione
|
||||||
int _mode; // Modo maschera corrente
|
int _mode; // Modo maschera corrente
|
||||||
|
|
||||||
static bool suspended_handler(TMask_field& f, KEY k);
|
static bool suspended_handler(TMask_field& f, KEY k);
|
||||||
static bool num_handler(TMask_field& f, KEY key);
|
static bool num_handler(TMask_field& f, KEY key);
|
||||||
static bool caus_query_handler(TMask_field& f, KEY key);
|
static bool caus_query_handler(TMask_field& f, KEY key);
|
||||||
static bool caus_modify_handler(TMask_field& f, KEY key);
|
static bool caus_modify_handler(TMask_field& f, KEY key);
|
||||||
static bool datareg_handler(TMask_field& f, KEY key);
|
static bool datareg_handler(TMask_field& f, KEY key);
|
||||||
static bool datacomp_handler(TMask_field& f, KEY key);
|
static bool datacomp_handler(TMask_field& f, KEY key);
|
||||||
static bool data74ter_handler(TMask_field& f, KEY key);
|
static bool data74ter_handler(TMask_field& f, KEY key);
|
||||||
static bool reg_handler(TMask_field& f, KEY key);
|
static bool reg_handler(TMask_field& f, KEY key);
|
||||||
static bool clifo_handler(TMask_field& f, KEY key);
|
static bool clifo_handler(TMask_field& f, KEY key);
|
||||||
static bool totale_handler(TMask_field& f, KEY key);
|
static bool totale_handler(TMask_field& f, KEY key);
|
||||||
static bool ritfis_handler(TMask_field& f, KEY key);
|
static bool ritfis_handler(TMask_field& f, KEY key);
|
||||||
static bool ritsoc_handler(TMask_field& f, KEY key);
|
static bool ritsoc_handler(TMask_field& f, KEY key);
|
||||||
static bool visval_handler(TMask_field& f, KEY key);
|
static bool visval_handler(TMask_field& f, KEY key);
|
||||||
static bool occas_code_handler(TMask_field& f, KEY key);
|
static bool occas_code_handler(TMask_field& f, KEY key);
|
||||||
static bool occas_handler(TMask_field& f, KEY key);
|
static bool occas_handler(TMask_field& f, KEY key);
|
||||||
static bool solaiva_handler(TMask_field& f, KEY key);
|
static bool solaiva_handler(TMask_field& f, KEY key);
|
||||||
static bool descr_handler(TMask_field& f, KEY k);
|
static bool descr_handler(TMask_field& f, KEY k);
|
||||||
static bool imponibile_handler(TMask_field& f, KEY key);
|
static bool imponibile_handler(TMask_field& f, KEY key);
|
||||||
static bool codiva_handler(TMask_field& f, KEY key);
|
static bool codiva_handler(TMask_field& f, KEY key);
|
||||||
static bool imposta_handler(TMask_field& f, KEY key);
|
static bool imposta_handler(TMask_field& f, KEY key);
|
||||||
static bool dareavere_handler(TMask_field& f, KEY k);
|
static bool dareavere_handler(TMask_field& f, KEY k);
|
||||||
static bool conto_handler(TMask_field& f, KEY key);
|
static bool conto_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
static bool iva_notify(int r, KEY key);
|
static bool iva_notify(int r, KEY key);
|
||||||
static bool iva_handler(TMask_field& f, KEY key);
|
static bool iva_handler(TMask_field& f, KEY key);
|
||||||
static bool cg_notify(int r, KEY key);
|
static bool cg_notify(int r, KEY key);
|
||||||
static bool cg_handler(TMask_field& f, KEY key);
|
static bool cg_handler(TMask_field& f, KEY key);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool user_create();
|
virtual bool user_create();
|
||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
virtual bool changing_mask(int mode);
|
virtual bool changing_mask(int mode);
|
||||||
virtual TMask* get_mask(int mode);
|
virtual TMask* get_mask(int mode);
|
||||||
virtual TRelation* get_relation() const { return _rel; }
|
virtual TRelation* get_relation() const { return _rel; }
|
||||||
virtual void init_query_mode(TMask& m);
|
virtual void init_query_mode(TMask& m);
|
||||||
virtual void init_insert_mode(TMask& m);
|
virtual void init_insert_mode(TMask& m);
|
||||||
virtual void init_modify_mode(TMask& m);
|
virtual void init_modify_mode(TMask& m);
|
||||||
virtual const char* get_next_key();
|
virtual const char* get_next_key();
|
||||||
virtual int read(TMask& m);
|
virtual int read(TMask& m);
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
|
|
||||||
void genera_incasso(const char* causimm);
|
void genera_incasso(const char* causimm);
|
||||||
|
|
||||||
TMask* load_mask(int n);
|
TMask* load_mask(int n);
|
||||||
TMask& occas_mask() { return *load_mask(3); }
|
TMask& occas_mask() { return *load_mask(3); }
|
||||||
|
|
||||||
bool get_conto(int r, TConto& c) const;
|
bool get_conto(int r, TConto& c) const;
|
||||||
void mask2rel(const TMask& m);
|
void mask2rel(const TMask& m);
|
||||||
|
|
||||||
TipoIVA iva() const { return _iva; }
|
TipoIVA iva() const { return _iva; }
|
||||||
TMask& TPrimanota_application::mask() const;
|
TMask& TPrimanota_application::mask() const;
|
||||||
|
|
||||||
void fill_sheet(TMask& m) const;
|
void fill_sheet(TMask& m) const;
|
||||||
void init_mask(TMask& m);
|
void init_mask(TMask& m);
|
||||||
|
|
||||||
TSheet_field& cgs() const;
|
TSheet_field& cgs() const;
|
||||||
TSheet_field& ivas() const;
|
TSheet_field& ivas() const;
|
||||||
|
|
||||||
static real imp2sez(const real& importo);
|
static real imp2sez(const real& importo);
|
||||||
static int bill2pos(const TConto& conto, char tipo);
|
static int bill2pos(const TConto& conto, char tipo);
|
||||||
static TipoIVA reg2IVA(const char* registro, int anno);
|
static TipoIVA reg2IVA(const char* registro, int anno);
|
||||||
static TipoIVA cau2IVA(const char* causale, int anno);
|
static TipoIVA cau2IVA(const char* causale, int anno);
|
||||||
static int type2pos(char tipo);
|
static int type2pos(char tipo);
|
||||||
static const real& cod2IVA(const char* codiva);
|
static const real& cod2IVA(const char* codiva);
|
||||||
static real scorpora(real& imponibile, const real& percentuale);
|
static real scorpora(real& imponibile, const real& percentuale);
|
||||||
static int date2esc(const TDate& d, int* prev = NULL);
|
static int date2esc(const TDate& d, int* prev = NULL);
|
||||||
static bool detraibile(int tipodet);
|
static bool detraibile(int tipodet);
|
||||||
|
|
||||||
bool bill_used(const TConto& conto) const;
|
bool bill_used(const TConto& conto) const;
|
||||||
int bill2contr(const TConto& c, char sezione) const;
|
int bill2contr(const TConto& c, char sezione) const;
|
||||||
|
|
||||||
bool read_caus(const char* cod, int year);
|
bool read_caus(const char* cod, int year);
|
||||||
TCausale& causale() { return _causale; }
|
TCausale& causale() { return _causale; }
|
||||||
TLibro_giornale& giornale() { return _giornale; }
|
TLibro_giornale& giornale() { return _giornale; }
|
||||||
|
|
||||||
void set_cgs_imp(int n, const real& importo);
|
void set_cgs_imp(int n, const real& importo);
|
||||||
real get_cgs_imp(int n);
|
real get_cgs_imp(int n);
|
||||||
void add_cgs_imp(int n, const real& importo);
|
void add_cgs_imp(int n, const real& importo);
|
||||||
void cgs_pack();
|
void cgs_pack();
|
||||||
|
real calcola_saldo() const;
|
||||||
|
real calcola_imp() const;
|
||||||
|
|
||||||
void set_ivas_row(int n, const char* codiva, TConto& tc, const char* desc);
|
void set_ivas_row(int n, const char* codiva, TConto& tc, const char* desc);
|
||||||
int set_cgs_row(int n, const real& importo, TConto& conto, const char* desc, char tipo);
|
int set_cgs_row(int n, const real& importo, TConto& conto, const char* desc, char tipo);
|
||||||
void disable_cgs_cells(int n, char tipo);
|
void disable_cgs_cells(int n, char tipo);
|
||||||
void add_cgs_tot(TMask& m);
|
void add_cgs_tot(TMask& m);
|
||||||
void add_cgs_rit(bool fisc);
|
void add_cgs_rit(bool fisc);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TPrimanota_application();
|
TPrimanota_application();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
133
cg/cg21cg.uml
133
cg/cg21cg.uml
@ -1,4 +1,4 @@
|
|||||||
PAGE "RIGA PRIMA NOTA" -1 -1 67 17
|
PAGE "RIGA PRIMA NOTA" -1 -1 67 16
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 66 3
|
GROUPBOX DLG_NULL 66 3
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -46,9 +46,9 @@ LIST 103 1 12
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Tipo "
|
PROMPT 2 6 "Tipo "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
ITEM " |Conto" MESSAGE SHOW,106|HIDE,206|HIDE,306
|
ITEM " |Conto" MESSAGE SHOW,106|HIDE,206|HIDE,306|SHOW,107|HIDE,207|HIDE,307
|
||||||
ITEM "C|Cliente" MESSAGE SHOW,206|HIDE,106|HIDE,306
|
ITEM "C|Cliente" MESSAGE SHOW,206|HIDE,106|HIDE,306|SHOW,207|HIDE,107|HIDE,307
|
||||||
ITEM "F|Fornitore" MESSAGE SHOW,306|HIDE,106|HIDE,206
|
ITEM "F|Fornitore" MESSAGE SHOW,306|HIDE,106|HIDE,206|SHOW,307|HIDE,107|HIDE,207
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 104 3
|
NUMBER 104 3
|
||||||
@ -87,8 +87,10 @@ BEGIN
|
|||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
COPY OUTPUT 105
|
|
||||||
OUTPUT 106 SOTTOCONTO
|
OUTPUT 106 SOTTOCONTO
|
||||||
|
OUTPUT 104 GRUPPO
|
||||||
|
OUTPUT 105 CONTO
|
||||||
|
OUTPUT 107 DESCR
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 2 101 102
|
VALIDATE REQIF_FUNC 2 101 102
|
||||||
@ -107,10 +109,9 @@ BEGIN
|
|||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT 206 CODCF
|
OUTPUT 206 CODCF
|
||||||
OUTPUT 107 RAGSOC
|
OUTPUT 307 RAGSOC
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
FLAGS "G"
|
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Cliente inesistente sulla riga contabile"
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
@ -127,21 +128,64 @@ BEGIN
|
|||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT 306 CODCF
|
OUTPUT 306 CODCF
|
||||||
OUTPUT 107 RAGSOC
|
OUTPUT 307 RAGSOC
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
FLAGS "G"
|
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Fornitore inesistente sulla riga contabile"
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
STRING 107 50
|
STRING 107 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Descrizione "
|
PROMPT 2 7 "Descriz. "
|
||||||
|
FIELD LF_PCON->DESCR
|
||||||
|
USE LF_PCON KEY 2
|
||||||
|
INPUT DESCR 107
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT 106
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Sottoconto inesistente o mancante sulla riga contabile"
|
||||||
|
ADD RUN cg0 -0
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 207 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Cliente "
|
||||||
|
FIELD LF_CLIFO->RAGSOC
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC 207
|
||||||
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT 206
|
||||||
|
MESSAGE COPY,107
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 307 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Fornitore "
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
FLAGS "D"
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC 307
|
||||||
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT 306
|
||||||
|
MESSAGE COPY,107
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 66 4
|
GROUPBOX DLG_NULL 66 4
|
||||||
@ -153,9 +197,9 @@ LIST 110 1 12
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Tipo "
|
PROMPT 2 10 "Tipo "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313
|
ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313|SHOW,114|HIDE,214|HIDE,314
|
||||||
ITEM "C|Cliente" MESSAGE SHOW,213|HIDE,113|HIDE,313
|
ITEM "C|Cliente" MESSAGE SHOW,213|HIDE,113|HIDE,313|SHOW,214|HIDE,114|HIDE,314
|
||||||
ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213
|
ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213|SHOW,314|HIDE,114|HIDE,214
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 111 3
|
NUMBER 111 3
|
||||||
@ -167,12 +211,10 @@ NUMBER 112 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 10 "Conto "
|
PROMPT 32 10 "Conto "
|
||||||
FIELD LF_PCON->CONTO
|
FIELD LF_PCON->CONTO
|
||||||
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
COPY USE 105
|
||||||
INPUT GRUPPO 111
|
INPUT GRUPPO 111
|
||||||
INPUT CONTO 112
|
INPUT CONTO 112
|
||||||
DISPLAY "Gruppo" GRUPPO
|
COPY DISPLAY 105
|
||||||
DISPLAY "Conto" CONTO
|
|
||||||
DISPLAY "Descrizione@50" DESCR
|
|
||||||
OUTPUT 110 TMCF
|
OUTPUT 110 TMCF
|
||||||
OUTPUT 111 GRUPPO
|
OUTPUT 111 GRUPPO
|
||||||
OUTPUT 112 CONTO
|
OUTPUT 112 CONTO
|
||||||
@ -189,21 +231,23 @@ BEGIN
|
|||||||
COPY INPUT 112
|
COPY INPUT 112
|
||||||
INPUT SOTTOCONTO 113
|
INPUT SOTTOCONTO 113
|
||||||
COPY DISPLAY 106
|
COPY DISPLAY 106
|
||||||
COPY OUTPUT 112
|
|
||||||
OUTPUT 113 SOTTOCONTO
|
OUTPUT 113 SOTTOCONTO
|
||||||
|
OUTPUT 111 GRUPPO
|
||||||
|
OUTPUT 112 CONTO
|
||||||
|
OUTPUT 114 DESCR
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 213 6
|
NUMBER 213 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 10 "Cliente "
|
PROMPT 45 10 "Cliente "
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_CLIFO->CODCF
|
||||||
USE LF_CLIFO
|
COPY USE 206
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF 213
|
INPUT CODCF 213
|
||||||
COPY DISPLAY 206
|
COPY DISPLAY 206
|
||||||
OUTPUT 213 CODCF
|
OUTPUT 213 CODCF
|
||||||
OUTPUT 114 RAGSOC
|
OUTPUT 214 RAGSOC
|
||||||
MESSAGE COPY,113
|
MESSAGE COPY,113
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
@ -211,22 +255,55 @@ END
|
|||||||
NUMBER 313 6
|
NUMBER 313 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 10 "Fornitore "
|
PROMPT 45 10 "Fornitore "
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_CLIFO->CODCF
|
||||||
USE LF_CLIFO
|
COPY USE 306
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT CODCF 313
|
INPUT CODCF 313
|
||||||
COPY DISPLAY 306
|
COPY DISPLAY 306
|
||||||
COPY OUTPUT 213
|
|
||||||
OUTPUT 313 CODCF
|
OUTPUT 313 CODCF
|
||||||
|
OUTPUT 314 RAGSOC
|
||||||
MESSAGE COPY,113
|
MESSAGE COPY,113
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 114 50
|
STRING 114 50
|
||||||
BEGIN
|
BEGIN
|
||||||
|
PROMPT 2 11 "Descriz. "
|
||||||
FIELD LF_PCON->DESCR
|
FIELD LF_PCON->DESCR
|
||||||
PROMPT 2 11 "Descrizione "
|
COPY USE 107
|
||||||
FLAGS "D"
|
INPUT DESCR 114
|
||||||
|
COPY DISPLAY 107
|
||||||
|
COPY OUTPUT 113
|
||||||
|
ADD RUN cg0 -0
|
||||||
|
WARNING "Conto inesistente sulla riga contabile"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 214 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "Cliente "
|
||||||
|
FIELD LF_CLIFO->RAGSOC
|
||||||
|
COPY USE 207
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC 214
|
||||||
|
COPY DISPLAY 207
|
||||||
|
COPY OUTPUT 213
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 314 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "Fornitore "
|
||||||
|
FIELD LF_CLIFO->RAGSOC
|
||||||
|
COPY USE 307
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC 314
|
||||||
|
COPY DISPLAY 307
|
||||||
|
COPY OUTPUT 313
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST 115 20
|
LIST 115 20
|
||||||
|
@ -10,11 +10,11 @@ BEGIN
|
|||||||
PROMPT 2 2 "Tipo "
|
PROMPT 2 2 "Tipo "
|
||||||
FIELD TMCF
|
FIELD TMCF
|
||||||
ITEM " |Conto"
|
ITEM " |Conto"
|
||||||
MESSAGE SHOW,109|HIDE,209|HIDE,309
|
MESSAGE SHOW,109|HIDE,209|HIDE,309|SHOW,110|HIDE,210|HIDE,310
|
||||||
ITEM "C|Cliente"
|
ITEM "C|Cliente"
|
||||||
MESSAGE SHOW,209|HIDE,109|HIDE,309
|
MESSAGE SHOW,209|HIDE,109|HIDE,309|SHOW,210|HIDE,110|HIDE,310
|
||||||
ITEM "F|Fornitore"
|
ITEM "F|Fornitore"
|
||||||
MESSAGE SHOW,309|HIDE,109|HIDE,209
|
MESSAGE SHOW,309|HIDE,109|HIDE,209|SHOW,310|HIDE,110|HIDE,210
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -58,10 +58,10 @@ BEGIN
|
|||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT 109 SOTTOCONTO
|
||||||
OUTPUT 105 TIPOSPRIC
|
OUTPUT 105 TIPOSPRIC
|
||||||
OUTPUT 107 GRUPPO
|
OUTPUT 107 GRUPPO
|
||||||
OUTPUT 108 CONTO
|
OUTPUT 108 CONTO
|
||||||
OUTPUT 109 SOTTOCONTO
|
|
||||||
OUTPUT 110 DESCR
|
OUTPUT 110 DESCR
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
@ -80,7 +80,7 @@ BEGIN
|
|||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT 209 CODCF
|
OUTPUT 209 CODCF
|
||||||
OUTPUT 110 RAGSOC
|
OUTPUT 210 RAGSOC
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
FLAGS "G"
|
FLAGS "G"
|
||||||
@ -98,7 +98,7 @@ BEGIN
|
|||||||
OUTPUT 107 GRUPPO
|
OUTPUT 107 GRUPPO
|
||||||
OUTPUT 108 CONTO
|
OUTPUT 108 CONTO
|
||||||
OUTPUT 309 CODCF
|
OUTPUT 309 CODCF
|
||||||
OUTPUT 110 RAGSOC
|
OUTPUT 310 RAGSOC
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
FLAGS "G"
|
FLAGS "G"
|
||||||
@ -107,10 +107,58 @@ END
|
|||||||
|
|
||||||
STRING 110 50
|
STRING 110 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Descrizione "
|
PROMPT 2 3 "Descriz. "
|
||||||
FLAGS "D"
|
FIELD LF_PCON->DESCR
|
||||||
|
USE LF_PCON KEY 2
|
||||||
|
INPUT DESCR 107
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
COPY OUTPUT 109
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Sottoconto inesistente o mancante sulla riga IVA"
|
||||||
|
ADD RUN cg0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING 210 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Cliente "
|
||||||
|
FIELD LF_CLIFO->RAGSOC
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT RAGSOC 210
|
||||||
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT 209
|
||||||
|
MESSAGE COPY,110
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Cliente inesistente sulla riga IVA"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING 310 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Fornitore "
|
||||||
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
|
USE LF_CLIFO KEY 2
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT RAGSOC 310
|
||||||
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
COPY OUTPUT 309
|
||||||
|
MESSAGE COPY,110
|
||||||
|
ADD RUN cg0 -1
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
WARNING "Fornitore inesistente sulla riga IVA"
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 67 5
|
GROUPBOX DLG_NULL 67 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "Imposta"
|
PROMPT 1 5 "Imposta"
|
||||||
|
23
cg/cg3.cpp
23
cg/cg3.cpp
@ -7,18 +7,19 @@
|
|||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc,char** argv)
|
||||||
{
|
{
|
||||||
int rt = 0 ;
|
int rt = 0 ;
|
||||||
int s = atoi(argv[1]+1) ;
|
int s = atoi(argv[1]+1) ;
|
||||||
|
|
||||||
switch (s)
|
switch (s)
|
||||||
{
|
{
|
||||||
case 0: rt = cg3100(argc,argv) ; break;
|
case 0: rt = cg3100(argc,argv) ; break;
|
||||||
case 1: rt = cg3200(argc,argv) ; break;
|
case 1: rt = cg3200(argc,argv) ; break;
|
||||||
// case 2: rt = cg3400(argc,argv) ; break;
|
case 2: rt = cg3300(argc,argv) ; break;
|
||||||
case 3: rt = cg3500(argc,argv) ; break;
|
case 3: rt = cg3400(argc,argv) ; break;
|
||||||
default: error_box(usage, argv[0]) ; break;
|
case 4: rt = cg3500(argc,argv) ; break;
|
||||||
}
|
default: error_box(usage, argv[0]) ; break;
|
||||||
return rt;
|
}
|
||||||
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
2
cg/cg3.h
2
cg/cg3.h
@ -12,7 +12,7 @@
|
|||||||
int cg3100(int argc, char* argv[]);
|
int cg3100(int argc, char* argv[]);
|
||||||
int cg3200(int argc, char* argv[]);
|
int cg3200(int argc, char* argv[]);
|
||||||
int cg3300(int argc, char* argv[]);
|
int cg3300(int argc, char* argv[]);
|
||||||
//int cg3400(int argc, char* argv[]);
|
int cg3400(int argc, char* argv[]);
|
||||||
int cg3500(int argc, char* argv[]);
|
int cg3500(int argc, char* argv[]);
|
||||||
|
|
||||||
#endif // __CG3_H
|
#endif // __CG3_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user