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