Correzione errori prima nota
git-svn-id: svn://10.65.10.50/trunk@721 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
38adfe2902
commit
4265b6a9ac
226
cg/cg2100a.uml
226
cg/cg2100a.uml
@ -1,113 +1,113 @@
|
|||||||
#include "cg2100.h"
|
#include "cg2100.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 20 0 2
|
TOOLBAR "" 0 20 0 2
|
||||||
#include <toolbar.h>
|
#include <toolbar.h>
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8
|
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 8
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 3
|
GROUPBOX DLG_NULL 78 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_CODDITTA 5
|
NUMBER F_CODDITTA 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 1 "Ditta "
|
PROMPT 3 1 "Ditta "
|
||||||
FLAGS "FRD"
|
FLAGS "FRD"
|
||||||
USE LF_NDITTE KEY 1
|
USE LF_NDITTE KEY 1
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE NORMAL
|
||||||
INPUT CODDITTA F_CODDITTA
|
INPUT CODDITTA F_CODDITTA
|
||||||
OUTPUT F_RAGSOC RAGSOC
|
OUTPUT F_RAGSOC RAGSOC
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOC 50
|
STRING F_RAGSOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 17 1 "Ragione "
|
PROMPT 17 1 "Ragione "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_NUMREG 6
|
NUMBER F_NUMREG 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Numero operazione "
|
PROMPT 1 4 "Numero operazione "
|
||||||
HELP "Numero del movimento di prima nota da gestire"
|
HELP "Numero del movimento di prima nota da gestire"
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
FIELD LF_MOV->NUMREG
|
FIELD LF_MOV->NUMREG
|
||||||
USE LF_MOV
|
USE LF_MOV
|
||||||
INPUT NUMREG F_NUMREG
|
INPUT NUMREG F_NUMREG
|
||||||
DISPLAY "Numero@6" NUMREG
|
DISPLAY "Numero@6" NUMREG
|
||||||
DISPLAY "Data@10" DATAREG
|
DISPLAY "Data@10" DATAREG
|
||||||
DISPLAY "Causale" CODCAUS
|
DISPLAY "Causale" CODCAUS
|
||||||
DISPLAY "Documento" NUMDOC
|
DISPLAY "Documento" NUMDOC
|
||||||
DISPLAY "Protoc." PROTIVA
|
DISPLAY "Protoc." PROTIVA
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUTPUT F_NUMREG NUMREG
|
OUTPUT F_NUMREG NUMREG
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATAREG
|
DATE F_DATAREG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "Data operazione "
|
PROMPT 1 6 "Data operazione "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
HELP "Data in cui viene registrata l'operazione"
|
HELP "Data in cui viene registrata l'operazione"
|
||||||
MESSAGE COPY,F_ANNOIVA,7,10
|
MESSAGE COPY,F_ANNOIVA,7,10
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNOIVA 4
|
NUMBER F_ANNOIVA 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 51 6 "Anno IVA "
|
PROMPT 51 6 "Anno IVA "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATACOMP
|
DATE F_DATACOMP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "Data di competenza "
|
PROMPT 1 7 "Data di competenza "
|
||||||
HELP "Data di competenza dell'operazione"
|
HELP "Data di competenza dell'operazione"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNOES 4
|
NUMBER F_ANNOES 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 51 7 "Anno di esercizio "
|
PROMPT 51 7 "Anno di esercizio "
|
||||||
FLAGS "DRZ"
|
FLAGS "DRZ"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODCAUS 3
|
STRING F_CODCAUS 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "Causale "
|
PROMPT 1 9 "Causale "
|
||||||
HELP "Codice della causale dell'operazione"
|
HELP "Codice della causale dell'operazione"
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
FIELD LF_MOV->CODCAUS
|
FIELD LF_MOV->CODCAUS
|
||||||
USE LF_CAUSALI KEY 1
|
USE LF_CAUSALI KEY 1
|
||||||
INPUT CODCAUS F_CODCAUS
|
INPUT CODCAUS F_CODCAUS
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Tipo" TIPODOC
|
DISPLAY "Tipo" TIPODOC
|
||||||
DISPLAY "Registro" REG
|
DISPLAY "Registro" REG
|
||||||
OUTPUT F_CODCAUS CODCAUS
|
OUTPUT F_CODCAUS CODCAUS
|
||||||
OUTPUT F_DESCRCAUS DESCR
|
OUTPUT F_DESCRCAUS DESCR
|
||||||
ADD RUN cg0 -4
|
ADD RUN cg0 -4
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "Causale assente"
|
WARNING "Causale assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCRCAUS 50
|
STRING F_DESCRCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 9 ""
|
PROMPT 21 9 ""
|
||||||
HELP "Descrizione della causale dell'operazione"
|
HELP "Descrizione della causale dell'operazione"
|
||||||
USE LF_CAUSALI KEY 2
|
USE LF_CAUSALI KEY 2
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
INPUT DESCR F_DESCRCAUS
|
INPUT DESCR F_DESCRCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
DISPLAY "Tipo" TIPODOC
|
DISPLAY "Tipo" TIPODOC
|
||||||
DISPLAY "Registro" REG
|
DISPLAY "Registro" REG
|
||||||
COPY OUTPUT F_CODCAUS
|
COPY OUTPUT F_CODCAUS
|
||||||
ADD RUN cg0 -4
|
ADD RUN cg0 -4
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
1331
cg/cg2100c.uml
1331
cg/cg2100c.uml
File diff suppressed because it is too large
Load Diff
166
cg/cg2102.cpp
166
cg/cg2102.cpp
@ -528,7 +528,7 @@ void TPrimanota_application::generazione_righe_cg(int r)
|
|||||||
conto.add_to(cg.row(1), 9, 0x3);
|
conto.add_to(cg.row(1), 9, 0x3);
|
||||||
cg.force_update(1);
|
cg.force_update(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (causale().codice()[0] > ' ')
|
if (causale().codice()[0] > ' ')
|
||||||
{
|
{
|
||||||
@ -545,7 +545,8 @@ void TPrimanota_application::generazione_righe_cg(int r)
|
|||||||
|
|
||||||
TBill conto(row, 2, 0x3);
|
TBill conto(row, 2, 0x3);
|
||||||
if (first_not_empty == r)
|
if (first_not_empty == r)
|
||||||
{
|
{
|
||||||
|
int last = r;
|
||||||
for (i = r+1; i < cg.items(); i++)
|
for (i = r+1; i < cg.items(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& rowi = cg.row(i);
|
TToken_string& rowi = cg.row(i);
|
||||||
@ -561,11 +562,16 @@ void TPrimanota_application::generazione_righe_cg(int r)
|
|||||||
{
|
{
|
||||||
conto.add_to(rowi, 9, 0x3);
|
conto.add_to(rowi, 9, 0x3);
|
||||||
cg.force_update(i);
|
cg.force_update(i);
|
||||||
|
if (last == r) last = i;
|
||||||
|
else last = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
break;
|
if (last > r)
|
||||||
|
{
|
||||||
|
importo.swap_section();
|
||||||
|
set_cgs_imp(last, importo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -587,30 +593,30 @@ bool TPrimanota_application::cg_notify(int r, KEY k)
|
|||||||
switch(k)
|
switch(k)
|
||||||
{
|
{
|
||||||
case K_SPACE:
|
case K_SPACE:
|
||||||
{
|
{
|
||||||
TSheet_field& cg = app().cgs();
|
TSheet_field& cg = app().cgs();
|
||||||
TToken_string& row = cg.row(r);
|
TToken_string& row = cg.row(r);
|
||||||
const char tipo = row.right(1)[0];
|
const char tipo = row.right(1)[0];
|
||||||
cg.sheet_mask().enable(DLG_DELREC, tipo <= ' ');
|
cg.sheet_mask().enable(DLG_DELREC, tipo <= ' ');
|
||||||
}
|
|
||||||
break;
|
|
||||||
case K_ENTER:
|
|
||||||
if (app().iva() == nessuna_iva)
|
|
||||||
app().generazione_righe_cg(r);
|
|
||||||
app().calcola_saldo();
|
|
||||||
break;
|
|
||||||
case K_DEL:
|
|
||||||
{
|
|
||||||
TToken_string& row = app().cgs().row(r);
|
|
||||||
const char tipo = row.right(1)[0];
|
|
||||||
if (tipo > ' ')
|
|
||||||
return error_box("La riga %d non puo' essere cancellata", r+1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
break;
|
||||||
|
case K_ENTER:
|
||||||
|
if (app().iva() == nessuna_iva)
|
||||||
|
app().generazione_righe_cg(r);
|
||||||
|
app().calcola_saldo();
|
||||||
|
break;
|
||||||
|
case K_DEL:
|
||||||
|
{
|
||||||
|
TToken_string& row = app().cgs().row(r);
|
||||||
|
const char tipo = row.right(1)[0];
|
||||||
|
if (tipo > ' ')
|
||||||
|
return error_box("La riga %d non puo' essere cancellata", r+1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::descr_handler(TMask_field& f, KEY k)
|
bool TPrimanota_application::descr_handler(TMask_field& f, KEY k)
|
||||||
@ -701,15 +707,15 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
|
|||||||
if (key == K_TAB && f.dirty())
|
if (key == K_TAB && f.dirty())
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
|
||||||
if (m.get_int(107) == 0)
|
if (m.get_int(107) == 0)
|
||||||
{
|
{
|
||||||
TCodiceIVA iva(f.get());
|
TCodiceIVA iva(f.get());
|
||||||
TBill b; app().IVA2bill(iva, b);
|
TBill b; app().IVA2bill(iva, b);
|
||||||
|
|
||||||
char cr[2] = { b.tipo_cr() + '0', '\0' };
|
char cr[2] = { b.tipo_cr() + '0', '\0' };
|
||||||
m.set(105, *cr > '0' ? cr : "");
|
m.set(105, *cr > '0' ? cr : "");
|
||||||
|
|
||||||
const char tipo[2] = { b.tipo(), '\0' };
|
const char tipo[2] = { b.tipo(), '\0' };
|
||||||
m.set(106, tipo);
|
m.set(106, tipo);
|
||||||
m.set(107, b.gruppo());
|
m.set(107, b.gruppo());
|
||||||
@ -840,12 +846,17 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TBill oldconto(row, 6, 0x0); // g/c/s 6 7 8
|
TBill oldconto(row, 6, 0x0); // g/c/s 6 7 8
|
||||||
oldpos = bill2pos(oldconto, 'I');
|
if (oldconto.ok())
|
||||||
if (oldpos < 0 && oldconto.ok())
|
{
|
||||||
{
|
oldpos = bill2pos(oldconto, 'I');
|
||||||
const TString80 d(cau.desc_agg(2));
|
if (oldpos < 0)
|
||||||
oldpos = app().set_cgs_row(-1, app().real2imp(ZERO, 'I'), oldconto, d, 'I');
|
{
|
||||||
}
|
const TString80 d(cau.desc_agg(2));
|
||||||
|
oldpos = app().set_cgs_row(-1, app().real2imp(ZERO, 'I'), oldconto, d, 'I');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
oldpos = -1; // Se il conto e' incompleto ignoralo
|
||||||
}
|
}
|
||||||
if (k == K_DEL) // Cancellazione di una riga
|
if (k == K_DEL) // Cancellazione di una riga
|
||||||
{
|
{
|
||||||
@ -928,26 +939,26 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
newposiva = app().set_cgs_row(-1, val, contoiva, d, tipod);
|
newposiva = app().set_cgs_row(-1, val, contoiva, d, tipod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TImporto val(app().real2imp(imposta, 'I'));
|
TImporto val(app().real2imp(imposta, 'I'));
|
||||||
val = app().add_cgs_imp(newposiva, val);
|
val = app().add_cgs_imp(newposiva, val);
|
||||||
if (val.is_zero()) // Se la riga si e' azzerata ...
|
if (val.is_zero()) // Se la riga si e' azzerata ...
|
||||||
{
|
{
|
||||||
app().reset_cgs_row(newposiva); // ... cancellala
|
app().reset_cgs_row(newposiva); // ... cancellala
|
||||||
newposiva = -1;
|
newposiva = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
oldiva = imposta;
|
oldiva = imposta;
|
||||||
oldposiva = newposiva;
|
oldposiva = newposiva;
|
||||||
|
|
||||||
if (r == 0) // Se cambio la prima riga ...
|
if (r == 0) // Se cambio la prima riga ...
|
||||||
app().add_cgs_tot(app().curr_mask()); // ... ricalcola conti
|
app().add_cgs_tot(app().curr_mask()); // ... ricalcola conti
|
||||||
app().calcola_imp(); // Ricalcola totale IVA
|
app().calcola_imp(); // Ricalcola totale IVA
|
||||||
app().calcola_saldo(); // Ricalcola sbilanci
|
app().calcola_saldo(); // Ricalcola sbilanci
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1061,7 +1072,7 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
if (!m.is_running()) return TRUE;
|
if (!m.is_running()) return TRUE;
|
||||||
|
|
||||||
const long num = atol(f.get());
|
const long num = atol(f.get());
|
||||||
if (key == K_TAB && num > 0)
|
if (key == K_TAB && num > 0)
|
||||||
{
|
{
|
||||||
@ -1069,7 +1080,13 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key)
|
|||||||
if (num < max)
|
if (num < max)
|
||||||
{
|
{
|
||||||
if (app().find(1))
|
if (app().find(1))
|
||||||
|
{
|
||||||
|
const TLocalisamfile& mov = app()._rel->lfile();
|
||||||
|
m.set(F_DATAREG, mov.get("DATAREG"));
|
||||||
|
m.set(F_DATACOMP, mov.get("DATACOMP"));
|
||||||
|
m.set(F_CODCAUS, mov.get("CODCAUS"));
|
||||||
m.stop_run(K_AUTO_ENTER);
|
m.stop_run(K_AUTO_ENTER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (num > max)
|
else if (num > max)
|
||||||
{
|
{
|
||||||
@ -1138,7 +1155,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
|
|
||||||
if ((key == K_TAB && f.focusdirty()) || key == K_ENTER)
|
if ((key == K_TAB || key == K_ENTER) && f.dirty())
|
||||||
{
|
{
|
||||||
const TDate dr(f.get()); // Data dell'operazione
|
const TDate dr(f.get()); // Data dell'operazione
|
||||||
if (dr > TDate(TODAY))
|
if (dr > TDate(TODAY))
|
||||||
@ -1158,35 +1175,26 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
|
|||||||
if (!ok)
|
if (!ok)
|
||||||
return f.error_box("Non esiste il libro giornale dell'esercizio %d", ae);
|
return f.error_box("Non esiste il libro giornale dell'esercizio %d", ae);
|
||||||
|
|
||||||
if (f.dirty() || m.query_mode())
|
if (key == K_ENTER || f.focusdirty())
|
||||||
{
|
{
|
||||||
const long numreg = m.get_long(F_NUMREG);
|
const long numreg = m.get_long(F_NUMREG);
|
||||||
const bool error = numreg == 0 || numreg > app()._lastreg;
|
const bool error = numreg == 0 || numreg > app()._lastreg;
|
||||||
|
|
||||||
const TLibro_giornale& gio = app().giornale();
|
const TLibro_giornale& gio = app().giornale();
|
||||||
if (dr < gio.last_print())
|
if (dr < gio.last_print())
|
||||||
{
|
{
|
||||||
f.error_box("La data dell'operazione e' antecedente al %s,\n"
|
f.error_box("La data dell'operazione e' antecedente al %s,\n"
|
||||||
"ultima stampa del libro giornale dell'esercizio %d",
|
"ultima stampa del libro giornale dell'esercizio %d",
|
||||||
gio.last_reg().string(), ae);
|
gio.last_print().string(), ae);
|
||||||
if (error) return FALSE;
|
if (error) return FALSE;
|
||||||
}
|
}
|
||||||
if (dr < gio.last_reg())
|
if (dr < gio.last_reg())
|
||||||
f.warning_box("La data dell'operazione e' antecedente al %s,\n"
|
f.warning_box("La data dell'operazione e' antecedente al %s,\n"
|
||||||
"ultima registrazione sul libro giornale dell'esercizio %d",
|
"ultima registrazione sul libro giornale dell'esercizio %d",
|
||||||
gio.last_reg().string(), ae);
|
gio.last_reg().string(), ae);
|
||||||
|
|
||||||
if (m.query_mode())
|
if (m.query_mode())
|
||||||
{
|
app().causale().read(m.get(F_CODCAUS), dr.year());
|
||||||
const long numreg = m.get_long(F_NUMREG);
|
|
||||||
if (numreg > 0 && numreg <= app()._lastreg)
|
|
||||||
{
|
|
||||||
TLocalisamfile& mov = app().get_relation()->lfile();
|
|
||||||
mov.put(MOV_NUMREG, numreg);
|
|
||||||
if (mov.read() == NOERR)
|
|
||||||
m.set(F_CODCAUS, mov.get(MOV_CODCAUS));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TRegistro& reg = app().causale().reg();
|
TRegistro& reg = app().causale().reg();
|
||||||
const TString16 codreg(reg.name());
|
const TString16 codreg(reg.name());
|
||||||
@ -1408,7 +1416,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
if (clifo.get_bool(CLI_OCCAS))
|
if (clifo.get_bool(CLI_OCCAS))
|
||||||
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
m.send_key(K_SPACE, F_OCCASEDIT); // Lancia maschera occasionali
|
||||||
|
|
||||||
if (m.field(F_VISVAL).active())
|
if (m.field(F_VISVAL).active())
|
||||||
{
|
{
|
||||||
const TString16 valuta(clifo.get("CODVAL"));
|
const TString16 valuta(clifo.get("CODVAL"));
|
||||||
@ -1644,12 +1652,12 @@ bool TPrimanota_application::corrvaluta_handler(TMask_field& f, KEY key)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (key == K_ENTER && f.get().empty())
|
if (key == K_ENTER && f.get().empty())
|
||||||
{
|
{
|
||||||
TMask_field& cl = f.mask().field(F_CORRLIRE);
|
TMask_field& cl = f.mask().field(F_CORRLIRE);
|
||||||
cl.set_dirty();
|
cl.set_dirty();
|
||||||
cl.on_hit();
|
cl.on_hit();
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,6 @@ bool TRegistro::read(const char* cod, int year)
|
|||||||
_att.zero();
|
_att.zero();
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
_rec.zero();
|
_rec.zero();
|
||||||
_prorata = -1.0;
|
|
||||||
|
|
||||||
return err == NOERR;
|
return err == NOERR;
|
||||||
}
|
}
|
||||||
@ -151,7 +150,21 @@ bool TRegistro::read_att()
|
|||||||
_att = attiv.curr();
|
_att = attiv.curr();
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
_att.zero();
|
_att.zero();
|
||||||
|
|
||||||
|
TString16 chiave; // Anno - Attivita' - Tipo Attivita' (fissata a 1)
|
||||||
|
chiave << year(); // non fare << year() << attivita()
|
||||||
|
chiave << attivita() << "1";
|
||||||
|
|
||||||
|
TTable pla("PLA");
|
||||||
|
pla.put("CODTAB", chiave);
|
||||||
|
if (pla.read() == NOERR)
|
||||||
|
{
|
||||||
|
_prorata = pla.get_real("R8");
|
||||||
|
_att.put("TIPOATT", pla.get("S7")); // Aggiorna tipo attivita'
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_prorata = 0.0;
|
||||||
|
|
||||||
return err == NOERR;
|
return err == NOERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,22 +182,10 @@ const TString& TRegistro::tipo_attivita()
|
|||||||
return _att.get("TIPOATT");
|
return _att.get("TIPOATT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const real& TRegistro::prorata()
|
const real& TRegistro::prorata()
|
||||||
{
|
{
|
||||||
if (_prorata.sign() < 0)
|
read_att();
|
||||||
{
|
|
||||||
TString16 chiave; // Anno - Attivita' - Tipo Attivita' (fissata a 1)
|
|
||||||
chiave << year();
|
|
||||||
chiave << attivita() << "1";
|
|
||||||
|
|
||||||
TTable pla("PLA");
|
|
||||||
pla.put("CODTAB", chiave);
|
|
||||||
if (pla.read() == NOERR)
|
|
||||||
_prorata = pla.get_real("R8");
|
|
||||||
else
|
|
||||||
_prorata = 0.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return _prorata;
|
return _prorata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
742
cg/cg21cg.uml
742
cg/cg21cg.uml
@ -1,371 +1,371 @@
|
|||||||
PAGE "RIGA PRIMA NOTA" -1 -1 67 16
|
PAGE "RIGA PRIMA NOTA" -1 -1 67 16
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 66 3
|
GROUPBOX DLG_NULL 66 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Descrizione"
|
PROMPT 1 1 "Descrizione"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 108 5
|
STRING 108 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 ""
|
PROMPT 2 2 ""
|
||||||
HELP "Codice della descrizione aggiuntiva di riga"
|
HELP "Codice della descrizione aggiuntiva della riga"
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE %DPN
|
USE %DPN
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT 108 CODTAB
|
OUTPUT 108 CODTAB
|
||||||
OUTPUT 109 S0
|
OUTPUT 109 S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 109 50
|
STRING 109 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 14 2 ""
|
PROMPT 14 2 ""
|
||||||
USE %DPN
|
USE %DPN KEY 2
|
||||||
INPUT S0 109
|
INPUT S0 109
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
COPY OUTPUT 108
|
COPY OUTPUT 108
|
||||||
HELP "Descrizione aggiuntiva di riga"
|
HELP "Descrizione aggiuntiva della riga"
|
||||||
FIELD DESCR
|
FIELD DESCR
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 66 5
|
GROUPBOX DLG_NULL 66 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Conto principale"
|
PROMPT 1 4 "Conto principale"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 101 15
|
NUMBER 101 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Dare "
|
PROMPT 2 5 "Dare "
|
||||||
HELP "Importo dare del conto della riga"
|
HELP "Importo 'dare' del conto della riga"
|
||||||
FLAGS "RV"
|
FLAGS "RV"
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 102 15
|
NUMBER 102 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 5 "Avere "
|
PROMPT 42 5 "Avere "
|
||||||
HELP "Importo avere del conto della riga"
|
HELP "Importo 'avere' del conto della riga"
|
||||||
FLAGS "RV"
|
FLAGS "RV"
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST 103 1 12
|
LIST 103 1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Tipo "
|
PROMPT 2 6 "Tipo "
|
||||||
HELP "Tipo del conto principale della riga"
|
HELP "Tipo del conto principale della riga"
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
ITEM " |Conto" MESSAGE SHOW,106|HIDE,206|HIDE,306|SHOW,107|HIDE,207|HIDE,307
|
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|SHOW,207|HIDE,107|HIDE,307
|
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|SHOW,307|HIDE,107|HIDE,207
|
ITEM "F|Fornitore" MESSAGE SHOW,306|HIDE,106|HIDE,206|SHOW,307|HIDE,107|HIDE,207
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 104 3
|
NUMBER 104 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 6 "Gruppo "
|
PROMPT 20 6 "Gruppo "
|
||||||
HELP "Codice del conto delle riga"
|
HELP "Codice del conto delle riga"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 105 3
|
NUMBER 105 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 6 "Conto "
|
PROMPT 32 6 "Conto "
|
||||||
HELP "Codice del conto delle riga"
|
HELP "Codice del conto delle riga"
|
||||||
FIELD LF_PCON->CONTO
|
FIELD LF_PCON->CONTO
|
||||||
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
||||||
INPUT GRUPPO 104
|
INPUT GRUPPO 104
|
||||||
INPUT CONTO 105
|
INPUT CONTO 105
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Tipo" TMCF
|
DISPLAY "Tipo" TMCF
|
||||||
OUTPUT 103 TMCF
|
OUTPUT 103 TMCF
|
||||||
OUTPUT 104 GRUPPO
|
OUTPUT 104 GRUPPO
|
||||||
OUTPUT 105 CONTO
|
OUTPUT 105 CONTO
|
||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
MESSAGE DIRTY,106|DIRTY,206|DIRTY,306
|
MESSAGE DIRTY,106|DIRTY,206|DIRTY,306
|
||||||
WARNING "Conto inesistente o mancante sulla riga contabile"
|
WARNING "Conto inesistente o mancante sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 106 6
|
NUMBER 106 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 6 "Sottoconto "
|
PROMPT 45 6 "Sottoconto "
|
||||||
HELP "Codice del conto delle riga"
|
HELP "Codice del conto delle riga"
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
INPUT GRUPPO 104
|
INPUT GRUPPO 104
|
||||||
INPUT CONTO 105
|
INPUT CONTO 105
|
||||||
INPUT SOTTOCONTO 106
|
INPUT SOTTOCONTO 106
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
OUTPUT 106 SOTTOCONTO
|
OUTPUT 106 SOTTOCONTO
|
||||||
OUTPUT 104 GRUPPO
|
OUTPUT 104 GRUPPO
|
||||||
OUTPUT 105 CONTO
|
OUTPUT 105 CONTO
|
||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Sottoconto inesistente sulla riga contabile"
|
WARNING "Sottoconto inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 206 6
|
NUMBER 206 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 6 "Cliente "
|
PROMPT 45 6 "Cliente "
|
||||||
HELP "Codice del cliente delle riga"
|
HELP "Codice del cliente delle riga"
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF 206
|
INPUT CODCF 206
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT 206 CODCF
|
OUTPUT 206 CODCF
|
||||||
OUTPUT 207 RAGSOC
|
OUTPUT 207 RAGSOC
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Cliente inesistente sulla riga contabile"
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 306 6
|
NUMBER 306 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 6 "Fornitore "
|
PROMPT 45 6 "Fornitore "
|
||||||
HELP "Codice del fornitore delle riga"
|
HELP "Codice del fornitore delle riga"
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT CODCF 306
|
INPUT CODCF 306
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
OUTPUT 306 CODCF
|
OUTPUT 306 CODCF
|
||||||
OUTPUT 307 RAGSOC
|
OUTPUT 307 RAGSOC
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
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 "Descriz. "
|
PROMPT 2 7 "Descriz. "
|
||||||
HELP "Descrizione del conto delle riga"
|
HELP "Descrizione del conto delle riga"
|
||||||
FIELD LF_PCON->DESCR
|
FIELD LF_PCON->DESCR
|
||||||
USE LF_PCON KEY 2
|
USE LF_PCON KEY 2
|
||||||
INPUT DESCR 107
|
INPUT DESCR 107
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" SOTTOCONTO
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
COPY OUTPUT 106
|
COPY OUTPUT 106
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Sottoconto inesistente o mancante sulla riga contabile"
|
WARNING "Sottoconto inesistente o mancante sulla riga contabile"
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 207 50
|
STRING 207 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Cliente "
|
PROMPT 2 7 "Cliente "
|
||||||
HELP "Ragione sociale del cliente delle riga"
|
HELP "Ragione sociale del cliente delle riga"
|
||||||
FIELD LF_CLIFO->RAGSOC
|
FIELD LF_CLIFO->RAGSOC
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC 207
|
INPUT RAGSOC 207
|
||||||
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT 206
|
COPY OUTPUT 206
|
||||||
MESSAGE COPY,107
|
MESSAGE COPY,107
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Cliente inesistente sulla riga contabile"
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 307 50
|
STRING 307 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Fornitore "
|
PROMPT 2 7 "Fornitore "
|
||||||
HELP "Ragione sociale del fonitore delle riga"
|
HELP "Ragione sociale del fonitore delle riga"
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
USE LF_CLIFO KEY 2
|
USE LF_CLIFO KEY 2
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT RAGSOC 307
|
INPUT RAGSOC 307
|
||||||
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT 306
|
COPY OUTPUT 306
|
||||||
MESSAGE COPY,107
|
MESSAGE COPY,107
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Fornitore inesistente sulla riga contabile"
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 66 4
|
GROUPBOX DLG_NULL 66 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "Contropartita"
|
PROMPT 1 9 "Contropartita"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST 110 1 12
|
LIST 110 1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Tipo "
|
PROMPT 2 10 "Tipo "
|
||||||
HELP "Tipo del conto di contropartita della riga"
|
HELP "Tipo del conto di contropartita della riga"
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313|SHOW,114|HIDE,214|HIDE,314
|
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|SHOW,214|HIDE,114|HIDE,314
|
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|SHOW,314|HIDE,114|HIDE,214
|
ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213|SHOW,314|HIDE,114|HIDE,214
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 111 3
|
NUMBER 111 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 10 "Gruppo "
|
PROMPT 20 10 "Gruppo "
|
||||||
HELP "Codice del conto di contropartita delle riga"
|
HELP "Codice del conto di contropartita delle riga"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 112 3
|
NUMBER 112 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 10 "Conto "
|
PROMPT 32 10 "Conto "
|
||||||
HELP "Codice del conto di contropartita delle riga"
|
HELP "Codice del conto di contropartita delle riga"
|
||||||
FIELD LF_PCON->CONTO
|
FIELD LF_PCON->CONTO
|
||||||
COPY USE 105
|
COPY USE 105
|
||||||
INPUT GRUPPO 111
|
INPUT GRUPPO 111
|
||||||
INPUT CONTO 112
|
INPUT CONTO 112
|
||||||
COPY DISPLAY 105
|
COPY DISPLAY 105
|
||||||
OUTPUT 110 TMCF
|
OUTPUT 110 TMCF
|
||||||
OUTPUT 111 GRUPPO
|
OUTPUT 111 GRUPPO
|
||||||
OUTPUT 112 CONTO
|
OUTPUT 112 CONTO
|
||||||
OUTPUT 114 DESCR
|
OUTPUT 114 DESCR
|
||||||
ADD RUN CG0 -0
|
ADD RUN CG0 -0
|
||||||
MESSAGE DIRTY,113|DIRTY,213|DIRTY,313
|
MESSAGE DIRTY,113|DIRTY,213|DIRTY,313
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 3 113 213 313
|
VALIDATE REQIF_FUNC 3 113 213 313
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 113 6
|
NUMBER 113 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 10 "Sottoconto "
|
PROMPT 45 10 "Sottoconto "
|
||||||
HELP "Codice del conto di contropartita delle riga"
|
HELP "Codice del conto di contropartita delle riga"
|
||||||
FIELD LF_PCON->SOTTOCONTO
|
FIELD LF_PCON->SOTTOCONTO
|
||||||
COPY USE 106
|
COPY USE 106
|
||||||
COPY INPUT 112
|
COPY INPUT 112
|
||||||
INPUT SOTTOCONTO 113
|
INPUT SOTTOCONTO 113
|
||||||
COPY DISPLAY 106
|
COPY DISPLAY 106
|
||||||
OUTPUT 113 SOTTOCONTO
|
OUTPUT 113 SOTTOCONTO
|
||||||
OUTPUT 111 GRUPPO
|
OUTPUT 111 GRUPPO
|
||||||
OUTPUT 112 CONTO
|
OUTPUT 112 CONTO
|
||||||
OUTPUT 114 DESCR
|
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 "
|
||||||
HELP "Codice del cliente di contropartita delle riga"
|
HELP "Codice del cliente di contropartita delle riga"
|
||||||
FIELD LF_CLIFO->CODCF
|
FIELD LF_CLIFO->CODCF
|
||||||
COPY USE 206
|
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 214 RAGSOC
|
OUTPUT 214 RAGSOC
|
||||||
MESSAGE COPY,113
|
MESSAGE COPY,113
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 313 6
|
NUMBER 313 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 45 10 "Fornitore "
|
PROMPT 45 10 "Fornitore "
|
||||||
HELP "Codice del fornitore di contropartita delle riga"
|
HELP "Codice del fornitore di contropartita delle riga"
|
||||||
FIELD LF_CLIFO->CODCF
|
FIELD LF_CLIFO->CODCF
|
||||||
COPY USE 306
|
COPY USE 306
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT CODCF 313
|
INPUT CODCF 313
|
||||||
COPY DISPLAY 306
|
COPY DISPLAY 306
|
||||||
OUTPUT 313 CODCF
|
OUTPUT 313 CODCF
|
||||||
OUTPUT 314 RAGSOC
|
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. "
|
PROMPT 2 11 "Descriz. "
|
||||||
HELP "Descrizione del conto di contropartita delle riga"
|
HELP "Descrizione del conto di contropartita delle riga"
|
||||||
FIELD LF_PCON->DESCR
|
FIELD LF_PCON->DESCR
|
||||||
COPY USE 107
|
COPY USE 107
|
||||||
INPUT DESCR 114
|
INPUT DESCR 114
|
||||||
COPY DISPLAY 107
|
COPY DISPLAY 107
|
||||||
COPY OUTPUT 113
|
COPY OUTPUT 113
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
WARNING "Conto inesistente sulla riga contabile"
|
WARNING "Conto inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 214 50
|
STRING 214 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Cliente "
|
PROMPT 2 11 "Cliente "
|
||||||
HELP "Ragione sociale del cliente di contropartita delle riga"
|
HELP "Ragione sociale del cliente di contropartita delle riga"
|
||||||
FIELD LF_CLIFO->RAGSOC
|
FIELD LF_CLIFO->RAGSOC
|
||||||
COPY USE 207
|
COPY USE 207
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT RAGSOC 214
|
INPUT RAGSOC 214
|
||||||
COPY DISPLAY 207
|
COPY DISPLAY 207
|
||||||
COPY OUTPUT 213
|
COPY OUTPUT 213
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Cliente inesistente sulla riga contabile"
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 314 50
|
STRING 314 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 11 "Fornitore "
|
PROMPT 2 11 "Fornitore "
|
||||||
HELP "Ragione sociale del fornitore di contropartita delle riga"
|
HELP "Ragione sociale del fornitore di contropartita delle riga"
|
||||||
FIELD LF_CLIFO->RAGSOC
|
FIELD LF_CLIFO->RAGSOC
|
||||||
COPY USE 307
|
COPY USE 307
|
||||||
INPUT TIPOCF "F"
|
INPUT TIPOCF "F"
|
||||||
INPUT RAGSOC 314
|
INPUT RAGSOC 314
|
||||||
COPY DISPLAY 307
|
COPY DISPLAY 307
|
||||||
COPY OUTPUT 313
|
COPY OUTPUT 313
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Fornitore inesistente sulla riga contabile"
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST 115 20
|
LIST 115 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "Tipo riga "
|
PROMPT 2 13 "Tipo riga "
|
||||||
ITEM " |Sola contabilita'"
|
ITEM " |Sola contabilita'"
|
||||||
ITEM "C|Gestione saldaconto"
|
ITEM "C|Gestione saldaconto"
|
||||||
ITEM "D|IVA detraibile"
|
ITEM "D|IVA detraibile"
|
||||||
ITEM "F|Ritenute fiscali"
|
ITEM "F|Ritenute fiscali"
|
||||||
ITEM "I|Riga di IVA"
|
ITEM "I|Riga di IVA"
|
||||||
ITEM "N|IVA non detraibile"
|
ITEM "N|IVA non detraibile"
|
||||||
ITEM "S|Ritenute sociali"
|
ITEM "S|Ritenute sociali"
|
||||||
ITEM "T|Totale documento"
|
ITEM "T|Totale documento"
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
BUTTON DLG_OK 9 2
|
BUTTON DLG_OK 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -13 -1 ""
|
PROMPT -13 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 9 2
|
BUTTON DLG_CANCEL 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -23 -1 ""
|
PROMPT -23 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_DELREC 9 2
|
BUTTON DLG_DELREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -33 -1 "Elimina"
|
PROMPT -33 -1 "Elimina"
|
||||||
MESSAGE EXIT,K_DEL
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
285
cg/cg2200.cpp
285
cg/cg2200.cpp
@ -1,143 +1,144 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <mask.h>
|
#include <mask.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
|
|
||||||
#include "cg2200.h"
|
#include "cg2200.h"
|
||||||
#include "cg2101.h"
|
#include "cg2101.h"
|
||||||
|
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
|
|
||||||
TString& add_plural(TString& s, long num, const char* name)
|
TString& add_plural(TString& s, long num, const char* name)
|
||||||
{
|
{
|
||||||
const TFixed_string n(name);
|
const TFixed_string n(name);
|
||||||
const char last = n[n.len()-1];
|
const char last = n[n.len()-1];
|
||||||
|
|
||||||
if (num < 1)
|
if (num < 1)
|
||||||
{
|
{
|
||||||
s << "nessun";
|
s << "nessun";
|
||||||
if (toupper(last) == 'A' || toupper(n[0]) == 'Z' ||
|
if (toupper(last) == 'A' || toupper(n[0]) == 'Z' ||
|
||||||
toupper(n[0]) == 'S' && strchr("aeiouAEIOU", n[1]) == NULL)
|
toupper(n[0]) == 'S' && strchr("aeiouAEIOU", n[1]) == NULL)
|
||||||
s << tolower(last);
|
s << tolower(last);
|
||||||
s << ' ' << name;
|
s << ' ' << name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s << num << ' ' << name;
|
s << num << ' ' << name;
|
||||||
if (num > 1)
|
if (num > 1)
|
||||||
s[s.len()-1] = (last == 'a') ? 'e' : 'i';
|
s[s.len()-1] = (last == 'a') ? 'e' : 'i';
|
||||||
}
|
}
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
class TDeleteprovv_app : public TApplication
|
class TDeleteprovv_app : public TApplication
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual bool create();
|
virtual bool create();
|
||||||
virtual bool destroy();
|
virtual bool destroy();
|
||||||
virtual bool menu(MENU_TAG m);
|
virtual bool menu(MENU_TAG m);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TDeleteprovv_app() {};
|
TDeleteprovv_app() {};
|
||||||
};
|
};
|
||||||
|
|
||||||
bool TDeleteprovv_app::create()
|
bool TDeleteprovv_app::create()
|
||||||
{
|
{
|
||||||
dispatch_e_menu(BAR_ITEM(1));
|
dispatch_e_menu(BAR_ITEM(1));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDeleteprovv_app::destroy()
|
bool TDeleteprovv_app::destroy()
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TDeleteprovv_app::menu(MENU_TAG)
|
bool TDeleteprovv_app::menu(MENU_TAG)
|
||||||
{
|
{
|
||||||
TMask m("cg2200a");
|
TMask m("cg2200a");
|
||||||
TCursor& cur = *m.efield(F_FROMDATE).browse()->cursor();
|
TCursor& cur = *m.efield(F_FROMDATE).browse()->cursor();
|
||||||
TLocalisamfile& mov = cur.file(LF_MOV);
|
TLocalisamfile& mov = cur.file(LF_MOV);
|
||||||
TLocalisamfile rmov(LF_RMOV);
|
TLocalisamfile rmov(LF_RMOV);
|
||||||
TLocalisamfile rmoviva(LF_RMOVIVA);
|
TLocalisamfile rmoviva(LF_RMOVIVA);
|
||||||
|
|
||||||
while (m.run() != K_QUIT)
|
while (m.run() != K_QUIT)
|
||||||
{
|
{
|
||||||
TRecnotype last = cur.items()-1;
|
TRecnotype last = cur.items()-1;
|
||||||
mov.zero();
|
mov.zero();
|
||||||
const char* s = m.get(F_TODATE);
|
const char* s = m.get(F_TODATE);
|
||||||
if (*s)
|
if (*s)
|
||||||
{
|
{
|
||||||
mov.put(MOV_DATAREG, s);
|
mov.put(MOV_DATAREG, s);
|
||||||
mov.put(MOV_NUMREG, m.get(F_TOREG));
|
mov.put(MOV_NUMREG, m.get(F_TOREG));
|
||||||
last = cur.read();
|
last = cur.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
mov.zero();
|
mov.zero();
|
||||||
mov.put(MOV_DATAREG, m.get(F_FROMDATE));
|
mov.put(MOV_DATAREG, m.get(F_FROMDATE));
|
||||||
mov.put(MOV_NUMREG, m.get(F_FROMREG));
|
mov.put(MOV_NUMREG, m.get(F_FROMREG));
|
||||||
const TRecnotype first = cur.read();
|
const TRecnotype first = cur.read();
|
||||||
|
|
||||||
const TRecnotype total = last-first+1;
|
const TRecnotype total = last-first+1;
|
||||||
TString80 caption("Cancellazione di ");
|
TString80 caption("Cancellazione di ");
|
||||||
add_plural(caption, total, "movimento");
|
add_plural(caption, total, "movimento");
|
||||||
|
|
||||||
if (!yesno_box(caption) || total < 1)
|
if (!yesno_box(caption) || total < 1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
TProgind pi(total, caption, FALSE, TRUE, 24);
|
TProgind pi(total, caption, FALSE, TRUE, 24);
|
||||||
|
|
||||||
for (cur = first; cur.pos() <= last; ++cur)
|
for (cur = first; cur.pos() <= last; ++cur)
|
||||||
{
|
{
|
||||||
const long numreg = mov.get_long(MOV_NUMREG);
|
const long numreg = mov.get_long(MOV_NUMREG);
|
||||||
|
|
||||||
int err = cur.lock();
|
int err = cur.lock();
|
||||||
for (int rig = 1; err == NOERR; rig++)
|
for (int rig = 1; err == NOERR; rig++)
|
||||||
{
|
{
|
||||||
rmov.put(RMV_NUMREG, numreg);
|
rmov.put(RMV_NUMREG, numreg);
|
||||||
rmov.put(RMV_NUMRIG, rig);
|
rmov.put(RMV_NUMRIG, rig);
|
||||||
if (rmov.read(_isequal, _lock) != NOERR) break;
|
if (rmov.read(_isequal, _lock) != NOERR) break;
|
||||||
err = rmov.remove();
|
err = rmov.remove();
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
caption.format("riga contabile %d", rig);
|
caption.format("riga contabile %d", rig);
|
||||||
}
|
}
|
||||||
for (rig = 1; err == NOERR; rig++)
|
for (rig = 1; err == NOERR; rig++)
|
||||||
{
|
{
|
||||||
rmoviva.put(RMI_NUMREG, numreg);
|
rmoviva.put(RMI_NUMREG, numreg);
|
||||||
rmoviva.put(RMI_NUMRIG, rig);
|
rmoviva.put(RMI_NUMRIG, rig);
|
||||||
if (rmoviva.read(_isequal, _lock) != NOERR) break;
|
if (rmoviva.read(_isequal, _lock) != NOERR) break;
|
||||||
err = rmov.remove();
|
err = rmov.remove();
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
caption.format("riga IVA %d", rig);
|
caption.format("riga IVA %d", rig);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
err = mov.remove(); // Isam bug on remove with key != 1
|
mov.setkey(1); // Isam bug on remove with key != 1
|
||||||
}
|
err = mov.remove();
|
||||||
else
|
}
|
||||||
caption = "testata";
|
else
|
||||||
|
caption = "testata";
|
||||||
if (err == NOERR)
|
|
||||||
pi.addstatus(1);
|
if (err == NOERR)
|
||||||
else
|
pi.addstatus(1);
|
||||||
{
|
else
|
||||||
error_box("Errore %d nella cancellazione della %s del movimento %ld",
|
{
|
||||||
err, (const char*)caption, numreg);
|
error_box("Errore %d nella cancellazione della %s del movimento %ld",
|
||||||
break;
|
err, (const char*)caption, numreg);
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return FALSE;
|
|
||||||
}
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
int cg2200(int argc, char** argv)
|
|
||||||
{
|
int cg2200(int argc, char** argv)
|
||||||
TDeleteprovv_app a;
|
{
|
||||||
a.run(argc, argv, "Eliminazione movimenti provvisori");
|
TDeleteprovv_app a;
|
||||||
return 0;
|
a.run(argc, argv, "Eliminazione movimenti provvisori");
|
||||||
|
return 0;
|
||||||
}
|
}
|
5014
cg/cg3100.cpp
5014
cg/cg3100.cpp
File diff suppressed because it is too large
Load Diff
3908
cg/cg3200.cpp
3908
cg/cg3200.cpp
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,12 @@
|
|||||||
// cg3400 - Stampa libro giornale
|
// cg3400 - Stampa libro giornale
|
||||||
|
|
||||||
#include <isam.h>
|
#include <config.h>
|
||||||
#include <mask.h>
|
#include <mask.h>
|
||||||
#include <utility.h>
|
#include <printapp.h>
|
||||||
|
#include <progind.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <printapp.h>
|
#include <utility.h>
|
||||||
#include <config.h>
|
|
||||||
#include <progind.h>
|
|
||||||
|
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
@ -1081,8 +1080,8 @@ void CG3400_application::calcola_iva()
|
|||||||
void CG3400_application::setta_righe_descr(TParagraph_string* str, enum descr des)
|
void CG3400_application::setta_righe_descr(TParagraph_string* str, enum descr des)
|
||||||
{
|
{
|
||||||
int i = 1;
|
int i = 1;
|
||||||
TString16 frm;
|
const char* frm;
|
||||||
const char * r;
|
const char* r;
|
||||||
|
|
||||||
switch (des)
|
switch (des)
|
||||||
{
|
{
|
||||||
@ -1105,10 +1104,11 @@ void CG3400_application::setta_righe_descr(TParagraph_string* str, enum descr de
|
|||||||
frm = "@69g%s";
|
frm = "@69g%s";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
frm = "";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
while ((r = str->get()) != NULL)
|
while ((r = str->get()) != NULL)
|
||||||
set_row (i++, (const char*)frm, r);
|
set_row (i++, frm, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NB
|
// NB
|
||||||
@ -1121,23 +1121,28 @@ int CG3400_application::setta_righe_iva()
|
|||||||
|
|
||||||
for (j = 0; j < _iva_array.items(); j++)
|
for (j = 0; j < _iva_array.items(); j++)
|
||||||
{
|
{
|
||||||
TRigaiva& riga = (TRigaiva&)_iva_array[j];
|
TRigaiva& riga = _iva_array.riga(j);
|
||||||
r = j+1;
|
r = j+1;
|
||||||
set_row(r, "Imponibile@12g%r", &riga._imponibile);
|
set_row(r, "Imponibile@12g%r", &riga._imponibile);
|
||||||
set_row(r, "@31gImposta@39g%r", &riga._imposta);
|
set_row(r, "@31gImposta@39g%r", &riga._imposta);
|
||||||
set_row(r, "@58gCodice Iva@68g%3s", (const char*)riga._codiva);
|
set_row(r, "@58gCodice Iva@68g%3s", (const char*)riga._codiva);
|
||||||
switch (riga._tipodet)
|
switch (riga._tipodet)
|
||||||
{
|
{
|
||||||
case 0 : set_row(r, "@73gDetraibile");
|
case 0:
|
||||||
break;
|
set_row(r, "@73gDetraibile");
|
||||||
case 1 : set_row(r, "@73gIndetraibile su op.es.");
|
break;
|
||||||
break;
|
case 1:
|
||||||
case 3 : set_row(r, "@73gPassaggi interni");
|
set_row(r, "@73gIndetraibile su op.es.");
|
||||||
break;
|
break;
|
||||||
case 9 : set_row(r, "@73gIndetraibile art.19");
|
case 3:
|
||||||
break;
|
set_row(r, "@73gPassaggi interni");
|
||||||
default: break;
|
break;
|
||||||
}
|
case 9:
|
||||||
|
set_row(r, "@73gIndetraibile art.19");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_iva_array.destroy();
|
_iva_array.destroy();
|
||||||
set_row (j+1, ""); // lascio una riga vuota dopo tutto cio'
|
set_row (j+1, ""); // lascio una riga vuota dopo tutto cio'
|
||||||
|
193
cg/cglib03.cpp
193
cg/cglib03.cpp
@ -1,98 +1,95 @@
|
|||||||
|
|
||||||
// TRigaiva_array
|
// TRigaiva_array
|
||||||
// Tabella per il calcolo degli imponibili Iva
|
// Tabella per il calcolo degli imponibili Iva
|
||||||
|
|
||||||
#include <array.h>
|
#include "cglib03.h"
|
||||||
#include <real.h>
|
|
||||||
#include <strings.h>
|
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap)
|
||||||
#include "cglib03.h"
|
{
|
||||||
|
bool found = FALSE;
|
||||||
bool TRigaiva_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap)
|
for (int i = 0; i < items(); i++)
|
||||||
{
|
{
|
||||||
bool found = FALSE;
|
TRigaiva& r = riga(i);
|
||||||
for (int i = 0; i < items(); i++)
|
if (r._codiva==codiva && tipodet==r._tipodet && tipocr==r._tipocr)
|
||||||
{
|
{
|
||||||
TRigaiva& r = (TRigaiva&)(*this)[i];
|
found = TRUE;
|
||||||
if (r._codiva==codiva && tipodet==r._tipodet && tipocr==r._tipocr)
|
r._imponibile += imponibile;
|
||||||
{
|
r._imposta += imposta;
|
||||||
found = TRUE;
|
r._imponibilep += imponibilep;
|
||||||
r._imponibile += imponibile;
|
r._impostap += impostap;
|
||||||
r._imposta += imposta;
|
}
|
||||||
r._imponibilep += imponibilep;
|
}
|
||||||
r._impostap += impostap;
|
if (!found)
|
||||||
}
|
{
|
||||||
}
|
TRigaiva* r = new TRigaiva(imponibile,imposta,codiva,tipodet,tipocr,imponibilep,impostap);
|
||||||
if (!found)
|
add(r);
|
||||||
{
|
}
|
||||||
TRigaiva* r = new TRigaiva(imponibile,imposta,codiva,tipodet,tipocr,imponibilep,impostap);
|
return found;
|
||||||
add(r);
|
}
|
||||||
}
|
|
||||||
return found;
|
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap)
|
||||||
}
|
{
|
||||||
|
bool found = FALSE;
|
||||||
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap)
|
for (int i = 0; i < items(); i++)
|
||||||
{
|
{
|
||||||
bool found = FALSE;
|
TRiga& r = riga(i);
|
||||||
for (int i = 0; i < items(); i++)
|
if (r._codiva==codiva && r._tipodoc==tipodoc)
|
||||||
{
|
{
|
||||||
TRiga& r = (TRiga&)(*this)[i];
|
found = TRUE;
|
||||||
if (r._codiva==codiva && r._tipodoc==tipodoc)
|
r._imponibile += imponibile;
|
||||||
{
|
r._imposta += imposta;
|
||||||
found = TRUE;
|
r._imponibilep += imponibilep;
|
||||||
r._imponibile += imponibile;
|
r._impostap += impostap;
|
||||||
r._imposta += imposta;
|
}
|
||||||
r._imponibilep += imponibilep;
|
}
|
||||||
r._impostap += impostap;
|
if (!found)
|
||||||
}
|
{
|
||||||
}
|
TRiga* r = new TRiga(imponibile,imposta,codiva,tipodoc,imponibilep,impostap);
|
||||||
if (!found)
|
add(r);
|
||||||
{
|
}
|
||||||
TRiga* r = new TRiga(imponibile,imposta,codiva,tipodoc,imponibilep,impostap);
|
return found;
|
||||||
add(r);
|
}
|
||||||
}
|
|
||||||
return found;
|
bool TDociva_array::add_riga(const char* _descrdociva, const real& _importo,const int _natdoc)
|
||||||
}
|
{
|
||||||
|
bool found = FALSE;
|
||||||
bool TDociva_array::add_riga(const char* _descrdociva, const real& _importo,const int _natdoc)
|
for (int i = 0; i < items(); i++)
|
||||||
{
|
{
|
||||||
bool found = FALSE;
|
TDociva& r = riga(i);
|
||||||
for (int i = 0; i < items(); i++)
|
if (r._descrdoc==_descrdociva)
|
||||||
{
|
{
|
||||||
TDociva& r = (TDociva&)(*this)[i];
|
found = TRUE;
|
||||||
if (r._descrdoc==_descrdociva)
|
if ((r._ndoc == 1)||(r._ndoc == 2)||(r._ndoc == 9))//||(r._ndoc == 4))
|
||||||
{
|
r._totdociva += _importo;
|
||||||
found = TRUE;
|
}
|
||||||
if ((r._ndoc == 1)||(r._ndoc == 2)||(r._ndoc == 9))//||(r._ndoc == 4))
|
}
|
||||||
r._totdociva += _importo;
|
if (!found)
|
||||||
}
|
{
|
||||||
}
|
if ((_natdoc == 1)||(_natdoc == 2)||(_natdoc == 9))//||(_natdoc == 4))
|
||||||
if (!found)
|
{
|
||||||
{
|
TDociva* r = new TDociva(_descrdociva,_importo,_natdoc);
|
||||||
if ((_natdoc == 1)||(_natdoc == 2)||(_natdoc == 9))//||(_natdoc == 4))
|
add(r);
|
||||||
{
|
}
|
||||||
TDociva* r = new TDociva(_descrdociva,_importo,_natdoc);
|
}
|
||||||
add(r);
|
return found;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return found;
|
bool TTipodoc_array::add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc)
|
||||||
}
|
{
|
||||||
|
bool found = FALSE;
|
||||||
bool TTipodoc_array::add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc)
|
for (int i = 0; i < items(); i++)
|
||||||
{
|
{
|
||||||
bool found = FALSE;
|
TTipodoc& r = (TTipodoc&)(*this)[i];
|
||||||
for (int i = 0; i < items(); i++)
|
if (r._tipodoc==tipodoc)
|
||||||
{
|
{
|
||||||
TTipodoc& r = (TTipodoc&)(*this)[i];
|
found = TRUE;
|
||||||
if (r._tipodoc==tipodoc)
|
r._totdoc += totdoc;
|
||||||
{
|
}
|
||||||
found = TRUE;
|
}
|
||||||
r._totdoc += totdoc;
|
if (!found)
|
||||||
}
|
{
|
||||||
}
|
TTipodoc* r = new TTipodoc(tipodoc,descrdoc,totdoc);
|
||||||
if (!found)
|
add(r);
|
||||||
{
|
}
|
||||||
TTipodoc* r = new TTipodoc(tipodoc,descrdoc,totdoc);
|
return found;
|
||||||
add(r);
|
}
|
||||||
}
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
|
158
cg/cglib03.h
158
cg/cglib03.h
@ -1,75 +1,83 @@
|
|||||||
// cglib03.h
|
// cglib03.h
|
||||||
// TRigaiva_array
|
// TRigaiva_array
|
||||||
// Tabella per il calcolo degli imponibili Iva
|
// Tabella per il calcolo degli imponibili Iva
|
||||||
|
|
||||||
#ifndef __CGLIB03_H
|
#ifndef __CGLIB03_H
|
||||||
#define __CGLIB03_H
|
#define __CGLIB03_H
|
||||||
|
|
||||||
#include <array.h>
|
#ifndef __REAL_H
|
||||||
#include <real.h>
|
#include <real.h>
|
||||||
#include <strings.h>
|
#endif
|
||||||
|
|
||||||
struct TDociva : public TObject
|
#ifndef __STRINGS_H
|
||||||
{
|
#include <strings.h>
|
||||||
TString _descrdoc;
|
#endif
|
||||||
real _totdociva;
|
|
||||||
int _ndoc;
|
struct TDociva : public TObject
|
||||||
|
{
|
||||||
TDociva(const char* _descrdociva, const real& _importo,const int _natdoc):_descrdoc(_descrdociva),_totdociva(_importo),_ndoc(_natdoc)
|
TString _descrdoc;
|
||||||
{}
|
real _totdociva;
|
||||||
};
|
int _ndoc;
|
||||||
|
|
||||||
class TDociva_array : public TArray
|
TDociva(const char* _descrdociva, const real& _importo,const int _natdoc):_descrdoc(_descrdociva),_totdociva(_importo),_ndoc(_natdoc)
|
||||||
{
|
{}
|
||||||
public:
|
};
|
||||||
bool add_riga(const char* _descrdociva,const real& _importo,const int _natdoc);
|
|
||||||
};
|
class TDociva_array : public TArray
|
||||||
|
{
|
||||||
struct TRigaiva : public TObject
|
public:
|
||||||
{
|
bool add_riga(const char* _descrdociva,const real& _importo,const int _natdoc);
|
||||||
real _imponibile, _imposta, _imponibilep, _impostap; //imponibili, imposte del periodo e progressivi
|
TDociva& riga(int i) { return (TDociva&)(*this)[i]; }
|
||||||
TString _codiva;
|
};
|
||||||
int _tipodet, _tipocr;
|
|
||||||
|
struct TRigaiva : public TObject
|
||||||
TRigaiva (const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap):
|
{
|
||||||
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_imponibilep(imponibilep),_impostap(impostap)
|
real _imponibile, _imposta, _imponibilep, _impostap; //imponibili, imposte del periodo e progressivi
|
||||||
{}
|
TString _codiva;
|
||||||
};
|
int _tipodet, _tipocr;
|
||||||
|
|
||||||
class TRigaiva_array : public TArray
|
TRigaiva (const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap):
|
||||||
{
|
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodet(tipodet),_tipocr(tipocr),_imponibilep(imponibilep),_impostap(impostap)
|
||||||
public:
|
{}
|
||||||
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap);
|
};
|
||||||
};
|
|
||||||
|
class TRigaiva_array : public TArray
|
||||||
struct TTipodoc : public TObject
|
{
|
||||||
{
|
public:
|
||||||
TString _tipodoc, _descrdoc;
|
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const int tipodet, const int tipocr, const real& imponibilep, const real& impostap);
|
||||||
real _totdoc;
|
TRigaiva& riga(int i) { return (TRigaiva&)(*this)[i]; }
|
||||||
|
};
|
||||||
TTipodoc (const char* tipodoc, const char* descrdoc, const real& totdoc):
|
|
||||||
_tipodoc(tipodoc),_descrdoc(descrdoc),_totdoc(totdoc) {}
|
struct TTipodoc : public TObject
|
||||||
};
|
{
|
||||||
|
TString _tipodoc, _descrdoc;
|
||||||
class TTipodoc_array : public TArray
|
real _totdoc;
|
||||||
{
|
|
||||||
public:
|
TTipodoc (const char* tipodoc, const char* descrdoc, const real& totdoc):
|
||||||
bool add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc);
|
_tipodoc(tipodoc),_descrdoc(descrdoc),_totdoc(totdoc) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TRiga : public TObject
|
class TTipodoc_array : public TArray
|
||||||
{
|
{
|
||||||
real _imponibile, _imposta, _imponibilep, _impostap;
|
public:
|
||||||
TString _codiva, _tipodoc;
|
bool add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc);
|
||||||
|
TTipodoc& riga(int i) { return (TTipodoc&)(*this)[i]; }
|
||||||
TRiga (const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap):
|
};
|
||||||
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodoc(tipodoc),_imponibilep(imponibilep),_impostap(impostap) {}
|
|
||||||
};
|
struct TRiga : public TObject
|
||||||
|
{
|
||||||
class TRiga_array : public TArray
|
real _imponibile, _imposta, _imponibilep, _impostap;
|
||||||
{
|
TString _codiva, _tipodoc;
|
||||||
public:
|
|
||||||
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap);
|
TRiga (const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap):
|
||||||
};
|
_imponibile(imponibile),_imposta(imposta),_codiva(codiva),_tipodoc(tipodoc),_imponibilep(imponibilep),_impostap(impostap) {}
|
||||||
|
};
|
||||||
#endif
|
|
||||||
|
class TRiga_array : public TArray
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool add_riga(const real& imponibile, const real& imposta, const char* codiva, const char* tipodoc, const real& imponibilep, const real& impostap);
|
||||||
|
TRiga& riga(int i) { return (TRiga&)(*this)[i]; }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user