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
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
BEGIN
KEY "Conto Corrente"

View File

@ -37,6 +37,10 @@
#define F_TIPOCF 231
#define F_CONTROEURO 232
#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_STATO 251

View File

@ -407,32 +407,79 @@ BEGIN
CHECKTYPE SEARCH
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
BEGIN
PROMPT 1 11 "Data di emissione "
PROMPT 1 13 "Data di emissione "
FIELD DATAEMISS
END
NUMBER F_NUMEMISS 8
BEGIN
PROMPT 42 11 "Nr. di emissione "
PROMPT 42 13 "Nr. di emissione "
FIELD NUMEMISS
END
BOOLEAN F_EFFSTAMP
BEGIN
PROMPT 1 12 "Effetto stampato"
PROMPT 1 14 "Effetto stampato"
FIELD EFFSTAMP
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 0 13 "@bDistinta"
PROMPT 0 15 "@bDistinta"
END
LIST F_TIPODIST 15
BEGIN
PROMPT 1 14 "Tipo distinta "
PROMPT 1 16 "Tipo distinta "
FIELD TIPODIST
ITEM " | "
ITEM "I|All'incasso"
@ -443,7 +490,7 @@ END
NUMBER F_NDIST 5
BEGIN
PROMPT 42 14 "Nr. distinta "
PROMPT 42 16 "Nr. distinta "
FIELD NDIST
FLAGS "D"
VALIDATE NOT_EMPTY_FUNC
@ -452,46 +499,46 @@ END
DATE F_DATADIST
BEGIN
PROMPT 1 15 "Data distinta "
PROMPT 1 17 "Data distinta "
FIELD DATADIST
FLAGS "D"
END
NUMBER F_NRIGADIST 4
BEGIN
PROMPT 42 15 "Nr. di riga "
PROMPT 42 17 "Nr. di riga "
FIELD NRIGADIST
FLAGS "D"
END
BOOLEAN F_DISTSTAM
BEGIN
PROMPT 1 16 "Distinta stampata"
PROMPT 1 18 "Distinta stampata"
FIELD DISTSTAM
FLAGS "D"
END
DATE F_DATARIBA
BEGIN
PROMPT 1 18 "Data Ri.Ba. "
PROMPT 1 20 "Data Ri.Ba. "
FIELD DATARIBA
END
BOOLEAN F_DISRIBAEST
BEGIN
PROMPT 42 18 "Distinta Ri.Ba. estratta"
PROMPT 42 20 "Distinta Ri.Ba. estratta"
FIELD DISRIBAEST
END
BOOLEAN F_EFFCONT
BEGIN
PROMPT 1 19 "Effetto contabilizzato"
PROMPT 1 21 "Effetto contabilizzato"
FIELD EFFCONT
END
BOOLEAN F_EFFCOMP
BEGIN
PROMPT 42 19 "Effetto completato"
PROMPT 42 21 "Effetto completato"
FIELD EFFCOMP
END

View File

@ -14,6 +14,7 @@
#include <comuni.h>
#include <cfven.h>
#include <indsp.h>
#include <modaut.h>
class TRiba_form;
class TDistinta_form;
@ -632,6 +633,12 @@ void TEmissione::print()
if (!nomeform.exist()) // se non esiste
nomeform = "dse.frm"; // utilizzo quello generico
_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);
_formdse->set_order(tipord);
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);
}
}
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();
TString in(s.get());
if (in[0]=='!')

View File

@ -3,6 +3,7 @@
#include <clifo.h>
#include <effetti.h>
#include <modaut.h>
#include <reffetti.h>
#include "ef0101.h"
@ -498,6 +499,10 @@ void TPrint_effetti_app::set_scadenza()
(const char *)valuta);
}
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," ");
}
@ -525,6 +530,10 @@ void TPrint_effetti_app::set_banca_app()
(const char *)valuta);
}
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,"");
}
@ -552,6 +561,10 @@ void TPrint_effetti_app::set_banca_pre()
(const char *)valuta);
}
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,"");
}
@ -585,6 +598,10 @@ void TPrint_effetti_app::set_distinta()
set_row(2,"@100g%s", (const char *)TCurrency::get_firm_val());
}
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,"");
}
@ -611,6 +628,10 @@ void TPrint_effetti_app::set_cliente()
(const char *)valuta);
}
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," ");
}

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);
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);
return !is_present;

View File

@ -10,6 +10,8 @@
#include <clifo.h>
#include <cfven.h>
#include <partite.h>
#include <rmov.h>
#include "../cg/cgsaldac.h"
#include "../ef/ef0301.h"
@ -43,8 +45,8 @@ public:
void update_total();
virtual bool on_key(KEY key);
TRectype& new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TDate & datapag,
int& rigadist, int& rigaeff) const;
TRectype& new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
const TDate & datapag, int& rigadist, int& rigaeff) const;
long get_free_num() const;
void save_rate();
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;
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;
}
@ -431,11 +454,12 @@ bool TPE_mask::fill_distinta(bool clear_all)
const bool dist_cont = dist.contabilizzata();
if (dist.items() > 0)
{
TToken_string row;
int rows = 0;
for (int e = 0; e < dist.items(); e++)
{
const TEffetto& eff = dist[e];
const TBill clifo(0, 0, eff.get_long(EFF_CODCF), eff.get_char(EFF_TIPOCF));
if (e==0)
set(F_TIPOPAG, eff.get_int(EFF_TIPOPAG));
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);
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)
sheet.disable_cell(numrow, 1); // Non e' possibile mettere saldo
sheet.disable_cell(r - 1, 1); // Non e' possibile mettere saldo
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
@ -498,8 +527,8 @@ bool TPE_mask::fill_distinta(bool clear_all)
return full;
}
TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TDate & datapag,
int& rigadist, int& rigaeff ) const
TRectype& TPE_mask::new_row_effetto(TDistinta& dist, char tipocf, long codcf, const TString & cup, const TString & cig,
const TDate & datapag, int& rigadist, int& rigaeff ) const
{
TString16 codice; codice << tipocf << '|' << codcf;
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];
if (eff.get_char(EFF_TIPOCF) == tipocf && eff.get_long(EFF_CODCF) == codcf && datapag == eff.get_date(EFF_DATASCAD))
{
neweff = &eff;
rigadist = i+1;
break;
bool found = true;
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_CAMBIO, get(F_CAMBIO));
neweff->put(EFF_DATACAMBIO, get(F_DATACAMBIO));
neweff->put(EFF_CUP, cup);
neweff->put(EFF_CIG, cig);
}
rigaeff = neweff->rows_r()+1;
return neweff->row_r(rigaeff, TRUE);
@ -661,7 +703,9 @@ void TPE_mask::save_rate()
const char tipocf = get(F_TIPOCF)[0];
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_NUMPART, row->get(sheet.cid2index(F_PARTITA)));
reff.put(REFF_NRIGA, row->get(sheet.cid2index(F_RIGA)));
@ -693,9 +737,11 @@ void TPE_mask::save_rate()
}
TEffetto& eff = distinta[rigadist-1];
eff.put(EFF_DATASCAD, datapag);
check_bank(eff, log); // Cerca di sistemare ABI/CAB/IBAN
TRectype& reff = eff.row_r(rigaeff);
const real oldimp = reff.get(REFF_IMPORTO);
const real oldimpval = reff.get(REFF_IMPORTOVAL);

View File

@ -44,3 +44,7 @@
#define F_RIGADIST 113
#define F_RIGAEFF 114
#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 "Effetto"
ITEM "Tipo Pagamento@20"
ITEM "CUP@15"
ITEM "Descrizione CUP@50"
ITEM "CIG@10"
ITEM "Descrizione CIG@50"
END
CURRENCY F_TOTAL 18
@ -448,6 +452,53 @@ BEGIN
FLAGS "D"
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
TOOLBAR "" 0 0 0 2