Migliorata gestione contropartita
git-svn-id: svn://10.65.10.50/trunk@321 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5bc0d3b903
commit
ac27109076
@ -14,9 +14,8 @@ BEGIN
|
|||||||
ITEM " |Conto" MESSAGE SHOW,105|HIDE,205|HIDE,305|SHOW,107|HIDE,207|HIDE,307
|
ITEM " |Conto" MESSAGE SHOW,105|HIDE,205|HIDE,305|SHOW,107|HIDE,207|HIDE,307
|
||||||
ITEM "C|Cliente" MESSAGE SHOW,205|HIDE,105|HIDE,305|SHOW,207|HIDE,107|HIDE,307
|
ITEM "C|Cliente" MESSAGE SHOW,205|HIDE,105|HIDE,305|SHOW,207|HIDE,107|HIDE,307
|
||||||
ITEM "F|Fornitore" MESSAGE SHOW,305|HIDE,105|HIDE,205|SHOW,307|HIDE,107|HIDE,207
|
ITEM "F|Fornitore" MESSAGE SHOW,305|HIDE,105|HIDE,205|SHOW,307|HIDE,107|HIDE,207
|
||||||
FLAGS "DG"
|
FLAGS "DGU"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
// FLAGS "U"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 103 3
|
NUMBER 103 3
|
||||||
@ -43,7 +42,7 @@ NUMBER 104 3
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 15 3 "Conto "
|
PROMPT 15 3 "Conto "
|
||||||
FIELD LF_RCAUSALI->CONTO
|
FIELD LF_RCAUSALI->CONTO
|
||||||
USE LF_PCON KEY 1 SELECT (CONTO!="") && (SOTTOCONTO="")
|
USE LF_PCON KEY 1 SELECT SOTTOCONTO=""
|
||||||
INPUT GRUPPO 103
|
INPUT GRUPPO 103
|
||||||
INPUT CONTO 104
|
INPUT CONTO 104
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
@ -55,8 +54,6 @@ BEGIN
|
|||||||
OUTPUT 104 CONTO
|
OUTPUT 104 CONTO
|
||||||
OUTPUT 103 GRUPPO
|
OUTPUT 103 GRUPPO
|
||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
OUTPUT 207 DESCR
|
|
||||||
OUTPUT 307 DESCR
|
|
||||||
MESSAGE DIRTY,105|DIRTY,205|DIRTY,305
|
MESSAGE DIRTY,105|DIRTY,205|DIRTY,305
|
||||||
WARNING "Conto inesistente o mancante"
|
WARNING "Conto inesistente o mancante"
|
||||||
ADD RUN CG0 -0
|
ADD RUN CG0 -0
|
||||||
@ -68,7 +65,7 @@ NUMBER 105 6
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 29 3 "Sottoconto "
|
PROMPT 29 3 "Sottoconto "
|
||||||
FIELD LF_RCAUSALI->SOTTOCONTO
|
FIELD LF_RCAUSALI->SOTTOCONTO
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
USE LF_PCON
|
||||||
INPUT GRUPPO 103
|
INPUT GRUPPO 103
|
||||||
INPUT CONTO 104
|
INPUT CONTO 104
|
||||||
INPUT SOTTOCONTO 105
|
INPUT SOTTOCONTO 105
|
||||||
@ -102,19 +99,8 @@ BEGIN
|
|||||||
DISPLAY "Ragione sociale@50" RAGSOC
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
DISPLAY "Tipo C/F" TIPOCF
|
DISPLAY "Tipo C/F" TIPOCF
|
||||||
OUTPUT 205 CODCF
|
OUTPUT 205 CODCF
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
OUTPUT 105 CODCF
|
|
||||||
OUTPUT 207 RAGSOC
|
OUTPUT 207 RAGSOC
|
||||||
OUTPUT 107 RAGSOC
|
|
||||||
OUTPUT 307 RAGSOC
|
|
||||||
=======
|
|
||||||
OUTPUT 207 RAGSOC
|
|
||||||
>>>>>>> 1.11
|
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
FLAGS "H"
|
|
||||||
=======
|
|
||||||
>>>>>>> 1.11
|
|
||||||
ADD RUN CG0 -1
|
ADD RUN CG0 -1
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
@ -133,20 +119,8 @@ BEGIN
|
|||||||
DISPLAY "Ragione sociale@50" RAGSOC
|
DISPLAY "Ragione sociale@50" RAGSOC
|
||||||
DISPLAY "Tipo C/F" TIPOCF
|
DISPLAY "Tipo C/F" TIPOCF
|
||||||
OUTPUT 305 CODCF
|
OUTPUT 305 CODCF
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
OUTPUT 205 CODCF
|
|
||||||
OUTPUT 105 CODCF
|
|
||||||
OUTPUT 107 RAGSOC
|
|
||||||
OUTPUT 207 RAGSOC
|
|
||||||
OUTPUT 307 RAGSOC
|
OUTPUT 307 RAGSOC
|
||||||
=======
|
|
||||||
OUTPUT 307 RAGSOC
|
|
||||||
>>>>>>> 1.11
|
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
FLAGS "H"
|
|
||||||
=======
|
|
||||||
>>>>>>> 1.11
|
|
||||||
ADD RUN CG0 -1
|
ADD RUN CG0 -1
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
@ -176,11 +150,6 @@ BEGIN
|
|||||||
OUTPUT 104 CONTO
|
OUTPUT 104 CONTO
|
||||||
OUTPUT 103 GRUPPO
|
OUTPUT 103 GRUPPO
|
||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
OUTPUT 207 DESCR
|
|
||||||
OUTPUT 307 DESCR
|
|
||||||
=======
|
|
||||||
>>>>>>> 1.11
|
|
||||||
ADD RUN CG0 -0
|
ADD RUN CG0 -0
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
@ -198,15 +167,8 @@ BEGIN
|
|||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" CODCF
|
DISPLAY "Sottoconto" CODCF
|
||||||
OUTPUT 105 CODCF
|
|
||||||
OUTPUT 205 CODCF
|
OUTPUT 205 CODCF
|
||||||
OUTPUT 305 CODCF
|
|
||||||
OUTPUT 107 RAGSOC
|
|
||||||
OUTPUT 207 RAGSOC
|
OUTPUT 207 RAGSOC
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
OUTPUT 307 RAGSOC
|
|
||||||
=======
|
|
||||||
>>>>>>> 1.11
|
|
||||||
GROUP 1
|
GROUP 1
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
@ -225,14 +187,7 @@ BEGIN
|
|||||||
DISPLAY "Conto" CONTO
|
DISPLAY "Conto" CONTO
|
||||||
DISPLAY "Sottoconto" CODCF
|
DISPLAY "Sottoconto" CODCF
|
||||||
OUTPUT 305 CODCF
|
OUTPUT 305 CODCF
|
||||||
OUTPUT 205 CODCF
|
|
||||||
OUTPUT 105 CODCF
|
|
||||||
OUTPUT 307 RAGSOC
|
OUTPUT 307 RAGSOC
|
||||||
<<<<<<< cg0500b.uml
|
|
||||||
OUTPUT 207 RAGSOC
|
|
||||||
OUTPUT 107 RAGSOC
|
|
||||||
=======
|
|
||||||
>>>>>>> 1.11
|
|
||||||
GROUP 1
|
GROUP 1
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
@ -162,21 +162,39 @@ bool TPrimanota_application::user_destroy()
|
|||||||
// Certified 99%
|
// Certified 99%
|
||||||
bool TPrimanota_application::read_caus(const char* cod, int year)
|
bool TPrimanota_application::read_caus(const char* cod, int year)
|
||||||
{
|
{
|
||||||
const bool ok = causale().read(cod, year);
|
const bool ok = _causale.read(cod, year);
|
||||||
|
|
||||||
|
bool nob = FALSE, dob = FALSE, sal = FALSE;
|
||||||
|
TipoIVA iva = nessuna_iva;
|
||||||
|
|
||||||
bool nob = FALSE, dob = FALSE;
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
nob = _causale.num_doc();
|
nob = _causale.num_doc();
|
||||||
dob = _causale.data_doc();
|
dob = _causale.data_doc();
|
||||||
|
sal = gestione_saldaconto() && _causale.saldaconto();
|
||||||
|
iva = _causale.iva();
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask& m = *load_mask(causale().iva() == nessuna_iva ? 1 : 2);
|
TMask& m = *load_mask(iva == nessuna_iva ? 1 : 2);
|
||||||
TEdit_field& nd = (TEdit_field&)m.field(F_NUMDOC); // Numero documento obbligatorio?
|
m.efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio
|
||||||
nd.check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL);
|
m.efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria
|
||||||
TEdit_field& dd = (TEdit_field&)m.field(F_DATADOC); // Data documento obbligatoria?
|
|
||||||
dd.check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL);
|
if (iva != nessuna_iva)
|
||||||
|
{
|
||||||
|
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
|
||||||
|
m.efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
|
||||||
|
m.show(F_ANNORIF, sal);
|
||||||
|
m.show(F_NUMRIF, sal);
|
||||||
|
if (sal)
|
||||||
|
{
|
||||||
|
TString80 val;
|
||||||
|
if (riferimento_partita())
|
||||||
|
val = m.get(F_NUMDOC);
|
||||||
|
else
|
||||||
|
val.format("%ld", _causale.reg().protocol());
|
||||||
|
m.set(F_NUMRIF, val);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,6 +256,7 @@ void TPrimanota_application::read_firm_params()
|
|||||||
TConfig c(CONFIG_DITTA, "cg");
|
TConfig c(CONFIG_DITTA, "cg");
|
||||||
_ges_val = c.get_bool("GesVal");
|
_ges_val = c.get_bool("GesVal");
|
||||||
_ges_sal = c.get_bool("GesSal");
|
_ges_sal = c.get_bool("GesSal");
|
||||||
|
_rif_par = c.get_bool("RifPar");
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::init_mask(TMask& m)
|
void TPrimanota_application::init_mask(TMask& m)
|
||||||
@ -248,8 +267,6 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
|
|
||||||
if (_iva != nessuna_iva)
|
if (_iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
read_firm_params();
|
|
||||||
|
|
||||||
char clig, forg;
|
char clig, forg;
|
||||||
if (_iva == iva_acquisti)
|
if (_iva == iva_acquisti)
|
||||||
{
|
{
|
||||||
@ -275,8 +292,6 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3);
|
m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3);
|
||||||
if (valuta)
|
if (valuta)
|
||||||
m.set(F_VISVAL, "X");
|
m.set(F_VISVAL, "X");
|
||||||
|
|
||||||
m.efield(F_CODPAG).check_type(gestione_saldaconto() ? CHECK_REQUIRED : CHECK_NORMAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m.disable(DLG_NEWREC);
|
m.disable(DLG_NEWREC);
|
||||||
@ -285,6 +300,11 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
|
|
||||||
void TPrimanota_application::init_query_mode(TMask& m)
|
void TPrimanota_application::init_query_mode(TMask& m)
|
||||||
{
|
{
|
||||||
|
<<<<<<< cg2100.cpp
|
||||||
|
read_firm_params();
|
||||||
|
enable_menu_item(M_FILE_PRINT);
|
||||||
|
=======
|
||||||
|
>>>>>>> 1.22
|
||||||
m.enable(DLG_NEWREC);
|
m.enable(DLG_NEWREC);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -371,11 +391,11 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (nriga == 3 || nriga == 4 || nriga == 8 || nriga == 9)
|
if (nriga >= 3 && nriga <= 9)
|
||||||
continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali
|
continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali
|
||||||
|
|
||||||
const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA);
|
const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA);
|
||||||
if (nriga == 2 || (nriga >= 5 && nriga <= 7) || rigaiva)
|
if (nriga == 2 || rigaiva)
|
||||||
{
|
{
|
||||||
const TString16 codiva(rcaus->get(RCA_CODIVA));
|
const TString16 codiva(rcaus->get(RCA_CODIVA));
|
||||||
set_ivas_row(-1,codiva,tc,desc);
|
set_ivas_row(-1,codiva,tc,desc);
|
||||||
|
1188
cg/cg2100c.uml
1188
cg/cg2100c.uml
File diff suppressed because it is too large
Load Diff
@ -268,19 +268,21 @@ TImporto TPrimanota_application::get_cgs_imp(int n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Certified 90%
|
// Certified 90%
|
||||||
void TPrimanota_application::add_cgs_imp(int n, const TImporto& imp)
|
TImporto TPrimanota_application::add_cgs_imp(int n, const TImporto& imp)
|
||||||
{
|
{
|
||||||
TImporto tot(get_cgs_imp(n));
|
TImporto tot(get_cgs_imp(n));
|
||||||
tot.set(imp.sezione(), tot.valore() + imp.valore());
|
tot.set(imp.sezione(), tot.valore() + imp.valore());
|
||||||
set_cgs_imp(n, tot);
|
set_cgs_imp(n, tot);
|
||||||
|
return tot;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Certified 90%
|
// Certified 90%
|
||||||
void TPrimanota_application::sub_cgs_imp(int n, const real& imp)
|
TImporto TPrimanota_application::sub_cgs_imp(int n, const real& imp)
|
||||||
{
|
{
|
||||||
TImporto tot(get_cgs_imp(n));
|
TImporto tot(get_cgs_imp(n));
|
||||||
tot.set(tot.sezione(), tot.valore() - imp);
|
tot.set(tot.sezione(), tot.valore() - imp);
|
||||||
set_cgs_imp(n, tot);
|
set_cgs_imp(n, tot);
|
||||||
|
return tot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -349,22 +351,33 @@ int TPrimanota_application::set_cgs_row(int n, const TImporto& imp,
|
|||||||
row.add("");
|
row.add("");
|
||||||
row.add(desc);
|
row.add(desc);
|
||||||
|
|
||||||
int pos = 0;
|
switch(tipo) // Calcolo contropartita
|
||||||
if (tipo == 'I' && (pos = type2pos('T')) >= 0)
|
{
|
||||||
|
case 'T':
|
||||||
|
{
|
||||||
|
TToken_string& irow = ivas().row(0);
|
||||||
|
for (int i = 5; i < 10; i++)
|
||||||
|
row.add(irow.get(i == 5 ? 5 : -1));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
const int pos = type2pos('T');
|
||||||
|
if (pos >= 0)
|
||||||
{
|
{
|
||||||
TBill contro(cg.row(pos), 2, 0x3);
|
TBill contro(cg.row(pos), 2, 0x3);
|
||||||
row.add(contro.string(0x3));
|
row.add(contro.string(0x3));
|
||||||
}
|
}
|
||||||
else
|
else row.add(" | | | | ");
|
||||||
{
|
}
|
||||||
row.add(" | | | | "); // Contropartita
|
break;
|
||||||
}
|
}
|
||||||
row << '|' << tipo;
|
row << '|' << tipo;
|
||||||
|
|
||||||
disable_cgs_cells(n, tipo);
|
disable_cgs_cells(n, tipo);
|
||||||
cg.force_update(n);
|
cg.force_update(n);
|
||||||
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -657,7 +670,7 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
{
|
{
|
||||||
oldimp = real(row.get(0)); // Imponibile 0
|
oldimp = real(row.get(0)); // Imponibile 0
|
||||||
oldiva = real(row.get(3)); // Imposta 3
|
oldiva = real(row.get(3)); // Imposta 3
|
||||||
if (app().causale().corrispettivi())
|
if (oldiva.is_zero() && app().causale().corrispettivi())
|
||||||
{
|
{
|
||||||
const TCodiceIVA i(row.get(1));
|
const TCodiceIVA i(row.get(1));
|
||||||
const real percent = i.percentuale();
|
const real percent = i.percentuale();
|
||||||
@ -695,22 +708,33 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Aggiorna conto sulla riga contabile
|
// Aggiorna conto sulla riga contabile
|
||||||
const real imp(row.get(0)); // Imponibile
|
real imp(row.get(0)); // Imponibile
|
||||||
const real imposta(row.get(3)); // Imposta
|
real imposta(row.get(3)); // Imposta
|
||||||
|
if (imposta.is_zero() && app().causale().corrispettivi())
|
||||||
|
{
|
||||||
|
const TCodiceIVA i(row.get(1));
|
||||||
|
const real percent = i.percentuale();
|
||||||
|
imposta = scorpora(imp, percent);
|
||||||
|
}
|
||||||
|
|
||||||
TBill conto(row, 5, 0x3);
|
TBill conto(row, 5, 0x3);
|
||||||
const int newpos = bill2pos(conto, 'I');
|
int newpos = bill2pos(conto, 'I');
|
||||||
|
|
||||||
if (newpos < 0)
|
if (newpos < 0)
|
||||||
{
|
{
|
||||||
const TImporto val(app().real2imp(imp, 'I'));
|
const TImporto val(app().real2imp(imp, 'I'));
|
||||||
if (val.valore() != ZERO)
|
if (val.valore() != ZERO)
|
||||||
app().set_cgs_row(-1, val, conto, "", 'I');
|
app().set_cgs_row(-1, val, conto, app().causale().descr(2), 'I');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TImporto val(app().real2imp(imp, 'I'));
|
TImporto val(app().real2imp(imp, 'I'));
|
||||||
app().add_cgs_imp(newpos, val);
|
val = app().add_cgs_imp(newpos, val);
|
||||||
|
if (val.valore().is_zero())
|
||||||
|
{
|
||||||
|
app().cgs().destroy(newpos);
|
||||||
|
newpos = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
oldimp = imp;
|
oldimp = imp;
|
||||||
oldpos = newpos;
|
oldpos = newpos;
|
||||||
@ -720,18 +744,23 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
const bool detrarre = detraibile(row); // Determina se IVA detraibile
|
const bool detrarre = detraibile(row); // Determina se IVA detraibile
|
||||||
app().causale().bill(detrarre ? 3 : 4, conto);
|
app().causale().bill(detrarre ? 3 : 4, conto);
|
||||||
const char tipod = detrarre ? 'D' : 'N';
|
const char tipod = detrarre ? 'D' : 'N';
|
||||||
const int newposiva = type2pos(tipod);
|
int newposiva = type2pos(tipod);
|
||||||
|
|
||||||
if (newposiva < 0)
|
if (newposiva < 0)
|
||||||
{
|
{
|
||||||
const TImporto val(app().real2imp(imposta, 'I'));
|
const TImporto val(app().real2imp(imposta, 'I'));
|
||||||
if (val.valore() != ZERO)
|
if (val.valore() != ZERO)
|
||||||
app().set_cgs_row(-1, val, conto, "", tipod);
|
newposiva = app().set_cgs_row(-1, val, conto, "", tipod);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const TImporto val(app().real2imp(imposta, 'I'));
|
TImporto val(app().real2imp(imposta, 'I'));
|
||||||
app().add_cgs_imp(newposiva, val);
|
val = app().add_cgs_imp(newposiva, val);
|
||||||
|
if (val.valore().is_zero())
|
||||||
|
{
|
||||||
|
app().cgs().destroy(newposiva);
|
||||||
|
newposiva = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
oldiva = imposta;
|
oldiva = imposta;
|
||||||
oldposiva = newposiva;
|
oldposiva = newposiva;
|
||||||
@ -1055,7 +1084,7 @@ bool TPrimanota_application::occas_handler(TMask_field& f, KEY key)
|
|||||||
void TPrimanota_application::add_cgs_tot(TMask& m)
|
void TPrimanota_application::add_cgs_tot(TMask& m)
|
||||||
{
|
{
|
||||||
// Lettura del conto dalla maschera
|
// Lettura del conto dalla maschera
|
||||||
char tipo = app().iva() == iva_acquisti ? 'F' : 'C';
|
char tipo = app().clifo();
|
||||||
int gruppo = m.get_int(F_GRUPPOCLIFO);
|
int gruppo = m.get_int(F_GRUPPOCLIFO);
|
||||||
int conto = m.get_int(F_CONTOCLIFO);
|
int conto = m.get_int(F_CONTOCLIFO);
|
||||||
long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE);
|
long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE);
|
||||||
@ -1077,7 +1106,8 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
|
|||||||
|
|
||||||
// Creazione/Aggiornamento riga totale
|
// Creazione/Aggiornamento riga totale
|
||||||
const int pos = type2pos('T');
|
const int pos = type2pos('T');
|
||||||
set_cgs_row(pos, real2imp(tot, 'T'), c, "Totale documento", 'T');
|
set_cgs_row(pos, real2imp(tot, 'T'), c, m.get(F_DESCR), 'T');
|
||||||
|
|
||||||
calcola_saldo();
|
calcola_saldo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1174,11 +1204,7 @@ void TPrimanota_application::add_cgs_rit(bool fiscali)
|
|||||||
{
|
{
|
||||||
const int riga = fiscali ? 8 : 9;
|
const int riga = fiscali ? 8 : 9;
|
||||||
TBill conto; _causale.bill(riga, conto);
|
TBill conto; _causale.bill(riga, conto);
|
||||||
|
set_cgs_row(-1, real2imp(imp, tipo), conto, conto.descrizione(), tipo);
|
||||||
TString80 desc("Ritenute ");
|
|
||||||
desc << (fiscali ? "fiscali" : "sociali");
|
|
||||||
|
|
||||||
set_cgs_row(-1, real2imp(imp, tipo), conto, desc, tipo);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
set_cgs_imp(pos, real2imp(imp, tipo));
|
set_cgs_imp(pos, real2imp(imp, tipo));
|
||||||
|
@ -40,6 +40,7 @@ class TPrimanota_application : public TRelation_application
|
|||||||
TLibro_giornale _giornale; // Libro giornale corrente
|
TLibro_giornale _giornale; // Libro giornale corrente
|
||||||
TipoIVA _iva; // Tipo di IVA corrente
|
TipoIVA _iva; // Tipo di IVA corrente
|
||||||
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
|
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
|
||||||
|
bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA)
|
||||||
|
|
||||||
TSaldo_agg _saldi; // Saldi da aggiornare
|
TSaldo_agg _saldi; // Saldi da aggiornare
|
||||||
|
|
||||||
@ -113,6 +114,7 @@ protected:
|
|||||||
TMask& TPrimanota_application::mask() const;
|
TMask& TPrimanota_application::mask() const;
|
||||||
bool gestione_valuta() const { return _ges_val; }
|
bool gestione_valuta() const { return _ges_val; }
|
||||||
bool gestione_saldaconto() const { return _ges_sal; }
|
bool gestione_saldaconto() const { return _ges_sal; }
|
||||||
|
bool riferimento_partita() const { return _rif_par; }
|
||||||
|
|
||||||
void fill_sheet(TMask& m) const;
|
void fill_sheet(TMask& m) const;
|
||||||
void read_firm_params();
|
void read_firm_params();
|
||||||
@ -143,8 +145,8 @@ protected:
|
|||||||
|
|
||||||
void set_cgs_imp(int n, const TImporto& importo);
|
void set_cgs_imp(int n, const TImporto& importo);
|
||||||
TImporto get_cgs_imp(int n);
|
TImporto get_cgs_imp(int n);
|
||||||
void add_cgs_imp(int n, const TImporto& importo);
|
TImporto add_cgs_imp(int n, const TImporto& importo);
|
||||||
void sub_cgs_imp(int n, const real& imp);
|
TImporto sub_cgs_imp(int n, const real& imp);
|
||||||
|
|
||||||
void cgs_pack();
|
void cgs_pack();
|
||||||
real calcola_saldo() const;
|
real calcola_saldo() const;
|
||||||
|
@ -101,11 +101,20 @@ bool TRegistro::corrispettivi() const
|
|||||||
TipoIVA TRegistro::iva() const
|
TipoIVA TRegistro::iva() const
|
||||||
{
|
{
|
||||||
TipoIVA i = (TipoIVA)tipo();
|
TipoIVA i = (TipoIVA)tipo();
|
||||||
if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti)
|
switch (i)
|
||||||
{
|
{
|
||||||
|
case nessuna_iva:
|
||||||
|
case iva_vendite:
|
||||||
|
case iva_acquisti:
|
||||||
|
break;
|
||||||
|
case libro_giornale:
|
||||||
|
i = nessuna_iva;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
error_box("Il registro '%s' non e' un registro IVA o contabile: tipo %d",
|
error_box("Il registro '%s' non e' un registro IVA o contabile: tipo %d",
|
||||||
(const char*)name(), i);
|
(const char*)name(), i);
|
||||||
i = nessuna_iva;
|
i = nessuna_iva;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@ -306,11 +315,18 @@ const TRectype& TCausale::row(int num) const
|
|||||||
TBill& TCausale::bill(int num, TBill& conto) const
|
TBill& TCausale::bill(int num, TBill& conto) const
|
||||||
{
|
{
|
||||||
const TRectype& rec = row(num);
|
const TRectype& rec = row(num);
|
||||||
conto.set(rec.get_int("GRUPPO"), rec.get_int("CONTO"),
|
conto.set(rec.get_int(RCA_GRUPPO), rec.get_int(RCA_CONTO),
|
||||||
rec.get_long("SOTTOCONTO"), rec.get_char("TIPOCF"));
|
rec.get_long(RCA_SOTTOCONTO), rec.get_char(RCA_TIPOCF));
|
||||||
return conto;
|
return conto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* TCausale::descr(int num) const
|
||||||
|
{
|
||||||
|
const TRectype& rec = row(num);
|
||||||
|
return rec.get(RCA_DESC);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TCausale::data_doc() const
|
bool TCausale::data_doc() const
|
||||||
{ return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; }
|
{ return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; }
|
||||||
|
|
||||||
@ -338,6 +354,9 @@ const char* TCausale::causale_inc_imm() const
|
|||||||
const char* TCausale::tipo_doc() const
|
const char* TCausale::tipo_doc() const
|
||||||
{ return _rec.ok() ? _rec.get("TIPODOC") : ""; }
|
{ return _rec.ok() ? _rec.get("TIPODOC") : ""; }
|
||||||
|
|
||||||
|
bool TCausale::saldaconto() const
|
||||||
|
{ return _rec.ok() ? (_rec.get_int("TIPOMOV") > 0) : FALSE; }
|
||||||
|
|
||||||
bool TCausale::ok() const
|
bool TCausale::ok() const
|
||||||
{
|
{
|
||||||
if (iva() == iva_errata)
|
if (iva() == iva_errata)
|
||||||
|
@ -80,6 +80,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TBill& bill(int num, TBill& c) const;
|
TBill& bill(int num, TBill& c) const;
|
||||||
|
const char* descr(int num) const;
|
||||||
|
|
||||||
bool data_doc() const;
|
bool data_doc() const;
|
||||||
bool num_doc() const;
|
bool num_doc() const;
|
||||||
@ -94,6 +95,7 @@ public:
|
|||||||
TRegistro& reg() const { return (TRegistro&)_reg; }
|
TRegistro& reg() const { return (TRegistro&)_reg; }
|
||||||
TipoIVA iva() const;
|
TipoIVA iva() const;
|
||||||
bool corrispettivi() const;
|
bool corrispettivi() const;
|
||||||
|
bool saldaconto() const;
|
||||||
|
|
||||||
virtual bool ok() const;
|
virtual bool ok() const;
|
||||||
bool similar(const TCausale& c) const;
|
bool similar(const TCausale& c) const;
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
#define CHK_STTFFR 105
|
#define CHK_STTFFR 105
|
||||||
#define CHK_STLGIU 106
|
#define CHK_STLGIU 106
|
||||||
#define CHK_GESSAL 107
|
#define CHK_GESSAL 107
|
||||||
#define CHK_NRCFDX 108
|
#define CHK_NRCLIDX 108
|
||||||
#define FLD_CMSGPC 109
|
#define CHK_NRFORDX 109
|
||||||
#define LST_RIFPAR 110
|
#define LST_RIFPAR 110
|
||||||
#define CHK_GESVAL 111
|
#define CHK_GESVAL 111
|
||||||
#define FLD_CODLIN 112
|
#define FLD_CODLIN 112
|
||||||
|
@ -13,6 +13,7 @@ BUTTON DLG_QUIT 10 2
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -22 -1 ""
|
PROMPT -22 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
/* page1 */
|
/* page1 */
|
||||||
@ -87,13 +88,13 @@ BEGIN
|
|||||||
FIELD GesSal
|
FIELD GesSal
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN CHK_NRCFDX
|
BOOLEAN CHK_NRCLIDX
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 12 "N. Rif. allineato a destra per clienti"
|
PROMPT 4 12 "N. Rif. allineato a destra per clienti"
|
||||||
FIELD NrCliDx
|
FIELD NrCliDx
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN FLD_CMSGPC 1
|
BOOLEAN CHK_NRFORDX
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 4 13 "N. Rif. allineato a destra per fornitori"
|
PROMPT 4 13 "N. Rif. allineato a destra per fornitori"
|
||||||
FIELD NrForDx
|
FIELD NrForDx
|
||||||
|
Loading…
x
Reference in New Issue
Block a user