Patch level : 10.0 286

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

Preventivi/incarichi (Dinamica)


git-svn-id: svn://10.65.10.50/trunk@18734 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-04-17 16:26:10 +00:00
parent bbbdff79d4
commit 1ffc386788
12 changed files with 55 additions and 31 deletions

View File

@ -41,7 +41,7 @@ public:
virtual void user_set_row_handler(TMask& rm, short field, int index); virtual void user_set_row_handler(TMask& rm, short field, int index);
virtual TVariable_mask * riga_mask(int numriga); virtual TVariable_mask * riga_mask(int numriga);
virtual void doc2mask(bool reload_clifo = true, bool update = true); virtual void doc2mask(bool reload_clifo = true, bool force_load = false, bool update = true);
TGestione_preventivo_msk(const char* tipodoc); TGestione_preventivo_msk(const char* tipodoc);
}; };
@ -198,9 +198,9 @@ TVariable_mask * TGestione_preventivo_msk::riga_mask(int numriga)
} }
void TGestione_preventivo_msk::doc2mask(bool reload_clifo, bool update) void TGestione_preventivo_msk::doc2mask(bool reload_clifo, bool force_load, bool update)
{ {
TDocumento_mask::doc2mask(reload_clifo, false); TDocumento_mask::doc2mask(reload_clifo, force_load, false);
TSheet_field& s = sfield(F_SHEET); TSheet_field& s = sfield(F_SHEET);
const int righe = s.items(); const int righe = s.items();

View File

@ -939,7 +939,7 @@ public:
TCond_vendita & condv() const; TCond_vendita & condv() const;
void occ2mask(); void occ2mask();
void cli2mask(); void cli2mask(bool force_load = false);
virtual void doc2mask(bool reload_clifo = true, bool force_load = false, bool update = true); virtual void doc2mask(bool reload_clifo = true, bool force_load = false, bool update = true);
void mask2doc(); void mask2doc();

View File

@ -578,16 +578,24 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
TCopia_documento::TCopia_documento(const char* cod) TCopia_documento::TCopia_documento(const char* cod)
: TElaborazione(cod) : TElaborazione(cod), _preserve_original_row(false)
{ } { }
bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool /*interattivo*/) const TDate& data_elab, bool /*interattivo*/)
{ {
CHECK(doc_in.items() == doc_out.items(), "Si deve specificare un numero uguale di documenti in entrata ed in uscita"); CHECK(doc_in.items() == doc_out.items(), "Si deve specificare un numero uguale di documenti in entrata ed in uscita");
pre_process_input(doc_in);
for (int d = 0; d < doc_in.items(); d++) for (int d = 0; d < doc_in.items(); d++)
{ {
const TDocumento& doc_src = doc_in[d]; const TDocumento& doc_src = doc_in[d];
if (doc_out.items() <= d)
{
doc_out.add(new TDocumento('D', doc_src.get_int(DOC_ANNO), codice_numerazione_finale(), 0L));
doc_out[d].put(DOC_TIPODOC, tipo_finale());
doc_out[d].put(DOC_STATO, stato_finale());
}
TDocumento& doc_dest = doc_out[d]; TDocumento& doc_dest = doc_out[d];
doc_dest.copy_contents(doc_src); doc_dest.copy_contents(doc_src);
@ -598,5 +606,8 @@ bool TCopia_documento::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
if (data_elab.ok()) if (data_elab.ok())
doc_dest.put(DOC_DATADOC, data_elab); doc_dest.put(DOC_DATADOC, data_elab);
} }
post_process_input(doc_in);
post_process_output(doc_out);
return TRUE; return TRUE;
} }

View File

@ -155,6 +155,9 @@ class TElaborazione : public TRectype // velib04
protected: protected:
int read(const char* cod); int read(const char* cod);
virtual void pre_process_input(TLista_documenti& doc_in) {}
virtual void post_process_input(TLista_documenti& doc_out) {}
virtual void post_process_output(TLista_documenti& doc_out) {}
public: public:
enum { _max_tipi_doc_elab = 10 }; enum { _max_tipi_doc_elab = 10 };
@ -252,9 +255,6 @@ protected:
virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin); virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin);
virtual const TString & get_tipo_out(const TDocumento & doc_out) { return get("S8"); } virtual const TString & get_tipo_out(const TDocumento & doc_out) { return get("S8"); }
bool change_clifo() { return get_bool("B14"); } bool change_clifo() { return get_bool("B14"); }
virtual void pre_process_input(TLista_documenti& doc_in) {}
virtual void post_process_input(TLista_documenti& doc_out) {}
virtual void post_process_output(TLista_documenti& doc_out) {}
virtual bool da_raggruppare(const TRiga_documento & rin) { return true; } virtual bool da_raggruppare(const TRiga_documento & rin) { return true; }
public: public:
@ -516,12 +516,15 @@ public:
class TCopia_documento : public TElaborazione // velib04 class TCopia_documento : public TElaborazione // velib04
{ {
bool _preserve_original_row;
public: public:
virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, virtual bool elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo = false); const TDate& data_elab, bool interattivo = false);
void preserve_original_row(bool on = true) { _preserve_original_row = on;}
TCopia_documento(const char* cod); TCopia_documento(const char* cod);
TCopia_documento(const TRectype& rec) : TElaborazione(rec) { } TCopia_documento(const TRectype& rec) : TElaborazione(rec), _preserve_original_row(false) { }
virtual ~TCopia_documento() { } virtual ~TCopia_documento() { }
}; };

View File

@ -1392,6 +1392,7 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
mov_rec.put(MOV_DANNO, doc.get(DOC_ANNO)); mov_rec.put(MOV_DANNO, doc.get(DOC_ANNO));
mov_rec.put(MOV_DCODNUM, doc.get(DOC_CODNUM)); mov_rec.put(MOV_DCODNUM, doc.get(DOC_CODNUM));
mov_rec.put(MOV_DNDOC, doc.get(DOC_NDOC)); mov_rec.put(MOV_DNDOC, doc.get(DOC_NDOC));
mov_rec.put(MOV_LIQDIFF, doc.get(DOC_LIQDIFF));
return _error; return _error;
} }
@ -1567,6 +1568,8 @@ error_type TContabilizzazione::compile_head_mov_re(TDocumento& doc)
mov_rec.put(MOV_DANNO, doc.get(DOC_ANNO)); mov_rec.put(MOV_DANNO, doc.get(DOC_ANNO));
mov_rec.put(MOV_DCODNUM, doc.get(DOC_CODNUM)); mov_rec.put(MOV_DCODNUM, doc.get(DOC_CODNUM));
mov_rec.put(MOV_DNDOC, doc.get(DOC_NDOC)); mov_rec.put(MOV_DNDOC, doc.get(DOC_NDOC));
mov_rec.put(MOV_LIQDIFF, doc.get(DOC_LIQDIFF));
return _error; return _error;
} }
@ -4211,6 +4214,7 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc
p.links().add("Movimento Prima Nota |b|w", 0); p.links().add("Movimento Prima Nota |b|w", 0);
p.links().add("Movimento Analitico |r|w", 1); p.links().add("Movimento Analitico |r|w", 1);
p.setlinkhandler(link_handler); p.setlinkhandler(link_handler);
pre_process_input(doc_in);
_viswin = new TViswin(NULL, TR("Contabilizzazione documenti"), false, true, true); _viswin = new TViswin(NULL, TR("Contabilizzazione documenti"), false, true, true);
if (!exporting()) if (!exporting())
_viswin->open_modal(); _viswin->open_modal();
@ -4354,7 +4358,10 @@ bool TContabilizzazione::elabora(TLista_documenti& doc_in, TLista_documenti& doc
} }
delete _viswin; _viswin = NULL; delete _viswin; _viswin = NULL;
return _can_write; // Se non ha riscontrato errori per nessun documento, _can_write = true post_process_input(doc_in);
post_process_output(doc_out);
return _can_write; // Se non ha riscontrato errori per nessun documento, _can_write = true
} }
bool TContabilizzazione::call_exe(const TDocumento& doc, const TMovimentoPN& movimento) const bool TContabilizzazione::call_exe(const TDocumento& doc, const TMovimentoPN& movimento) const

View File

@ -705,6 +705,7 @@ bool TGenerazione_effetti::elabora(TLista_documenti& doc_in, TLista_documenti& d
_error = no_error; _error = no_error;
_total_bills = 0L; _total_bills = 0L;
pre_process_input(doc_in);
const int items = doc_in.items(); // Numero dei documenti in questa elaborazione const int items = doc_in.items(); // Numero dei documenti in questa elaborazione
for (int i = 0; i < items ; i++) // Scorriamo tutti i documenti nella lista for (int i = 0; i < items ; i++) // Scorriamo tutti i documenti nella lista
{ {
@ -717,6 +718,8 @@ bool TGenerazione_effetti::elabora(TLista_documenti& doc_in, TLista_documenti& d
if (!good()) if (!good())
display_error(doc); display_error(doc);
} }
post_process_input(doc_in);
post_process_output(doc_out);
return _can_write; return _can_write;
} }

View File

@ -330,6 +330,8 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
TConsegna_mask m(header_code, ordina_per_codice(), get_bool("B3")); TConsegna_mask m(header_code, ordina_per_codice(), get_bool("B3"));
const int items_max = items_in > items_out ? items_in : items_out; const int items_max = items_in > items_out ? items_in : items_out;
pre_process_input(doc_in);
for (int d = 0; d < items_max && ok; d++) for (int d = 0; d < items_max && ok; d++)
{ {
TDocumento& indoc = doc_in[d < items_in ? d : 0]; TDocumento& indoc = doc_in[d < items_in ? d : 0];
@ -705,6 +707,8 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
{ {
indoc.stato(stato_finale_doc_iniziale()[0]); indoc.stato(stato_finale_doc_iniziale()[0]);
} }
post_process_input(doc_in);
post_process_output(doc_out);
} }
return ok; return ok;
} }

View File

@ -169,6 +169,7 @@ bool TConsuntivazione_produzione::elabora(TLista_documenti& doc_in, TLista_docum
TLocalisamfile rilevazioni(LF_RILPROD); TLocalisamfile rilevazioni(LF_RILPROD);
TRectype& ril = rilevazioni.curr(); TRectype& ril = rilevazioni.curr();
pre_process_input(doc_in);
if (doc_out.items() == 0) if (doc_out.items() == 0)
{ {
TDocumento d('D', data_elab.year(), codice_numerazione_finale(), 0L); TDocumento d('D', data_elab.year(), codice_numerazione_finale(), 0L);
@ -299,5 +300,7 @@ bool TConsuntivazione_produzione::elabora(TLista_documenti& doc_in, TLista_docum
book.add(log); book.add(log);
book.preview(); book.preview();
return done; post_process_input(doc_in);
post_process_output(doc_out);
return done;
} }

View File

@ -719,10 +719,12 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
{ {
const TImporto zero; const TImporto zero;
TPrinter& p = printer(); TPrinter& p = printer();
p.links().add("Movimento Analitico |r|w", 0);
p.setlinkhandler(link_handler_ana);
TViswin v(NULL, TR("Contabilizzazione documenti in analitica"), false, true, true); TViswin v(NULL, TR("Contabilizzazione documenti in analitica"), false, true, true);
p.links().add("Movimento Analitico |r|w", 0);
p.setlinkhandler(link_handler_ana);
pre_process_input(doc_in);
v.open_modal(); v.open_modal();
for (int i = 0; i < doc_in.items(); i++) for (int i = 0; i < doc_in.items(); i++)
{ {
@ -737,6 +739,8 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
if (v.run() == K_CTRL+'S') // Ho premuto Stampa if (v.run() == K_CTRL+'S') // Ho premuto Stampa
p.print_txt(v.text()); p.print_txt(v.text());
post_process_input(doc_in);
post_process_output(doc_out);
return true; return true;
} }

View File

@ -60,20 +60,6 @@ bool TOriginal_row_mask::on_key(KEY key)
// TColor_rule // TColor_rule
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TColor_rule : public TExpr_documento
{
COLOR _back, _fore, _def_back, _def_fore;
TString _desc, _key;
public:
const TString& description() const { return _desc; }
const TString& key() const { return _key; }
void default_colors(COLOR& back, COLOR& fore) const { back = _def_back; fore = _def_fore; }
void colors(COLOR& back, COLOR& fore) const { back = _back; fore = _fore; }
void set_colors(COLOR back, COLOR fore) { _back = back; _fore = fore; }
TColor_rule(const char* desc, const char* expr, TTypeexp type, COLOR back, COLOR fore);
};
TColor_rule::TColor_rule(const char* desc, const char* expr, TTypeexp type, COLOR back, COLOR fore) TColor_rule::TColor_rule(const char* desc, const char* expr, TTypeexp type, COLOR back, COLOR fore)
: TExpr_documento(expr, type), _back(back), _fore(fore), _def_back(back), _def_fore(fore) : TExpr_documento(expr, type), _back(back), _fore(fore), _def_back(back), _def_fore(fore)
@ -1016,7 +1002,7 @@ void TDocumento_mask::reset_masks(const TString& tipo_doc)
} }
} }
void TDocumento_mask::doc2mask(bool reload_clifo, bool force_load) void TDocumento_mask::doc2mask(bool reload_clifo, bool force_load, bool update)
{ {
TSheet_field& s = sfield(F_SHEET); TSheet_field& s = sfield(F_SHEET);
s.destroy( ); s.destroy( );
@ -1054,7 +1040,8 @@ void TDocumento_mask::doc2mask(bool reload_clifo, bool force_load)
reset_masks(get(F_TIPODOC)); reset_masks(get(F_TIPODOC));
//aggiorna i colori delle righe e forza l'update dello sheet //aggiorna i colori delle righe e forza l'update dello sheet
highlight(); if (update)
highlight();
} }
void TDocumento_mask::mask2doc() void TDocumento_mask::mask2doc()

View File

@ -1717,6 +1717,7 @@ bool codart_handler(TMask_field& f, KEY key )
{ {
TDocumento & doc = mask.doc(); TDocumento & doc = mask.doc();
TRiga_documento & curr_row = doc[current_doc_row]; TRiga_documento & curr_row = doc[current_doc_row];
const int start_level = curr_row.get_int(RDOC_LEVEL);
sh.update_row(current_doc_row - 1); sh.update_row(current_doc_row - 1);
curr_row.autosave(sh); curr_row.autosave(sh);
@ -1754,6 +1755,8 @@ bool codart_handler(TMask_field& f, KEY key )
new_row.put(RDOC_UMQTA, r.um()); new_row.put(RDOC_UMQTA, r.um());
new_row.put(RDOC_GENERATA, "X"); new_row.put(RDOC_GENERATA, "X");
new_row.put(RDOC_QTA, r.val() /* * qta_fin */); new_row.put(RDOC_QTA, r.val() /* * qta_fin */);
const int level = start_level + r.livello();
new_row.put(RDOC_LEVEL, level);
new_row.autoload(sh); new_row.autoload(sh);
sh.check_row(row); sh.check_row(row);
new_row.autosave(sh); // Da sheet a rdoc new_row.autosave(sh); // Da sheet a rdoc
@ -2788,7 +2791,7 @@ bool gen_livelli_handler(TMask_field& f, KEY key )
{ {
TFieldref fld(name.after("34."), LF_RIGHEDOC); TFieldref fld(name.after("34."), LF_RIGHEDOC);
code << fld.read(d); code << fld.read(r);
} }
else else
if (name.starts_with("47.")) if (name.starts_with("47."))

View File

@ -66,7 +66,6 @@
#define FR_DATACONS 130 #define FR_DATACONS 130
#define FR_CODARTMAG 131 #define FR_CODARTMAG 131
#define FR_CHECKED 132 #define FR_CHECKED 132
#define FR_CHECKED 132
#define FR_RITIRO 133 // Lavanderie #define FR_RITIRO 133 // Lavanderie
#define FR_QTAGG1 133 #define FR_QTAGG1 133
#define FR_QTAGG2 134 #define FR_QTAGG2 134