Correzione di valanghe di errori
git-svn-id: svn://10.65.10.50/trunk@425 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
57dc5f4f18
commit
41ce0a9012
@ -141,7 +141,7 @@ END
|
|||||||
SPREADSHEET F_SHEET_GCS
|
SPREADSHEET F_SHEET_GCS
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 7 ""
|
PROMPT 0 7 ""
|
||||||
ITEM "Tipo conto@21"
|
ITEM "Tipo conto@21F"
|
||||||
ITEM "C/F"
|
ITEM "C/F"
|
||||||
ITEM "Gr.@3"
|
ITEM "Gr.@3"
|
||||||
ITEM "Co.@3"
|
ITEM "Co.@3"
|
||||||
|
@ -128,10 +128,10 @@ END
|
|||||||
LISTBOX 106 5
|
LISTBOX 106 5
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 51 3 "Sezione "
|
PROMPT 51 3 "Sezione "
|
||||||
|
ITEM " | "
|
||||||
ITEM "D|Dare"
|
ITEM "D|Dare"
|
||||||
ITEM "A|Avere"
|
ITEM "A|Avere"
|
||||||
FIELD LF_RCAUSALI->SEZIONE
|
FIELD LF_RCAUSALI->SEZIONE
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
193
cg/cg2100.cpp
193
cg/cg2100.cpp
@ -76,8 +76,8 @@ TMask* TPrimanota_application::load_mask(int n)
|
|||||||
ism.set_handler(102, codiva_handler);
|
ism.set_handler(102, codiva_handler);
|
||||||
ism.set_handler(104, imposta_handler);
|
ism.set_handler(104, imposta_handler);
|
||||||
ism.set_handler(109, suspended_handler);
|
ism.set_handler(109, suspended_handler);
|
||||||
ism.set_handler(209, suspended_handler);
|
ism.set_handler(209, sheet_clifo_handler);
|
||||||
ism.set_handler(309, suspended_handler);
|
ism.set_handler(309, sheet_clifo_handler);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@ -99,14 +99,14 @@ if (n == 1 || n == 2)
|
|||||||
TMask& cgm = cg.sheet_mask();
|
TMask& cgm = cg.sheet_mask();
|
||||||
cgm.set_handler(101, dareavere_handler);
|
cgm.set_handler(101, dareavere_handler);
|
||||||
cgm.set_handler(102, dareavere_handler);
|
cgm.set_handler(102, dareavere_handler);
|
||||||
cgm.set_handler(106, suspended_handler);
|
|
||||||
cgm.set_handler(105, cg_conto_handler);
|
cgm.set_handler(105, cg_conto_handler);
|
||||||
cgm.set_handler(206, cg_clifo_handler);
|
cgm.set_handler(106, suspended_handler);
|
||||||
cgm.set_handler(306, cg_clifo_handler);
|
cgm.set_handler(206, sheet_clifo_handler);
|
||||||
|
cgm.set_handler(306, sheet_clifo_handler);
|
||||||
cgm.set_handler(112, suspended_handler);
|
cgm.set_handler(112, suspended_handler);
|
||||||
cgm.set_handler(113, suspended_handler);
|
cgm.set_handler(113, suspended_handler);
|
||||||
cgm.set_handler(213, cg_clifo_handler);
|
cgm.set_handler(213, sheet_clifo_handler);
|
||||||
cgm.set_handler(313, cg_clifo_handler);
|
cgm.set_handler(313, sheet_clifo_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _msk[n] = m;
|
return _msk[n] = m;
|
||||||
@ -165,7 +165,10 @@ 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);
|
bool ok = TRUE;
|
||||||
|
|
||||||
|
if (cod != NULL)
|
||||||
|
ok = _causale.read(cod, year);
|
||||||
|
|
||||||
bool nob = FALSE, dob = FALSE, sal = FALSE;
|
bool nob = FALSE, dob = FALSE, sal = FALSE;
|
||||||
TipoIVA iva = nessuna_iva;
|
TipoIVA iva = nessuna_iva;
|
||||||
@ -178,24 +181,27 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
|
|||||||
iva = _causale.iva();
|
iva = _causale.iva();
|
||||||
}
|
}
|
||||||
|
|
||||||
TMask& m = *_msk[iva == nessuna_iva ? 1: 2];
|
TMask* m = _msk[iva == nessuna_iva ? 1 : 2];
|
||||||
m.efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio
|
if (m == NULL) return TRUE;
|
||||||
m.efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria
|
|
||||||
|
m->efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio
|
||||||
|
m->efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria
|
||||||
|
|
||||||
|
|
||||||
if (iva != nessuna_iva)
|
if (iva != nessuna_iva)
|
||||||
{
|
{
|
||||||
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
|
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
|
||||||
m.efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
|
m->efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
|
||||||
m.show(F_ANNORIF, sal);
|
m->show(F_ANNORIF, sal);
|
||||||
m.show(F_NUMRIF, sal);
|
m->show(F_NUMRIF, sal);
|
||||||
if (sal)
|
if (sal)
|
||||||
{
|
{
|
||||||
TString80 val;
|
TString80 val;
|
||||||
if (riferimento_partita())
|
if (riferimento_partita())
|
||||||
val = m.get(F_NUMDOC);
|
val = m->get(F_NUMDOC);
|
||||||
else
|
else
|
||||||
val.format("%ld", _causale.reg().protocol());
|
val.format("%ld", _causale.reg().protocol());
|
||||||
m.set(F_NUMRIF, val);
|
m->set(F_NUMRIF, val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
@ -253,13 +259,11 @@ TMask* TPrimanota_application::get_mask(int mode)
|
|||||||
return load_mask(0);
|
return load_mask(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TCausale c(caus, annoiva);
|
giornale().read(annoes);
|
||||||
|
causale().read(caus, annoiva);
|
||||||
_iva = causale().iva();
|
_iva = causale().iva();
|
||||||
|
|
||||||
TMask* m = load_mask(_iva == nessuna_iva ? 1 : 2);
|
return load_mask(_iva == nessuna_iva ? 1 : 2);
|
||||||
giornale().read(annoes);
|
|
||||||
read_caus(caus, annoiva);
|
|
||||||
return m;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -275,6 +279,7 @@ void TPrimanota_application::init_mask(TMask& m)
|
|||||||
{
|
{
|
||||||
disable_menu_item(M_FILE_PRINT);
|
disable_menu_item(M_FILE_PRINT);
|
||||||
|
|
||||||
|
read_caus(NULL, 0); // Setta campi obbligatori
|
||||||
fill_sheet(m);
|
fill_sheet(m);
|
||||||
|
|
||||||
if (_iva != nessuna_iva)
|
if (_iva != nessuna_iva)
|
||||||
@ -413,22 +418,21 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (nriga >= 3 && 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);
|
const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA);
|
||||||
if (nriga == 2 || rigaiva)
|
if (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);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char tipo = nriga < 2 ? 'T' : ' ';
|
const char tipo = nriga == 1 ? 'T' : ' ';
|
||||||
set_cgs_row(-1,zero,tc,desc,tipo);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -438,6 +442,8 @@ void TPrimanota_application::init_insert_mode(TMask& m)
|
|||||||
void TPrimanota_application::init_modify_mode(TMask& m)
|
void TPrimanota_application::init_modify_mode(TMask& m)
|
||||||
{
|
{
|
||||||
init_mask(m);
|
init_mask(m);
|
||||||
|
if (iva() != nessuna_iva)
|
||||||
|
m.hide(F_CODIVA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -556,7 +562,16 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
|
|
||||||
riga.add(r.get("CODIVA")); // IVA 102
|
riga.add(r.get("CODIVA")); // IVA 102
|
||||||
riga.add(r.get("TIPODET")); // Detrazione 103
|
riga.add(r.get("TIPODET")); // Detrazione 103
|
||||||
riga.add(r.get("IMPOSTA")); // Imposta 104
|
|
||||||
|
|
||||||
|
real imposta(r.get("IMPOSTA"));
|
||||||
|
if (to_swap) imposta = -imposta;
|
||||||
|
if (imponibile.sign() != imposta.sign())
|
||||||
|
{
|
||||||
|
warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata");
|
||||||
|
imposta = -imposta;
|
||||||
|
}
|
||||||
|
riga.add(imposta.string()); // Imposta 104
|
||||||
|
|
||||||
TBill c; get_conto(r, c);
|
TBill c; get_conto(r, c);
|
||||||
if (c.ok())
|
if (c.ok())
|
||||||
@ -694,7 +709,16 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
|
|
||||||
r.put("CODIVA", row.get());
|
r.put("CODIVA", row.get());
|
||||||
r.put("TIPODET", row.get());
|
r.put("TIPODET", row.get());
|
||||||
r.put("IMPOSTA", row.get());
|
|
||||||
|
real imposta(row.get());
|
||||||
|
if (to_swap) imposta = -imposta;
|
||||||
|
if (imponibile.sign() != imposta.sign())
|
||||||
|
{
|
||||||
|
yesnofatal_box("Registrazione di imponibile e imposta discordi");
|
||||||
|
imposta = -imposta;
|
||||||
|
}
|
||||||
|
r.put("IMPOSTA", imposta);
|
||||||
|
|
||||||
r.put("TIPOCR", row.get());
|
r.put("TIPOCR", row.get());
|
||||||
|
|
||||||
const TBill c(row, -1, 0x1);
|
const TBill c(row, -1, 0x1);
|
||||||
@ -718,7 +742,7 @@ int TPrimanota_application::write(const TMask& m)
|
|||||||
{
|
{
|
||||||
_saldi.registra();
|
_saldi.registra();
|
||||||
|
|
||||||
if (iva() == iva_vendite && !gestione_saldaconto())
|
if (iva() != nessuna_iva && !gestione_saldaconto())
|
||||||
{
|
{
|
||||||
const TString16 causimm(_causale.causale_inc_imm());
|
const TString16 causimm(_causale.causale_inc_imm());
|
||||||
if (causimm.not_empty())
|
if (causimm.not_empty())
|
||||||
@ -753,55 +777,112 @@ bool TPrimanota_application::remove()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HIDDEN bool incasso_handler(TMask_field& f, KEY k)
|
||||||
|
{
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
|
TMask& m = f.mask();
|
||||||
|
TImporto tot(m.get(I_SEZIONE1)[0], (real)m.get(F_TOTALE));
|
||||||
|
|
||||||
|
for (int i = 2; i < 5; i++)
|
||||||
|
{
|
||||||
|
const int sid = i == 2 ? I_SEZIONE2 : (i == 3 ? I_SEZIONE3 : I_SEZIONE4);
|
||||||
|
const real val(m.get(sid+1));
|
||||||
|
const TImporto imp(m.get(sid)[0], val);
|
||||||
|
tot += imp;
|
||||||
|
}
|
||||||
|
if (tot.valore() != ZERO)
|
||||||
|
return f.error_box("Il movimento e' sbilaciato di %s", tot.valore().string("."));
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TPrimanota_application::genera_incasso(const char* causimm)
|
void TPrimanota_application::genera_incasso(const char* causimm)
|
||||||
{
|
{
|
||||||
TMask m("cg2100i");
|
TMask m("cg2100i");
|
||||||
|
if (iva() == iva_acquisti) m.set_caption("Movimento di pagamento immediato");
|
||||||
|
|
||||||
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_TOTALE, incasso_handler);
|
||||||
|
|
||||||
TFilename tmp; tmp.temp(); // File temporaneo di scambio
|
TCausale caus(causimm); // Causale da usare
|
||||||
_msk[2]->set_workfile(tmp);
|
|
||||||
_msk[2]->save(); // Copia la maschera principale ...
|
|
||||||
m.set_workfile(tmp);
|
|
||||||
m.load(); // ... nella maschera di incasso
|
|
||||||
::remove(tmp); // Cancella file temporaneo
|
|
||||||
|
|
||||||
const TCausale caus(causimm); // Causale da usare
|
if (caus.data_doc()) m.efield(F_DATADOC).check_type(CHECK_REQUIRED);
|
||||||
TBill conto; caus.bill(2, conto); // Conto della seconda riga della causale
|
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));
|
||||||
|
m.set(F_DATADOC, curr_mask().get(F_DATADOC));
|
||||||
m.set(F_NUMREG, ++_lastreg); // Incrementa numero di registrazione
|
m.set(F_NUMREG, ++_lastreg); // Incrementa numero di registrazione
|
||||||
m.set(F_CODCAUS, causimm); // Cambia causale e ...
|
m.set(F_DESCR, caus.desc_agg(1)); // Descrizione
|
||||||
m.set(F_TIPODOC, caus.tipo_doc()); // relativo tipo documento
|
m.set(F_CODCAUS, causimm); // Cambia causale
|
||||||
|
m.set(F_DESCRCAUS, caus.descrizione());
|
||||||
|
|
||||||
|
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_GRUPPOCLIFO, conto.gruppo());
|
||||||
m.set(F_CONTOCLIFO, conto.conto());
|
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));
|
||||||
|
|
||||||
|
caus.bill(2, conto);
|
||||||
|
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());
|
||||||
|
m.set(I_CONTO2, conto.conto());
|
||||||
|
m.set(I_SOTTOCONTO2, conto.sottoconto());
|
||||||
|
|
||||||
if (m.run() == K_SAVE)
|
if (m.run() == K_SAVE)
|
||||||
{
|
{
|
||||||
TMovimentoPN inc; // Nuovo movimento di incasso immediato
|
TMovimentoPN inc; // Nuovo movimento di incasso immediato
|
||||||
|
|
||||||
TRectype r(_rel->cg(0)); // Copia la prima riga contabile
|
|
||||||
m.autosave(&inc);
|
m.autosave(&inc);
|
||||||
|
inc.lfile().put("TIPODOC", caus.tipo_doc()); // Tipo documento
|
||||||
|
inc.lfile().put("REG", caus.reg().name()); // Registro
|
||||||
|
|
||||||
inc.lfile().put("REG", ""); // Annulla eventuale registro IVA
|
TRectype& r = inc.cg(0);
|
||||||
|
r.zero();
|
||||||
const real imp(m.get(F_TOTALE));
|
|
||||||
const char sez = r.get_char("SEZIONE");
|
|
||||||
|
|
||||||
r.put("NUMREG", _lastreg);
|
r.put("NUMREG", _lastreg);
|
||||||
r.put("NUMRIG", 1);
|
r.put("NUMRIG", 1);
|
||||||
r.put("IMPORTO", imp);
|
r.put("SEZIONE", m.get(I_SEZIONE1));
|
||||||
r.put("SEZIONE", sez == 'A' ? 'D' : 'A');
|
r.put("IMPORTO", m.get(F_TOTALE));
|
||||||
r.put("TIPOC", m.get(F_CLIFO));
|
r.put("TIPOC", m.get(F_CLIFO));
|
||||||
r.put("GRUPPO", m.get_int(F_GRUPPOCLIFO));
|
r.put("GRUPPO", m.get(F_GRUPPOCLIFO));
|
||||||
r.put("CONTO", m.get_int(F_CONTOCLIFO));
|
r.put("CONTO", m.get(F_CONTOCLIFO));
|
||||||
r.put("SOTTOCONTO", m.get_long(F_CLIENTE));
|
r.put("SOTTOCONTO", m.get(clifo_id));
|
||||||
r.put("ROWTYPE", ' ');
|
r.put("DESCR", m.get(F_DESCR));
|
||||||
|
r.put("RCONTR", 2);
|
||||||
|
r.put("ROWTYPE", " ");
|
||||||
|
|
||||||
inc.cg(0) = r;
|
for (int i = 2; i < 5; i++)
|
||||||
|
{
|
||||||
|
const int sid = i == 2 ? I_SEZIONE2 : (i == 3 ? I_SEZIONE3 : I_SEZIONE4);
|
||||||
|
const char* imp = m.get(sid+1);
|
||||||
|
if (*imp == '\0') break;
|
||||||
|
|
||||||
r.put("NUMRIG", 2);
|
TRectype& r = inc.cg(i-1);
|
||||||
r.put("SEZIONE", sez);
|
r.zero();
|
||||||
inc.cg(1) = r;
|
r.put("IMPORTO", imp);
|
||||||
|
r.put("NUMREG", _lastreg);
|
||||||
|
r.put("NUMRIG", i);
|
||||||
|
r.put("SEZIONE", m.get(sid));
|
||||||
|
r.put("TIPOC", ' ');
|
||||||
|
r.put("GRUPPO", m.get(sid+2));
|
||||||
|
r.put("CONTO", m.get(sid+3));
|
||||||
|
r.put("SOTTOCONTO", m.get(sid+4));
|
||||||
|
r.put("ROWTYPE", " ");
|
||||||
|
if (i == 2)
|
||||||
|
{
|
||||||
|
r.put("DESCR", caus.desc_agg(2));
|
||||||
|
r.put("RCONTR", 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (inc.write() == _isreinsert) // In caso di riscrittura
|
while (inc.write() == _isreinsert) // In caso di riscrittura
|
||||||
inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione
|
inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione
|
||||||
|
22
cg/cg2100.h
22
cg/cg2100.h
@ -78,4 +78,26 @@
|
|||||||
#define O_COMUNENAS 113
|
#define O_COMUNENAS 113
|
||||||
#define O_DENCOMNAS 114
|
#define O_DENCOMNAS 114
|
||||||
|
|
||||||
|
// Maschera incasso/pagamento immediato
|
||||||
|
#define I_SEZIONE1 201
|
||||||
|
#define I_IMPORTO1 202
|
||||||
|
|
||||||
|
#define I_SEZIONE2 203
|
||||||
|
#define I_IMPORTO2 204
|
||||||
|
#define I_GRUPPO2 205
|
||||||
|
#define I_CONTO2 206
|
||||||
|
#define I_SOTTOCONTO2 207
|
||||||
|
|
||||||
|
#define I_SEZIONE3 208
|
||||||
|
#define I_IMPORTO3 209
|
||||||
|
#define I_GRUPPO3 210
|
||||||
|
#define I_CONTO3 211
|
||||||
|
#define I_SOTTOCONTO3 212
|
||||||
|
|
||||||
|
#define I_SEZIONE4 213
|
||||||
|
#define I_IMPORTO4 214
|
||||||
|
#define I_GRUPPO4 215
|
||||||
|
#define I_CONTO4 216
|
||||||
|
#define I_SOTTOCONTO4 217
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -156,12 +156,12 @@ BEGIN
|
|||||||
PROMPT 1 8 "Causale "
|
PROMPT 1 8 "Causale "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
FIELD LF_MOV->CODCAUS
|
FIELD LF_MOV->CODCAUS
|
||||||
USE LF_CAUSALI KEY 1
|
USE LF_CAUSALI SELECT REG!=""
|
||||||
INPUT CODCAUS F_CODCAUS
|
INPUT CODCAUS F_CODCAUS
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Registro" REG
|
|
||||||
DISPLAY "Tipo" TIPODOC
|
DISPLAY "Tipo" TIPODOC
|
||||||
|
DISPLAY "Registro" REG
|
||||||
OUTPUT F_CODCAUS CODCAUS
|
OUTPUT F_CODCAUS CODCAUS
|
||||||
OUTPUT F_DESCRCAUS DESCR
|
OUTPUT F_DESCRCAUS DESCR
|
||||||
OUTPUT F_CODREG REG
|
OUTPUT F_CODREG REG
|
||||||
@ -174,10 +174,12 @@ END
|
|||||||
STRING F_DESCRCAUS 50
|
STRING F_DESCRCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 25 8 ""
|
PROMPT 25 8 ""
|
||||||
USE LF_CAUSALI KEY 2
|
USE LF_CAUSALI KEY 2 SELECT REG!=""
|
||||||
INPUT DESCR F_DESCRCAUS
|
INPUT DESCR F_DESCRCAUS
|
||||||
DISPLAY "Descrizione@50" DESCR
|
DISPLAY "Descrizione@50" DESCR
|
||||||
DISPLAY "Codice" CODCAUS
|
DISPLAY "Codice" CODCAUS
|
||||||
|
DISPLAY "Tipo" TIPODOC
|
||||||
|
DISPLAY "Registro" REG
|
||||||
COPY OUTPUT F_CODCAUS
|
COPY OUTPUT F_CODCAUS
|
||||||
MESSAGE COPY,H_DESCRCAUS
|
MESSAGE COPY,H_DESCRCAUS
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -201,7 +203,7 @@ NUMBER F_RIEPILOGO 5
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 51 9 "Riepilogo fino al n. "
|
PROMPT 51 9 "Riepilogo fino al n. "
|
||||||
FIELD LF_MOV->UPROTIVA
|
FIELD LF_MOV->UPROTIVA
|
||||||
NUM_EXPR ((#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA))
|
NUM_EXPR {(#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)}
|
||||||
WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)"
|
WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -239,7 +241,7 @@ BEGIN
|
|||||||
MESSAGE COPY,F_FORNITORE
|
MESSAGE COPY,F_FORNITORE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "Cliente assente"
|
WARNING "Cliente assente"
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 C
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_FORNITORE 6
|
NUMBER F_FORNITORE 6
|
||||||
@ -269,7 +271,7 @@ BEGIN
|
|||||||
MESSAGE COPY,F_CLIENTE
|
MESSAGE COPY,F_CLIENTE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
WARNING "Fornitore assente"
|
WARNING "Fornitore assente"
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 F
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOCFORNITORE 50
|
STRING F_RAGSOCFORNITORE 50
|
||||||
@ -284,7 +286,7 @@ BEGIN
|
|||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT F_FORNITORE
|
COPY OUTPUT F_FORNITORE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 F
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RAGSOCCLIENTE 50
|
STRING F_RAGSOCCLIENTE 50
|
||||||
@ -299,7 +301,7 @@ BEGIN
|
|||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT F_CLIENTE
|
COPY OUTPUT F_CLIENTE
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 C
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PIVACLIENTE 14
|
STRING F_PIVACLIENTE 14
|
||||||
@ -315,7 +317,7 @@ BEGIN
|
|||||||
DISPLAY "Codice" CODCF
|
DISPLAY "Codice" CODCF
|
||||||
COPY OUTPUT F_CLIENTE
|
COPY OUTPUT F_CLIENTE
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 C
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PIVAFORNITORE 14
|
STRING F_PIVAFORNITORE 14
|
||||||
@ -329,7 +331,7 @@ BEGIN
|
|||||||
COPY DISPLAY F_PIVACLIENTE
|
COPY DISPLAY F_PIVACLIENTE
|
||||||
COPY OUTPUT F_FORNITORE
|
COPY OUTPUT F_FORNITORE
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1 F
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_STATOPAIV 18
|
LIST F_STATOPAIV 18
|
||||||
|
342
cg/cg2100i.uml
342
cg/cg2100i.uml
@ -1,59 +1,59 @@
|
|||||||
#include "cg2100.h"
|
#include "cg2100.h"
|
||||||
|
|
||||||
PAGE "Movimento di incasso immediato" -1 -1 78 12
|
PAGE "Movimento di incasso immediato" -1 -1 75 13
|
||||||
|
|
||||||
|
DATE F_DATAREG
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Data di registrazione "
|
||||||
|
FIELD LF_MOV->DATAREG
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
MESSAGE COPY,F_ANNOIVA,7,10
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_ANNOIVA 4
|
||||||
|
BEGIN
|
||||||
|
FLAGS "H"
|
||||||
|
FIELD LF_MOV->ANNOIVA
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_NUMREG 6
|
NUMBER F_NUMREG 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Operazione n. "
|
PROMPT 52 1 "Operazione n. "
|
||||||
FIELD LF_MOV->NUMREG
|
FIELD LF_MOV->NUMREG
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
KEY 1
|
KEY 1
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATAREG
|
|
||||||
BEGIN
|
|
||||||
PROMPT 43 1 "Data di registrazione "
|
|
||||||
FIELD LF_MOV->DATAREG
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_NUMDOC 6
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 2 "Documento n. "
|
|
||||||
FIELD LF_MOV->NUMDOC
|
|
||||||
END
|
|
||||||
|
|
||||||
DATE F_DATACOMP
|
DATE F_DATACOMP
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 43 2 "Data di competenza "
|
PROMPT 1 2 "Data di competenza "
|
||||||
FIELD LF_MOV->DATACOMP
|
FIELD LF_MOV->DATACOMP
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNOES 4
|
NUMBER F_ANNOES 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 3 "Esercizio "
|
PROMPT 52 2 "Esercizio "
|
||||||
FIELD LF_MOV->ANNOES
|
FIELD LF_MOV->ANNOES
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_TIPODOC 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 24 3 "Tipo documento "
|
|
||||||
FIELD LF_MOV->TIPODOC
|
|
||||||
FLAGS "D"
|
|
||||||
END
|
|
||||||
|
|
||||||
DATE F_DATADOC
|
DATE F_DATADOC
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 43 3 "Data del documento "
|
PROMPT 1 3 "Data del documento "
|
||||||
FIELD LF_MOV->DATADOC
|
FIELD LF_MOV->DATADOC
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
WARNING "Specificare la data del documento"
|
WARNING "Specificare la data del documento"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DESCR 50 50
|
STRING F_NUMDOC 7
|
||||||
|
BEGIN
|
||||||
|
PROMPT 52 3 "Documento n. "
|
||||||
|
FIELD LF_MOV->NUMDOC
|
||||||
|
WARNING "Specificare il numero documento"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCR 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Descrizione documento "
|
PROMPT 1 4 "Descrizione documento "
|
||||||
FIELD LF_MOV->DESCR
|
FIELD LF_MOV->DESCR
|
||||||
@ -76,100 +76,226 @@ END
|
|||||||
|
|
||||||
STRING F_DESCRCAUS 50
|
STRING F_DESCRCAUS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 25 5 ""
|
PROMPT 23 5 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
LIST F_CLIFO 1
|
LIST I_SEZIONE1 1 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 7 ""
|
PROMPT 1 7 "Riga 1 "
|
||||||
ITEM "C|Cliente" MESSAGE HIDE,2@|SHOW,1@
|
ITEM "D|Dare"
|
||||||
ITEM "F|Fornitore" MESSAGE HIDE,1@|SHOW,2@
|
ITEM "A|Avere"
|
||||||
FIELD LF_MOV->TIPO
|
|
||||||
FLAGS "GH"
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_CLIENTE 5
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 7 "Cliente "
|
|
||||||
FIELD LF_MOV->CODCF
|
|
||||||
GROUP 1
|
|
||||||
USE LF_CLIFO KEY 1
|
|
||||||
INPUT TIPOCF "C"
|
|
||||||
INPUT CODCF F_CLIENTE
|
|
||||||
DISPLAY "Codice" CODCF
|
|
||||||
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
|
||||||
OUTPUT F_CLIFO TIPOCF
|
|
||||||
OUTPUT F_CLIENTE CODCF
|
|
||||||
OUTPUT F_RAGSOCCLIENTE RAGSOC
|
|
||||||
OUTPUT F_GRUPPOCLIFO GRUPPO
|
|
||||||
OUTPUT F_CONTOCLIFO CONTO
|
|
||||||
MESSAGE COPY,F_FORNITORE
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
ADD RUN cg0 -1
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_FORNITORE 5
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 7 "Fornitore "
|
|
||||||
FIELD LF_MOV->CODCF
|
|
||||||
GROUP 2
|
|
||||||
USE LF_CLIFO KEY 1
|
|
||||||
INPUT TIPOCF "F"
|
|
||||||
INPUT CODCF F_FORNITORE
|
|
||||||
DISPLAY "Codice" CODCF
|
|
||||||
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
|
||||||
OUTPUT F_CLIFO TIPOCF
|
|
||||||
OUTPUT F_FORNITORE CODCF
|
|
||||||
OUTPUT F_RAGSOCFORNITORE RAGSOC
|
|
||||||
OUTPUT F_GRUPPOCLIFO GRUPPO
|
|
||||||
OUTPUT F_CONTOCLIFO CONTO
|
|
||||||
MESSAGE COPY,F_CLIENTE
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
ADD RUN cg0 -1
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_RAGSOCFORNITORE 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 25 7 ""
|
|
||||||
GROUP 2
|
|
||||||
USE LF_CLIFO KEY 2
|
|
||||||
INPUT TIPOCF "F"
|
|
||||||
INPUT RAGSOC F_RAGSOCFORNITORE
|
|
||||||
COPY DISPLAY F_FORNITORE
|
|
||||||
COPY OUTPUT F_FORNITORE
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_RAGSOCCLIENTE 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 25 7 ""
|
|
||||||
GROUP 1
|
|
||||||
USE LF_CLIFO KEY 2
|
|
||||||
INPUT TIPOCF "C"
|
|
||||||
INPUT RAGSOC F_RAGSOCCLIENTE
|
|
||||||
COPY DISPLAY F_CLIENTE
|
|
||||||
COPY OUTPUT F_CLIENTE
|
|
||||||
ADD RUN cg0 -1
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_GRUPPOCLIFO 3
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 8 "Gruppo "
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_CONTOCLIFO 3
|
|
||||||
BEGIN
|
|
||||||
PROMPT 16 8 "Conto "
|
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_TOTALE 15
|
NUMBER F_TOTALE 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 "Totale documento "
|
PROMPT 18 7 ""
|
||||||
FIELD LF_MOV->TOTDOC
|
FIELD LF_MOV->TOTDOC
|
||||||
|
FLAGS "R"
|
||||||
PICTURE "."
|
PICTURE "."
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
MESSAGE COPY,I_IMPORTO2
|
||||||
END
|
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
|
||||||
|
FIELD LF_MOV->TIPO
|
||||||
|
FLAGS "GD"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_GRUPPOCLIFO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 7 ""
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Gruppo assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CONTOCLIFO 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 57 7 ""
|
||||||
|
USE LF_PCON SELECT TMCF==#F_CLIFO
|
||||||
|
INPUT GRUPPO F_GRUPPOCLIFO
|
||||||
|
INPUT CONTO F_CONTOCLIFO
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT F_GRUPPOCLIFO GRUPPO
|
||||||
|
OUTPUT F_CONTOCLIFO CONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Conto assente"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_CLIENTE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 65 7 ""
|
||||||
|
FIELD LF_MOV->CODCF
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF "C"
|
||||||
|
INPUT CODCF F_CLIENTE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
|
||||||
|
OUTPUT F_CLIENTE CODCF
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER F_FORNITORE 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 65 7 ""
|
||||||
|
FIELD LF_MOV->CODCF
|
||||||
|
USE LF_CLIFO
|
||||||
|
INPUT TIPOCF "F"
|
||||||
|
INPUT CODCF F_FORNITORE
|
||||||
|
DISPLAY "Codice" CODCF
|
||||||
|
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
|
||||||
|
OUTPUT F_FORNITORE CODCF
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
LIST I_SEZIONE2 1 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 8 "Riga 2 "
|
||||||
|
ITEM "D|Dare"
|
||||||
|
ITEM "A|Avere"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_IMPORTO2 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 18 8 ""
|
||||||
|
PICTURE "."
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST DLG_NULL 1 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 37 8 ""
|
||||||
|
ITEM " |Conto"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_GRUPPO2 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 8 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_CONTO2 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 57 8 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_SOTTOCONTO2 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 65 8 ""
|
||||||
|
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||||
|
INPUT GRUPPO I_GRUPPO2
|
||||||
|
INPUT CONTO I_CONTO2
|
||||||
|
INPUT SOTTOCONTO I_SOTTOCONTO2
|
||||||
|
DISPLAY "Gruppo" GRUPPO
|
||||||
|
DISPLAY "Conto" CONTO
|
||||||
|
DISPLAY "Sottoconto" SOTTOCONTO
|
||||||
|
DISPLAY "Descrizione@50" DESCR
|
||||||
|
OUTPUT I_GRUPPO2 GRUPPO
|
||||||
|
OUTPUT I_CONTO2 CONTO
|
||||||
|
OUTPUT I_SOTTOCONTO2 SOTTOCONTO
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST I_SEZIONE3 1 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 9 "Riga 2 "
|
||||||
|
ITEM "D|Dare"
|
||||||
|
ITEM "A|Avere"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_IMPORTO3 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 18 9 ""
|
||||||
|
PICTURE "."
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST DLG_NULL 1 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 37 9 ""
|
||||||
|
ITEM " |Conto"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_GRUPPO3 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 9 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_CONTO3 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 57 9 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_SOTTOCONTO3 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 65 9 ""
|
||||||
|
COPY USE I_SOTTOCONTO2
|
||||||
|
INPUT GRUPPO I_GRUPPO3
|
||||||
|
INPUT CONTO I_CONTO3
|
||||||
|
INPUT SOTTOCONTO I_SOTTOCONTO3
|
||||||
|
COPY DISPLAY I_SOTTOCONTO2
|
||||||
|
OUTPUT I_GRUPPO3 GRUPPO
|
||||||
|
OUTPUT I_CONTO3 CONTO
|
||||||
|
OUTPUT I_SOTTOCONTO3 SOTTOCONTO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
VALIDATE REQIF_FUNC 1 I_IMPORTO3
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST I_SEZIONE4 1 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "Riga 4 "
|
||||||
|
ITEM "D|Dare"
|
||||||
|
ITEM "A|Avere"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_IMPORTO4 15
|
||||||
|
BEGIN
|
||||||
|
PROMPT 18 10 ""
|
||||||
|
PICTURE "."
|
||||||
|
FLAGS "R"
|
||||||
|
END
|
||||||
|
|
||||||
|
LIST DLG_NULL 1 12
|
||||||
|
BEGIN
|
||||||
|
PROMPT 37 10 ""
|
||||||
|
ITEM " |Conto"
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_GRUPPO4 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 51 10 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_CONTO4 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 57 10 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER I_SOTTOCONTO4 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 65 10 ""
|
||||||
|
COPY USE I_SOTTOCONTO2
|
||||||
|
INPUT GRUPPO I_GRUPPO4
|
||||||
|
INPUT CONTO I_CONTO4
|
||||||
|
INPUT SOTTOCONTO I_SOTTOCONTO4
|
||||||
|
COPY DISPLAY I_SOTTOCONTO2
|
||||||
|
OUTPUT I_GRUPPO4 GRUPPO
|
||||||
|
OUTPUT I_CONTO4 CONTO
|
||||||
|
OUTPUT I_SOTTOCONTO4 SOTTOCONTO
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
VALIDATE REQIF_FUNC 1 I_IMPORTO4
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
BUTTON DLG_SAVEREC 9 2
|
BUTTON DLG_SAVEREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -12 -1 "~Registra"
|
PROMPT -12 -1 "~Registra"
|
||||||
|
@ -465,7 +465,6 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
{
|
{
|
||||||
if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
|
if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
|
||||||
{
|
{
|
||||||
TSheet_field& cg = app().cgs();
|
|
||||||
const real saldo = app().calcola_saldo();
|
const real saldo = app().calcola_saldo();
|
||||||
|
|
||||||
if (k == K_ENTER)
|
if (k == K_ENTER)
|
||||||
@ -476,6 +475,7 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TSheet_field& cg = app().cgs();
|
||||||
bool empty = TRUE;
|
bool empty = TRUE;
|
||||||
const int max = cg.items();
|
const int max = cg.items();
|
||||||
for (int i = 0; i < max; i++)
|
for (int i = 0; i < max; i++)
|
||||||
@ -484,11 +484,11 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
|
|||||||
if (!im.valore().is_zero())
|
if (!im.valore().is_zero())
|
||||||
{
|
{
|
||||||
const TBill c(cg.row(i), 3, 0x0);
|
const TBill c(cg.row(i), 3, 0x0);
|
||||||
if (!c.empty() && !c.ok())
|
if (!c.ok())
|
||||||
return error_box("Il conto della riga %d non e' completo", i+1);
|
return f.error_box("Il conto della riga %d non e' completo", i+1);
|
||||||
const TBill co(cg.row(i), 10, 0x0);
|
const TBill co(cg.row(i), 10, 0x0);
|
||||||
if (!co.empty() && !co.ok())
|
if (!c.empty() && !co.ok())
|
||||||
return error_box("La contropartita della riga %d non e' completa", i+1);
|
return f.error_box("La contropartita della riga %d non e' completa", i+1);
|
||||||
empty = FALSE;
|
empty = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -616,7 +616,19 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
if (key == K_TAB && f.dirty())
|
if (key == K_TAB && f.dirty())
|
||||||
{
|
{
|
||||||
TMask_field& i = f.mask().field(101);
|
TMask& m = f.mask();
|
||||||
|
|
||||||
|
TCodiceIVA iva(f.get());
|
||||||
|
TBill b; app().IVA2bill(iva, b);
|
||||||
|
const char tipo[2] = { b.tipo(), '\0' };
|
||||||
|
m.set(106, tipo);
|
||||||
|
m.set(107, b.gruppo());
|
||||||
|
m.set(108, b.conto());
|
||||||
|
const short id = b.tipo() == 'C' ? 209 : (b.tipo() == 'F' ? 309 : 109);
|
||||||
|
m.set(id, b.sottoconto());
|
||||||
|
m.set(id+1, b.descrizione());
|
||||||
|
|
||||||
|
TMask_field& i = m.field(101);
|
||||||
i.set_dirty();
|
i.set_dirty();
|
||||||
return imponibile_handler(i, key);
|
return imponibile_handler(i, key);
|
||||||
} else
|
} else
|
||||||
@ -844,6 +856,19 @@ bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
|
|||||||
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla "
|
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla "
|
||||||
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i);
|
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TSheet_field& iva = app().ivas();
|
||||||
|
for (int i = 0; i < iva.items(); i++)
|
||||||
|
{
|
||||||
|
TToken_string& row = iva.row(i);
|
||||||
|
const real im(row.get(0));
|
||||||
|
if (!im.is_zero())
|
||||||
|
{
|
||||||
|
const TBill c(row, 6, 0x0);
|
||||||
|
if (!c.ok())
|
||||||
|
return f.error_box("Il conto della riga iva %d non e' completo", i+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -869,12 +894,12 @@ bool TPrimanota_application::cg_conto_handler(TMask_field& f, KEY key)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TPrimanota_application::cg_clifo_handler(TMask_field& f, KEY k)
|
bool TPrimanota_application::sheet_clifo_handler(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (!suspended_handler(f, k))
|
if (!suspended_handler(f, k))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (k == K_TAB)
|
if (k == K_TAB || k == K_ENTER)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
const short cid = 100 + (f.dlg() % 100) -1;
|
const short cid = 100 + (f.dlg() % 100) -1;
|
||||||
@ -1203,44 +1228,59 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool TPrimanota_application::IVA2bill(const TCodiceIVA& iva, TBill& bill)
|
||||||
|
{
|
||||||
|
const TCausale& cau = causale();
|
||||||
|
const TString& tipo = iva.tipo();
|
||||||
|
|
||||||
|
if (tipo.not_empty())
|
||||||
|
{
|
||||||
|
if (tipo == "ES") cau.bill(5, bill); else
|
||||||
|
if (tipo == "NI") cau.bill(6, bill); else
|
||||||
|
if (tipo == "NS") cau.bill(7, bill);
|
||||||
|
}
|
||||||
|
if (!bill.ok() && !cau.corrispettivi())
|
||||||
|
{
|
||||||
|
const TMask& m = curr_mask();
|
||||||
|
bill.set(m.get_int(F_GRUPPORIC), m.get_int(F_CONTORIC), m.get_long(F_SOTTOCONTORIC));
|
||||||
|
}
|
||||||
|
if (!bill.ok())
|
||||||
|
cau.bill(2, bill);
|
||||||
|
|
||||||
|
return bill.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Handler of the F_CODIVA
|
// Handler of the F_CODIVA
|
||||||
// Certified 99%
|
// Certified 99%
|
||||||
bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
|
bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
|
||||||
{
|
{
|
||||||
if (key == K_TAB && f.focusdirty() && f.get().not_empty())
|
if (key == K_TAB && f.get().not_empty())
|
||||||
{
|
{
|
||||||
TToken_string& row = app().ivas().row(0);
|
const real imp(app().ivas().row(1).get(0)); // Se il totale non e' stato spezzato
|
||||||
const real imp(row.get(0));
|
|
||||||
if (imp == ZERO)
|
if (imp == ZERO)
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
iva_notify(0, K_SPACE);
|
iva_notify(0, K_SPACE);
|
||||||
|
|
||||||
const bool corr = app().causale().corrispettivi();
|
|
||||||
const TCodiceIVA iva(f.get());
|
const TCodiceIVA iva(f.get());
|
||||||
|
const bool corr = app().causale().corrispettivi();
|
||||||
real tot = app().totale_documento();
|
real tot = app().totale_documento();
|
||||||
real imposta;
|
real imposta;
|
||||||
if (!corr)
|
if (!corr)
|
||||||
imposta = app().scorpora(tot, iva.percentuale());
|
imposta = app().scorpora(tot, iva.percentuale());
|
||||||
|
|
||||||
|
TToken_string& row = app().ivas().row(0);
|
||||||
row.add(tot.string(), 0); // imponibile
|
row.add(tot.string(), 0); // imponibile
|
||||||
row.add(iva.codice(), 1); // codice IVA
|
|
||||||
row.add(imposta.string(), 3); // imposta
|
row.add(imposta.string(), 3); // imposta
|
||||||
|
|
||||||
TBill bill; // Conto della prima riga IVA
|
if (iva.codice() != row.get(1))
|
||||||
const TString& tipo = iva.tipo();
|
|
||||||
if (tipo.not_empty())
|
|
||||||
{
|
{
|
||||||
if (tipo == "ES") app().causale().bill(5, bill); else
|
row.add(iva.codice(), 1); // Aggiorna codice IVA
|
||||||
if (tipo == "NI") app().causale().bill(6, bill); else
|
TBill bill; // Aggiorna conto della prima riga IVA
|
||||||
if (tipo == "NS") app().causale().bill(7, bill);
|
app().IVA2bill(iva, bill);
|
||||||
}
|
|
||||||
if (!bill.ok() && !corr)
|
|
||||||
bill.set(m.get_int(F_GRUPPORIC), m.get_int(F_CONTORIC), m.get_long(F_SOTTOCONTORIC));
|
|
||||||
if (!bill.ok())
|
|
||||||
app().causale().bill(2, bill);
|
|
||||||
bill.add_to(row, 4, 0x7);
|
bill.add_to(row, 4, 0x7);
|
||||||
|
}
|
||||||
app().ivas().force_update(0);
|
app().ivas().force_update(0);
|
||||||
|
|
||||||
iva_notify(0, K_ENTER);
|
iva_notify(0, K_ENTER);
|
||||||
@ -1255,7 +1295,10 @@ bool TPrimanota_application::totale_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
bool ok = TRUE;
|
bool ok = TRUE;
|
||||||
if (key == K_TAB && f.focusdirty())
|
if (key == K_TAB && f.focusdirty())
|
||||||
|
{
|
||||||
app().add_cgs_tot(f.mask());
|
app().add_cgs_tot(f.mask());
|
||||||
|
f.mask().field(F_CODIVA).on_hit();
|
||||||
|
}
|
||||||
|
|
||||||
if (key == K_ENTER && f.get().empty())
|
if (key == K_ENTER && f.get().empty())
|
||||||
ok = f.yesno_box("Totale documento nullo: continuare ugualmente?");
|
ok = f.yesno_box("Totale documento nullo: continuare ugualmente?");
|
||||||
|
@ -70,12 +70,12 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool solaiva_handler(TMask_field& f, KEY key);
|
static bool solaiva_handler(TMask_field& f, KEY key);
|
||||||
static bool descr_handler(TMask_field& f, KEY k);
|
static bool descr_handler(TMask_field& f, KEY k);
|
||||||
|
|
||||||
|
static bool sheet_clifo_handler(TMask_field& f, KEY k);
|
||||||
static bool imponibile_handler(TMask_field& f, KEY key);
|
static bool imponibile_handler(TMask_field& f, KEY key);
|
||||||
static bool codiva_handler(TMask_field& f, KEY key);
|
static bool codiva_handler(TMask_field& f, KEY key);
|
||||||
static bool imposta_handler(TMask_field& f, KEY key);
|
static bool imposta_handler(TMask_field& f, KEY key);
|
||||||
static bool dareavere_handler(TMask_field& f, KEY k);
|
static bool dareavere_handler(TMask_field& f, KEY k);
|
||||||
static bool cg_conto_handler(TMask_field& f, KEY key);
|
static bool cg_conto_handler(TMask_field& f, KEY key);
|
||||||
static bool cg_clifo_handler(TMask_field& f, KEY k);
|
|
||||||
|
|
||||||
static bool iva_notify(int r, KEY key);
|
static bool iva_notify(int r, KEY key);
|
||||||
static bool iva_handler(TMask_field& f, KEY key);
|
static bool iva_handler(TMask_field& f, KEY key);
|
||||||
@ -83,7 +83,6 @@ class TPrimanota_application : public TRelation_application
|
|||||||
static bool cg_handler(TMask_field& f, KEY key);
|
static bool cg_handler(TMask_field& f, KEY key);
|
||||||
static bool pag_notify(int r, KEY key);
|
static bool pag_notify(int r, KEY key);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool user_create();
|
virtual bool user_create();
|
||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
@ -132,6 +131,7 @@ protected:
|
|||||||
static real scorpora(real& imponibile, const real& percentuale);
|
static real scorpora(real& imponibile, const real& percentuale);
|
||||||
static bool detraibile(TToken_string& row);
|
static bool detraibile(TToken_string& row);
|
||||||
|
|
||||||
|
bool IVA2bill(const TCodiceIVA& iva, TBill& bill);
|
||||||
int bill2contr(const TBill& c, char sezione) const;
|
int bill2contr(const TBill& c, char sezione) const;
|
||||||
int bill_used(const TBill& conto) const;
|
int bill_used(const TBill& conto) const;
|
||||||
int det_used(char detraib) const;
|
int det_used(char detraib) const;
|
||||||
|
@ -342,6 +342,12 @@ const char* TCausale::desc_agg(int num) const
|
|||||||
return da.get("S0");
|
return da.get("S0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* TCausale::descrizione() const
|
||||||
|
{ return _rec.ok() ? _rec.get(CAU_DESCR) : ""; }
|
||||||
|
|
||||||
|
const char* TCausale::codice() const
|
||||||
|
{ return _rec.ok() ? _rec.get(CAU_CODCAUS) : ""; }
|
||||||
|
|
||||||
|
|
||||||
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; }
|
||||||
|
@ -80,6 +80,9 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TBill& bill(int num, TBill& c) const;
|
TBill& bill(int num, TBill& c) const;
|
||||||
|
|
||||||
|
const char* codice() const;
|
||||||
|
const char* descrizione() const;
|
||||||
const char* desc_agg(int num) const;
|
const char* desc_agg(int num) const;
|
||||||
|
|
||||||
bool data_doc() const;
|
bool data_doc() const;
|
||||||
|
@ -72,7 +72,6 @@ BEGIN
|
|||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
ADD RUN CG0 -0
|
ADD RUN CG0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 2 101 102
|
|
||||||
MESSAGE DIRTY,106|DIRTY,206|DIRTY,306
|
MESSAGE DIRTY,106|DIRTY,206|DIRTY,306
|
||||||
WARNING "Conto inesistente o mancante sulla riga contabile"
|
WARNING "Conto inesistente o mancante sulla riga contabile"
|
||||||
END
|
END
|
||||||
@ -95,7 +94,6 @@ BEGIN
|
|||||||
OUTPUT 107 DESCR
|
OUTPUT 107 DESCR
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 2 101 102
|
|
||||||
WARNING "Sottoconto inesistente sulla riga contabile"
|
WARNING "Sottoconto inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -115,7 +113,6 @@ BEGIN
|
|||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 2 101 102
|
|
||||||
WARNING "Cliente inesistente sulla riga contabile"
|
WARNING "Cliente inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -136,7 +133,6 @@ BEGIN
|
|||||||
ADD RUN cg0 -1
|
ADD RUN cg0 -1
|
||||||
MESSAGE COPY,106
|
MESSAGE COPY,106
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
VALIDATE REQIF_FUNC 2 101 102
|
|
||||||
WARNING "Fornitore inesistente sulla riga contabile"
|
WARNING "Fornitore inesistente sulla riga contabile"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -340,6 +336,7 @@ END
|
|||||||
BUTTON DLG_DELREC 9 2
|
BUTTON DLG_DELREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -33 -1 "Elimina"
|
PROMPT -33 -1 "Elimina"
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -42,7 +42,6 @@ BEGIN
|
|||||||
OUTPUT 105 TIPOSPRIC
|
OUTPUT 105 TIPOSPRIC
|
||||||
ADD RUN cg0 -0
|
ADD RUN cg0 -0
|
||||||
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
|
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
|
||||||
VALIDATE REQIF_FUNC 1 101
|
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
WARNING "Conto inesistente nella riga IVA"
|
WARNING "Conto inesistente nella riga IVA"
|
||||||
END
|
END
|
||||||
@ -249,6 +248,7 @@ END
|
|||||||
BUTTON DLG_DELREC 9 2
|
BUTTON DLG_DELREC 9 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -33 -1 "Elimina"
|
PROMPT -33 -1 "Elimina"
|
||||||
|
MESSAGE EXIT,K_DEL
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -426,7 +426,7 @@ void TApplication::about() const
|
|||||||
{
|
{
|
||||||
#include <prassi.ver>
|
#include <prassi.ver>
|
||||||
const TFilename n(__argv[0]);
|
const TFilename n(__argv[0]);
|
||||||
message_box("PRASSI Versione Beta %3.1f\nProgramma %s\nLibreria del %s",
|
message_box("PRASSI Versione Beta %4.2f\nProgramma %s\nLibreria del %s",
|
||||||
VERSION, (const char*)n.name(), __DATE__);
|
VERSION, (const char*)n.name(), __DATE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// $Id: maskfld.cpp,v 1.32 1994-10-19 13:56:40 alex Exp $
|
// $Id: maskfld.cpp,v 1.33 1994-10-19 15:00:23 guy Exp $
|
||||||
#include <xvt.h>
|
#include <xvt.h>
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
@ -1558,7 +1558,7 @@ const TBrowse* TEdit_field::get_browse(TScanner& scanner) const
|
|||||||
const TBrowse* b = (const TBrowse*)f.browse();
|
const TBrowse* b = (const TBrowse*)f.browse();
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (b == NULL)
|
if (b == NULL)
|
||||||
error_box("La USE del campo %d non puo' essere copiata nel campo %d", id, dlg());
|
error_box("La USE del campo %d e' nulla e non puo' essere copiata nel campo %d", id, dlg());
|
||||||
#endif
|
#endif
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
@ -118,6 +118,7 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
|
|||||||
const int NUMBER_WIDTH = 3;
|
const int NUMBER_WIDTH = 3;
|
||||||
const int MAX_COL = 32;
|
const int MAX_COL = 32;
|
||||||
int m_width[MAX_COL], v_width[MAX_COL];
|
int m_width[MAX_COL], v_width[MAX_COL];
|
||||||
|
int fixed_columns = 1; // Number of fixed columns
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
@ -139,7 +140,10 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
|
|||||||
int m, v;
|
int m, v;
|
||||||
if (at >= 0)
|
if (at >= 0)
|
||||||
{
|
{
|
||||||
m = atoi(testa.mid(at+1));
|
const TString& wi = testa.mid(at+1);
|
||||||
|
if (wi[wi.len()-1] == 'F')
|
||||||
|
fixed_columns++;
|
||||||
|
m = atoi(wi);
|
||||||
testa.cut(at);
|
testa.cut(at);
|
||||||
v = max(at, m+(f->has_query() ? 1 : 0));
|
v = max(at, m+(f->has_query() ? 1 : 0));
|
||||||
}
|
}
|
||||||
@ -186,7 +190,7 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
|
|||||||
listdef->v.list->movable_columns = TRUE;
|
listdef->v.list->movable_columns = TRUE;
|
||||||
listdef->v.list->scroll_bar = TRUE;
|
listdef->v.list->scroll_bar = TRUE;
|
||||||
listdef->v.list->scroll_bar_button = TRUE;
|
listdef->v.list->scroll_bar_button = TRUE;
|
||||||
listdef->v.list->fixed_columns = 1;
|
listdef->v.list->fixed_columns = fixed_columns;
|
||||||
listdef->v.list->width = rct.right-rct.left;
|
listdef->v.list->width = rct.right-rct.left;
|
||||||
listdef->v.list->min_cell_height = CHARY;
|
listdef->v.list->min_cell_height = CHARY;
|
||||||
listdef->v.list->min_heading_height = CHARY;
|
listdef->v.list->min_heading_height = CHARY;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define VERSION 1.10
|
#define VERSION 1.11
|
||||||
|
@ -441,15 +441,18 @@ HIDDEN bool _mtcheck_val(TEdit_field& f, KEY)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
HIDDEN bool _reqif_val(TEdit_field& f, KEY)
|
HIDDEN bool _reqif_val(TEdit_field& f, KEY k)
|
||||||
{
|
{
|
||||||
|
if (k == K_ENTER)
|
||||||
|
{
|
||||||
if (f.get().not_empty()) return TRUE;
|
if (f.get().not_empty()) return TRUE;
|
||||||
const int nparms = get_val_param_num();
|
const int nparms = get_val_param_num();
|
||||||
for (int i = 0 ; i < nparms; i++)
|
for (int i = 0 ; i < nparms; i++)
|
||||||
{
|
{
|
||||||
const char* s = get_val_param(i);
|
const short id = atoi(get_val_param(i));
|
||||||
if (*s == '\0') break;
|
if (id > 0 && f.mask().get(id).not_empty())
|
||||||
if (f.mask().get(atoi(s)).not_empty()) return FALSE;
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user