Patch level : 10.0 870

Files correlati     : ef0.exe
Ricompilazione Demo : [ ]
Commento            :

Gestione CUP
Sugli effetti sono stati aggiunti i campi CUP e CIG.
Le stampe di controllo e la stampa distinte li stampano.
Nei moduli di stampa delle distinte personalizzati delle distinte si devono aggiungerequesti 2 campi

STRING 30 15
BEGIN
  KEY "CUP"
  PROMPT 2 6 "CUP "
  FIELD CUP
END

STRING 31 10
BEGIN
  KEY "CIG"
  PROMPT 25 6 "CIG "
  FIELD CIG
END

Sono state aggoiunte le colonne CUP e CIG nella gestione Incassi e pagamenti.
Questi vengono eventualmente letti dalla fattura in contabilità o possono essere impostati. Questi campi vengono poi usati per il raggruppamento degli effetti se impostato, poi scritti sull'effetto.

La contabilizzazione effetti scrive sulle righe contabili il cup e il cig in corrispondenza dei conti cliente e fornitore


git-svn-id: svn://10.65.10.50/branches/R_10_00@21369 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-12-26 23:15:37 +00:00
parent 0e69065ad1
commit b070046c49
9 changed files with 237 additions and 26 deletions

View File

@ -182,6 +182,20 @@ BEGIN
FIELD CODCAB FIELD CODCAB
END END
STRING 30 15
BEGIN
KEY "CUP"
PROMPT 2 6 "CUP "
FIELD CUP
END
STRING 31 10
BEGIN
KEY "CIG"
PROMPT 25 6 "CIG "
FIELD CIG
END
STRING 29 35 STRING 29 35
BEGIN BEGIN
KEY "Conto Corrente" KEY "Conto Corrente"

View File

@ -37,6 +37,10 @@
#define F_TIPOCF 231 #define F_TIPOCF 231
#define F_CONTROEURO 232 #define F_CONTROEURO 232
#define F_PROG 233 #define F_PROG 233
#define F_CUP 234
#define F_DCUP 235
#define F_CIG 236
#define F_DCIG 237
#define F_IBAN 250 #define F_IBAN 250
#define F_IBAN_STATO 251 #define F_IBAN_STATO 251

View File

@ -407,32 +407,79 @@ BEGIN
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_CUP 22
BEGIN
PROMPT 2 11 "CUP "
USE %CUP
INPUT CODTAB F_CUP
DISPLAY "Codice@22" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CUP CODTAB
OUTPUT F_DCUP S0
FIELD CUP
CHECKTYPE NORMAL
END
STRING F_DCUP 50 30
BEGIN
PROMPT 40 11 ""
USE %CUP KEY 2
INPUT S0 F_DCUP
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@22" CODTAB
COPY OUTPUT F_CUP
END
STRING F_CIG 10
BEGIN
PROMPT 2 12 "CIG "
USE %CIG
INPUT CODTAB F_CIG
DISPLAY "Codice@10" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice gara" S1
OUTPUT F_CIG CODTAB
OUTPUT F_DCIG S0
FIELD CIG
CHECKTYPE NORMAL
END
STRING F_DCIG 50 30
BEGIN
PROMPT 40 12 ""
USE %CIG KEY 2
INPUT S0 F_DCIG
DISPLAY "Ragione Sociale@50" S0
DISPLAY "Codice@10" CODTAB
COPY OUTPUT F_CIG
END
DATE F_DATAEMISS DATE F_DATAEMISS
BEGIN BEGIN
PROMPT 1 11 "Data di emissione " PROMPT 1 13 "Data di emissione "
FIELD DATAEMISS FIELD DATAEMISS
END END
NUMBER F_NUMEMISS 8 NUMBER F_NUMEMISS 8
BEGIN BEGIN
PROMPT 42 11 "Nr. di emissione " PROMPT 42 13 "Nr. di emissione "
FIELD NUMEMISS FIELD NUMEMISS
END END
BOOLEAN F_EFFSTAMP BOOLEAN F_EFFSTAMP
BEGIN BEGIN
PROMPT 1 12 "Effetto stampato" PROMPT 1 14 "Effetto stampato"
FIELD EFFSTAMP FIELD EFFSTAMP
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 5
BEGIN BEGIN
PROMPT 0 13 "@bDistinta" PROMPT 0 15 "@bDistinta"
END END
LIST F_TIPODIST 15 LIST F_TIPODIST 15
BEGIN BEGIN
PROMPT 1 14 "Tipo distinta " PROMPT 1 16 "Tipo distinta "
FIELD TIPODIST FIELD TIPODIST
ITEM " | " ITEM " | "
ITEM "I|All'incasso" ITEM "I|All'incasso"
@ -443,7 +490,7 @@ END
NUMBER F_NDIST 5 NUMBER F_NDIST 5
BEGIN BEGIN
PROMPT 42 14 "Nr. distinta " PROMPT 42 16 "Nr. distinta "
FIELD NDIST FIELD NDIST
FLAGS "D" FLAGS "D"
VALIDATE NOT_EMPTY_FUNC VALIDATE NOT_EMPTY_FUNC
@ -452,46 +499,46 @@ END
DATE F_DATADIST DATE F_DATADIST
BEGIN BEGIN
PROMPT 1 15 "Data distinta " PROMPT 1 17 "Data distinta "
FIELD DATADIST FIELD DATADIST
FLAGS "D" FLAGS "D"
END END
NUMBER F_NRIGADIST 4 NUMBER F_NRIGADIST 4
BEGIN BEGIN
PROMPT 42 15 "Nr. di riga " PROMPT 42 17 "Nr. di riga "
FIELD NRIGADIST FIELD NRIGADIST
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_DISTSTAM BOOLEAN F_DISTSTAM
BEGIN BEGIN
PROMPT 1 16 "Distinta stampata" PROMPT 1 18 "Distinta stampata"
FIELD DISTSTAM FIELD DISTSTAM
FLAGS "D" FLAGS "D"
END END
DATE F_DATARIBA DATE F_DATARIBA
BEGIN BEGIN
PROMPT 1 18 "Data Ri.Ba. " PROMPT 1 20 "Data Ri.Ba. "
FIELD DATARIBA FIELD DATARIBA
END END
BOOLEAN F_DISRIBAEST BOOLEAN F_DISRIBAEST
BEGIN BEGIN
PROMPT 42 18 "Distinta Ri.Ba. estratta" PROMPT 42 20 "Distinta Ri.Ba. estratta"
FIELD DISRIBAEST FIELD DISRIBAEST
END END
BOOLEAN F_EFFCONT BOOLEAN F_EFFCONT
BEGIN BEGIN
PROMPT 1 19 "Effetto contabilizzato" PROMPT 1 21 "Effetto contabilizzato"
FIELD EFFCONT FIELD EFFCONT
END END
BOOLEAN F_EFFCOMP BOOLEAN F_EFFCOMP
BEGIN BEGIN
PROMPT 42 19 "Effetto completato" PROMPT 42 21 "Effetto completato"
FIELD EFFCOMP FIELD EFFCOMP
END END

View File

@ -14,6 +14,7 @@
#include <comuni.h> #include <comuni.h>
#include <cfven.h> #include <cfven.h>
#include <indsp.h> #include <indsp.h>
#include <modaut.h>
class TRiba_form; class TRiba_form;
class TDistinta_form; class TDistinta_form;
@ -632,6 +633,12 @@ void TEmissione::print()
if (!nomeform.exist()) // se non esiste if (!nomeform.exist()) // se non esiste
nomeform = "dse.frm"; // utilizzo quello generico nomeform = "dse.frm"; // utilizzo quello generico
_formdse = new TDistinta_form(nomeform, _firmrel); _formdse = new TDistinta_form(nomeform, _firmrel);
TForm_item * cup = _formdse->exist_field('B', odd_page , 30);
if (cup != NULL && !main_app().has_module(CUAUT))
cup->hide();
TForm_item * cig = _formdse->exist_field('B', odd_page , 31);
if (cig != NULL && !main_app().has_module(CUAUT))
cig->hide();
enable_dettaglio(*_formdse); enable_dettaglio(*_formdse);
_formdse->set_order(tipord); _formdse->set_order(tipord);
print_dse(tipost,ndist,tipodist,is_vis); print_dse(tipost,ndist,tipodist,is_vis);
@ -1224,6 +1231,20 @@ void TRiba_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TStr
descfatt << ' ' << str.right(2); descfatt << ' ' << str.right(2);
} }
} }
if (main_app().has_module(CUAUT))
{
const TString &cup = effetto.get(EFF_CUP);
if (cup.full())
descfatt << " CUP: " << cup;
else
{
const TString &cig = effetto.get(EFF_CIG);
if (cig.full())
descfatt << " CIG: " << cig;
}
}
const int l = descfatt.len(); const int l = descfatt.len();
TString in(s.get()); TString in(s.get());
if (in[0]=='!') if (in[0]=='!')

View File

@ -3,6 +3,7 @@
#include <clifo.h> #include <clifo.h>
#include <effetti.h> #include <effetti.h>
#include <modaut.h>
#include <reffetti.h> #include <reffetti.h>
#include "ef0101.h" #include "ef0101.h"
@ -498,6 +499,10 @@ void TPrint_effetti_app::set_scadenza()
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
if (main_app().has_module(CUAUT))
set_row(3, "@1gCUP @s@25gCIG @s",
FLD(LF_EFFETTI, EFF_CUP),
FLD(LF_EFFETTI, EFF_CIG));
for(int i = 0; i < _interline; i++) for(int i = 0; i < _interline; i++)
set_row(i+1," "); set_row(i+1," ");
} }
@ -525,6 +530,10 @@ void TPrint_effetti_app::set_banca_app()
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
if (main_app().has_module(CUAUT))
set_row(3,"@1gCUP @s@25gCIG @s",
FLD(LF_EFFETTI, EFF_CUP),
FLD(LF_EFFETTI, EFF_CIG));
for(int i = 0; i < _interline; i++) for(int i = 0; i < _interline; i++)
set_row(i+1,""); set_row(i+1,"");
} }
@ -552,6 +561,10 @@ void TPrint_effetti_app::set_banca_pre()
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
if (main_app().has_module(CUAUT))
set_row(3, "@1gCUP @s@25gCIG @s",
FLD(LF_EFFETTI, EFF_CUP),
FLD(LF_EFFETTI, EFF_CIG));
for(int i = 0; i < _interline; i++) for(int i = 0; i < _interline; i++)
set_row(i+1,""); set_row(i+1,"");
} }
@ -585,6 +598,10 @@ void TPrint_effetti_app::set_distinta()
set_row(2,"@100g%s", (const char *)TCurrency::get_firm_val()); set_row(2,"@100g%s", (const char *)TCurrency::get_firm_val());
} }
write_bancapp(); write_bancapp();
if (main_app().has_module(CUAUT))
set_row(3, "@1gCUP @s@25gCIG @s",
FLD(LF_EFFETTI, EFF_CUP),
FLD(LF_EFFETTI, EFF_CIG));
for(int i = 0; i < _interline; i++) set_row(i+1,""); for(int i = 0; i < _interline; i++) set_row(i+1,"");
} }
@ -611,6 +628,10 @@ void TPrint_effetti_app::set_cliente()
(const char *)valuta); (const char *)valuta);
} }
write_bancapp(); write_bancapp();
if (main_app().has_module(CUAUT))
set_row(3, "@1gCUP @s@25gCIG @s",
FLD(LF_EFFETTI, EFF_CUP),
FLD(LF_EFFETTI, EFF_CIG));
for(int i = 0; i < _interline; i++) set_row(i+1," "); for(int i = 0; i < _interline; i++) set_row(i+1," ");
} }

View File

@ -537,6 +537,9 @@ bool TContabilizzazione_effetti_app::add_cg_row(const TEffetto& eff, const TRect
banks.add(key,b_rec,is_present); banks.add(key,b_rec,is_present);
c_rec->put(RMV_IMPORTO,imp); c_rec->put(RMV_IMPORTO,imp);
c_rec->put(RMV_CUP, eff.get(EFF_CUP));
c_rec->put(RMV_CIG, eff.get(EFF_CIG));
customers.add(c_rec); customers.add(c_rec);
return !is_present; return !is_present;

View File

@ -10,6 +10,8 @@
#include <clifo.h> #include <clifo.h>
#include <cfven.h> #include <cfven.h>
#include <partite.h>
#include <rmov.h>
#include "../cg/cgsaldac.h" #include "../cg/cgsaldac.h"
#include "../ef/ef0301.h" #include "../ef/ef0301.h"
@ -43,8 +45,8 @@ 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 TDate & datapag, TRectype& new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
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();
void print(); void print();
@ -243,6 +245,27 @@ bool TPE_mask::fill_row(const TRiga_scadenze& rs, TToken_string& row, bool& part
case 9:row.add(TR("Bonifico")); break; case 9:row.add(TR("Bonifico")); break;
default: break; default: break;
} }
TRiga_partite& rp = rs.riga();
TString cup;
TString cig;
const long numreg = rp.get_long(PART_NREG);
if (numreg > 0)
{
TToken_string key;
key.add(numreg);
key.add(1);
const TRectype & rmov = cache().get(LF_RMOV, key);
cup = rmov.get(RMV_CUP);
cig = rmov.get(RMV_CIG);
}
row.add(cup);
row.add(cig);
} }
return ok; return ok;
} }
@ -431,11 +454,12 @@ bool TPE_mask::fill_distinta(bool clear_all)
const bool dist_cont = dist.contabilizzata(); const bool dist_cont = dist.contabilizzata();
if (dist.items() > 0) if (dist.items() > 0)
{ {
TToken_string row; int rows = 0;
for (int e = 0; e < dist.items(); e++) for (int e = 0; e < dist.items(); e++)
{ {
const TEffetto& eff = dist[e]; const TEffetto& eff = dist[e];
const TBill clifo(0, 0, eff.get_long(EFF_CODCF), eff.get_char(EFF_TIPOCF)); const TBill clifo(0, 0, eff.get_long(EFF_CODCF), eff.get_char(EFF_TIPOCF));
if (e==0) if (e==0)
set(F_TIPOPAG, eff.get_int(EFF_TIPOPAG)); set(F_TIPOPAG, eff.get_int(EFF_TIPOPAG));
for (int r = 1; r <= eff.rows_r(); r++) for (int r = 1; r <= eff.rows_r(); r++)
@ -450,13 +474,18 @@ bool TPE_mask::fill_distinta(bool clear_all)
{ {
TRiga_scadenze& rs = game.rata(nriga, nrata); TRiga_scadenze& rs = game.rata(nriga, nrata);
bool partially_unassigned; bool partially_unassigned;
if (fill_row(rs, row, partially_unassigned, dist_cont, clear_all)) TSheet_field& sheet = sfield(F_SHEET);
TToken_string& row = sheet.row(rows++);
if (fill_row(rs, row, partially_unassigned, dist_cont, clear_all))
{ {
const int numrow = insert_row(row);
row.add(eff.get(EFF_CUP), sheet.cid2index(F_CUP));
row.add(eff.get(EFF_CIG), sheet.cid2index(F_CIG));
if (partially_unassigned) if (partially_unassigned)
sheet.disable_cell(numrow, 1); // Non e' possibile mettere saldo sheet.disable_cell(r - 1, 1); // Non e' possibile mettere saldo
if (dist_cont) if (dist_cont)
sheet.disable_cell(numrow, -1); // Non e' possibile modificare nulla sheet.disable_cell(r - 1, -1); // Non e' possibile modificare nulla
} }
} }
else else
@ -498,8 +527,8 @@ 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 TDate & datapag, TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
int& rigadist, int& rigaeff ) const const TDate & datapag, int& rigadist, int& rigaeff ) const
{ {
TString16 codice; codice << tipocf << '|' << codcf; TString16 codice; codice << tipocf << '|' << codcf;
const bool ragg = !cache().get(LF_CFVEN, codice, CFV_RAGGEFF).blank(); const bool ragg = !cache().get(LF_CFVEN, codice, CFV_RAGGEFF).blank();
@ -512,9 +541,20 @@ TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, co
TEffetto& eff = dist[i]; TEffetto& eff = dist[i];
if (eff.get_char(EFF_TIPOCF) == tipocf && eff.get_long(EFF_CODCF) == codcf && datapag == eff.get_date(EFF_DATASCAD)) if (eff.get_char(EFF_TIPOCF) == tipocf && eff.get_long(EFF_CODCF) == codcf && datapag == eff.get_date(EFF_DATASCAD))
{ {
neweff = &eff; bool found = true;
rigadist = i+1;
break; if (main_app().has_module(CUAUT))
{
const TString & eff_cup = eff.get(EFF_CUP);
found = (cup == eff_cup) && (cig == eff.get(EFF_CIG));
}
if (found)
{
neweff = &eff;
rigadist = i+1;
break;
}
} }
} }
} }
@ -528,6 +568,8 @@ TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, co
neweff->put(EFF_CODVAL, get(F_CODVAL)); neweff->put(EFF_CODVAL, get(F_CODVAL));
neweff->put(EFF_CAMBIO, get(F_CAMBIO)); neweff->put(EFF_CAMBIO, get(F_CAMBIO));
neweff->put(EFF_DATACAMBIO, get(F_DATACAMBIO)); neweff->put(EFF_DATACAMBIO, get(F_DATACAMBIO));
neweff->put(EFF_CUP, cup);
neweff->put(EFF_CIG, cig);
} }
rigaeff = neweff->rows_r()+1; rigaeff = neweff->rows_r()+1;
return neweff->row_r(rigaeff, TRUE); return neweff->row_r(rigaeff, TRUE);
@ -661,7 +703,9 @@ void TPE_mask::save_rate()
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, datapag, rigadist, rigaeff); const TString cup = row->get(sheet.cid2index(F_CUP));
const TString cig = row->get(sheet.cid2index(F_CIG));
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)));
@ -693,9 +737,11 @@ void TPE_mask::save_rate()
} }
TEffetto& eff = distinta[rigadist-1]; TEffetto& eff = distinta[rigadist-1];
eff.put(EFF_DATASCAD, datapag); eff.put(EFF_DATASCAD, datapag);
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);

View File

@ -44,3 +44,7 @@
#define F_RIGADIST 113 #define F_RIGADIST 113
#define F_RIGAEFF 114 #define F_RIGAEFF 114
#define F_DESC_TIPO 115 #define F_DESC_TIPO 115
#define F_CUP 116
#define F_DCUP 117
#define F_CIG 118
#define F_DCIG 119

View File

@ -337,6 +337,10 @@ BEGIN
ITEM "Riga" ITEM "Riga"
ITEM "Effetto" ITEM "Effetto"
ITEM "Tipo Pagamento@20" ITEM "Tipo Pagamento@20"
ITEM "CUP@15"
ITEM "Descrizione CUP@50"
ITEM "CIG@10"
ITEM "Descrizione CIG@50"
END END
CURRENCY F_TOTAL 18 CURRENCY F_TOTAL 18
@ -448,6 +452,53 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
STRING F_CUP 22
BEGIN
PROMPT 1 8 "CUP "
USE %CUP
INPUT CODTAB F_CUP
DISPLAY "Codice@22" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CUP CODTAB
OUTPUT F_DCUP S0
FIELD CUP
CHECKTYPE NORMAL
END
STRING F_DCUP 50 30
BEGIN
PROMPT 40 8 ""
USE %CUP KEY 2
INPUT S0 F_DCUP
DISPLAY "Descrizione@50" S0
DISPLAY "Codice@22" CODTAB
COPY OUTPUT F_CUP
END
STRING F_CIG 10
BEGIN
PROMPT 1 9 "CIG "
USE %CIG
INPUT CODTAB F_CIG
DISPLAY "Codice@10" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice gara" S1
OUTPUT F_CIG CODTAB
OUTPUT F_DCIG S0
FIELD CIG
CHECKTYPE NORMAL
END
STRING F_DCIG 50 30
BEGIN
PROMPT 40 9 ""
USE %CIG KEY 2
INPUT S0 F_DCIG
DISPLAY "Descrizione@50" S0
DISPLAY "Codice@10" CODTAB
COPY OUTPUT F_CIG
END
ENDPAGE ENDPAGE
TOOLBAR "" 0 0 0 2 TOOLBAR "" 0 0 0 2