Patch level : 10.1048
Files correlati : ef0.exe Ricompilazione Demo : [ ] Commento : Aggiunto codice di contabilità separata sugli effetti La contabilizzaione puo' essere separata git-svn-id: svn://10.65.10.50/branches/R_10_00@22383 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
58b198df8c
commit
4537a36c47
@ -41,6 +41,8 @@
|
|||||||
#define F_DCUP 235
|
#define F_DCUP 235
|
||||||
#define F_CIG 236
|
#define F_CIG 236
|
||||||
#define F_DCIG 237
|
#define F_DCIG 237
|
||||||
|
#define F_CONTSEP 238
|
||||||
|
#define F_DESCONTSEP 239
|
||||||
|
|
||||||
#define F_IBAN 250
|
#define F_IBAN 250
|
||||||
#define F_IBAN_STATO 251
|
#define F_IBAN_STATO 251
|
||||||
|
@ -543,6 +543,30 @@ BEGIN
|
|||||||
FIELD EFFCOMP
|
FIELD EFFCOMP
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_CONTSEP 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 22 "Contab. separata "
|
||||||
|
USE &NPENT
|
||||||
|
INPUT CODTAB F_CONTSEP
|
||||||
|
DISPLAY "Codice@6" CODTAB
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
OUTPUT F_CONTSEP CODTAB
|
||||||
|
OUTPUT F_DESCONTSEP S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
FIELD CONTSEP
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_DESCONTSEP 50 30
|
||||||
|
BEGIN
|
||||||
|
PROMPT 40 22 ""
|
||||||
|
USE &NPENT KEY 2
|
||||||
|
INPUT S0 F_DESCONTSEP
|
||||||
|
DISPLAY "Descrizione@50" S0
|
||||||
|
DISPLAY "Codice@6" CODTAB
|
||||||
|
COPY OUTPUT F_CONTSEP
|
||||||
|
CHECKTYPE NORMAL
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Cessionari" 0 -1 0 19
|
PAGE "Cessionari" 0 -1 0 19
|
||||||
|
@ -110,7 +110,7 @@ class TContabilizzazione_effetti_app : public TSkeleton_application
|
|||||||
|
|
||||||
protected: // TApplication
|
protected: // TApplication
|
||||||
// Compila la testata del movimento
|
// Compila la testata del movimento
|
||||||
void compile_head_mov();
|
void compile_head_mov(const TString & contsep);
|
||||||
// Compila la riga di partita
|
// Compila la riga di partita
|
||||||
void compile_riga_partita(TRiga_partite& riga, const TEffetto& effetto, const TRectype& riga_effetto, int numrig);
|
void compile_riga_partita(TRiga_partite& riga, const TEffetto& effetto, const TRectype& riga_effetto, int numrig);
|
||||||
// Compila la riga di pagamento
|
// Compila la riga di pagamento
|
||||||
@ -150,7 +150,7 @@ protected: // TApplication
|
|||||||
// Visualizza l'ultimo errore rilevato
|
// Visualizza l'ultimo errore rilevato
|
||||||
void display_error();
|
void display_error();
|
||||||
// Contabilizza l'effetto corrente
|
// Contabilizza l'effetto corrente
|
||||||
void contabilize_bill(const char tipo, const long numero);
|
void contabilize_bill(const char tipo, const long numero, const TString & key = EMPTY_STRING);
|
||||||
// Contabilizza gli effetti
|
// Contabilizza gli effetti
|
||||||
void contabilize();
|
void contabilize();
|
||||||
// costruisce lo sheet delle distinte
|
// costruisce lo sheet delle distinte
|
||||||
@ -811,7 +811,7 @@ char TContabilizzazione_effetti_app::sezione() const
|
|||||||
return sezione;
|
return sezione;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TContabilizzazione_effetti_app::compile_head_mov()
|
void TContabilizzazione_effetti_app::compile_head_mov(const TString & contsep)
|
||||||
{
|
{
|
||||||
CHECK(_caus,"Causale non allocata");
|
CHECK(_caus,"Causale non allocata");
|
||||||
|
|
||||||
@ -864,6 +864,7 @@ void TContabilizzazione_effetti_app::compile_head_mov()
|
|||||||
mov.put(MOV_TIPODOC,_caus->tipo_doc());
|
mov.put(MOV_TIPODOC,_caus->tipo_doc());
|
||||||
mov.put(MOV_CODCAUS,_caus->codice());
|
mov.put(MOV_CODCAUS,_caus->codice());
|
||||||
mov.put(MOV_TIPOMOV,_caus->tipomov());
|
mov.put(MOV_TIPOMOV,_caus->tipomov());
|
||||||
|
mov.put(MOV_CONTSEP, contsep);
|
||||||
|
|
||||||
if (is_true_value(codval))
|
if (is_true_value(codval))
|
||||||
{
|
{
|
||||||
@ -1325,7 +1326,7 @@ int TContabilizzazione_effetti_app::sort_eff(TRecord_array& rows)
|
|||||||
return rows.rows();
|
return rows.rows();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const long numero)
|
void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const long numero, const TString & key)
|
||||||
{
|
{
|
||||||
TDistinta& distinta = *_distinta;
|
TDistinta& distinta = *_distinta;
|
||||||
TLocalisamfile& mov = _movimento->lfile();
|
TLocalisamfile& mov = _movimento->lfile();
|
||||||
@ -1394,7 +1395,7 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
|||||||
const int items = distinta.items(); // Perche' sul file effetti il numero riga distinta e' un long ??
|
const int items = distinta.items(); // Perche' sul file effetti il numero riga distinta e' un long ??
|
||||||
|
|
||||||
// compila la testata
|
// compila la testata
|
||||||
compile_head_mov();
|
compile_head_mov(key);
|
||||||
|
|
||||||
// _cur_dist_row e' un int sebbene su file sia un long: TArray::items() ritorna un int!!
|
// _cur_dist_row e' un int sebbene su file sia un long: TArray::items() ritorna un int!!
|
||||||
for (_cur_dist_row = 0; _cur_dist_row<items; _cur_dist_row++) // scorre le righe della distinta (effetti)
|
for (_cur_dist_row = 0; _cur_dist_row<items; _cur_dist_row++) // scorre le righe della distinta (effetti)
|
||||||
@ -1402,6 +1403,8 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
|||||||
const TEffetto& eff = distinta[_cur_dist_row];
|
const TEffetto& eff = distinta[_cur_dist_row];
|
||||||
const long codcf = eff.get_long(EFF_CODCF);
|
const long codcf = eff.get_long(EFF_CODCF);
|
||||||
const char tipo = eff.get_tipo();
|
const char tipo = eff.get_tipo();
|
||||||
|
if (ini_get_bool(CONFIG_DITTA, "ef", "ContSep") && key != eff.get(EFF_CONTSEP))
|
||||||
|
continue;
|
||||||
search_clifo_bill(tipo, codcf);
|
search_clifo_bill(tipo, codcf);
|
||||||
|
|
||||||
if (!good()) break;
|
if (!good()) break;
|
||||||
@ -1473,7 +1476,7 @@ void TContabilizzazione_effetti_app::contabilize_bill(const char tipo, const lon
|
|||||||
_total_mov_val = ZERO;
|
_total_mov_val = ZERO;
|
||||||
spese = ZERO;
|
spese = ZERO;
|
||||||
// compila la testata del nuovo movimento
|
// compila la testata del nuovo movimento
|
||||||
compile_head_mov();
|
compile_head_mov(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!good()) break;
|
if (!good()) break;
|
||||||
@ -1505,7 +1508,24 @@ void TContabilizzazione_effetti_app::contabilize()
|
|||||||
TToken_string& t = _dist_sheet->row(j);
|
TToken_string& t = _dist_sheet->row(j);
|
||||||
const char tipo = t.get_char(1);
|
const char tipo = t.get_char(1);
|
||||||
const long numero = t.get_long(2);
|
const long numero = t.get_long(2);
|
||||||
contabilize_bill(tipo,numero);
|
if (ini_get_bool(CONFIG_DITTA, "ef", "ContSep"))
|
||||||
|
{
|
||||||
|
_distinta->read(tipo,numero);
|
||||||
|
|
||||||
|
const int items = _distinta->items();
|
||||||
|
TAssoc_array codcs;
|
||||||
|
|
||||||
|
for (int i = 0; i < items; i++) // scorre le righe della distinta (effetti)
|
||||||
|
{
|
||||||
|
const TEffetto& eff = (*_distinta)[i];
|
||||||
|
const TString16 key = eff.get(EFF_CONTSEP);
|
||||||
|
codcs.add(key, key);
|
||||||
|
}
|
||||||
|
FOR_EACH_ASSOC_STRING(codcs, obj, key, cod)
|
||||||
|
contabilize_bill(tipo,numero, key);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
contabilize_bill(tipo,numero);
|
||||||
if (!good())
|
if (!good())
|
||||||
display_error();
|
display_error();
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#define F_CODSIA 105
|
#define F_CODSIA 105
|
||||||
#define F_DESCCAUINC 106
|
#define F_DESCCAUINC 106
|
||||||
#define F_DESCCAUPAG 107
|
#define F_DESCCAUPAG 107
|
||||||
|
#define F_CONTSEP 108
|
||||||
|
|
||||||
#define F_TRANS_G 111
|
#define F_TRANS_G 111
|
||||||
#define F_TRANS_C 112
|
#define F_TRANS_C 112
|
||||||
|
@ -6,7 +6,7 @@ ENDPAGE
|
|||||||
|
|
||||||
PAGE "Parametri effetti" 0 2 0 0
|
PAGE "Parametri effetti" 0 2 0 0
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 78 10
|
GROUPBOX DLG_NULL 78 11
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "@bContabilizzazione"
|
PROMPT 1 2 "@bContabilizzazione"
|
||||||
END
|
END
|
||||||
@ -133,6 +133,12 @@ BEGIN
|
|||||||
ADD RUN CG0 -0
|
ADD RUN CG0 -0
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_CONTSEP
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "Contabilizzazione per contabilità separata"
|
||||||
|
FIELD ContSep
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include <cfven.h>
|
#include <cfven.h>
|
||||||
#include <partite.h>
|
#include <partite.h>
|
||||||
|
#include <mov.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include "../cg/cgsaldac.h"
|
#include "../cg/cgsaldac.h"
|
||||||
#include "../ef/ef0301.h"
|
#include "../ef/ef0301.h"
|
||||||
@ -45,7 +46,7 @@ public:
|
|||||||
void update_total();
|
void update_total();
|
||||||
virtual bool on_key(KEY key);
|
virtual bool on_key(KEY key);
|
||||||
|
|
||||||
TRectype& new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
|
TRectype& new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig, const TString & contsep,
|
||||||
const TDate & datapag, int& rigadist, int& rigaeff) const;
|
const TDate & datapag, int& rigadist, int& rigaeff) const;
|
||||||
long get_free_num() const;
|
long get_free_num() const;
|
||||||
void save_rate();
|
void save_rate();
|
||||||
@ -552,7 +553,7 @@ bool TPE_mask::fill_distinta(bool clear_all)
|
|||||||
return full;
|
return full;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
|
TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig, const TString & contsep,
|
||||||
const TDate & datapag, int& rigadist, int& rigaeff ) const
|
const TDate & datapag, int& rigadist, int& rigaeff ) const
|
||||||
{
|
{
|
||||||
TString16 codice; codice << tipocf << '|' << codcf;
|
TString16 codice; codice << tipocf << '|' << codcf;
|
||||||
@ -573,6 +574,12 @@ TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, co
|
|||||||
const TString & eff_cup = eff.get(EFF_CUP);
|
const TString & eff_cup = eff.get(EFF_CUP);
|
||||||
|
|
||||||
found = (cup == eff_cup) && (cig == eff.get(EFF_CIG));
|
found = (cup == eff_cup) && (cig == eff.get(EFF_CIG));
|
||||||
|
}
|
||||||
|
if (found && main_app().has_module(NPAUT))
|
||||||
|
{
|
||||||
|
const TString & eff_contsep = eff.get(EFF_CONTSEP);
|
||||||
|
|
||||||
|
found &= (contsep == eff_contsep);
|
||||||
}
|
}
|
||||||
if (found)
|
if (found)
|
||||||
{
|
{
|
||||||
@ -595,6 +602,7 @@ TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, co
|
|||||||
neweff->put(EFF_DATACAMBIO, get(F_DATACAMBIO));
|
neweff->put(EFF_DATACAMBIO, get(F_DATACAMBIO));
|
||||||
neweff->put(EFF_CUP, cup);
|
neweff->put(EFF_CUP, cup);
|
||||||
neweff->put(EFF_CIG, cig);
|
neweff->put(EFF_CIG, cig);
|
||||||
|
neweff->put(EFF_CONTSEP, contsep);
|
||||||
}
|
}
|
||||||
rigaeff = neweff->rows_r()+1;
|
rigaeff = neweff->rows_r()+1;
|
||||||
return neweff->row_r(rigaeff, TRUE);
|
return neweff->row_r(rigaeff, TRUE);
|
||||||
@ -632,14 +640,16 @@ bool TPE_mask::check_bank(TEffetto& effetto, TLog_report& log) const
|
|||||||
effetto.put(EFF_CODCAB, cab);
|
effetto.put(EFF_CODCAB, cab);
|
||||||
effetto.put(EFF_IBAN, iban);
|
effetto.put(EFF_IBAN, iban);
|
||||||
|
|
||||||
if ((tipocf == 'C' || tipopag != 9) && (real::is_null(abi) || real::is_null(cab)))
|
|
||||||
{
|
if (tipocf == 'C' && tipopag == 3)
|
||||||
TString msg;
|
if (real::is_null(abi) || real::is_null(cab))
|
||||||
msg.format(FR("Impossibile determinare ABI/CAB del %s sull'effetto %ld"),
|
{
|
||||||
(const char*)key, effetto.get_long(EFF_NPROGTR));
|
TString msg;
|
||||||
log.log(2, msg);
|
msg.format(FR("Impossibile determinare ABI/CAB del %s sull'effetto %ld"),
|
||||||
return false;
|
(const char*)key, effetto.get_long(EFF_NPROGTR));
|
||||||
}
|
log.log(2, msg);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if ((tipocf == 'F' && tipopag == 9) && iban.blank())
|
if ((tipocf == 'F' && tipopag == 9) && iban.blank())
|
||||||
{
|
{
|
||||||
@ -721,13 +731,15 @@ void TPE_mask::save_rate()
|
|||||||
if (!datapag.ok())
|
if (!datapag.ok())
|
||||||
datapag = attivo ? scad.get(SCAD_DATASCAD) : get(F_DATADIST);
|
datapag = attivo ? scad.get(SCAD_DATASCAD) : get(F_DATADIST);
|
||||||
const TString cup = row->get(sheet.cid2index(F_CUP));
|
const TString cup = row->get(sheet.cid2index(F_CUP));
|
||||||
|
const TRectype& mov = cache().get(LF_MOV, part.get(PART_NREG));
|
||||||
const TString cig = row->get(sheet.cid2index(F_CIG));
|
const TString cig = row->get(sheet.cid2index(F_CIG));
|
||||||
|
const TString16 contsep = mov.get(MOV_CONTSEP);
|
||||||
if (rigaeff <= 0)
|
if (rigaeff <= 0)
|
||||||
{
|
{
|
||||||
const char tipocf = get(F_TIPOCF)[0];
|
const char tipocf = get(F_TIPOCF)[0];
|
||||||
const long codcf = row->get_long(sheet.cid2index(F_CODCF));
|
const long codcf = row->get_long(sheet.cid2index(F_CODCF));
|
||||||
|
TRectype& reff = new_row_effetto(distinta, tipocf, codcf, cup, cig, contsep, datapag, rigadist, rigaeff);
|
||||||
TRectype& reff = new_row_effetto(distinta, tipocf, codcf, cup, cig, datapag, rigadist, rigaeff);
|
|
||||||
reff.put(REFF_ANNO, row->get(sheet.cid2index(F_ANNO)));
|
reff.put(REFF_ANNO, row->get(sheet.cid2index(F_ANNO)));
|
||||||
reff.put(REFF_NUMPART, row->get(sheet.cid2index(F_PARTITA)));
|
reff.put(REFF_NUMPART, row->get(sheet.cid2index(F_PARTITA)));
|
||||||
reff.put(REFF_NRIGA, row->get(sheet.cid2index(F_RIGA)));
|
reff.put(REFF_NRIGA, row->get(sheet.cid2index(F_RIGA)));
|
||||||
@ -751,10 +763,11 @@ void TPE_mask::save_rate()
|
|||||||
eff.put(EFF_DATASCAD, datapag);
|
eff.put(EFF_DATASCAD, datapag);
|
||||||
eff.put(EFF_CUP, cup);
|
eff.put(EFF_CUP, cup);
|
||||||
eff.put(EFF_CIG, cig);
|
eff.put(EFF_CIG, cig);
|
||||||
|
eff.put(EFF_CONTSEP, contsep);
|
||||||
check_bank(eff, log); // Cerca di sistemare ABI/CAB/IBAN
|
check_bank(eff, log); // Cerca di sistemare ABI/CAB/IBAN
|
||||||
|
|
||||||
|
|
||||||
TRectype& reff = eff.row_r(rigaeff);
|
TRectype& reff = eff.row_r(rigaeff);
|
||||||
|
|
||||||
const real oldimp = reff.get(REFF_IMPORTO);
|
const real oldimp = reff.get(REFF_IMPORTO);
|
||||||
const real oldimpval = reff.get(REFF_IMPORTOVAL);
|
const real oldimpval = reff.get(REFF_IMPORTOVAL);
|
||||||
reff.put(REFF_IMPORTO, imp);
|
reff.put(REFF_IMPORTO, imp);
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
31
|
31
|
||||||
0
|
0
|
||||||
$effetti|0|0|243|0|Effetti|||
|
$effetti|0|0|249|0|Effetti|||
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
31
|
31
|
||||||
36
|
37
|
||||||
NPROGTR|3|7|0|Numero progressivo effetto
|
NPROGTR|3|7|0|Numero progressivo effetto
|
||||||
DATASCAD|5|8|0|Data di scadenza
|
DATASCAD|5|8|0|Data di scadenza
|
||||||
TIPOPAG|2|1|0|Tipo pagamento
|
TIPOPAG|2|1|0|Tipo pagamento
|
||||||
@ -36,6 +36,7 @@ IBAN|1|34|0|Codice IBAN di appoggio
|
|||||||
DSCVAL|8|1|0|Data di scadenza intesa come data valuta beneficiario
|
DSCVAL|8|1|0|Data di scadenza intesa come data valuta beneficiario
|
||||||
CUP|1|15|0|Codice Unico di Progetto
|
CUP|1|15|0|Codice Unico di Progetto
|
||||||
CIG|1|10|0|Codice Identificativo gara
|
CIG|1|10|0|Codice Identificativo gara
|
||||||
|
CONTSEP|1|6|0|Contabilita' separata
|
||||||
4
|
4
|
||||||
NPROGTR|
|
NPROGTR|
|
||||||
TIPOCF+CODCF+NPROGTR|
|
TIPOCF+CODCF+NPROGTR|
|
||||||
|
@ -39,5 +39,6 @@
|
|||||||
#define EFF_DSCVAL "DSCVAL"
|
#define EFF_DSCVAL "DSCVAL"
|
||||||
#define EFF_CUP "CUP"
|
#define EFF_CUP "CUP"
|
||||||
#define EFF_CIG "CIG"
|
#define EFF_CIG "CIG"
|
||||||
|
#define EFF_CONTSEP "CONTSEP"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user