Corretti errori causali e prima nota

git-svn-id: svn://10.65.10.50/trunk@517 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-11-03 12:33:37 +00:00
parent cd56f9aecc
commit 7dc1fc51e9
15 changed files with 161 additions and 143 deletions

View File

@ -577,14 +577,11 @@ bool TCaus_app::conto_hndl (TMask_field& f, KEY k)
// 2. g-c-s devono esistere
bool TCaus_app::sottoconto_hndl (TMask_field& f, KEY k)
{
if (f.to_check(k))
{
const int g = f.mask().get_int(SS_GRUPPO);
const int c = f.mask().get_int(SS_CONTO);
const int s = atoi(f.get());
if (s != 0 && (g == 0 || c == 0))
return f.error_box("Conto incompleto");
if (k == K_ENTER && f.get().not_empty())
{
const TMask& m = f.mask();
const bool ok = m.get(SS_GRUPPO).not_empty() && m.get(SS_CONTO).not_empty();
if (!ok) return f.error_box("Conto incompleto");
}
return TRUE;
}

View File

@ -162,17 +162,9 @@ BEGIN
ITEM "Gr."
ITEM "Co."
ITEM "Sottoc.@6"
<<<<<<< cg0500a.uml
ITEM "Descrizione Conto@50"
ITEM "Desc. agg.@5"
ITEM "Descrizione Aggiuntiva@50"
=======
ITEM "D/A"
ITEM "Descrizione conto@50"
ITEM "Descr. agg.@5"
ITEM "Iva"
ITEM "Cod.Iva@4"
>>>>>>> 1.27
END
ENDPAGE
@ -256,8 +248,6 @@ BOOLEAN F_OP_INTRACOM
BEGIN
PROMPT 2 10 "Operazione intracomunitaria"
FIELD LF_CAUSALI->INTRACOM
// MESSAGE TRUE "X", F_MOV_VALU | DISABLE, F_MOV_VALU
// MESSAGE FALSE "", F_MOV_VALU | ENABLE, F_MOV_VALU
GROUP 2
END
@ -265,6 +255,8 @@ BOOLEAN F_VALINTRA
BEGIN
PROMPT 34 10 "Gestione valuta per operazioni intrac."
FIELD LF_CAUSALI->VALINTRA
MESSAGE FALSE " ",F_MOV_VALU|ENABLE,F_MOV_VALU
MESSAGE TRUE "X",F_MOV_VALU|DISABLE,F_MOV_VALU
GROUP 2
END

View File

@ -210,7 +210,7 @@ BEGIN
GROUP 1
END
STRING 109 5
STRING 109 50
BEGIN
PROMPT 1 8 ""
FLAGS "D"

View File

@ -468,10 +468,9 @@ bool data_limite (TMask_field& f, KEY key)
TDate in="", fin="";
// CG1600_application * a = (CG1600_application*) MainApp();
tipobil = atoi(m.get(F_TIPOBIL));
tipostampa = atoi(m.get(F_TIPOSTAMPA));
long annoese = m.get_long(F_ANNOESE);
tipobil = m.get_int(F_TIPOBIL);
tipostampa = m.get_int(F_TIPOSTAMPA);
int annoese = m.get_int(F_ANNOESE);
if ((tipobil == 1) && (tipostampa == 1))
{

View File

@ -53,9 +53,6 @@ TMask* TPrimanota_application::load_mask(int n)
_savenew = !c.get_bool("Cg21SN");
}
break;
case 1:
m->set_handler(F_VISVAL, visval_handler);
break;
case 2:
{
m->set_handler(F_CODREG, reg_handler);
@ -66,7 +63,6 @@ TMask* TPrimanota_application::load_mask(int n)
m->set_handler(F_RITFIS, ritfis_handler);
m->set_handler(F_RITSOC, ritsoc_handler);
m->set_handler(F_CODIVA, main_codiva_handler);
m->set_handler(F_VISVAL, visval_handler);
m->set_handler(F_OCCASEDIT, occas_handler);
m->set_handler(F_SOLAIVA, solaiva_handler);
m->set_handler(F_SHEETIVA, iva_handler);
@ -82,21 +78,14 @@ TMask* TPrimanota_application::load_mask(int n)
ism.set_handler(209, sheet_clifo_handler);
ism.set_handler(309, sheet_clifo_handler);
}
break;
case 3:
m->set_handler(O_CODICE, occas_code_handler);
break;
default:
CHECKD(0, "Che cavolo di maschera e' la ", n);
break;
}
if (n == 1 || n == 2)
{
case 1:
{
m->set_handler(F_DATAREG, datareg_handler);
m->set_handler(F_DATACOMP, datacomp_handler);
m->set_handler(F_DESCR, descr_handler);
m->set_handler(F_CODCAUS, caus_modify_handler);
m->set_handler(F_SHEETCG, cg_handler);
m->set_handler(F_VISVAL, visval_handler);
TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);
cg.set_notify(cg_notify);
@ -111,6 +100,14 @@ if (n == 1 || n == 2)
cgm.set_handler(113, suspended_handler);
cgm.set_handler(213, sheet_clifo_handler);
cgm.set_handler(313, sheet_clifo_handler);
}
break;
case 3:
m->set_handler(O_CODICE, occas_code_handler);
break;
default:
CHECKD(0, "Che cavolo di maschera e' la ", n);
break;
}
return _msk[n] = m;
@ -204,7 +201,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
m->show(F_NUMRIF, sal);
if (sal)
{
TString80 val;
TString16 val;
if (riferimento_partita())
val = m->get(F_NUMDOC);
else
@ -292,6 +289,7 @@ void TPrimanota_application::init_mask(TMask& m)
fill_sheet(m);
const bool intra = _causale.intra();
const bool valintra = _causale.valintra();
if (_iva != nessuna_iva)
{
@ -311,14 +309,14 @@ void TPrimanota_application::init_mask(TMask& m)
m.show(F_CORRLIRE, intra);
const bool corrval = intra && _causale.corrval();
const bool corrval = intra && _causale.valintra();
m.show(F_CORRVALUTA, corrval);
m.show(F_CODIVA, m.mode() == MODE_INS);
}
// Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_VISVAL (GROUP 3)
const bool valuta = _causale.valuta() && (intra || gestione_valuta());
const bool valuta = _causale.valuta() || _causale.valintra();
m.send_key(K_SHIFT+K_CTRL+(valuta ? 's' : 'h'), -3);
if (valuta)
m.set(F_VISVAL, "X");
@ -328,15 +326,13 @@ void TPrimanota_application::init_query_mode(TMask& m)
{
read_firm_params();
enable_menu_item(M_FILE_PRINT);
// m.enable(DLG_NEWREC);
}
void TPrimanota_application::fill_sheet(TMask& m) const
{
TSheet_field& cgs = (TSheet_field&)m.field(F_SHEETCG);
for (int r = cgs.items(); r < 16; r++)
cgs.row(r);
for (int r = cgs.items(); r < 16; r++) cgs.row(r);
if (_iva != nessuna_iva)
{
@ -364,9 +360,7 @@ const char* TPrimanota_application::get_next_key()
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
const long n = m.get_long(F_NUMDOC);
if (n > 0)
{
k.add(F_NUMDOC); k.add(n+1); // incrementa numero documento
}
{ k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento
}
return strcpy(__tmp_string, k);
@ -413,10 +407,8 @@ void TPrimanota_application::init_insert_mode(TMask& m)
TBill tc; _causale.bill(nriga, tc);
if (tc.conto() < 1) continue; // Considera solo conti validi
char sezione = rcaus->get_char(RCA_SEZIONE);
if (sezione != 'A') sezione = 'D';
const TImporto zero(sezione, ZERO);
const char sezione = rcaus->get_char(RCA_SEZIONE);
const TImporto zero('D', ZERO);
const TString80 desc(_causale.desc_agg(i));
if (nriga == 1) m.set(F_DESCR, desc);
@ -424,26 +416,18 @@ void TPrimanota_application::init_insert_mode(TMask& m)
if (iva() == nessuna_iva)
{
const int pos = set_cgs_row(-1,zero,tc,desc,' ');
cgs().disable_cell(pos, sezione == 'D' ? 1 : 0);
if (sezione > ' ')
cgs().disable_cell(pos, sezione == 'D' ? 1 : 0);
}
else
{
if (nriga >= 2 && nriga <= 9)
continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali
const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA);
if (rigaiva)
{
const TString16 codiva(rcaus->get(RCA_CODIVA));
set_ivas_row(-1,codiva,tc,desc);
}
else
{
const char tipo = nriga == 1 ? 'T' : ' ';
if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() != 0)
m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto());
set_cgs_row(-1,zero,tc,desc,tipo);
}
const char tipo = nriga == 1 ? 'T' : ' ';
if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() != 0)
m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto());
set_cgs_row(-1,zero,tc,desc,tipo);
}
}
}
@ -455,6 +439,7 @@ void TPrimanota_application::init_modify_mode(TMask& m)
}
// Legge un conto da una riga contabile o iva di prima nota
bool TPrimanota_application::get_conto(const TRectype& r, TBill& c) const
{
c.set(r.get_int("GRUPPO"), r.get_int("CONTO"),
@ -464,6 +449,7 @@ bool TPrimanota_application::get_conto(const TRectype& r, TBill& c) const
return c.ok();
}
// Scrive un conto su una riga di proma nota
void TPrimanota_application::put_conto(TRectype& r, const TBill& c) const
{
r.put("TIPOC", c.tipo());
@ -604,7 +590,7 @@ int TPrimanota_application::read(TMask& m)
}
// Trasferisce i dati da maschera a movimento di prima nota
void TPrimanota_application::mask2rel(const TMask& m)
{
_rel->lfile().zero();
@ -622,7 +608,6 @@ void TPrimanota_application::mask2rel(const TMask& m)
cgs_pack(); // Destroy all null rows
TArray& rows = cgs().rows_array();
int cur = 1;
// Controlla se e' un movimento con righe contabili
if (iva() == nessuna_iva || !m.get_bool(F_SOLAIVA))
@ -635,7 +620,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
const TConto conto(row, 2, 0x3);
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
TRectype &r = _rel->cg(cur-1);
TRectype &r = _rel->cg(i);
r.zero();
r.put("IMPORTO", n.valore()); // Importo
@ -644,7 +629,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
r.put("NUMREG", numreg);
r.put("ANNOES", annoes);
r.put("DATAREG", datareg);
r.put("NUMRIG", cur);
r.put("NUMRIG", i+1);
put_conto(r, conto); // Conto
@ -663,14 +648,13 @@ void TPrimanota_application::mask2rel(const TMask& m)
rcontr = bill2contr(contro, n.sezione())+1;
if (rcontr < 1)
{
warning_box("La riga contabile %d non ha una contropartita valida", cur);
rcontr = 0;
rcontr = i == 0 ? 2 : 1;
if (!yesno_box("La riga contabile %d non ha una contropartita valida:\n"
"si desidera trasformarla nel conto della riga %d", i+1, rcontr))
rcontr = 0;
}
}
r.put("RCONTR", rcontr); // Contropartita
cur++;
}
}
if (_iva == nessuna_iva) return;
@ -711,18 +695,17 @@ void TPrimanota_application::mask2rel(const TMask& m)
}
TArray& irows = ivas().rows_array();
cur = 1;
for (int i = 0; i < irows.items(); i++)
{
TToken_string& row = (TToken_string&)irows[i];
if (row.empty_items())
continue;
TRectype &r = _rel->iva(cur-1);
TRectype &r = _rel->iva(i);
r.zero();
r.put("ANNOES", annoes);
r.put("NUMREG", numreg);
r.put("NUMRIG", cur);
r.put("NUMRIG", i+1);
real imponibile(row.get(0));
if (to_swap) imponibile = -imponibile;
@ -746,8 +729,6 @@ void TPrimanota_application::mask2rel(const TMask& m)
const int rimp = bill2pos(c, 'I')+1;
r.put("RIGAIMP", rimp);
put_conto(r, c);
cur++;
}
}
@ -836,8 +817,6 @@ void TPrimanota_application::genera_incasso(const char* causimm)
if (caus.data_doc()) m.efield(F_DATADOC).check_type(CHECK_REQUIRED);
if (caus.num_doc()) m.efield(F_NUMDOC).check_type(CHECK_REQUIRED);
TBill conto; caus.bill(1, conto); // Conto della seconda riga della causale
m.set(F_DATAREG, curr_mask().get(F_DATAREG));
m.set(F_DATACOMP, curr_mask().get(F_DATACOMP));
@ -850,14 +829,14 @@ void TPrimanota_application::genera_incasso(const char* causimm)
m.set(I_SEZIONE1, caus.sezione_clifo() == 'D' ? "D" : "A");
m.set(F_TOTALE, curr_mask().get(F_TOTALE));
m.set(F_CLIFO, clifo() == 'C' ? "C" : "F");
m.set(F_GRUPPOCLIFO, conto.gruppo());
m.set(F_CONTOCLIFO, conto.conto());
const short clifo_id = clifo() == 'C' ? F_CLIENTE : F_FORNITORE;
m.set(clifo_id, curr_mask().get(clifo_id));
m.set(F_CLIFO, _rel->cg(0).get("TIPOC"));
m.set(F_GRUPPOCLIFO, _rel->cg(0).get("GRUPPO"));
m.set(F_CONTOCLIFO, _rel->cg(0).get("CONTO"));
const TString& clifo = _rel->cg(0).get("SOTTOCONTO");
m.set(F_CLIENTE, clifo); m.set(F_FORNITORE, clifo); m.set(I_SOTTOCONTO, clifo);
caus.bill(2, conto);
TBill conto; caus.bill(2, conto); // Conto della seconda riga della causale
m.set(I_SEZIONE2, caus.sezione_clifo() == 'D' ? "A" : "D");
m.set(I_IMPORTO2, curr_mask().get(F_TOTALE));
m.set(I_GRUPPO2, conto.gruppo());
@ -884,7 +863,19 @@ void TPrimanota_application::genera_incasso(const char* causimm)
r.put("TIPOC", m.get(F_CLIFO));
r.put("GRUPPO", m.get(F_GRUPPOCLIFO));
r.put("CONTO", m.get(F_CONTOCLIFO));
short clifo_id;
switch (m.get(F_CLIFO)[0])
{
case 'C':
clifo_id = F_CLIENTE; break;
case 'F':
clifo_id = F_FORNITORE; break;
default :
clifo_id = I_SOTTOCONTO; break;
}
r.put("SOTTOCONTO", m.get(clifo_id));
r.put("DESCR", m.get(F_DESCR));
r.put("RCONTR", 2);
r.put("ROWTYPE", " ");

View File

@ -81,23 +81,24 @@
// Maschera incasso/pagamento immediato
#define I_SEZIONE1 201
#define I_IMPORTO1 202
#define I_SOTTOCONTO 203
#define I_SEZIONE2 203
#define I_IMPORTO2 204
#define I_GRUPPO2 205
#define I_CONTO2 206
#define I_SOTTOCONTO2 207
#define I_SEZIONE2 210
#define I_IMPORTO2 211
#define I_GRUPPO2 212
#define I_CONTO2 213
#define I_SOTTOCONTO2 214
#define I_SEZIONE3 208
#define I_IMPORTO3 209
#define I_GRUPPO3 210
#define I_CONTO3 211
#define I_SOTTOCONTO3 212
#define I_SEZIONE3 220
#define I_IMPORTO3 221
#define I_GRUPPO3 222
#define I_CONTO3 223
#define I_SOTTOCONTO3 224
#define I_SEZIONE4 213
#define I_IMPORTO4 214
#define I_GRUPPO4 215
#define I_CONTO4 216
#define I_SOTTOCONTO4 217
#define I_SEZIONE4 230
#define I_IMPORTO4 231
#define I_GRUPPO4 232
#define I_CONTO4 233
#define I_SOTTOCONTO4 234
#endif

View File

@ -104,7 +104,7 @@ END
LIST F_PROVVISORIO 1 25
BEGIN
PROMPT 1 7 "Movimento provvisorio "
PROMPT 1 7 "Movimento provvisorio "
FIELD PROVVIS
ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)"

View File

@ -364,7 +364,7 @@ BOOLEAN F_OCCASIONALE
BEGIN
MESSAGE FALSE HIDE,F_OCCASEDIT|ENABLE,F_PIVACLIENTE|ENABLE,F_PIVAFORNITORE|SHOW,F_STATOPAIV
MESSAGE TRUE SHOW,F_OCCASEDIT|DISABLE,F_PIVACLIENTE|DISABLE,F_PIVAFORNITORE|HIDE,F_STATOPAIV
FLAGS "GH"
FLAGS "GHP"
END
STRING F_CODPAG 4

View File

@ -99,11 +99,11 @@ END
LIST F_CLIFO 1 12
BEGIN
PROMPT 37 7 ""
ITEM "C|Cliente" MESSAGE HIDE,F_FORNITORE|SHOW,F_CLIENTE
ITEM "F|Fornitore" MESSAGE HIDE,F_CLIENTE|SHOW,F_FORNITORE
PROMPT 37 7 ""
ITEM " |Conto" MESSAGE SHOW,I_SOTTOCONTO|HIDE,F_FORNITORE|HIDE,F_CLIENTE
ITEM "C|Cliente" MESSAGE HIDE,I_SOTTOCONTO|HIDE,F_FORNITORE|SHOW,F_CLIENTE
ITEM "F|Fornitore" MESSAGE HIDE,I_SOTTOCONTO|HIDE,F_CLIENTE|SHOW,F_FORNITORE
FIELD LF_MOV->TIPO
FLAGS "GD"
END
NUMBER F_GRUPPOCLIFO 3
@ -116,7 +116,7 @@ END
NUMBER F_CONTOCLIFO 3
BEGIN
PROMPT 57 7 ""
USE LF_PCON SELECT TMCF==#F_CLIFO
USE LF_PCON SELECT SOTTOCONTO==""
INPUT GRUPPO F_GRUPPOCLIFO
INPUT CONTO F_CONTOCLIFO
DISPLAY "Gruppo" GRUPPO
@ -139,6 +139,7 @@ BEGIN
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
OUTPUT F_CLIENTE CODCF
CHECKTYPE REQUIRED
WARNING "Cliente assente"
END
NUMBER F_FORNITORE 6
@ -152,8 +153,26 @@ BEGIN
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
OUTPUT F_FORNITORE CODCF
CHECKTYPE REQUIRED
WARNING "Fornitore assente"
END
NUMBER I_SOTTOCONTO 6
BEGIN
PROMPT 65 7 ""
USE LF_PCON SELECT SOTTOCONTO != ""
INPUT SOTTOCONTO I_SOTTOCONTO
INPUT GRUPPO F_GRUPPOCLIFO
INPUT CONTO F_CONTOCLIFO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT I_SOTTOCONTO SOTTOCONTO
OUTPUT F_GRUPPOCLIFO GRUPPO
OUTPUT F_CONTOCLIFO CONTO
CHECKTYPE REQUIRED
WARNING "Sottoconto assente"
END
LIST I_SEZIONE2 1 8
BEGIN
@ -189,7 +208,7 @@ END
NUMBER I_SOTTOCONTO2 6
BEGIN
PROMPT 65 8 ""
USE LF_PCON SELECT SOTTOCONTO!=""
COPY USE I_SOTTOCONTO
INPUT GRUPPO I_GRUPPO2
INPUT CONTO I_CONTO2
INPUT SOTTOCONTO I_SOTTOCONTO2
@ -201,6 +220,7 @@ BEGIN
OUTPUT I_CONTO2 CONTO
OUTPUT I_SOTTOCONTO2 SOTTOCONTO
CHECKTYPE REQUIRED
WARNING "Sottoconto assente"
END
LIST I_SEZIONE3 1 8
@ -237,7 +257,7 @@ END
NUMBER I_SOTTOCONTO3 6
BEGIN
PROMPT 65 9 ""
COPY USE I_SOTTOCONTO2
COPY USE I_SOTTOCONTO
INPUT GRUPPO I_GRUPPO3
INPUT CONTO I_CONTO3
INPUT SOTTOCONTO I_SOTTOCONTO3
@ -247,6 +267,7 @@ BEGIN
OUTPUT I_SOTTOCONTO3 SOTTOCONTO
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 I_IMPORTO3
WARNING "Sottoconto assente"
END
LIST I_SEZIONE4 1 8
@ -283,7 +304,7 @@ END
NUMBER I_SOTTOCONTO4 6
BEGIN
PROMPT 65 10 ""
COPY USE I_SOTTOCONTO2
COPY USE I_SOTTOCONTO
INPUT GRUPPO I_GRUPPO4
INPUT CONTO I_CONTO4
INPUT SOTTOCONTO I_SOTTOCONTO4
@ -293,6 +314,7 @@ BEGIN
OUTPUT I_SOTTOCONTO4 SOTTOCONTO
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 I_IMPORTO4
WARNING "Sottoconto assente"
END

View File

@ -582,7 +582,7 @@ TSheet_field& TPrimanota_application::ivas() const
TBill& TPrimanota_application::ivas_bill(TBill& c)
{
int spric = c.tipo_cr();
const int spric = c.tipo_cr();
if (spric == 2 || spric == 3)
{
const TFixed_string td(causale().tipo_doc());
@ -591,18 +591,6 @@ TBill& TPrimanota_application::ivas_bill(TBill& c)
return c;
}
void TPrimanota_application::set_ivas_row(int nriga, const char* codiva, TBill& tc,
const char* desc)
{
TToken_string& riga = ivas().row(nriga);
riga = " "; // Importo
riga.add (codiva); // codiva
riga.add (" | "); // Det - Imposta
riga.add(ivas_bill(tc).string(0x7)); // Conto
riga.add(desc); // Descrizione
}
bool TPrimanota_application::imponibile_handler(TMask_field& f, KEY key)
{
if (key == K_TAB && f.dirty())
@ -1270,13 +1258,32 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
tipo = ' ';
}
TBill c(gruppo, conto, codice, tipo);
TBill nuovo(gruppo, conto, codice, tipo);
real tot(m.get(F_TOTALE));
// Creazione/Aggiornamento riga totale
const int pos = type2pos('T');
set_cgs_row(pos, real2imp(tot, 'T'), c, m.get(F_DESCR), 'T');
if (pos >= 0)
{
TSheet_field& ss = cgs();
TToken_string& row = ss.row(pos);
const TBill vecchio(row, 2, 0x1);
if (vecchio.ok() && nuovo != vecchio) // Se cambio cliente/fornitore
{
for (int i = 0; i < ss.items(); i++) if (i != pos)
{
TToken_string& r = ss.row(i);
const TBill tacchia(r, 9, 0x1);
if (tacchia == vecchio)
{
nuovo.add_to(r, 9, 0x3); // Aggiorna contropartite
ss.force_update(i);
}
}
}
}
// Creazione/Aggiornamento riga totale
set_cgs_row(pos, real2imp(tot, 'T'), nuovo, m.get(F_DESCR), 'T');
calcola_saldo();
}
@ -1292,7 +1299,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
app().add_cgs_tot(m);
TLocalisamfile clifo(LF_CLIFO);
TLocalisamfile& clifo = ((TEdit_field&)f).browse()->cursor()->file();
const int alleg = clifo.get_int(CLI_ALLEG);
TEdit_field& upi = m.efield(F_RIEPILOGO);
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);

View File

@ -158,7 +158,6 @@ protected:
real calcola_saldo() const;
real calcola_imp() const;
void set_ivas_row(int n, const char* codiva, TBill& tc, const char* desc);
int set_cgs_row(int n, const TImporto& importo, TBill& conto, const char* desc, char tipo);
void reset_cgs_row(int n);
void disable_cgs_cells(int n, char tipo);

View File

@ -395,7 +395,7 @@ bool TCausale::valuta() const
bool TCausale::intra() const
{ return _rec.ok() ? _rec.get_bool("INTRACOM") : FALSE; }
bool TCausale::corrval() const
bool TCausale::valintra() const
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
const char* TCausale::causale_inc_imm() const

View File

@ -93,7 +93,7 @@ public:
bool sezionale() const;
bool valuta() const;
bool intra() const;
bool corrval() const;
bool valintra() const;
const char* causale_inc_imm() const;
const char* tipo_doc() const;

View File

@ -17,7 +17,7 @@ BEGIN
DISPLAY "Tipo" S1
OUTPUT 102 CODTAB
OUTPUT 211 S0
CHECKTYPE NORMAL
WARNING "Codice IVA assente"
VALIDATE REQIF_FUNC 1 101
END
@ -27,13 +27,23 @@ BEGIN
FLAGS "D"
END
LIST 103 1 59
NUMBER 103 1
BEGIN
PROMPT 2 3 "Detraibilita' "
ITEM " |0. Regime normale"
ITEM "1|1. IVA indetraibile su acquisti riferiti a ricavi esenti"
ITEM "3|3. IVA indicata per il solo calcolo di ventilazione"
ITEM "9|9. IVA non detraibile per l'articolo 19"
SHEET "Codice|Tipo detraibilita'@75"
INPUT 103
ITEM " |Regime normale"
ITEM "1|IVA indetraibile su acquisti riferiti a ricavi esenti"
ITEM "3|IVA indicata per passaggi interni al solo fine del calcolo di ventilazione"
ITEM "9|IVA non detraibile per l'articolo 19"
OUTPUT 103
OUTPUT 130
END
STRING 130 75 52
BEGIN
PROMPT 22 3 ""
FLAGS "D"
END
NUMBER 101 15
@ -92,7 +102,7 @@ BEGIN
ADD RUN cg0 -0
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
CHECKTYPE NORMAL
WARNING "Conto inesistente nella riga IVA"
WARNING "Conto assente"
END
@ -115,7 +125,7 @@ BEGIN
ADD RUN cg0 -0
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 101
WARNING "Sottoconto inesistente nella riga IVA"
WARNING "Sottoconto assente"
END
@ -135,7 +145,7 @@ BEGIN
ADD RUN cg0 -1
MESSAGE COPY,109
VALIDATE REQIF_FUNC 1 101
WARNING "Cliente inesistente nella riga IVA"
WARNING "Cliente assente"
END
NUMBER 309 6
@ -154,7 +164,7 @@ BEGIN
ADD RUN cg0 -1
MESSAGE COPY,109
VALIDATE REQIF_FUNC 1 101
WARNING "Fornitore inesistente nella riga IVA"
WARNING "Fornitore assente"
END
STRING 110 50

View File

@ -105,7 +105,7 @@ int TBill::compare(const TSortable& s) const
}
// Certified 90% (uses __tmp_string && isam)
// Certified 95%
const char* TBill::describe()
{
int err = NOERR;