Aggiunti handlers per stampe industriali
git-svn-id: svn://10.65.10.50/branches/R_10_00@22945 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d19f6148e1
commit
572ff303d1
@ -844,7 +844,7 @@ void TTRI_handlers_mask::mask2prof(TTipo_riga_documento & tipo)
|
||||
profile.set(RDOC_QTAEVASA, get(F_QTAEVASAR));
|
||||
profile.set("QTA_MAG", get(F_QTAMAGR));
|
||||
profile.set("QTAEVASA_MAG", get(F_QTAEVASAMAGR));
|
||||
profile.set("LIVGEN", get(F_LIVGEN1), NULL, true, 1);
|
||||
profile.set("LIVGEN", get(F_LIVGEN1), NULL, true, 1);
|
||||
profile.set("LIVGEN", get(F_LIVGEN2), NULL, true, 2);
|
||||
profile.set("LIVGEN", get(F_LIVGEN3), NULL, true, 3);
|
||||
profile.set("LIVGEN", get(F_LIVGEN4), NULL, true, 4);
|
||||
@ -859,24 +859,19 @@ void TTRI_handlers_mask::mask2prof(TTipo_riga_documento & tipo)
|
||||
for (int i = 0 ; i < 10; i++)
|
||||
profile.remove(format("%d", i));
|
||||
|
||||
|
||||
TSheet_field & sh = sfield(F_HANDLERSR);
|
||||
|
||||
TSheet_field& sh = sfield(F_HANDLERSR);
|
||||
FOR_EACH_SHEET_ROW(sh, r, row)
|
||||
{
|
||||
const short id = row->get_int(1);
|
||||
|
||||
profile.set("Handler", row->get_int(0), NULL, true, id);
|
||||
}
|
||||
profile.set_paragraph("DEFAULT");
|
||||
profile.remove_array("Default");
|
||||
|
||||
TSheet_field & sd = sfield(F_DEFAULTSR);
|
||||
|
||||
TSheet_field& sd = sfield(F_DEFAULTSR);
|
||||
FOR_EACH_SHEET_ROW(sd, dr, drow)
|
||||
{
|
||||
const short id = drow->get_int(0);
|
||||
|
||||
profile.set("Default", drow->get(), NULL, true, id);
|
||||
}
|
||||
}
|
||||
|
@ -1458,10 +1458,9 @@ void TStampaDoc_application::print_selected(KEY k)
|
||||
int ncopie = _ncopie <= 0 ? mainform->ncopie() : _ncopie; // Numero di copie da stampare per questo documento
|
||||
if (ncopie <= 0) ncopie = 1;
|
||||
|
||||
TDocumentoEsteso& extdoc = mainform->doc();
|
||||
for (int n=0; n < ncopie; n++)
|
||||
{
|
||||
TDocumentoEsteso& extdoc = mainform->doc();
|
||||
|
||||
{
|
||||
print_documento(*mainform);
|
||||
extdoc.summary_reset();
|
||||
extdoc.scadenze_reset();
|
||||
@ -1497,7 +1496,12 @@ void TStampaDoc_application::print_selected(KEY k)
|
||||
}
|
||||
|
||||
// Totalizza gli importi per eventuale stampa su FAKETOTFLD
|
||||
totdocumenti += mainform->doc().totale_doc();
|
||||
const real tot = extdoc.totale_doc();
|
||||
if (extdoc.is_nota_credito())
|
||||
totdocumenti -= tot;
|
||||
else
|
||||
totdocumenti += tot;
|
||||
|
||||
if (i == items - 1 && mainform->is_faketotfld())
|
||||
{
|
||||
mainform->hide_sections();
|
||||
|
@ -83,7 +83,7 @@ void TFatturazione_bolle_app::process_by_cli(const TMask& m)
|
||||
for (int c = 0; c < tot_cli && !iw.iscancelled(); c++)
|
||||
{
|
||||
const long codcli = clienti[c]; // Codice cliente in esame
|
||||
msg = "Elaborazione dei documenti del cliente ";
|
||||
msg = TR("Elaborazione documenti del cliente ");
|
||||
msg << codcli << " ...";
|
||||
iw.set_text(msg); // Messaggio sul cliente
|
||||
do_events(); // Attende visualizzazione
|
||||
@ -92,6 +92,8 @@ void TFatturazione_bolle_app::process_by_cli(const TMask& m)
|
||||
din.read('D', tipocf, codcli, anno, tipidoc, statidoc, dd, ad, codnum, dn, an);
|
||||
if (din.items() > 0 && !iw.iscancelled())
|
||||
{
|
||||
if (m.get(F_ORDINAMENTO) == "Z")
|
||||
din.sort(DOC_ZONA"|"DOC_DATADOC"|"DOC_NDOC);
|
||||
bool ok = process(iw, eld, din, data_elab);
|
||||
if (!ok) // In caso di errore termina qui l'elaborazione.
|
||||
break;
|
||||
@ -135,7 +137,7 @@ void TFatturazione_bolle_app::process_by_ragsoc(const TMask& m)
|
||||
for (int c = 0; c < tot_cli && !iw.iscancelled(); c++)
|
||||
{
|
||||
const long codcli = clienti[c]; // Codice cliente in esame
|
||||
msg = "Elaborazione dei documenti del cliente ";
|
||||
msg = TR("Elaborazione documenti del cliente ");
|
||||
msg << codcli << " ...";
|
||||
iw.set_text(msg); // Messaggio sul cliente
|
||||
do_events(); // Attende visualizzazione
|
||||
@ -144,6 +146,8 @@ void TFatturazione_bolle_app::process_by_ragsoc(const TMask& m)
|
||||
din.read('D', tipocf, codcli, anno, tipidoc, statidoc, dd, ad, codnum, dn, an);
|
||||
if (din.items() > 0 && !iw.iscancelled())
|
||||
{
|
||||
if (m.get(F_ORDINAMENTO) == "Z")
|
||||
din.sort(DOC_ZONA"|"DOC_DATADOC"|"DOC_NDOC);
|
||||
bool ok = process(iw, eld, din, data_elab);
|
||||
if (!ok) // In caso di errore termina qui l'elaborazione.
|
||||
break;
|
||||
@ -190,16 +194,13 @@ void TFatturazione_bolle_app::process_by_doc(const TMask& m)
|
||||
for (int c = 0; c < tot_cli && !iw.iscancelled(); c++)
|
||||
{
|
||||
const long codcli = clienti[c]; // Codice cliente in esame
|
||||
msg = TR("Elaborazione dei documenti del cliente");
|
||||
msg = TR("Elaborazione documenti del cliente");
|
||||
msg << ' ' << codcli << "...";
|
||||
iw.set_text(msg); // Messaggio sul cliente
|
||||
do_events(); // Attende visualizzazione
|
||||
|
||||
if (codcli == 203726)
|
||||
int cazzone = 1;
|
||||
|
||||
|
||||
TLista_documenti list;
|
||||
|
||||
list.read('D', tipocf, codcli, anno, tipidoc, statidoc, dd, ad, codnum, dn, an);
|
||||
|
||||
for (int i = list.items()-1; i >= 0; i--)
|
||||
@ -227,7 +228,11 @@ void TFatturazione_bolle_app::process_by_doc(const TMask& m)
|
||||
din.add(list[j]);
|
||||
}
|
||||
if (din.items() > 0 && !iw.iscancelled())
|
||||
bool ok = process(iw, eld, din, data_elab);
|
||||
{
|
||||
if (m.get(F_ORDINAMENTO) == "Z")
|
||||
din.sort(DOC_ZONA"|"DOC_DATADOC"|"DOC_NDOC);
|
||||
process(iw, eld, din, data_elab);
|
||||
}
|
||||
delete e;
|
||||
}
|
||||
|
||||
@ -372,7 +377,8 @@ void TFatturazione_bolle_app::main_loop()
|
||||
cfg.set("FATBOLSEL", _default_selection = select_from);
|
||||
}
|
||||
|
||||
if (m.get(F_ORDINAMENTO) == "R")
|
||||
const TString& orderby = m.get(F_ORDINAMENTO);
|
||||
if (orderby == "R")
|
||||
process_by_ragsoc(m);
|
||||
else
|
||||
{
|
||||
|
@ -71,22 +71,22 @@ END
|
||||
RADIOBUTTON F_ORDINAMENTO 20
|
||||
BEGIN
|
||||
PROMPT 3 5 "@bOrdinamento per"
|
||||
ITEM "C|Clienti"
|
||||
ITEM "C|Cliente"
|
||||
MESSAGE ENABLE,1@|CLEAR,2@|CLEAR,3@|CLEAR,4@
|
||||
ITEM "R|Ragione Soc.Clienti"
|
||||
ITEM "R|Ragione Sociale"
|
||||
MESSAGE CLEAR,1@|CLEAR,2@|CLEAR,3@|ENABLE,4@
|
||||
ITEM "A|Agenti"
|
||||
ITEM "A|Agente"
|
||||
MESSAGE CLEAR,1@|ENABLE,2@|CLEAR,3@|CLEAR,4@
|
||||
ITEM "Z|Zone"
|
||||
ITEM "Z|Zona"
|
||||
MESSAGE CLEAR,1@|CLEAR,2@|ENABLE,3@|CLEAR,4@
|
||||
END
|
||||
|
||||
RADIOBUTTON F_ORDINAMENTO_2 20
|
||||
BEGIN
|
||||
PROMPT 3 5 "@bSelezione per"
|
||||
ITEM "A|Agenti"
|
||||
ITEM "A|Agente"
|
||||
MESSAGE ENABLE,1@|ENABLE,2@|CLEAR,3@|COPY,F_ORDINAMENTO
|
||||
ITEM "Z|Zone"
|
||||
ITEM "Z|Zona"
|
||||
MESSAGE ENABLE,1@|CLEAR,2@|ENABLE,3@|COPY,F_ORDINAMENTO
|
||||
FLAGS "H"
|
||||
END
|
||||
|
@ -72,7 +72,7 @@ class TCond_vendita;
|
||||
class TIVA_array;
|
||||
class TArticolo_giacenza;
|
||||
class TCache_articoli;
|
||||
class TSmart_card;
|
||||
// class TSmart_card;
|
||||
|
||||
bool ora_hndl(TMask_field& field, KEY key);
|
||||
bool totdoc_hndl(TMask_field& field, KEY key);
|
||||
@ -963,7 +963,7 @@ class TDocumento_mask : public TVariable_mask // velib06
|
||||
bool _ges_mag, _ges_dep, _ges_ca;
|
||||
TString8 _std_mag, _std_dep;
|
||||
real _fconv_qta;
|
||||
TSmart_card * _smartcard;
|
||||
// TSmart_card * _smartcard; Cassato il macchinaro
|
||||
static TAssoc_array _father_rows;
|
||||
static TAssoc_array _auto_reopen_nums;
|
||||
static TAssoc_array _tipidoc_rels;
|
||||
@ -1064,7 +1064,7 @@ public:
|
||||
const real & fconv_qta() const { return _fconv_qta;}
|
||||
|
||||
bool is_calculated_page(int p) const { return _calculated_pages[p]; }
|
||||
TSmart_card* smartcard() const { return _smartcard;}
|
||||
// TSmart_card* smartcard() const { return _smartcard;}
|
||||
bool show_note_articolo(const TString& codart);
|
||||
|
||||
short cdc_start() const { return _cdc_start;}
|
||||
|
@ -863,7 +863,7 @@ void TDocumento::set_riga_sconto()
|
||||
{
|
||||
_tipo_riga_sc = "08";
|
||||
conf.set("TRSCONTI", _tipo_riga_sc);
|
||||
warning_box(FR("Il tipo riga sconti di testa non risultava impostato.\n L'applicazione userà automaticamente il tipo %s"), (const char*) _tipo_riga_sc);
|
||||
warning_box(FR("Il tipo riga sconti di testa non risultava impostato.\nL'applicazione userà automaticamente il tipo %s"), (const char*) _tipo_riga_sc);
|
||||
}
|
||||
}
|
||||
_sconto = new TRiga_documento(this, _tipo_riga_sc);
|
||||
@ -1710,15 +1710,19 @@ void TDocumento::calc_provvigione(TProvvigioni_agente & provv, const TString & k
|
||||
|
||||
// Crea le nuove rate provvigionali
|
||||
const bool isnew = provv.items() == 0; // Il documento non ha righe provvigionali
|
||||
TRate_doc& rd = provv.rate(anno, codnum, ndoc, isnew ? true : FALSE);
|
||||
TRate_doc& rd = provv.rate(anno, codnum, ndoc, isnew);
|
||||
|
||||
// A questo punto rd e' vuoto: settiamo i dati del documento:
|
||||
const int ndec = tot_doc.decimals();
|
||||
|
||||
TToken_string t;
|
||||
t.add(anno); t.add(codnum);t.add(ndoc);
|
||||
t.add(datadoc.string()); t.add(tot_doc.string());
|
||||
t.add(tot_provv.string());t.add(tot_netto.string());
|
||||
t.add(anno); t.add(codnum); t.add(ndoc); t.add(datadoc.string());
|
||||
t.add(tot_doc.get_num().string(-1, ndec));
|
||||
t.add(tot_provv.get_num().string(-1, ndec));
|
||||
t.add(tot_netto.get_num().string(-1, ndec));
|
||||
t.add(codcf());
|
||||
t.add(TDocumento::valuta());t.add(change.string());
|
||||
t.add(TDocumento::valuta());
|
||||
t.add(change.string());
|
||||
t.add(get(DOC_DATACAMBIO));
|
||||
rd.set(t);
|
||||
|
||||
@ -1736,7 +1740,7 @@ void TDocumento::calc_provvigione(TProvvigioni_agente & provv, const TString & k
|
||||
if (nrate == 1 && is_anticipo) // significa che l'anticipo paga tutto ora, quindi provv_fat vale tutta la provvigione del documento
|
||||
provv_fat = tot_provv;
|
||||
|
||||
const bool first_rata_ok = provv_fat.get_num() != ZERO;
|
||||
const bool first_rata_ok = !provv_fat.is_zero();
|
||||
|
||||
// Impostazione prima rata solo se la provvigione sul fatturato è diversa da 0
|
||||
if (first_rata_ok)
|
||||
|
@ -299,7 +299,7 @@ const TPointer_array& TTipo_documento::handlers() const
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
if (id > 100 && id < 1000 && hnd > 0)
|
||||
if (id > 10 && id < 1000 && hnd > 0)
|
||||
((TPointer_array&)_handlers).add_long(hnd, id);
|
||||
}
|
||||
}
|
||||
|
@ -182,6 +182,38 @@ int TLista_documenti::write(bool re) const
|
||||
return err;
|
||||
}
|
||||
|
||||
static int doc_cmp(const TSortable& o1, const TSortable& o2, void* jolly)
|
||||
{
|
||||
const TDocumento& d1 = (const TDocumento&)o1;
|
||||
const TDocumento& d2 = (const TDocumento&)o2;
|
||||
TToken_string& order_by = *(TToken_string*)jolly;
|
||||
|
||||
int cmp = 0;
|
||||
FOR_EACH_TOKEN(order_by, fld)
|
||||
{
|
||||
const TFieldtypes ft = d1.type(fld);
|
||||
switch(ft)
|
||||
{
|
||||
case _intfld :
|
||||
case _longfld :
|
||||
case _intzerofld :
|
||||
case _longzerofld: cmp = d1.get_long(fld) - d2.get_long(fld); break;
|
||||
case _datefld : cmp = d1.get_date(fld) - d2.get_date(fld); break;
|
||||
default : cmp = d1.get(fld).compare(d2.get(fld), -1, true); break;
|
||||
}
|
||||
if (cmp != 0)
|
||||
break;
|
||||
}
|
||||
return cmp;
|
||||
}
|
||||
|
||||
int TLista_documenti::sort(const char* fields)
|
||||
{
|
||||
TToken_string orderby = fields;
|
||||
_documenti.sort(doc_cmp, &orderby);
|
||||
return items();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TLista_clifo
|
||||
///////////////////////////////////////////////////////////
|
||||
|
@ -42,6 +42,8 @@ public:
|
||||
TDocumento& operator[] (int n) { return (TDocumento&)_documenti[n]; }
|
||||
int items() const { return _documenti.items(); }
|
||||
|
||||
int sort(const char* fields); // token string of field names
|
||||
|
||||
TLista_documenti() { }
|
||||
virtual ~TLista_documenti() {};
|
||||
};
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include <multirel.h>
|
||||
#include <postman.h>
|
||||
#include <recset.h>
|
||||
#include <smartcard.h>
|
||||
// #include <smartcard.h> // Cassato il macchinaro
|
||||
#include <treectrl.h>
|
||||
#include <toolfld.h>
|
||||
#include <urldefid.h>
|
||||
@ -89,7 +89,7 @@ TCONAI_class conai_id2class(short id)
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
TDocumento_mask::TDocumento_mask(const char* td)
|
||||
: TVariable_mask(), _progs_page(-1), _condv(NULL), _smartcard(NULL),
|
||||
: TVariable_mask(), _progs_page(-1), _condv(NULL), //_smartcard(NULL),
|
||||
_cms_start(-1), _cms_end(-1), _cms_start_sh(-1), _cms_end_sh(-1),
|
||||
_cdc_start(-1), _cdc_end(-1), _cdc_start_sh(-1), _cdc_end_sh(-1)
|
||||
{
|
||||
@ -107,7 +107,6 @@ TDocumento_mask::TDocumento_mask(const char* td)
|
||||
read_mask(mname, 0, MAX_PAGES);
|
||||
|
||||
_sheet = &sfield(F_SHEET);
|
||||
//_sheet->set_handler( ss_handler );
|
||||
set_field_handler(F_SHEET, ss_handler );
|
||||
_sheet->set_notify( ss_notify );
|
||||
_sheet->set_append(FALSE);
|
||||
@ -475,8 +474,7 @@ TDocumento_mask::~TDocumento_mask()
|
||||
delete _condv;
|
||||
if (_livelli_giac)
|
||||
delete _livelli_giac;
|
||||
if (_smartcard)
|
||||
delete _smartcard;
|
||||
// if (_smartcard) delete _smartcard; // cassato il macchinaro
|
||||
}
|
||||
|
||||
int TDocumento_mask::insert_anal_fields(TMask& m, int page, int lf, int& y,
|
||||
@ -804,7 +802,8 @@ void TDocumento_mask::next_page(int p)
|
||||
}
|
||||
|
||||
void TDocumento_mask::start_run()
|
||||
{
|
||||
{
|
||||
/* cassato il macchinaro
|
||||
TSmart_card * s = smartcard();
|
||||
|
||||
if (s != NULL)
|
||||
@ -826,6 +825,7 @@ void TDocumento_mask::start_run()
|
||||
s->display_error(err);
|
||||
}
|
||||
}
|
||||
*/
|
||||
TVariable_mask::start_run();
|
||||
}
|
||||
|
||||
@ -833,6 +833,7 @@ bool TDocumento_mask::stop_run(KEY key)
|
||||
{
|
||||
if (key != K_ESC && key != K_QUIT)
|
||||
update_progs(true);
|
||||
/* Cassato il macchinaro
|
||||
else
|
||||
if (key == K_ESC)
|
||||
{
|
||||
@ -848,7 +849,7 @@ bool TDocumento_mask::stop_run(KEY key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
return TVariable_mask::stop_run(key);
|
||||
}
|
||||
|
||||
@ -865,10 +866,12 @@ bool TDocumento_mask::on_key(KEY key)
|
||||
stato.enable();
|
||||
enable(DLG_SAVEREC);
|
||||
enable(DLG_DELREC);
|
||||
TSmart_card * s = smartcard();
|
||||
xvtil_statbar_set(TR("Modifica"));
|
||||
/*
|
||||
TSmart_card * s = smartcard();
|
||||
if (s != NULL && s->card_connected())
|
||||
s->enable_prot_fields(*this);
|
||||
*/
|
||||
}
|
||||
else
|
||||
warning_box("L'utente %s non puo' modificare questo documento",
|
||||
@ -3756,6 +3759,7 @@ void TDocumento_mask::user_set_handler(short fieldid, int index)
|
||||
case 2: set_field_handler(fieldid, totdoc_hndl); break;
|
||||
case 3: set_field_handler(fieldid, numdocrif_hndl); break;
|
||||
case 4:
|
||||
/* Cassato il macchinaro!
|
||||
_smartcard = new TSmart_card();
|
||||
if (_smartcard->type() != no_smartcard)
|
||||
{
|
||||
@ -3768,9 +3772,12 @@ void TDocumento_mask::user_set_handler(short fieldid, int index)
|
||||
delete _smartcard;
|
||||
_smartcard = NULL;
|
||||
}
|
||||
*/
|
||||
break;
|
||||
case 5: set_field_handler(fieldid, dummy_hndl); break;
|
||||
case 6: set_field_handler(fieldid, fido_hndl); break;
|
||||
case 5: set_field_handler(fieldid, dummy_hndl); break;
|
||||
case 6: set_field_handler(fieldid, fido_hndl); break;
|
||||
case 7: set_field_handler(fieldid, subappalto_hndl); break;
|
||||
case 8: set_field_handler(fieldid, reportba8_hndl); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
7007
ve/velib06a.cpp
7007
ve/velib06a.cpp
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,8 @@ bool numdocrif_hndl(TMask_field& field, KEY key);
|
||||
bool smart_hndl(TMask_field& field, KEY key);
|
||||
bool fido_hndl(TMask_field& field, KEY key);
|
||||
bool nar_handler(TMask_field& f, KEY key);
|
||||
bool subappalto_hndl(TMask_field& f, KEY key);
|
||||
bool reportba8_hndl(TMask_field& f, KEY key);
|
||||
|
||||
bool tipodoc_ok(const TString & tipodoc);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user