Aggiunta gestione mandati per RID

git-svn-id: svn://10.65.10.50/branches/R_10_00@23011 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-10-27 08:29:31 +00:00
parent c3564c70ed
commit e08b9a6d54
12 changed files with 143 additions and 32 deletions

View File

@ -1,3 +1,3 @@
33
0
$doc|0|0|652|0|Documenti di vendita|||
$doc|0|0|687|0|Documenti di vendita|||

View File

@ -1,5 +1,5 @@
33
94
95
CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno
PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo
@ -22,6 +22,7 @@ CODLIN|1|1|0|Codice lingua
RAGGR|8|1|0|Flag raggruppamento documento
CODPAG|1|4|0|Codice condizione di pagamento
DATAINSC|5|8|0|Data inizio scadenza
MANDATO|1|35|0|Mandato di pagamento RID
CODABIA|10|5|0|Codice ABI banca di appoggio
CODCABA|10|5|0|Codice CAB banca di appoggio
IBAN|1|34|0|Codice IBAN di appoggio

View File

@ -66,6 +66,7 @@ DATASCAD2 = S_DISABILITATO
DATASCAD3 = S_DISABILITATO
DATASCAD4 = S_DISABILITATO
DATASCAD5 = S_DISABILITATO
MANDATO = S_DISABILITATO
CODABIA = S_OBBLIGATORIO
CODCABA = S_OBBLIGATORIO
CODABIA1 = S_NORMALE

View File

@ -307,7 +307,7 @@ Y=0
FIELDNAME=CODVAL
MSKID=F_CODVAL
TYPE=T_STRINGA
PROMPT="Valuta "
PROMPT="Valuta "
SIZE=3
FLAG=U
USE=%VAL
@ -327,7 +327,7 @@ Y=0
FIELDNAME=CODVAL
MSKID=F_CODVAL1
TYPE=T_STRINGA
PROMPT="Valuta "
PROMPT="Valuta "
SIZE=3
FLAG=U
USE=%VAL
@ -376,7 +376,7 @@ Y=1
FIELDNAME=DATACAMBIO
MSKID=F_DATACAMBIO
TYPE=T_DATA
PROMPT="Data valuta"
PROMPT="Data cambio "
[DATA_CAMBIO2]
// se abilitato archivio cambi
@ -387,7 +387,7 @@ FLAG=R
FIELDNAME=DATACAMBIO
MSKID=F_DATACAMBIO1
TYPE=T_DATA
PROMPT="Data valuta"
PROMPT="Data cambio "
USE=CAM~JO %VAL TO CAM AL 50 INTO CODTAB=CODTAB[1,3]
INPUT=CODTAB[1,3] F_CODVAL SELECT~CODTAB[4,11] F_DATACAMBIO1
DISPLAY="Valuta" CODTAB[1,3]~"Data@10" D0~"Descrizione@50" -50->S0~"Cambio@15" S4
@ -416,7 +416,7 @@ Y=0
FIELDNAME=CODLIN
MSKID=F_CODLIN
TYPE=T_STRINGA
PROMPT="Lingua "
PROMPT="Lingua "
SIZE=1
FLAG=U
USE=%LNG
@ -444,14 +444,14 @@ Y=0
FIELDNAME=CODPAG
MSKID=F_CODPAG
TYPE=T_STRINGA
PROMPT="Cond. pag. "
PROMPT="Condiz. pag. "
SIZE=4
FLAG=U
USE=%CPG
INPUT=CODTAB F_CODPAG
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_CODPAG CODTAB~F_DESCODPAG S0
WARNING=Codice tipo pagamento non trovato
WARNING=Condizione di pagamento non trovata
HELP=Inserire il codice del tipo di pagamento
SPECIAL=ADD RU ba3 -6
@ -466,10 +466,28 @@ USE=%CPG KEY 2
INPUT=S0 F_DESCODPAG
DISPLAY="Descrizione@50" S0~"Codice" CODTAB
OUTPUT=F_CODPAG CODTAB~F_DESCODPAG S0
WARNING=Codice tipo pagamento non trovato
HELP=Inserire il codice del tipo di pagamento
WARNING=Condizione di pagamento non trovata
HELP=Inserire la descrizione della condizione di pagamento
SPECIAL=ADD RU ba3 -6
[MANDATO]
GROUP=400
X=2
Y=1
PROMPT="Mandato RID "
FIELDNAME=MANDATO
MSKID=F_MANDATO
TYPE=T_STRINGA
SIZE=35
FLAG=U
USE=&EFMAN SE I0=#F_CODCF
INPUT=CODTAB F_MANDATO
DISPLAY="Codice@35" CODTAB~"Data@10" D0~"IBAN@34" S1~"Descrizione@50" S0
OUTPUT=F_MANDATO CODTAB
WARNING=Codice mandato non trovato
HELP=Inserire il codice del mandato RID
SPECIAL=ADD RU ef0 -1 &MAN
[GRSCADENZE]
GROUP=500
X=1
@ -1514,7 +1532,7 @@ Y=0
FIELDNAME=CODNOTE
MSKID=F_CODNOTE
TYPE=T_STRINGA
PROMPT="Cod. Note "
PROMPT="Cod. Note "
SIZE=2
USE=%NOT
INPUT=CODTAB F_CODNOTE

View File

@ -75,6 +75,7 @@ bool totdoc_hndl(TMask_field& field, KEY key);
bool codcli_hndl(TMask_field& field, KEY key);
bool dummy_hndl(TMask_field& field, KEY key);
bool condpag_hndl(TMask_field& field, KEY key);
bool mandato_hndl(TMask_field& field, KEY key);
bool note_hndl(TMask_field& field, KEY key);
bool data_hndl(TMask_field& field, KEY key);
void set_curr_um(const TString& um);
@ -259,6 +260,7 @@ public:
bool is_fattura() const { return tipo() == _fattura; }
bool is_bolla() const { return tipo() == _bolla; }
bool is_ordine() const { return tipo() == _ordine; }
bool is_ordine_quadro() const { return is_ordine() && get_bool("B12"); }
bool is_scontrino() const { return tipo() == _scontrino; }
bool controllo_prezzi() const { return _cnt_prezzi; }
const char * field_prezzo() const { return _field_prezzo; }

View File

@ -407,6 +407,7 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array, bool interatti
effetto->put(EFF_DATASCAD, datascad);
effetto->put(EFF_TIPOPAG,pag.tipo_rata(n-1));
effetto->put(EFF_ULTCLASS,pag.ulc_rata(n-1));
effetto->put(EFF_MANDATO,doc.get(DOC_MANDATO));
effetto->put(EFF_TIPOCF, doc.get_char(DOC_TIPOCF));
effetto->put(EFF_CODCF, doc.get_long(DOC_CODCF));
effetto->put(EFF_CODVAL, doc.get(DOC_CODVAL));
@ -420,6 +421,7 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array, bool interatti
effetto->put(EFF_CIG,doc.get(DOC_CIG));
effetto->put(EFF_CONTSEP,doc.get(DOC_CONTSEP));
effetto->put(EFF_EFFCOMP,TRUE);
_effetti_array.add(effetto);
}
// aggiorna totale effetto (testata)
@ -672,6 +674,7 @@ void TGenerazione_effetti::generate_bill(TDocumento& doc, bool interattivo) // b
effetto.put(EFF_DATASCAD, pag.data_rata(i));
effetto.put(EFF_TIPOPAG,pag.tipo_rata(i));
effetto.put(EFF_ULTCLASS,pag.ulc_rata(i));
effetto.put(EFF_MANDATO,doc.get(DOC_MANDATO));
effetto.put(EFF_TIPOCF, tipocf);
effetto.put(EFF_CODCF, codcf);
effetto.put(EFF_CODVAL, codval);

View File

@ -74,7 +74,7 @@ bool TConsegna_mask::on_field_event(class TOperable_field& f, TField_event e, lo
bool select = true;
const real residuo = row->get(S_QTARESIDUA-FIRST_FIELD);
const real evaso = row->get(S_QTADAEVADERE-FIRST_FIELD);
if (evaso == ZERO && residuo > ZERO)
if (evaso.is_zero() && residuo > ZERO)
{
row->add(residuo.string(), S_QTADAEVADERE-FIRST_FIELD);
row->add("X", S_RIGAEVASA-FIRST_FIELD);

View File

@ -144,6 +144,7 @@ TDocumento_mask::TDocumento_mask(const char* td)
set_field_handler( F_CODCF, clifo_handler );
set_field_handler( F_CODPAG, condpag_hndl );
set_field_handler( F_DATAINSC, condpag_hndl );
set_field_handler( F_MANDATO, mandato_hndl );
set_field_handler( F_CODNOTE, note_hndl );
set_field_handler( F_DATADOC, data_hndl );
set_field_handler( F_CODLIST, codlist_handler );
@ -3419,14 +3420,31 @@ bool TElabora_mask::elabora()
app_doc.read(out[0].head());
update_mask = true;
}
in.rewrite();
// Aggiorna eventuale residuo da consegnare
if (e->tipo() == _consegna_ordini)
{
TParametri_elaborazione& p = e->params();
set(F_QTA, p.get("QUANTITA"));
// Azzera qtaevasa in ordini quadro
for (int i = 0; i < in.items(); i++)
{
TDocumento& d = in[i];
const TTipo_documento& td = d.tipo();
if (td.is_ordine_quadro()) // impedisci evasione
{
FOR_EACH_PHYSICAL_RDOC(d, r, rdoc)
{
rdoc->zero(RDOC_RIGAEVASA);
rdoc->zero(td.field_qtaevasa());
}
}
}
}
in.rewrite();
// Toglie spunta ai documenti selezionati
_tree.toggle_all_nodes();
}

View File

@ -318,7 +318,9 @@ bool condpag_hndl( TMask_field& field, KEY key )
if ( field.to_check(key) || (key == K_TAB && !m.is_running()))
{
const TString& condpag = m.get(F_CODPAG);
bool is_rid = false;
const TString& condpag = m.get(F_CODPAG);
if (condpag.full())
{
TDocumento& doc = m.doc();
@ -343,11 +345,62 @@ bool condpag_hndl( TMask_field& field, KEY key )
else
m.hide(F_DATASCAD1+i);
}
is_rid = numrate > 0 && pag.tipo_rata(0) == _rid;
}
TMask_field* mandato = m.find_by_id(F_MANDATO);
if (mandato != NULL)
{
if (is_rid && main_app().has_module(EFAUT) && m.get_long(F_CODCF))
{
mandato->enable();
mandato->check_type(CHECK_REQUIRED);
TString query; query << "USE &EFMAN SELECT I0=" << m.get_long(F_CODCF);
TISAM_recordset man(query);
if (man.items() == 1)
m.set(F_MANDATO, man.get("CODTAB").as_string(), 0x3);
}
else
{
mandato->reset();
mandato->disable();
mandato->check_type(CHECK_NORMAL);
}
}
}
return true;
}
bool mandato_hndl(TMask_field& f, KEY key )
{
TMask& m = f.mask();
if (f.to_check(key) && !f.empty() && m.is_running())
{
const TRectype& man = cache().get("&EFMAN", f.get());
const TString& iban = man.get("S1");
if (iban.full())
{
TMask_field* iban1 = m.find_by_id(F_IBAN);
if (iban1)
{
iban1->set(iban);
const TString& bank = man.get("S4");
m.set(F_CODABIA, bank.left(5));
m.set(F_CODCABA, bank.mid(5));
m.set(F_CODABIA1, bank.left(5));
m.set(F_CODCABA1, bank.mid(5));
TEdit_field& stato = m.efield(F_IBAN_STATO);
if (key == K_TAB)
stato.set_focusdirty(false);
return stato.validate(key);
}
}
}
return true;
}
bool note_hndl( TMask_field& f, KEY key )
{
TDocumento_mask& m = (TDocumento_mask &) f.mask();

View File

@ -110,5 +110,6 @@
#define F_IVA_NI 504
#define F_IVA_NS 505
#define FT_GOLEM 511
#define FT_GOLEM 511
#define F_ADDROW 512
#define F_QUADRO 513

View File

@ -66,13 +66,13 @@ LIST F_TIPO 24
BEGIN
PROMPT 2 4 "Tipo documento "
FIELD I1
ITEM "0|Altro" MESSAGE ENABLE,2@|ENABLE,F_LORDO
ITEM "1|Bolla" MESSAGE CLEAR,2@|ENABLE,F_LORDO
ITEM "2|Fattura" MESSAGE ENABLE,2@|ENABLE,F_LORDO
ITEM "3|Ordine" MESSAGE CLEAR,2@|ENABLE,F_LORDO
ITEM "4|Scontrino" MESSAGE ENABLE,2@|DISABLE,F_LORDO|"X",F_LORDO
ITEM "5|Conferimento soci" MESSAGE CLEAR,2@
ITEM "6|Prestazioni ai soci" MESSAGE ENABLE,2@
ITEM "0|Altro" MESSAGE ENABLE,2@|ENABLE,F_LORDO|DISABLE,F_QUADRO
ITEM "1|Bolla" MESSAGE CLEAR,2@|ENABLE,F_LORDO|DISABLE,F_QUADRO
ITEM "2|Fattura" MESSAGE ENABLE,2@|ENABLE,F_LORDO|DISABLE,F_QUADRO
ITEM "3|Ordine" MESSAGE CLEAR,2@|ENABLE,F_LORDO|ENABLE,F_QUADRO
ITEM "4|Scontrino" MESSAGE ENABLE,2@|DISABLE,F_LORDO|"X",F_LORDO|DISABLE,F_QUADRO
ITEM "5|Conferimento soci" MESSAGE CLEAR,2@|DISABLE,F_QUADRO
ITEM "6|Prestazioni ai soci" MESSAGE ENABLE,2@|DISABLE,F_QUADRO
END
STRING F_PROFILO 8
@ -324,16 +324,10 @@ BEGIN
FIELD B6
END
STRING F_NATURA 1
BOOLEAN F_QUADRO
BEGIN
PROMPT 44 18 "Natura transazione "
FLAGS "U"
USE %INT
INPUT CODTAB F_NATURA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_NATURA CODTAB
FIELD S3[4,4]
PROMPT 44 18 "Ordine quadro"
FIELD B12
END
ENDPAGE
@ -1228,6 +1222,23 @@ BEGIN
FIELD S11[5,5]
END
GROUPBOX DLG_NULL 42 3
BEGIN
PROMPT 41 1 "@bIntra"
END
STRING F_NATURA 1
BEGIN
PROMPT 42 2 "Natura transazione "
FLAGS "U"
USE %INT
INPUT CODTAB F_NATURA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_NATURA CODTAB
FIELD S3[4,4]
END
GROUPBOX DLG_NULL 62 3
BEGIN
PROMPT 1 8 "@bStampa documenti avanzata"

View File

@ -122,6 +122,7 @@
#define F_CONTSEP 226
#define F_PATIPOCON 227
#define F_IVAXCASSA 228
#define F_MANDATO 229
#define F_CDC1 251
#define F_CDC12 262
@ -152,4 +153,6 @@
#define F_USERFLD 450
#define DLG_LVPLANNING 801
#endif // veuml.h