cg2100.cpp Spostato controllo prorata dopo controllo as400

cg2102.cpp   Corretto calcolo tipo costo/ricavo
cg3200.cpp   Corretta chiamata a saldofin_esepre
cg6*.*       Corretto invio e ricezione movimenti di prima nota
cglib04.cpp  Corretto calcolo saldo finale in TSaldo_agg
cgtrcpc.ini  Aggiunto flag di provvisorio sul tracciato dei trasferimenti


git-svn-id: svn://10.65.10.50/trunk@4919 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-07-25 13:20:21 +00:00
parent c50f740fee
commit a56158e24f
16 changed files with 234 additions and 156 deletions

View File

@ -671,24 +671,6 @@ void TPrimanota_application::init_modify_mode(TMask& m)
calcola_saldo(); // Verifica eventuali sbilanci contabili
TSheet_field& cg = cgs();
if (iva() == iva_acquisti && // Se iva acquisti e ...
cg.shown() && // ... se non e' sola iva ...
!test_prorata()) // ... allora controlla prorata
{
m.show(F_ADJUST_PRORATA);
m.set_handler(F_ADJUST_PRORATA, prorata_handler);
warning_box("Questo movimento e' stato registrato con una percentuale\n"
"prorata non compatibile con quella corrente:\n"
"Premere il bottone di correzione automatica delle righe.");
}
else
if (iva() == iva_vendite)
{
m.set_handler(F_ADJUST_PRORATA, NULL);
m.hide(F_ADJUST_PRORATA);
}
// Determina se il movimento e' stato trasferito da AS/400:
// praticamente controlla che non ci sia nessun tipo movimento sulle righe contabili.
@ -711,6 +693,32 @@ void TPrimanota_application::init_modify_mode(TMask& m)
m.set(SK_TIPORIGA, "A"); // Forza il tipo riga normale
m.disable(SK_TIPORIGA); // Disabilita la sua modifica
}
// Non controllare il prorata durante la cancellazione automatica
if (autodeleting() != 0x3)
{
if (iva() == iva_acquisti && // Se iva acquisti e ...
cg.shown() && // ... se non e' sola iva ...
!test_prorata()) // ... allora controlla prorata
{
m.show(F_ADJUST_PRORATA);
m.set_handler(F_ADJUST_PRORATA, prorata_handler);
warning_box("Questo movimento e' stato registrato con una percentuale\n"
"prorata non compatibile con quella corrente:\n"
"Premere il bottone di correzione automatica delle righe.");
}
else
{
// Nascondi il bottone del prorata se esiste
if (m.id2pos(F_ADJUST_PRORATA) >= 0)
{
m.set_handler(F_ADJUST_PRORATA, NULL);
m.hide(F_ADJUST_PRORATA);
}
}
}
}
// Controlla sulla causale se il segno del totale documento (ritsoc=FALSE)
@ -750,13 +758,14 @@ int TPrimanota_application::read(TMask& m)
}
_saldi.reset(); // Azzera saldi
_saldi.set_movprovv(_rel->lfile().get_char("PROVVIS") > ' ');
_saldi.set_movprovv(_rel->lfile().get_char(MOV_PROVVIS) > ' ');
tiposal tsal = causale().apertura() ? apertura :
(causale().chiusura() ? chiusura : normale);
_saldi.set_tipo_saldo(tsal);
_saldi.set_anno_es(m.get_int(F_ANNOES));
_saldi.set_num_ulmov(numreg);
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
_saldi.set_movimentato(TRUE);
for (int i = 0; i < _rel->cg_items(); i++)
{
@ -776,9 +785,9 @@ int TPrimanota_application::read(TMask& m)
conto.get(r, TRUE);
riga.add(conto.string(0x3)); // Contropartita 110-114
riga.add(r.get("NUMGIO"));
riga.add(r.get("NUMGIO")); // Centro di costo 115
const char tipo = r.get_char("ROWTYPE");
riga.add(tipo); // Tipo di riga 115
riga.add(tipo); // Tipo di riga 116
disable_cgs_cells(i, tipo);
}
@ -857,6 +866,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
_saldi.set_anno_es(annoes);
_saldi.set_num_ulmov(numreg);
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
_saldi.set_movimentato(TRUE);
const int tm = causale().tipomov();
char s[2];

View File

@ -1049,12 +1049,15 @@ TSheet_field& TPrimanota_application::ivas() const
TBill& TPrimanota_application::ivas_bill(TBill& c)
{
const int spric = c.tipo_cr();
if (spric == 2 || spric == 3)
if (iva() == iva_vendite)
{
const TString& td = causale().tipo_doc();
if (td == "FV" || td == "NC")
c.tipo_cr(4);
const int spric = c.tipo_cr();
if (spric == 2 || spric == 3)
{
const TString& td = causale().tipo_doc();
if (td == "FV" || td == "NC" || td == "ND")
c.tipo_cr(4);
}
}
return c;
}

View File

@ -3241,7 +3241,7 @@ void TMastrini_application::calcola_progressivi()
const TRecnotype pos = saldi.recno();
// W96SALDI del 18-07-96 saldofin_esprec usa il flag TRUE xche' deve
// considerare anche il saldo finale
saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc,TRUE,FALSE);
saldo = _sld->saldofin_esprec(_anno_corrente,_gruppo,_conto,_sottoc,TRUE);
saldi.readat(pos);
if (saldo> ZERO)

View File

@ -1026,7 +1026,8 @@ void TRic_tab::ricevi_movPN(TString& key, char uselab)
_prog->addstatus(1);
long nreg = _tmov->get_long(MOV_NUMREG);
long nuova_reg = _tmov->get_long("TNUMREG" );
long nuova_reg = _tmov->get_long("TNUMREG");
bool provvis = _tmov->get_char(MOV_PROVVIS) > ' ';
if (nuova_reg == 0)
{
@ -1070,7 +1071,7 @@ void TRic_tab::ricevi_movPN(TString& key, char uselab)
aggiorna_reg(anno,codreg,ulnum); // Aggiorna il registro
_sld.set_anno_es(annoes);
_sld.set_movprovv(FALSE);
_sld.set_movprovv(provvis);
_sld.set_num_ulmov(_nreg);
_sld.set_data_ulmov(datareg);

View File

@ -33,7 +33,7 @@
class TVar_mov : public TApplication
{
TIsamtempfile* _tmov, *_trmov, *_tiva, *_toccas;
TLocalisamfile* _pcon, *_clifo, *_mov, *_rmov, *_rmoviva, *_occas;
TLocalisamfile* _pcon, *_clifo, *_mov, *_rmov, *_rmoviva, *_occas, *_causali, *_comuni;
TTable* _tab_reg;
TRectype* _rec_mov,* _rec_rmov,* _rec_riva;
TTransfer_file _tras_file;
@ -73,7 +73,7 @@ public:
void setta_campi_maschera(TMask& m);
bool setta_campi_maschera_iva(TMask& m);
void registra_file_temp_mov(int,long,const TDate&,const TDate&,const TDate&,const TString&,TString&,long,long,const TString&,TString&);
void registra_file_temp_mov(int,long,const TDate&,const TDate&,const TDate&,const TString&,TString&,long,long,const TString&,TString&,char);
void registra_file_temp_rmov(long,int,int,int,long,char,const TString&,int,int,long,const real&);
void registra_file_temp_riva(long,int,const real&,const TString&,const real&,int,int,int,int,long);
@ -160,6 +160,8 @@ bool TVar_mov::create()
_rmov = new TLocalisamfile (LF_RMOV);
_rmoviva = new TLocalisamfile (LF_RMOVIVA);
_occas = new TLocalisamfile (LF_OCCAS);
_causali = new TLocalisamfile (LF_CAUSALI);
_comuni = new TLocalisamfile (LF_COMUNI);
_tab_reg = new TTable ("REG");
_rec_rmov = new TRectype (LF_RMOV);
@ -181,6 +183,8 @@ bool TVar_mov::destroy()
delete _rmov;
delete _rmoviva;
delete _occas;
delete _causali;
delete _comuni;
delete _tab_reg;
delete _rec_rmov;
delete _rec_riva;
@ -348,7 +352,7 @@ bool TVar_mov::video_PN()
void TVar_mov::ricerca_codcaus(const TString& codcaus)
{
TLocalisamfile cau (LF_CAUSALI);
TLocalisamfile& cau = *_causali;
TString tipodoc;
cau.setkey(1);
@ -550,6 +554,7 @@ void TVar_mov::setta_campi_maschera(TMask& m)
regiva.trim();
long protiva = _rec_mov->get_long(MOV_PROTIVA);
long nuprotiva = _rec_mov->get_long(MOV_UPROTIVA);
char provvis = _rec_mov->get_char(MOV_PROVVIS);
TString codcaus = _rec_mov->get (MOV_CODCAUS);
TString codpag = _rec_mov->get (MOV_CODPAG);
codpag.trim();
@ -566,6 +571,7 @@ void TVar_mov::setta_campi_maschera(TMask& m)
m.set(F_NUPROTIVA, nuprotiva);
m.set(F_CODCAUS, codcaus);
m.set(F_CODPAG, codpag);
m.set(F_PROVV, provvis);
m.disable(F_NUMREG);
m.disable(F_NUMRIG);
@ -581,6 +587,7 @@ void TVar_mov::setta_campi_maschera(TMask& m)
m.enable(F_NUPROTIVA);
m.enable(F_CODCAUS);
m.enable(F_CODPAG);
m.enable(F_PROVV);
m.disable(F_GRUPPO);
m.disable(F_CONTO);
m.disable(F_SOTTOCONTO);
@ -592,48 +599,48 @@ void TVar_mov::setta_campi_maschera(TMask& m)
m.disable(F_SOTTOC);
}
else
if (_righe)
{
int gruppo = _trmov->get_int (RMV_GRUPPO);
int conto = _trmov->get_int (RMV_CONTO);
long sottocon = _trmov->get_long(RMV_SOTTOCONTO);
TString sezione = _trmov->get (RMV_SEZIONE);
TString descr = _trmov->get (RMV_DESCR);
int gruppoc = _trmov->get_int (RMV_GRUPPOC);
int contoc = _trmov->get_int (RMV_CONTOC);
long sottoc = _trmov->get_long(RMV_SOTTOCONTOC);
real importo = _trmov->get_real(RMV_IMPORTO);
{
int gruppo = _trmov->get_int (RMV_GRUPPO);
int conto = _trmov->get_int (RMV_CONTO);
long sottocon = _trmov->get_long(RMV_SOTTOCONTO);
TString sezione = _trmov->get (RMV_SEZIONE);
TString descr = _trmov->get (RMV_DESCR);
int gruppoc = _trmov->get_int (RMV_GRUPPOC);
int contoc = _trmov->get_int (RMV_CONTOC);
long sottoc = _trmov->get_long(RMV_SOTTOCONTOC);
real importo = _trmov->get_real(RMV_IMPORTO);
m.set(F_GRUPPO, gruppo);
m.set(F_CONTO, conto);
m.set(F_SOTTOCONTO, sottocon);
m.set(F_SEZIONE, sezione);
m.set(F_DESCR, descr);
m.set(F_GRUPPOC, gruppoc);
m.set(F_CONTOC, contoc);
m.set(F_SOTTOC, sottoc);
m.set(F_IMPORTO, importo.string());
m.set(F_GRUPPO, gruppo);
m.set(F_CONTO, conto);
m.set(F_SOTTOCONTO, sottocon);
m.set(F_SEZIONE, sezione);
m.set(F_DESCR, descr);
m.set(F_GRUPPOC, gruppoc);
m.set(F_CONTOC, contoc);
m.set(F_SOTTOC, sottoc);
m.set(F_IMPORTO, importo.string());
m.disable(F_DATAREG);
m.disable(F_DATACOMP);
m.disable(F_DATADOC);
m.disable(F_NUMDOC);
m.disable(F_REGIVA);
m.disable(F_PROTIVA);
m.disable(F_NUPROTIVA);
m.disable(F_CODCAUS);
m.disable(F_CODPAG);
m.disable(F_DATAREG);
m.disable(F_DATACOMP);
m.disable(F_DATADOC);
m.disable(F_NUMDOC);
m.disable(F_REGIVA);
m.disable(F_PROTIVA);
m.disable(F_NUPROTIVA);
m.disable(F_CODCAUS);
m.disable(F_CODPAG);
m.disable(F_PROVV);
m.enable(F_GRUPPO);
m.enable(F_CONTO);
m.enable(F_SOTTOCONTO);
m.enable(F_SEZIONE);
m.enable(F_IMPORTO);
m.enable(F_DESCR);
m.enable(F_GRUPPOC);
m.enable(F_CONTOC);
m.enable(F_SOTTOC);
}
m.enable(F_GRUPPO);
m.enable(F_CONTO);
m.enable(F_SOTTOCONTO);
m.enable(F_SEZIONE);
m.enable(F_IMPORTO);
m.enable(F_DESCR);
m.enable(F_GRUPPOC);
m.enable(F_CONTOC);
m.enable(F_SOTTOC);
}
}
bool TVar_mov::setta_campi_maschera_iva(TMask& m)
@ -645,6 +652,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
TString codcaus = _rec_mov->get (MOV_CODCAUS);
long codcf = _rec_mov->get_long(MOV_CODCF);
TString ocfpi = _rec_mov->get (MOV_OCFPI);
char provvis = _rec_mov->get_char(MOV_PROVVIS);
/*****************************************************
***** CLIENTI OCCASIONALI *****
@ -665,7 +673,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
com = _toccas->get(OCC_COM);
cap = _toccas->get(OCC_CAP);
TLocalisamfile comuni (LF_COMUNI);
TLocalisamfile& comuni = *_comuni;
comuni.setkey(1);
comuni.zero();
@ -708,6 +716,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
m.set(F_PROVOCC, prov);
m.set(F_COMOCC, com);
m.set(F_CFPI, ocfpi);
m.set(F_PROVV, provvis);
m.disable(F_NUMREG);
m.disable(F_NUMRIG);
@ -722,6 +731,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
m.enable(F_LOCALITA);
m.enable(F_CAPOCC);
m.enable(F_PROVOCC);
m.enable(F_PROVV);
m.disable(F_IMPONIBILE);
m.disable(F_CODIVA);
m.disable(F_IMPOSTA);
@ -732,51 +742,50 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
m.disable(F_SOTTOCONTO);
}
else
if (_righe)
{
TString tipodoc(_rec_mov->get(MOV_TIPODOC));
real imponibile (_tiva->get_real(RMI_IMPONIBILE));
TString codiva (_tiva->get (RMI_CODIVA));
real imposta (_tiva->get_real(RMI_IMPOSTA));
int tipodet = _tiva->get_int (RMI_TIPODET);
int tipocr = _tiva->get_int (RMI_TIPOCR);
int gruppo = _tiva->get_int (RMI_GRUPPO);
int conto = _tiva->get_int (RMI_CONTO);
long sottoc = _tiva->get_long(RMI_SOTTOCONTO);
const bool first_time = _rec_mov->get("TOCFP") != "X";
if ((tipodoc == "NC" || tipodoc == "ST") && !first_time)
{
TString tipodoc(_rec_mov->get(MOV_TIPODOC));
real imponibile (_tiva->get_real(RMI_IMPONIBILE));
TString codiva (_tiva->get (RMI_CODIVA));
real imposta (_tiva->get_real(RMI_IMPOSTA));
int tipodet = _tiva->get_int (RMI_TIPODET);
int tipocr = _tiva->get_int (RMI_TIPOCR);
int gruppo = _tiva->get_int (RMI_GRUPPO);
int conto = _tiva->get_int (RMI_CONTO);
long sottoc = _tiva->get_long(RMI_SOTTOCONTO);
const bool first_time = _rec_mov->get("TOCFP") != "X";
if ((tipodoc == "NC" || tipodoc == "ST") && !first_time)
{
imponibile *= -1;
imposta *= -1;
}
m.set(F_IMPONIBILE, imponibile.string());
m.set(F_CODIVA, codiva);
m.set(F_IMPOSTA, imposta.string());
m.set(F_TIPODET, tipodet);
m.set(F_TIPOCR, tipocr);
m.set(F_GRUPPO, gruppo);
m.set(F_CONTO, conto);
m.set(F_SOTTOCONTO, sottoc);
m.disable(F_DATA74TER);
m.disable(F_CODCF);
m.disable(F_RAGSOCOCC);
m.disable(F_INDOCC);
m.disable(F_CIVOCC);
m.disable(F_LOCALITA);
m.disable(F_CAPOCC);
m.disable(F_PROVOCC);
m.enable(F_IMPONIBILE);
m.enable(F_CODIVA);
m.enable(F_IMPOSTA);
m.enable(F_TIPODET);
m.enable(F_TIPOCR);
m.enable(F_GRUPPO);
m.enable(F_CONTO);
m.enable(F_SOTTOCONTO);
imponibile *= -1;
imposta *= -1;
}
m.set(F_IMPONIBILE, imponibile.string());
m.set(F_CODIVA, codiva);
m.set(F_IMPOSTA, imposta.string());
m.set(F_TIPODET, tipodet);
m.set(F_TIPOCR, tipocr);
m.set(F_GRUPPO, gruppo);
m.set(F_CONTO, conto);
m.set(F_SOTTOCONTO, sottoc);
m.disable(F_DATA74TER);
m.disable(F_CODCF);
m.disable(F_RAGSOCOCC);
m.disable(F_INDOCC);
m.disable(F_CIVOCC);
m.disable(F_LOCALITA);
m.disable(F_CAPOCC);
m.disable(F_PROVOCC);
m.disable(F_PROVV);
m.enable(F_IMPONIBILE);
m.enable(F_CODIVA);
m.enable(F_IMPOSTA);
m.enable(F_TIPODET);
m.enable(F_TIPOCR);
m.enable(F_GRUPPO);
m.enable(F_CONTO);
m.enable(F_SOTTOCONTO);
}
return TRUE;
}
@ -828,7 +837,7 @@ bool TVar_mov::codice_causale_hnd(TMask_field& f, KEY k)
return warning_box("Il codice registro IVA e' significativo: deve essere significativo anche il codice causale");
}
TLocalisamfile cau (LF_CAUSALI);
TLocalisamfile& cau = *app()._causali;
cau.setkey(1);
cau.zero();
cau.put("CODCAUS", codcau);
@ -1254,7 +1263,7 @@ void TVar_mov::datacompetenza(int anno, TString& datacomp)
void TVar_mov::ricerca_localita(TString& codcom, TString& den, TString& cap, TString& prov)
{
TLocalisamfile com (LF_COMUNI);
TLocalisamfile& com = *_comuni;
com.setkey(1);
com.zero();
@ -1286,32 +1295,35 @@ void TVar_mov::registra_PN(TMask& m)
TString regiva = m.get (F_REGIVA);
long protiva = m.get_long(F_PROTIVA);
long nuprotiva = m.get_long(F_NUPROTIVA);
TString codcaus = m.get (F_CODCAUS);
TString codpag = m.get (F_CODPAG);
registra_file_temp_mov(anno,numreg,datareg,datacomp,datadoc,numdoc,regiva,protiva,nuprotiva,codcaus,codpag);
TString codcaus = m.get(F_CODCAUS);
TString codpag = m.get(F_CODPAG);
char provvis = m.get(F_PROVV)[0];
registra_file_temp_mov(anno,numreg,datareg,datacomp,datadoc,numdoc,regiva,protiva,nuprotiva,codcaus,codpag,provvis);
}
else
if (_righe)
{
long numreg = m.get_long(F_NUMREG);
int numrig = m.get_int (F_NUMRIG);
int gruppo = m.get_int (F_GRUPPO);
int conto = m.get_int (F_CONTO);
long sottoc = m.get_long(F_SOTTOCONTO);
char sezione = m.get (F_SEZIONE)[0];
TString descr = m.get (F_DESCR);
int gruppoc = m.get_int (F_GRUPPOC);
int contoc = m.get_int (F_CONTOC);
long sottocc = m.get_long(F_SOTTOC);
real importo (m.get(F_IMPORTO));
{
long numreg = m.get_long(F_NUMREG);
int numrig = m.get_int (F_NUMRIG);
int gruppo = m.get_int (F_GRUPPO);
int conto = m.get_int (F_CONTO);
long sottoc = m.get_long(F_SOTTOCONTO);
char sezione = m.get (F_SEZIONE)[0];
TString descr = m.get (F_DESCR);
int gruppoc = m.get_int (F_GRUPPOC);
int contoc = m.get_int (F_CONTOC);
long sottocc = m.get_long(F_SOTTOC);
real importo (m.get(F_IMPORTO));
registra_file_temp_rmov(numreg,numrig,gruppo,conto,sottoc,sezione,descr,gruppoc,contoc,sottocc,importo);
}
registra_file_temp_rmov(numreg,numrig,gruppo,conto,sottoc,sezione,descr,gruppoc,contoc,sottocc,importo);
}
}
void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate& dc,const TDate& dd,
const TString& nd,TString& ri,long pi,long upi,const TString& cc,TString& cp)
void TVar_mov::registra_file_temp_mov(int ae,long nr,
const TDate& dr,const TDate& dc,const TDate& dd,
const TString& nd,TString& ri,
long pi,long upi,
const TString& cc, TString& cp,
char pr)
{
_tmov->setkey(1);
_tmov->zero();
@ -1329,9 +1341,8 @@ void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate
_tmov->put(MOV_UPROTIVA, upi);
_tmov->put(MOV_CODCAUS, cc);
_tmov->put(MOV_CODPAG, cp);
int ai = dr.year();
_tmov->put(MOV_ANNOIVA, ai);
_tmov->put(MOV_ANNOIVA, dr.year());
_tmov->put(MOV_PROVVIS, pr);
_tmov->rewrite();
}

View File

@ -28,7 +28,8 @@
#define F_DESCRPAG 123
#define F_DESCRPARTITA 124
#define F_DESCRCPARTITA 125
#define F_DATACOMP 126
#define F_DATACOMP 126
#define F_PROVV 127
// Campi maschera cg2800c.uml

View File

@ -23,7 +23,7 @@ END
ENDPAGE
PAGE "" -1 -1 78 18
PAGE "Movimento" -1 -1 78 18
NUMBER F_NUMREG 6
BEGIN
@ -114,6 +114,14 @@ BEGIN
FLAGS "D"
END
LIST F_PROVV 1 16
BEGIN
PROMPT 1 10 "Movimento provvisorio "
ITEM " |No (Definitivo)"
ITEM "C|Cespiti"
ITEM "P|Contabile"
END
NUMBER F_GRUPPO 3
BEGIN
PROMPT 1 11 "Sottoconto partita "

View File

@ -57,6 +57,14 @@ BEGIN
PROMPT 1 4 "Data reg. 74TER "
END
LIST F_PROVV 1 16
BEGIN
PROMPT 36 4 "Movimento provvisorio "
ITEM " |No (Definitivo)"
ITEM "C|Cespiti"
ITEM "P|Contabile"
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 6 "Cliente occasionale"

View File

@ -398,6 +398,7 @@ bool TInv_cont::create()
_part = new TLocalisamfile (LF_PARTITE);
_scad = new TLocalisamfile (LF_SCADENZE);
_pagsca = new TLocalisamfile (LF_PAGSCA);
_comuni = new TLocalisamfile (LF_COMUNI);
dispatch_e_menu (BAR_ITEM(1));
@ -417,6 +418,7 @@ bool TInv_cont::destroy()
delete _part;
delete _scad;
delete _pagsca;
delete _comuni;
return TApplication::destroy();
}
@ -794,8 +796,8 @@ bool TInv_cont::controlla_stato_invio()
bool TInv_cont::numero_data()
{
int num = _tras_file.nultras();
TString str = _tras_file.dataultras();
int num = _tras_file.nultras();
TString str = _tras_file.dataultras();
TDate data (str);
if (_num != num || data != _data)
@ -871,7 +873,7 @@ void TInv_cont::crea_marker(TMask& m)
{
if (_scelta == 'S')
{
str = format("%-10s", (const char*) _nome_simbolico);
str.format("%-10s", (const char*)_nome_simbolico);
buffer.overwrite(str,0);
long ditta = m.get_long(F_DITTAINV);
if (ditta > 9999)
@ -1406,7 +1408,7 @@ void TInv_cont::pcon2tempfile(TString& key, TMask& m)
}
leggi_record_controllo();
TString chiave;
TString16 chiave;
chiave.format("%3d%3d%6ld", g, c, s);
TString sigla (format("%c", 'P'));
_control_rec.overwrite(sigla,240);

View File

@ -58,6 +58,7 @@ class TInv_cont : public TApplication
TLocalisamfile* _part;
TLocalisamfile* _scad;
TLocalisamfile* _pagsca;
TLocalisamfile* _comuni;
TIsamtempfile* _tcaus;
TIsamtempfile* _trcaus;
TIsamtempfile* _tclifo;
@ -73,7 +74,6 @@ class TInv_cont : public TApplication
TAssoc_array _riga_interna, _ultima_rata;
TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema
char _scelta;
TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico;
@ -86,6 +86,7 @@ class TInv_cont : public TApplication
int _num,_annoes;
TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg;
real _corrlire, _cambioi, _corrval,_cambio;
char _provvis;
long _ultima_nreg;
public:

View File

@ -971,6 +971,7 @@ void TInv_cont::testata_mov_PN()
_protiva = _tmov->get_long(MOV_PROTIVA);
_uprotiva = _tmov->get_long(MOV_UPROTIVA);
_inviato = _tmov->get_bool(MOV_INVIATO);
_provvis = _tmov->get_char(MOV_PROVVIS);
}
void TInv_cont::testata_trasfer(long nreg, int nrig, TString& record)
@ -1225,6 +1226,7 @@ bool TInv_cont::testata_mov_IVA(long numreg)
_dataregiva = _tmov->get_date(MOV_DATAREG);
_inviato = _tmov->get_bool(MOV_INVIVA);
_tipodoc = _tmov->get (MOV_TIPODOC);
_provvis = _tmov->get_char(MOV_PROVVIS);
if (_ocfpi.not_empty())
cerca_occasionale();
}

View File

@ -670,7 +670,7 @@ void TInv_cont::invio_testata_movimenti()
for (_tmov->first(); !_tmov->eof(); _tmov->next())
{
TString str;
TString str(80);
_prog->addstatus(1);
@ -700,7 +700,7 @@ void TInv_cont::invio_testata_movimenti()
TString data74ter = _tmov->get(MOV_DATA74TER);
datastr = riconverti(data74ter,TRUE);
str.format("%08s", (const char*) datastr);
record.overwrite(str,84); //Data di registrazione
record.overwrite(str,84); //Data di 74 ter
TString numdoc = _tmov->get(MOV_NUMDOC);
str.format("%-7s", (const char*) numdoc);
@ -827,6 +827,9 @@ void TInv_cont::invio_testata_movimenti()
TString ocfpi = _tmov->get(MOV_OCFPI);
str.format("%-16s", (const char*) ocfpi);
record.overwrite(str,274);
TString16 provvis = _tmov->get(MOV_PROVVIS);
record.overwrite(provvis, 523);
if (ocfpi.not_empty())
invio_occasionali(record,ocfpi);

View File

@ -16,6 +16,7 @@
#include <causali.h>
#include <mov.h>
#include <pconti.h>
#include <rmov.h>
#include <saldi.h>
@ -92,7 +93,7 @@ TSaldo::TSaldo() : _saldi(LF_SALDI), _saldoiniziale(ZERO), _saldo_iniziale(ZERO)
{}
real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura, bool mov_prec)
real TSaldo::saldofin_esprec(int annoes, int g, int c, long s, bool saldo_chiusura)
{
const int annoesprec = EsePre(annoes);
_significativo = FALSE;
@ -532,7 +533,7 @@ class TContoExt : public TConto
{
bool _scaricato;
public:
public:
bool scaricato() const { return _scaricato; }
@ -713,9 +714,10 @@ void TSaldo_agg::registra()
THash_object* hobj = _tab_conti.get_hashobj();
TContoExt& tcon = (TContoExt&)hobj->obj();
CHECK(tcon.ok(), "Tentativo di saldare un conto incompleto");
const int annoes = atoi(hobj->key().left(4));
saldi.zero();
saldi.put(SLD_ANNOES, atoi(hobj->key().left(4)) );
saldi.zero();
saldi.put(SLD_ANNOES, annoes);
saldi.put(SLD_GRUPPO, tcon.gruppo());
saldi.put(SLD_CONTO, tcon.conto());
saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());
@ -816,6 +818,29 @@ void TSaldo_agg::registra()
err, tcon.gruppo(), tcon.conto(), tcon.sottoconto());
}
// Calcolo saldo finale per controllo segno in prima nota
if (si.is_zero())
{
TLocalisamfile pcon(LF_PCON);
TRectype& curr = pcon.curr();
curr.put(PCN_GRUPPO, tcon.gruppo());
curr.put(PCN_CONTO, tcon.conto());
const int err = pcon.read();
CHECK(err == NOERR, "Impossibile stabilire indicatore di bilancio");
const int indbil = curr.get_int(PCN_INDBIL);
if (indbil == 1 || indbil == 2 || indbil == 5)
{
TSaldo saldo;
si = saldo.saldofin_esprec(annoes, tcon.gruppo(), tcon.conto(), tcon.sottoconto());
if (si < ZERO)
{
flag_salini = 'A'; si = -si;
}
else
flag_salini = 'D';
}
}
TImporto sf(flag_salini, si);
const TImporto dare('D', saldi.get_real(SLD_PDARE));
const TImporto avere('A', saldi.get_real(SLD_PAVERE));

View File

@ -106,7 +106,7 @@ public:
bool ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE,bool mov_prec = FALSE);
real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE);
bool prg_attuali(int i,TConto& c, real& p1, real& p2)
{ return prg_saldo(i, c, p1, p2, FALSE); }
bool prg_mov_eliminati(int i, TConto& c, real& p1, real& p2)

View File

@ -31,7 +31,7 @@ int fremove(const char* path)
#endif
//ritorna falso se la causale non e' significativa
bool look_causale (const char* codcaus)
HIDDEN bool look_causale (const char* codcaus)
{
TString16 caus = codcaus;
if (caus == "000")
@ -4215,6 +4215,7 @@ void TTransfer_file::write_testata_movimenti(TString& record)
}
if (fname == MOV_OCFPI)
{
if (field.trim().empty())
{
TString rags = record.sub(290,340);
@ -4227,6 +4228,7 @@ void TTransfer_file::write_testata_movimenti(TString& record)
else
occas = FALSE;
}
}
if (flag == 2)
{

View File

@ -166,6 +166,7 @@ Z1|29|454|458|18|CAP|4||
Z1|30|459|466|18|DNASC|4||
Z1|31|467|469|18|STATONASC|4||
Z1|32|470|473|18|COMNASC|4||
Z1|33|524|524|23|PROVVIS|||
Z2|1|3|9|24|NUMREG|||
Z2|2|10|12|24|NUMRIG|||
Z2|3|61|61|24|SEZIONE|||