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:
parent
cd56f9aecc
commit
7dc1fc51e9
@ -577,14 +577,11 @@ bool TCaus_app::conto_hndl (TMask_field& f, KEY k)
|
|||||||
// 2. g-c-s devono esistere
|
// 2. g-c-s devono esistere
|
||||||
bool TCaus_app::sottoconto_hndl (TMask_field& f, KEY k)
|
bool TCaus_app::sottoconto_hndl (TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (f.to_check(k))
|
if (k == K_ENTER && f.get().not_empty())
|
||||||
{
|
{
|
||||||
const int g = f.mask().get_int(SS_GRUPPO);
|
const TMask& m = f.mask();
|
||||||
const int c = f.mask().get_int(SS_CONTO);
|
const bool ok = m.get(SS_GRUPPO).not_empty() && m.get(SS_CONTO).not_empty();
|
||||||
const int s = atoi(f.get());
|
if (!ok) return f.error_box("Conto incompleto");
|
||||||
|
|
||||||
if (s != 0 && (g == 0 || c == 0))
|
|
||||||
return f.error_box("Conto incompleto");
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -162,17 +162,9 @@ BEGIN
|
|||||||
ITEM "Gr."
|
ITEM "Gr."
|
||||||
ITEM "Co."
|
ITEM "Co."
|
||||||
ITEM "Sottoc.@6"
|
ITEM "Sottoc.@6"
|
||||||
<<<<<<< cg0500a.uml
|
|
||||||
ITEM "Descrizione Conto@50"
|
ITEM "Descrizione Conto@50"
|
||||||
ITEM "Desc. agg.@5"
|
ITEM "Desc. agg.@5"
|
||||||
ITEM "Descrizione Aggiuntiva@50"
|
ITEM "Descrizione Aggiuntiva@50"
|
||||||
=======
|
|
||||||
ITEM "D/A"
|
|
||||||
ITEM "Descrizione conto@50"
|
|
||||||
ITEM "Descr. agg.@5"
|
|
||||||
ITEM "Iva"
|
|
||||||
ITEM "Cod.Iva@4"
|
|
||||||
>>>>>>> 1.27
|
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -256,8 +248,6 @@ BOOLEAN F_OP_INTRACOM
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Operazione intracomunitaria"
|
PROMPT 2 10 "Operazione intracomunitaria"
|
||||||
FIELD LF_CAUSALI->INTRACOM
|
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
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -265,6 +255,8 @@ BOOLEAN F_VALINTRA
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 34 10 "Gestione valuta per operazioni intrac."
|
PROMPT 34 10 "Gestione valuta per operazioni intrac."
|
||||||
FIELD LF_CAUSALI->VALINTRA
|
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
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ BEGIN
|
|||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 109 5
|
STRING 109 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 ""
|
PROMPT 1 8 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
|
@ -468,10 +468,9 @@ bool data_limite (TMask_field& f, KEY key)
|
|||||||
TDate in="", fin="";
|
TDate in="", fin="";
|
||||||
// CG1600_application * a = (CG1600_application*) MainApp();
|
// CG1600_application * a = (CG1600_application*) MainApp();
|
||||||
|
|
||||||
tipobil = atoi(m.get(F_TIPOBIL));
|
tipobil = m.get_int(F_TIPOBIL);
|
||||||
tipostampa = atoi(m.get(F_TIPOSTAMPA));
|
tipostampa = m.get_int(F_TIPOSTAMPA);
|
||||||
|
int annoese = m.get_int(F_ANNOESE);
|
||||||
long annoese = m.get_long(F_ANNOESE);
|
|
||||||
|
|
||||||
if ((tipobil == 1) && (tipostampa == 1))
|
if ((tipobil == 1) && (tipostampa == 1))
|
||||||
{
|
{
|
||||||
|
103
cg/cg2100.cpp
103
cg/cg2100.cpp
@ -53,9 +53,6 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
_savenew = !c.get_bool("Cg21SN");
|
_savenew = !c.get_bool("Cg21SN");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
|
||||||
m->set_handler(F_VISVAL, visval_handler);
|
|
||||||
break;
|
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
m->set_handler(F_CODREG, reg_handler);
|
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_RITFIS, ritfis_handler);
|
||||||
m->set_handler(F_RITSOC, ritsoc_handler);
|
m->set_handler(F_RITSOC, ritsoc_handler);
|
||||||
m->set_handler(F_CODIVA, main_codiva_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_OCCASEDIT, occas_handler);
|
||||||
m->set_handler(F_SOLAIVA, solaiva_handler);
|
m->set_handler(F_SOLAIVA, solaiva_handler);
|
||||||
m->set_handler(F_SHEETIVA, iva_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(209, sheet_clifo_handler);
|
||||||
ism.set_handler(309, sheet_clifo_handler);
|
ism.set_handler(309, sheet_clifo_handler);
|
||||||
}
|
}
|
||||||
break;
|
case 1:
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
m->set_handler(F_DATAREG, datareg_handler);
|
m->set_handler(F_DATAREG, datareg_handler);
|
||||||
m->set_handler(F_DATACOMP, datacomp_handler);
|
m->set_handler(F_DATACOMP, datacomp_handler);
|
||||||
m->set_handler(F_DESCR, descr_handler);
|
m->set_handler(F_DESCR, descr_handler);
|
||||||
m->set_handler(F_CODCAUS, caus_modify_handler);
|
m->set_handler(F_CODCAUS, caus_modify_handler);
|
||||||
m->set_handler(F_SHEETCG, cg_handler);
|
m->set_handler(F_SHEETCG, cg_handler);
|
||||||
|
m->set_handler(F_VISVAL, visval_handler);
|
||||||
|
|
||||||
TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);
|
TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);
|
||||||
cg.set_notify(cg_notify);
|
cg.set_notify(cg_notify);
|
||||||
@ -112,6 +101,14 @@ if (n == 1 || n == 2)
|
|||||||
cgm.set_handler(213, sheet_clifo_handler);
|
cgm.set_handler(213, sheet_clifo_handler);
|
||||||
cgm.set_handler(313, 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;
|
return _msk[n] = m;
|
||||||
}
|
}
|
||||||
@ -204,7 +201,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
|
|||||||
m->show(F_NUMRIF, sal);
|
m->show(F_NUMRIF, sal);
|
||||||
if (sal)
|
if (sal)
|
||||||
{
|
{
|
||||||
TString80 val;
|
TString16 val;
|
||||||
if (riferimento_partita())
|
if (riferimento_partita())
|
||||||
val = m->get(F_NUMDOC);
|
val = m->get(F_NUMDOC);
|
||||||
else
|
else
|
||||||
@ -292,6 +289,7 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
fill_sheet(m);
|
fill_sheet(m);
|
||||||
|
|
||||||
const bool intra = _causale.intra();
|
const bool intra = _causale.intra();
|
||||||
|
const bool valintra = _causale.valintra();
|
||||||
|
|
||||||
if (_iva != nessuna_iva)
|
if (_iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
@ -311,14 +309,14 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
|
|
||||||
m.show(F_CORRLIRE, intra);
|
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_CORRVALUTA, corrval);
|
||||||
|
|
||||||
m.show(F_CODIVA, m.mode() == MODE_INS);
|
m.show(F_CODIVA, m.mode() == MODE_INS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_VISVAL (GROUP 3)
|
// 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);
|
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");
|
||||||
@ -328,15 +326,13 @@ void TPrimanota_application::init_query_mode(TMask& m)
|
|||||||
{
|
{
|
||||||
read_firm_params();
|
read_firm_params();
|
||||||
enable_menu_item(M_FILE_PRINT);
|
enable_menu_item(M_FILE_PRINT);
|
||||||
// m.enable(DLG_NEWREC);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TPrimanota_application::fill_sheet(TMask& m) const
|
void TPrimanota_application::fill_sheet(TMask& m) const
|
||||||
{
|
{
|
||||||
TSheet_field& cgs = (TSheet_field&)m.field(F_SHEETCG);
|
TSheet_field& cgs = (TSheet_field&)m.field(F_SHEETCG);
|
||||||
for (int r = cgs.items(); r < 16; r++)
|
for (int r = cgs.items(); r < 16; r++) cgs.row(r);
|
||||||
cgs.row(r);
|
|
||||||
|
|
||||||
if (_iva != nessuna_iva)
|
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
|
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // documento
|
||||||
const long n = m.get_long(F_NUMDOC);
|
const long n = m.get_long(F_NUMDOC);
|
||||||
if (n > 0)
|
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);
|
return strcpy(__tmp_string, k);
|
||||||
@ -413,10 +407,8 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
TBill tc; _causale.bill(nriga, tc);
|
TBill tc; _causale.bill(nriga, tc);
|
||||||
if (tc.conto() < 1) continue; // Considera solo conti validi
|
if (tc.conto() < 1) continue; // Considera solo conti validi
|
||||||
|
|
||||||
char sezione = rcaus->get_char(RCA_SEZIONE);
|
const char sezione = rcaus->get_char(RCA_SEZIONE);
|
||||||
if (sezione != 'A') sezione = 'D';
|
const TImporto zero('D', ZERO);
|
||||||
|
|
||||||
const TImporto zero(sezione, ZERO);
|
|
||||||
const TString80 desc(_causale.desc_agg(i));
|
const TString80 desc(_causale.desc_agg(i));
|
||||||
|
|
||||||
if (nriga == 1) m.set(F_DESCR, desc);
|
if (nriga == 1) m.set(F_DESCR, desc);
|
||||||
@ -424,6 +416,7 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
if (iva() == nessuna_iva)
|
if (iva() == nessuna_iva)
|
||||||
{
|
{
|
||||||
const int pos = set_cgs_row(-1,zero,tc,desc,' ');
|
const int pos = set_cgs_row(-1,zero,tc,desc,' ');
|
||||||
|
if (sezione > ' ')
|
||||||
cgs().disable_cell(pos, sezione == 'D' ? 1 : 0);
|
cgs().disable_cell(pos, sezione == 'D' ? 1 : 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -431,21 +424,12 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
if (nriga >= 2 && nriga <= 9)
|
if (nriga >= 2 && 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);
|
|
||||||
if (rigaiva)
|
|
||||||
{
|
|
||||||
const TString16 codiva(rcaus->get(RCA_CODIVA));
|
|
||||||
set_ivas_row(-1,codiva,tc,desc);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const char tipo = nriga == 1 ? 'T' : ' ';
|
const char tipo = nriga == 1 ? 'T' : ' ';
|
||||||
if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() != 0)
|
if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() != 0)
|
||||||
m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto());
|
m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto());
|
||||||
set_cgs_row(-1,zero,tc,desc,tipo);
|
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
|
bool TPrimanota_application::get_conto(const TRectype& r, TBill& c) const
|
||||||
{
|
{
|
||||||
c.set(r.get_int("GRUPPO"), r.get_int("CONTO"),
|
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();
|
return c.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Scrive un conto su una riga di proma nota
|
||||||
void TPrimanota_application::put_conto(TRectype& r, const TBill& c) const
|
void TPrimanota_application::put_conto(TRectype& r, const TBill& c) const
|
||||||
{
|
{
|
||||||
r.put("TIPOC", c.tipo());
|
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)
|
void TPrimanota_application::mask2rel(const TMask& m)
|
||||||
{
|
{
|
||||||
_rel->lfile().zero();
|
_rel->lfile().zero();
|
||||||
@ -622,7 +608,6 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
cgs_pack(); // Destroy all null rows
|
cgs_pack(); // Destroy all null rows
|
||||||
|
|
||||||
TArray& rows = cgs().rows_array();
|
TArray& rows = cgs().rows_array();
|
||||||
int cur = 1;
|
|
||||||
|
|
||||||
// Controlla se e' un movimento con righe contabili
|
// Controlla se e' un movimento con righe contabili
|
||||||
if (iva() == nessuna_iva || !m.get_bool(F_SOLAIVA))
|
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);
|
const TConto conto(row, 2, 0x3);
|
||||||
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
|
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
|
||||||
|
|
||||||
TRectype &r = _rel->cg(cur-1);
|
TRectype &r = _rel->cg(i);
|
||||||
r.zero();
|
r.zero();
|
||||||
|
|
||||||
r.put("IMPORTO", n.valore()); // Importo
|
r.put("IMPORTO", n.valore()); // Importo
|
||||||
@ -644,7 +629,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
r.put("NUMREG", numreg);
|
r.put("NUMREG", numreg);
|
||||||
r.put("ANNOES", annoes);
|
r.put("ANNOES", annoes);
|
||||||
r.put("DATAREG", datareg);
|
r.put("DATAREG", datareg);
|
||||||
r.put("NUMRIG", cur);
|
r.put("NUMRIG", i+1);
|
||||||
|
|
||||||
put_conto(r, conto); // Conto
|
put_conto(r, conto); // Conto
|
||||||
|
|
||||||
@ -663,14 +648,13 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
rcontr = bill2contr(contro, n.sezione())+1;
|
rcontr = bill2contr(contro, n.sezione())+1;
|
||||||
if (rcontr < 1)
|
if (rcontr < 1)
|
||||||
{
|
{
|
||||||
warning_box("La riga contabile %d non ha una contropartita valida", cur);
|
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;
|
rcontr = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r.put("RCONTR", rcontr); // Contropartita
|
r.put("RCONTR", rcontr); // Contropartita
|
||||||
|
|
||||||
|
|
||||||
cur++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_iva == nessuna_iva) return;
|
if (_iva == nessuna_iva) return;
|
||||||
@ -711,18 +695,17 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TArray& irows = ivas().rows_array();
|
TArray& irows = ivas().rows_array();
|
||||||
cur = 1;
|
|
||||||
for (int i = 0; i < irows.items(); i++)
|
for (int i = 0; i < irows.items(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& row = (TToken_string&)irows[i];
|
TToken_string& row = (TToken_string&)irows[i];
|
||||||
if (row.empty_items())
|
if (row.empty_items())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
TRectype &r = _rel->iva(cur-1);
|
TRectype &r = _rel->iva(i);
|
||||||
r.zero();
|
r.zero();
|
||||||
r.put("ANNOES", annoes);
|
r.put("ANNOES", annoes);
|
||||||
r.put("NUMREG", numreg);
|
r.put("NUMREG", numreg);
|
||||||
r.put("NUMRIG", cur);
|
r.put("NUMRIG", i+1);
|
||||||
|
|
||||||
real imponibile(row.get(0));
|
real imponibile(row.get(0));
|
||||||
if (to_swap) imponibile = -imponibile;
|
if (to_swap) imponibile = -imponibile;
|
||||||
@ -746,8 +729,6 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
const int rimp = bill2pos(c, 'I')+1;
|
const int rimp = bill2pos(c, 'I')+1;
|
||||||
r.put("RIGAIMP", rimp);
|
r.put("RIGAIMP", rimp);
|
||||||
put_conto(r, c);
|
put_conto(r, c);
|
||||||
|
|
||||||
cur++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -837,8 +818,6 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
|||||||
if (caus.data_doc()) m.efield(F_DATADOC).check_type(CHECK_REQUIRED);
|
if (caus.data_doc()) m.efield(F_DATADOC).check_type(CHECK_REQUIRED);
|
||||||
if (caus.num_doc()) m.efield(F_NUMDOC).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_DATAREG, curr_mask().get(F_DATAREG));
|
||||||
m.set(F_DATACOMP, curr_mask().get(F_DATACOMP));
|
m.set(F_DATACOMP, curr_mask().get(F_DATACOMP));
|
||||||
m.set(F_DATADOC, curr_mask().get(F_DATADOC));
|
m.set(F_DATADOC, curr_mask().get(F_DATADOC));
|
||||||
@ -850,14 +829,14 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
|||||||
|
|
||||||
m.set(I_SEZIONE1, caus.sezione_clifo() == 'D' ? "D" : "A");
|
m.set(I_SEZIONE1, caus.sezione_clifo() == 'D' ? "D" : "A");
|
||||||
m.set(F_TOTALE, curr_mask().get(F_TOTALE));
|
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(F_CLIFO, _rel->cg(0).get("TIPOC"));
|
||||||
m.set(clifo_id, curr_mask().get(clifo_id));
|
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_SEZIONE2, caus.sezione_clifo() == 'D' ? "A" : "D");
|
||||||
m.set(I_IMPORTO2, curr_mask().get(F_TOTALE));
|
m.set(I_IMPORTO2, curr_mask().get(F_TOTALE));
|
||||||
m.set(I_GRUPPO2, conto.gruppo());
|
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("TIPOC", m.get(F_CLIFO));
|
||||||
r.put("GRUPPO", m.get(F_GRUPPOCLIFO));
|
r.put("GRUPPO", m.get(F_GRUPPOCLIFO));
|
||||||
r.put("CONTO", m.get(F_CONTOCLIFO));
|
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("SOTTOCONTO", m.get(clifo_id));
|
||||||
|
|
||||||
r.put("DESCR", m.get(F_DESCR));
|
r.put("DESCR", m.get(F_DESCR));
|
||||||
r.put("RCONTR", 2);
|
r.put("RCONTR", 2);
|
||||||
r.put("ROWTYPE", " ");
|
r.put("ROWTYPE", " ");
|
||||||
|
31
cg/cg2100.h
31
cg/cg2100.h
@ -81,23 +81,24 @@
|
|||||||
// Maschera incasso/pagamento immediato
|
// Maschera incasso/pagamento immediato
|
||||||
#define I_SEZIONE1 201
|
#define I_SEZIONE1 201
|
||||||
#define I_IMPORTO1 202
|
#define I_IMPORTO1 202
|
||||||
|
#define I_SOTTOCONTO 203
|
||||||
|
|
||||||
#define I_SEZIONE2 203
|
#define I_SEZIONE2 210
|
||||||
#define I_IMPORTO2 204
|
#define I_IMPORTO2 211
|
||||||
#define I_GRUPPO2 205
|
#define I_GRUPPO2 212
|
||||||
#define I_CONTO2 206
|
#define I_CONTO2 213
|
||||||
#define I_SOTTOCONTO2 207
|
#define I_SOTTOCONTO2 214
|
||||||
|
|
||||||
#define I_SEZIONE3 208
|
#define I_SEZIONE3 220
|
||||||
#define I_IMPORTO3 209
|
#define I_IMPORTO3 221
|
||||||
#define I_GRUPPO3 210
|
#define I_GRUPPO3 222
|
||||||
#define I_CONTO3 211
|
#define I_CONTO3 223
|
||||||
#define I_SOTTOCONTO3 212
|
#define I_SOTTOCONTO3 224
|
||||||
|
|
||||||
#define I_SEZIONE4 213
|
#define I_SEZIONE4 230
|
||||||
#define I_IMPORTO4 214
|
#define I_IMPORTO4 231
|
||||||
#define I_GRUPPO4 215
|
#define I_GRUPPO4 232
|
||||||
#define I_CONTO4 216
|
#define I_CONTO4 233
|
||||||
#define I_SOTTOCONTO4 217
|
#define I_SOTTOCONTO4 234
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -364,7 +364,7 @@ BOOLEAN F_OCCASIONALE
|
|||||||
BEGIN
|
BEGIN
|
||||||
MESSAGE FALSE HIDE,F_OCCASEDIT|ENABLE,F_PIVACLIENTE|ENABLE,F_PIVAFORNITORE|SHOW,F_STATOPAIV
|
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
|
MESSAGE TRUE SHOW,F_OCCASEDIT|DISABLE,F_PIVACLIENTE|DISABLE,F_PIVAFORNITORE|HIDE,F_STATOPAIV
|
||||||
FLAGS "GH"
|
FLAGS "GHP"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODPAG 4
|
STRING F_CODPAG 4
|
||||||
|
@ -100,10 +100,10 @@ END
|
|||||||
LIST F_CLIFO 1 12
|
LIST F_CLIFO 1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 37 7 ""
|
PROMPT 37 7 ""
|
||||||
ITEM "C|Cliente" MESSAGE HIDE,F_FORNITORE|SHOW,F_CLIENTE
|
ITEM " |Conto" MESSAGE SHOW,I_SOTTOCONTO|HIDE,F_FORNITORE|HIDE,F_CLIENTE
|
||||||
ITEM "F|Fornitore" MESSAGE HIDE,F_CLIENTE|SHOW,F_FORNITORE
|
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
|
FIELD LF_MOV->TIPO
|
||||||
FLAGS "GD"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_GRUPPOCLIFO 3
|
NUMBER F_GRUPPOCLIFO 3
|
||||||
@ -116,7 +116,7 @@ END
|
|||||||
NUMBER F_CONTOCLIFO 3
|
NUMBER F_CONTOCLIFO 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 57 7 ""
|
PROMPT 57 7 ""
|
||||||
USE LF_PCON SELECT TMCF==#F_CLIFO
|
USE LF_PCON SELECT SOTTOCONTO==""
|
||||||
INPUT GRUPPO F_GRUPPOCLIFO
|
INPUT GRUPPO F_GRUPPOCLIFO
|
||||||
INPUT CONTO F_CONTOCLIFO
|
INPUT CONTO F_CONTOCLIFO
|
||||||
DISPLAY "Gruppo" GRUPPO
|
DISPLAY "Gruppo" GRUPPO
|
||||||
@ -139,6 +139,7 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
OUTPUT F_CLIENTE CODCF
|
OUTPUT F_CLIENTE CODCF
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Cliente assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_FORNITORE 6
|
NUMBER F_FORNITORE 6
|
||||||
@ -152,8 +153,26 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
OUTPUT F_FORNITORE CODCF
|
OUTPUT F_FORNITORE CODCF
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Fornitore assente"
|
||||||
END
|
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
|
LIST I_SEZIONE2 1 8
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -189,7 +208,7 @@ END
|
|||||||
NUMBER I_SOTTOCONTO2 6
|
NUMBER I_SOTTOCONTO2 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 65 8 ""
|
PROMPT 65 8 ""
|
||||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
COPY USE I_SOTTOCONTO
|
||||||
INPUT GRUPPO I_GRUPPO2
|
INPUT GRUPPO I_GRUPPO2
|
||||||
INPUT CONTO I_CONTO2
|
INPUT CONTO I_CONTO2
|
||||||
INPUT SOTTOCONTO I_SOTTOCONTO2
|
INPUT SOTTOCONTO I_SOTTOCONTO2
|
||||||
@ -201,6 +220,7 @@ BEGIN
|
|||||||
OUTPUT I_CONTO2 CONTO
|
OUTPUT I_CONTO2 CONTO
|
||||||
OUTPUT I_SOTTOCONTO2 SOTTOCONTO
|
OUTPUT I_SOTTOCONTO2 SOTTOCONTO
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Sottoconto assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST I_SEZIONE3 1 8
|
LIST I_SEZIONE3 1 8
|
||||||
@ -237,7 +257,7 @@ END
|
|||||||
NUMBER I_SOTTOCONTO3 6
|
NUMBER I_SOTTOCONTO3 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 65 9 ""
|
PROMPT 65 9 ""
|
||||||
COPY USE I_SOTTOCONTO2
|
COPY USE I_SOTTOCONTO
|
||||||
INPUT GRUPPO I_GRUPPO3
|
INPUT GRUPPO I_GRUPPO3
|
||||||
INPUT CONTO I_CONTO3
|
INPUT CONTO I_CONTO3
|
||||||
INPUT SOTTOCONTO I_SOTTOCONTO3
|
INPUT SOTTOCONTO I_SOTTOCONTO3
|
||||||
@ -247,6 +267,7 @@ BEGIN
|
|||||||
OUTPUT I_SOTTOCONTO3 SOTTOCONTO
|
OUTPUT I_SOTTOCONTO3 SOTTOCONTO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 1 I_IMPORTO3
|
VALIDATE REQIF_FUNC 1 I_IMPORTO3
|
||||||
|
WARNING "Sottoconto assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST I_SEZIONE4 1 8
|
LIST I_SEZIONE4 1 8
|
||||||
@ -283,7 +304,7 @@ END
|
|||||||
NUMBER I_SOTTOCONTO4 6
|
NUMBER I_SOTTOCONTO4 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 65 10 ""
|
PROMPT 65 10 ""
|
||||||
COPY USE I_SOTTOCONTO2
|
COPY USE I_SOTTOCONTO
|
||||||
INPUT GRUPPO I_GRUPPO4
|
INPUT GRUPPO I_GRUPPO4
|
||||||
INPUT CONTO I_CONTO4
|
INPUT CONTO I_CONTO4
|
||||||
INPUT SOTTOCONTO I_SOTTOCONTO4
|
INPUT SOTTOCONTO I_SOTTOCONTO4
|
||||||
@ -293,6 +314,7 @@ BEGIN
|
|||||||
OUTPUT I_SOTTOCONTO4 SOTTOCONTO
|
OUTPUT I_SOTTOCONTO4 SOTTOCONTO
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 1 I_IMPORTO4
|
VALIDATE REQIF_FUNC 1 I_IMPORTO4
|
||||||
|
WARNING "Sottoconto assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ TSheet_field& TPrimanota_application::ivas() const
|
|||||||
|
|
||||||
TBill& TPrimanota_application::ivas_bill(TBill& c)
|
TBill& TPrimanota_application::ivas_bill(TBill& c)
|
||||||
{
|
{
|
||||||
int spric = c.tipo_cr();
|
const int spric = c.tipo_cr();
|
||||||
if (spric == 2 || spric == 3)
|
if (spric == 2 || spric == 3)
|
||||||
{
|
{
|
||||||
const TFixed_string td(causale().tipo_doc());
|
const TFixed_string td(causale().tipo_doc());
|
||||||
@ -591,18 +591,6 @@ TBill& TPrimanota_application::ivas_bill(TBill& c)
|
|||||||
return 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)
|
bool TPrimanota_application::imponibile_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB && f.dirty())
|
if (key == K_TAB && f.dirty())
|
||||||
@ -1270,13 +1258,32 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
|
|||||||
tipo = ' ';
|
tipo = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
TBill c(gruppo, conto, codice, tipo);
|
TBill nuovo(gruppo, conto, codice, tipo);
|
||||||
real tot(m.get(F_TOTALE));
|
real tot(m.get(F_TOTALE));
|
||||||
|
|
||||||
// Creazione/Aggiornamento riga totale
|
|
||||||
const int pos = type2pos('T');
|
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();
|
calcola_saldo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1292,7 +1299,7 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
app().add_cgs_tot(m);
|
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);
|
const int alleg = clifo.get_int(CLI_ALLEG);
|
||||||
TEdit_field& upi = m.efield(F_RIEPILOGO);
|
TEdit_field& upi = m.efield(F_RIEPILOGO);
|
||||||
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);
|
upi.check_type(alleg == 3 ? CHECK_REQUIRED : CHECK_NORMAL);
|
||||||
|
@ -158,7 +158,6 @@ protected:
|
|||||||
real calcola_saldo() const;
|
real calcola_saldo() const;
|
||||||
real calcola_imp() 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);
|
int set_cgs_row(int n, const TImporto& importo, TBill& conto, const char* desc, char tipo);
|
||||||
void reset_cgs_row(int n);
|
void reset_cgs_row(int n);
|
||||||
void disable_cgs_cells(int n, char tipo);
|
void disable_cgs_cells(int n, char tipo);
|
||||||
|
@ -395,7 +395,7 @@ bool TCausale::valuta() const
|
|||||||
bool TCausale::intra() const
|
bool TCausale::intra() const
|
||||||
{ return _rec.ok() ? _rec.get_bool("INTRACOM") : FALSE; }
|
{ return _rec.ok() ? _rec.get_bool("INTRACOM") : FALSE; }
|
||||||
|
|
||||||
bool TCausale::corrval() const
|
bool TCausale::valintra() const
|
||||||
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
|
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
|
||||||
|
|
||||||
const char* TCausale::causale_inc_imm() const
|
const char* TCausale::causale_inc_imm() const
|
||||||
|
@ -93,7 +93,7 @@ public:
|
|||||||
bool sezionale() const;
|
bool sezionale() const;
|
||||||
bool valuta() const;
|
bool valuta() const;
|
||||||
bool intra() const;
|
bool intra() const;
|
||||||
bool corrval() const;
|
bool valintra() const;
|
||||||
const char* causale_inc_imm() const;
|
const char* causale_inc_imm() const;
|
||||||
const char* tipo_doc() const;
|
const char* tipo_doc() const;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ BEGIN
|
|||||||
DISPLAY "Tipo" S1
|
DISPLAY "Tipo" S1
|
||||||
OUTPUT 102 CODTAB
|
OUTPUT 102 CODTAB
|
||||||
OUTPUT 211 S0
|
OUTPUT 211 S0
|
||||||
CHECKTYPE NORMAL
|
WARNING "Codice IVA assente"
|
||||||
VALIDATE REQIF_FUNC 1 101
|
VALIDATE REQIF_FUNC 1 101
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -27,13 +27,23 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST 103 1 59
|
NUMBER 103 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Detraibilita' "
|
PROMPT 2 3 "Detraibilita' "
|
||||||
ITEM " |0. Regime normale"
|
SHEET "Codice|Tipo detraibilita'@75"
|
||||||
ITEM "1|1. IVA indetraibile su acquisti riferiti a ricavi esenti"
|
INPUT 103
|
||||||
ITEM "3|3. IVA indicata per il solo calcolo di ventilazione"
|
ITEM " |Regime normale"
|
||||||
ITEM "9|9. IVA non detraibile per l'articolo 19"
|
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
|
END
|
||||||
|
|
||||||
NUMBER 101 15
|
NUMBER 101 15
|
||||||
@ -92,7 +102,7 @@ BEGIN
|
|||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
|
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Conto inesistente nella riga IVA"
|
WARNING "Conto assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -115,7 +125,7 @@ BEGIN
|
|||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 1 101
|
VALIDATE REQIF_FUNC 1 101
|
||||||
WARNING "Sottoconto inesistente nella riga IVA"
|
WARNING "Sottoconto assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@ -135,7 +145,7 @@ BEGIN
|
|||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
MESSAGE COPY,109
|
MESSAGE COPY,109
|
||||||
VALIDATE REQIF_FUNC 1 101
|
VALIDATE REQIF_FUNC 1 101
|
||||||
WARNING "Cliente inesistente nella riga IVA"
|
WARNING "Cliente assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER 309 6
|
NUMBER 309 6
|
||||||
@ -154,7 +164,7 @@ BEGIN
|
|||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
MESSAGE COPY,109
|
MESSAGE COPY,109
|
||||||
VALIDATE REQIF_FUNC 1 101
|
VALIDATE REQIF_FUNC 1 101
|
||||||
WARNING "Fornitore inesistente nella riga IVA"
|
WARNING "Fornitore assente"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING 110 50
|
STRING 110 50
|
||||||
|
@ -105,7 +105,7 @@ int TBill::compare(const TSortable& s) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Certified 90% (uses __tmp_string && isam)
|
// Certified 95%
|
||||||
const char* TBill::describe()
|
const char* TBill::describe()
|
||||||
{
|
{
|
||||||
int err = NOERR;
|
int err = NOERR;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user