git-svn-id: svn://10.65.10.50/branches/R_10_00@23196 c028cbd2-c16b-5b4b-a496-9718f37d4682

This commit is contained in:
guy 2016-04-15 08:19:30 +00:00
parent 1a83d268cb
commit 89ff9d2175
10 changed files with 833 additions and 6 deletions

View File

@ -613,7 +613,6 @@ void TPE_mask::save_rate()
const TString& codval = get(F_CODVAL);
const real cambio = get(F_CAMBIO);
const bool eurocambio = get_bool(F_EURO);
bool zeroes = FALSE; // Esistono righe effetto da cancellare
@ -625,7 +624,7 @@ void TPE_mask::save_rate()
if (codval.not_empty() && !imp.is_zero())
{
impval = imp;
TCurrency c(impval, codval, cambio, eurocambio ? _exchange_contro : _exchange_base);
TCurrency c(impval, codval, cambio);
c.change_to_firm_val();
imp = c.get_num();
}
@ -746,7 +745,6 @@ void TPE_mask::save_rate()
eff.put(EFF_IMPORTOVAL, totimpval);
eff.put(EFF_CODVAL, codval);
eff.put(EFF_CAMBIO, cambio);
eff.put(EFF_CONTROEURO, eurocambio);
eff.put(EFF_DATACAMBIO, get(F_DATACAMBIO));
eff.put(EFF_SPESE, get(F_SPESE));
}

9
ps/ps0431.cpp Normal file
View File

@ -0,0 +1,9 @@
#include <xvt.h>
#include "ps0431.h"
int main(int argc, char** argv)
{
ps0431100(argc, argv);
return 0;
}

1
ps/ps0431.h Normal file
View File

@ -0,0 +1 @@
int ps0431100(int argc, char* argv[]);

445
ps/ps0431100.cpp Normal file
View File

@ -0,0 +1,445 @@
#include <applicat.h>
#include <automask.h>
#include <progind.h>
#include <recarray.h>
#include <reputils.h>
#include <textset.h>
#include "../cg/cg2101.h"
#include "ps0431.h"
#include "ps0431100a.h"
#include <causali.h>
#include <clifo.h>
#include <mov.h>
#include <pconti.h>
#include <rmov.h>
#include <rmoviva.h>
///////////////////////////////////////////////////////////
// TApollonia_msk
///////////////////////////////////////////////////////////
class TApollonia_msk : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TApollonia_msk() : TAutomask("ps0431100a") {}
};
bool TApollonia_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case F_CAUFAT:
if (e == fe_modify || e == fe_init)
{
if (field(F_CONCLI).empty())
{
const TRectype& rcaus1 = cache().get_rec(LF_RCAUSALI, o.get(), "1");
set(F_GRUCLI, rcaus1.get("GRUPPO"));
set(F_CONCLI, rcaus1.get("CONTO"), 0x3);
if (field(F_CONCLI).empty())
{
TISAM_recordset pcon("USE PCON SELECT TMCF='C'");
if (pcon.move_first())
{
set(F_GRUCLI, pcon.get("GRUPPO").as_int());
set(F_CONCLI, pcon.get("CONTO").as_int(), 0x3);
}
}
}
if (field(F_CONRIC).empty())
{
const TRectype& rcaus2 = cache().get_rec(LF_RCAUSALI, o.get(), "2");
set(F_GRURIC, rcaus2.get("GRUPPO"));
set(F_CONRIC, rcaus2.get("CONTO"));
set(F_SOTRIC, rcaus2.get("SOTTOCONTO"), 0x3);
}
}
break;
default: break;
}
return true;
}
///////////////////////////////////////////////////////////
// TApollonia_set
///////////////////////////////////////////////////////////
class TApollonia_set : public TCSV_recordset
{
public:
int get_int(const char* name) const { return TRecordset::get(name).as_int(); }
real get_real(const char* name) const;
const TString& get_str(const char* name) const { return TRecordset::get(name).as_string(); }
TApollonia_set(const TString& name);
};
real TApollonia_set::get_real(const char* name) const
{
TString16 val = TRecordset::get(name).as_string();
val.replace(',','.');
return real(val);
}
TApollonia_set::TApollonia_set(const TString& name) : TCSV_recordset("CSV(;)")
{
create_column("NOME", _alfafld);
create_column("COGNOME", _alfafld);
create_column("INDIRIZZO", _alfafld);
create_column("CITTA", _alfafld);
create_column("PROVINCIA", _alfafld);
create_column("CAP", _intfld);
create_column("CODFIS", _alfafld);
create_column("DATA", _datefld);
create_column("DESCR", _alfafld);
create_column("ENTRATA", _realfld);
create_column("USCITA", _realfld);
create_column("CB", _alfafld);
create_column("TIPOPAG", _alfafld);
create_column("DESPAG", _alfafld);
create_column("IMPONIBILE",_realfld);
create_column("IVA", _realfld);
create_column("RA", _realfld);
create_column("BOLLO", _realfld);
create_column("NUMERO", _intfld);
const TFilename fn = name;
load_file(fn);
}
///////////////////////////////////////////////////////////
// TApollonia_app
///////////////////////////////////////////////////////////
class TApollonia_app : public TSkeleton_application
{
long _codcf, _numreg;
TString4 _caufat,_caupag, _codiva;
TBill _contoric, _clifo, _contocas, _contoass, _contoban, _contocar;
bool _read_only;
protected:
long cliente(const TApollonia_set& rec, TLog_report& log);
bool fattura(const TApollonia_set& rec, TLog_report& log);
bool pagame(const TApollonia_set& rec, TLog_report& log);
void elabora_riga(const TApollonia_set& rec, TLog_report& log);
public:
virtual void main_loop();
};
// cerca o crea un cliente e ne ritorna il codice
long TApollonia_app::cliente(const TApollonia_set& rec, TLog_report& log)
{
TString16 cf = rec.get_str("CODFIS"); cf.trim();
if (cf.len() < 11)
{
TString msg;
msg.format("Riga %5ld: Codice fiscale non valido '%s'", rec.current_row()+1, (const char*)cf);
return 0;
}
TLocalisamfile cfile(LF_CLIFO);
TRectype& crec = cfile.curr();
cfile.setkey(4);
crec.put(CLI_TIPOCF, 'C');
crec.put(CLI_COFI, cf);
if (cfile.read() == NOERR)
return crec.get_long(CLI_CODCF);
if (cf.len() <= 12)
{
cfile.zero();
cfile.setkey(5);
crec.put(CLI_TIPOCF, 'C');
crec.put(CLI_PAIV, cf);
if (cfile.read() == NOERR)
return crec.get_long(CLI_CODCF);
}
TString80 ragsoc;
ragsoc = rec.get_str("COGNOME");
ragsoc.overwrite(rec.get_str("NOME"), 30);
ragsoc.cut(50); ragsoc.trim();
_codcf++;
cfile.zero();
crec.put(CLI_TIPOCF, 'C');
crec.put(CLI_CODCF, _codcf);
crec.put(CLI_RAGSOC, ragsoc);
if (cf[0] < '8')
crec.put(CLI_PAIV, cf);
else
crec.put(CLI_COFI, cf);
TString80 indirizzo = rec.get_str("INDIRIZZO");
const int comma = indirizzo.rfind(',');
if (comma > 4)
{
TString80 civ = indirizzo.mid(comma+1);
civ.trim();
if (civ.full() && civ.len() <= 8)
{
crec.put(CLI_CIVCF, civ);
indirizzo.cut(comma);
}
}
crec.put(CLI_INDCF, indirizzo);
const TString8 cap = rec.get_str("CAP");
const TString& codcom = cap2comune(cap, rec.get_str("CITTA"));
crec.put(CLI_COMCF, codcom);
crec.put(CLI_CAPCF, cap);
if (codcom.empty())
crec.put(CLI_LOCCF, rec.get_str("CITTA"));
if (!_read_only)
{
cfile.setkey(1);
while (cfile.write() == _isreinsert)
crec.put(CLI_CODCF, ++_codcf);
}
TString msg; msg << TR("Creazione cliente ") << _codcf << ' ' << ragsoc;
log.log(1, msg);
return _codcf;
}
bool TApollonia_app::fattura(const TApollonia_set& rec, TLog_report& log)
{
const int numdoc = rec.get_int("NUMERO");
if (numdoc <= 0)
return false; // Anticipo segnalato oltre
_numreg++;
TMovimentoPN mov;
TRectype& mrec = mov.curr();
const TDate datareg = rec.get_str("DATA");
mrec.put(MOV_NUMREG, _numreg);
mrec.put(MOV_DATAREG, datareg);
mrec.put(MOV_ANNOIVA, datareg.year());
mrec.put(MOV_PROTIVA, numdoc);
mrec.put(MOV_NUMDOC, numdoc);
mrec.put(MOV_DATADOC, datareg);
TString80 desc; desc.format(FR("Fattura n. %d"), numdoc);
mrec.put(MOV_DESCR, desc);
TEsercizi_contabili esc;
const int annoes = esc.date2esc(datareg);
mrec.put(MOV_DATACOMP, datareg);
mrec.put(MOV_ANNOES, annoes);
mrec.put(MOV_TIPO, 'C');
mrec.put(MOV_CODCF, _clifo.codclifo());
const TCausale caus(_caufat, datareg.year());
mrec.put(MOV_CODCAUS, _caufat);
mrec.put(MOV_REG, caus.reg().name());
const real imp = rec.get_real("IMPONIBILE");
mrec.put(MOV_TOTDOC, imp);
TRectype& irec = mov.iva(0);
irec.put(RMI_IMPONIBILE, imp);
irec.put(RMI_CODIVA, _codiva);
irec.put(RMI_IMPOSTA, rec.get_real("IVA"));
_contoric.put(irec);
TRectype& r1 = mov.cg(0);
r1.put(RMV_SEZIONE, 'D');
r1.put(RMV_IMPORTO, imp);
r1.put(RMV_DATAREG, datareg);
r1.put(RMV_ANNOES, annoes);
_clifo.put(r1);
_contoric.put(r1, true);
TRectype& r2 = mov.cg(1);
r2.put(RMV_SEZIONE, 'A');
r2.put(RMV_IMPORTO, imp);
r2.put(RMV_DATAREG, datareg);
r2.put(RMV_ANNOES, annoes);
_clifo.put(r2, true);
_contoric.put(r2);
if (!_read_only)
{
while (mov.write() == _isreinsert)
mrec.put(MOV_NUMREG, ++_numreg);
}
TString msg; msg.format(TR("Fattura %d del %s : n. reg. %ld %s"),
numdoc, datareg.stringa(), _numreg, (const char*)rec.get_str("COGNOME"));
log.log(0, msg);
return true;
}
bool TApollonia_app::pagame(const TApollonia_set& rec, TLog_report& log)
{
TMovimentoPN mov;
TRectype& mrec = mov.curr();
_numreg++;
const TDate datareg = rec.get_str("DATA");
mrec.put(MOV_NUMREG, _numreg);
mrec.put(MOV_DATAREG, datareg);
mrec.put(MOV_DATADOC, datareg);
const int numdoc = rec.get_int("NUMERO");
mrec.put(MOV_NUMDOC, numdoc);
TString desc;
desc = rec.get_str("DESCR");
if (desc.blank())
{
if (numdoc > 0)
desc.format(FR("Incasso Fattura n. %d"), numdoc);
else
desc.format(FR("Anticipo su fattura"));
}
mrec.put(MOV_DESCR, desc);
TEsercizi_contabili esc;
const int annoes = esc.date2esc(datareg);
mrec.put(MOV_DATACOMP, datareg);
mrec.put(MOV_ANNOES, annoes);
mrec.put(MOV_CODCAUS, _caupag);
const real imp = rec.get_real("IMPONIBILE");
mrec.put(MOV_TOTDOC, imp);
TBill counter = _contocas;
const TString& tipopag = rec.get_str("TIPOPAG");
if (tipopag.starts_with("Con", true))
counter = _contocas; else
if (tipopag.starts_with("Ass", true))
counter = _contoass; else
if (tipopag.starts_with("Ban", true))
counter = _contoban; else
if (tipopag.starts_with("Car", true))
counter = _contocar;
TRectype& r1 = mov.cg(0);
r1.put(RMV_SEZIONE, 'A');
r1.put(RMV_IMPORTO, imp);
r1.put(RMV_DATAREG, datareg);
r1.put(RMV_ANNOES, annoes);
_clifo.put(r1);
counter.put(r1, true);
TRectype& r2 = mov.cg(1);
r2.put(RMV_SEZIONE, 'D');
r2.put(RMV_IMPORTO, imp);
r2.put(RMV_DATAREG, datareg);
r2.put(RMV_ANNOES, annoes);
counter.put(r2);
_clifo.put(r2, true);
if (!_read_only)
{
while (mov.write() == _isreinsert)
mrec.put(MOV_NUMREG, ++_numreg);
}
TString msg;
if (numdoc > 0)
{
msg.format(FR("Incasso fattura %d del %s : n. reg. %ld %s"),
numdoc, datareg.stringa(), _numreg, (const char*)rec.get_str("COGNOME"));
log.log(0, msg);
}
else
{
msg.format(FR("Anticipo del %s : n. reg. %ld %s"),
datareg.stringa(), _numreg, (const char*)rec.get_str("COGNOME"));
log.log(1, msg);
}
return true;
}
void TApollonia_app::elabora_riga(const TApollonia_set& rec, TLog_report& log)
{
const long codcf = cliente(rec, log);
if (codcf > 0)
{
_clifo.codclifo() = codcf;
fattura(rec, log);
pagame(rec, log);
}
}
void TApollonia_app::main_loop()
{
open_files(LF_TABCOM, LF_COMUNI, LF_CLIFO, LF_CAUSALI, LF_MOV, LF_RMOV,LF_RMOVIVA, 0);
TApollonia_msk m;
while (m.run() == K_ENTER)
{
const TFilename txt = m.get(F_FILE);
TLog_report log(txt.name());
if (txt.exist())
{
TApollonia_set recset(txt);
TProgress_monitor pi(recset.items(), TR("Importazione txt"));
_caufat = m.get(F_CAUFAT);
_caupag = m.get(F_CAUPAG);
_clifo.set(m.get_int(F_GRUCLI), m.get_int(F_CONCLI), 0L, 'C');
_contoric.get(m, F_GRURIC, F_CONRIC, F_SOTRIC);
_contocas.get(m, F_GRUCAS, F_CONCAS, F_SOTCAS);
_contoass.get(m, F_GRUASS, F_CONASS, F_SOTASS);
_contoban.get(m, F_GRUBAN, F_CONBAN, F_SOTBAN);
_contocar.get(m, F_GRUCAR, F_CONCAR, F_SOTCAR);
_codiva = m.get(F_CODIVA);
_read_only = m.get_bool(F_READONLY);
if (!_read_only)
_read_only = !yesno_box(TR("Confermare la registrazione definitiva dei movimenti"));
_codcf = _numreg = 0;
if (_codcf <= 0) // Dummy test
{
TLocalisamfile cfile(LF_CLIFO);
cfile.put(CLI_TIPOCF, 'F');
if (cfile.read(_isgteq) == NOERR)
{
if (cfile.read(_isprev) == NOERR)
_codcf = cfile.get_long(CLI_CODCF);
}
}
if (_numreg <= 0) // Dummy Test
{
TLocalisamfile mfile(LF_MOV);
if (mfile.last() == NOERR)
_numreg = mfile.get_long(MOV_NUMREG);
}
for (bool go = recset.move_first(); go; go = recset.move_next())
{
if (recset.get_real("IMPONIBILE").is_zero())
continue;
elabora_riga(recset, log);
pi.set_status(recset.current_row());
}
}
if (log.recordset()->items())
log.preview();
}
}
int ps0431100(int argc, char* argv[])
{
TApollonia_app a;
a.run(argc, argv, TR("Generazione fatture"));
return 0;
}

39
ps/ps0431100a.h Normal file
View File

@ -0,0 +1,39 @@
#define F_FILE 101
#define F_CAUPAG 102
#define F_DESPAG 103
#define F_CAUFAT 104
#define F_DESFAT 105
#define F_CODIVA 106
#define F_DESIVA 107
#define F_GRURIC 110
#define F_CONRIC 111
#define F_SOTRIC 112
#define F_DESRIC 113
#define F_GRUCAS 120
#define F_CONCAS 121
#define F_SOTCAS 122
#define F_DESCAS 123
#define F_GRUASS 130
#define F_CONASS 131
#define F_SOTASS 132
#define F_DESASS 133
#define F_GRUBAN 140
#define F_CONBAN 141
#define F_SOTBAN 142
#define F_DESBAN 143
#define F_GRUCAR 150
#define F_CONCAR 151
#define F_SOTCAR 152
#define F_DESCAR 153
#define F_GRUCLI 160
#define F_CONCLI 161
#define F_DESCLI 163
#define F_READONLY 201

333
ps/ps0431100a.uml Normal file
View File

@ -0,0 +1,333 @@
#include "ps0431100a.h"
PAGE "Importazione Fatture" -1 -1 73 13
STRING F_FILE 260 57
BEGIN
PROMPT 1 1 "File TXT "
FSELECT "*.txt"
END
STRING F_CAUPAG 3
BEGIN
PROMPT 1 2 "Incassi "
USE LF_CAUSALI SELECT (REG=="")&&(TIPOMOV="")
INPUT CODCAUS F_CAUPAG
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUPAG CODCAUS
OUTPUT F_DESPAG DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -4
END
STRING F_DESPAG 50
BEGIN
PROMPT 19 2 ""
USE LF_CAUSALI KEY 2 SELECT (REG=="")&&(TIPOMOV="")
INPUT DESCR F_DESPAG
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CAUPAG
CHECKTYPE SEARCH
ADD RUN cg0 -4
END
STRING F_CAUFAT 3
BEGIN
PROMPT 1 3 "Fatture "
USE LF_CAUSALI SELECT (TIPODOC="FV")&&(TIPOMOV="")
INPUT CODCAUS F_CAUFAT
COPY DISPLAY F_CAUPAG
OUTPUT F_CAUFAT CODCAUS
OUTPUT F_DESFAT DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -4
END
STRING F_DESFAT 50
BEGIN
PROMPT 19 3 ""
USE LF_CAUSALI SELECT (TIPODOC="FV")&&(TIPOMOV="")
INPUT DESCR F_DESFAT
COPY DISPLAY F_DESPAG
COPY OUTPUT F_CAUFAT
CHECKTYPE SEARCH
ADD RUN cg0 -4
END
STRING F_CODIVA 4
BEGIN
PROMPT 1 4 "Codice IVA "
USE %IVA
INPUT CODTAB F_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUPUT F_CODIVA CODTAB
OUTPUT F_DESIVA S0
CHECKTYPE REQUIRED
END
STRING F_DESIVA 50
BEGIN
PROMPT 19 4 ""
USE %IVA KEY 2
INPUT S0 F_DESIVA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUPUT F_CODIVA
CHECKTYPE REQUIRED
END
NUMBER F_GRUCLI 3
BEGIN
PROMPT 1 5 "Clienti "
END
NUMBER F_CONCLI 3
BEGIN
PROMPT 15 5 ""
USE LF_PCON SELECT (TMCF="C")&&(SOTTOCONTO="")
INPUT GRUPPO F_GRUCLI
INPUT CONTO F_CONCLI
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUCLI GRUPPO
OUTPUT F_CONCLI CONTO
OUTPUT F_DESCLI DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESCLI 50 40
BEGIN
PROMPT 29 5 ""
USE LF_PCON KEY 2 SELECT (TMCF="C")&&(SOTTOCONTO="")
INPUT DESCR F_DESRIC
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
COPY OUTPUT F_CONCLI
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
NUMBER F_GRURIC 3
BEGIN
PROMPT 1 6 "Ricavi "
END
NUMBER F_CONRIC 3
BEGIN
PROMPT 15 6 ""
END
NUMBER F_SOTRIC 6
BEGIN
PROMPT 20 6 ""
USE LF_PCON SELECT (SOTTOCONTO!=0)&&(201@->INDBIL=4)
JOIN LF_PCON ALIAS 201 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT GRUPPO F_GRURIC
INPUT CONTO F_CONRIC
INPUT SOTTOCONTO F_SOTRIC
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoc." SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRURIC GRUPPO
OUTPUT F_CONRIC CONTO
OUTPUT F_SOTRIC SOTTOCONTO
OUTPUT F_DESRIC DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESRIC 50 40
BEGIN
PROMPT 29 6 ""
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!=0)&&(201@->INDBIL=4)
JOIN LF_PCON ALIAS 201 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_DESRIC
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoc." SOTTOCONTO
COPY OUTPUT F_SOTRIC
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
NUMBER F_GRUCAS 3
BEGIN
PROMPT 1 7 "Contanti "
END
NUMBER F_CONCAS 3
BEGIN
PROMPT 15 7 ""
END
NUMBER F_SOTCAS 6
BEGIN
PROMPT 20 7 ""
USE LF_PCON SELECT (SOTTOCONTO!=0)
JOIN LF_PCON ALIAS 201 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT GRUPPO F_GRUCAS
INPUT CONTO F_CONCAS
INPUT SOTTOCONTO F_SOTCAS
COPY DISPLAY F_SOTRIC
OUTPUT F_GRUCAS GRUPPO
OUTPUT F_CONCAS CONTO
OUTPUT F_SOTCAS SOTTOCONTO
OUTPUT F_DESCAS DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESCAS 40
BEGIN
PROMPT 29 7 ""
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!=0)
JOIN LF_PCON ALIAS 201 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_DESCAS
COPY DISPLAY F_DESRIC
COPY OUTPUT F_SOTCAS
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
NUMBER F_GRUASS 3
BEGIN
PROMPT 1 8 "Assegni "
END
NUMBER F_CONASS 3
BEGIN
PROMPT 15 8 ""
END
NUMBER F_SOTASS 6
BEGIN
PROMPT 20 8 ""
COPY USE F_SOTCAS
INPUT GRUPPO F_GRUASS
INPUT CONTO F_CONASS
INPUT SOTTOCONTO F_SOTASS
COPY DISPLAY F_SOTCAS
OUTPUT F_GRUASS GRUPPO
OUTPUT F_CONASS CONTO
OUTPUT F_SOTASS SOTTOCONTO
OUTPUT F_DESASS DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESASS 40
BEGIN
PROMPT 29 8 ""
COPY USE F_DESCAS
INPUT DESCR F_DESASS
COPY DISPLAY F_DESCAS
COPY OUTPUT F_SOTASS
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
NUMBER F_GRUBAN 3
BEGIN
PROMPT 1 9 "Bancomat "
END
NUMBER F_CONBAN 3
BEGIN
PROMPT 15 9 ""
END
NUMBER F_SOTBAN 6
BEGIN
PROMPT 20 9 ""
COPY USE F_SOTCAS
INPUT GRUPPO F_GRUBAN
INPUT CONTO F_CONBAN
INPUT SOTTOCONTO F_SOTBAN
COPY DISPLAY F_SOTCAS
OUTPUT F_GRUBAN GRUPPO
OUTPUT F_CONBAN CONTO
OUTPUT F_SOTBAN SOTTOCONTO
OUTPUT F_DESBAN DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESBAN 40
BEGIN
PROMPT 29 9 ""
COPY USE F_DESCAS
INPUT DESCR F_DESBAN
COPY DISPLAY F_DESCAS
COPY OUTPUT F_SOTBAN
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
NUMBER F_GRUCAR 3
BEGIN
PROMPT 1 10 "Carta "
END
NUMBER F_CONCAR 3
BEGIN
PROMPT 15 10 ""
END
NUMBER F_SOTCAR 6
BEGIN
PROMPT 20 10 ""
COPY USE F_SOTCAS
INPUT GRUPPO F_GRUCAR
INPUT CONTO F_CONCAR
INPUT SOTTOCONTO F_SOTCAR
COPY DISPLAY F_SOTCAS
OUTPUT F_GRUCAR GRUPPO
OUTPUT F_CONCAR CONTO
OUTPUT F_SOTCAR SOTTOCONTO
OUTPUT F_DESCAR DESCR
CHECKTYPE REQUIRED
ADD RUN cg0 -0
END
STRING F_DESCAR 40
BEGIN
PROMPT 29 10 ""
COPY USE F_DESCAS
INPUT DESCR F_DESCAR
COPY DISPLAY F_DESCAS
COPY OUTPUT F_SOTCAR
CHECKTYPE SEARCH
ADD RUN cg0 -0
END
BOOLEAN F_READONLY
BEGIN
PROMPT 1 -1 "Sola lettura (non vengono generati movimenti)"
END
STRING DLG_PROFILE 60
BEGIN
PROMPT 1 -1 ""
PSELECT
FLAGS "H"
END
ENDPAGE
TOOLBAR "TopBar" 0 0 0 2
#include <elabar.h>
ENDPAGE
ENDMASK

View File

@ -5,6 +5,7 @@
#include <progind.h>
#include <relation.h>
#include <reputils.h>
#include <sheet.h>
#include <textset.h>
#include <utility.h>

View File

@ -3,6 +3,7 @@
#include <progind.h>
#include <reputils.h>
#include <relation.h>
#include <sheet.h>
#include <textset.h>
#include <utility.h>

View File

@ -98,7 +98,7 @@ void TSaldaconto_app::main_loop()
{
TMask& m = curr_mask();
bool ok = TRUE;
bool ok = true;
while (ok)
{
xvtil_statbar_set(TR("Ricerca"), TRUE);
@ -108,7 +108,7 @@ void TSaldaconto_app::main_loop()
{
_allow_firm = FALSE;
edit_partite(m);
_allow_firm = TRUE;
_allow_firm = true;
}
}
}

View File

@ -61,7 +61,7 @@ bool TPartite_mask::edit_fattura(TPartita& p, int nriga)
}
else
{
if (nuova || (k == K_DEL && noyes_box(TR("Confermare l'eliminazione"))))
if (nuova || (k == K_DEL && delete_box(TR("Confermare l'eliminazione"))))
{
p.rimuovi_riga(nriga);
updated = !nuova;