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
|
||||
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;
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -210,7 +210,7 @@ BEGIN
|
||||
GROUP 1
|
||||
END
|
||||
|
||||
STRING 109 5
|
||||
STRING 109 50
|
||||
BEGIN
|
||||
PROMPT 1 8 ""
|
||||
FLAGS "D"
|
||||
|
@ -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))
|
||||
{
|
||||
|
117
cg/cg2100.cpp
117
cg/cg2100.cpp
@ -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", " ");
|
||||
|
31
cg/cg2100.h
31
cg/cg2100.h
@ -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
|
||||
|
@ -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)"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user