diff --git a/ve/velib04.cpp b/ve/velib04.cpp index 31c7367e9..6ac704ecc 100755 --- a/ve/velib04.cpp +++ b/ve/velib04.cpp @@ -134,8 +134,8 @@ int TLista_documenti::read(char provv, char tipocf, long clifo, int anno, _documenti.destroy(); for (cur = 0; cur.ok(); ++cur) { - const TString16 tipodoc = head.get(DOC_TIPODOC); - const TString16 statodoc = head.get(DOC_STATO); + const TString4 tipodoc = head.get(DOC_TIPODOC); + const TString4 statodoc = head.get(DOC_STATO); bool match = FALSE; for (int i = tipidoc.items()-1; i>=0; i--) diff --git a/ve/velib05.cpp b/ve/velib05.cpp index fb1400a64..c27ea5a72 100755 --- a/ve/velib05.cpp +++ b/ve/velib05.cpp @@ -1,4 +1,3 @@ -#include #include "velib.h" ///////////////////////////////////////////////////////////// @@ -248,11 +247,9 @@ int TDocumentoEsteso::readat(TBaseisamfile& file, TRecnotype nrec, word lockop) return err; } - TDocumentoEsteso::TDocumentoEsteso(const TRectype& rec) : TDocumento(rec), _sum_filter(-1), _sum_selected(FALSE), _scadenze_current(-1) { - // _iva = new TTable("%IVA"); // Inizializza i parametri di default _parm.qta_lit = 3; _parm.qta_val = 3; } diff --git a/ve/velib06.cpp b/ve/velib06.cpp index 7f5897563..9bfc19082 100755 --- a/ve/velib06.cpp +++ b/ve/velib06.cpp @@ -22,16 +22,10 @@ #include "veuml.h" #include "veuml1.h" #include "veini.h" - #include "sconti.h" -#include "doc.h" -#include "rdoc.h" - - class TOriginal_row_mask : public TAutomask { - protected: virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_key(KEY key); @@ -299,7 +293,7 @@ int TDocumento_mask::insert_anal_fields(TMask& m, int page, int lf, int& y, { case LF_COMMESSE: fieldname = DOC_CODCMS; break; case LF_FASI : fieldname = DOC_FASCMS; break; - default : fieldname = DOC_CODCOSTO; break; + default : fieldname = DOC_CODCOSTO; break; } TFieldref* f = (TFieldref*)fld.field(); f->set_name(fieldname); diff --git a/ve/velib06a.cpp b/ve/velib06a.cpp index 456d98577..f992e2242 100755 --- a/ve/velib06a.cpp +++ b/ve/velib06a.cpp @@ -1369,95 +1369,89 @@ bool sppr_handler( TMask_field& f, KEY key ) if (key == K_TAB && (f.focusdirty() || row_mask.get(FR_DESCR).empty())) { - const int pos = row_mask.id2pos(FR_PREZZO); - - if (pos >= 0) + const TRectype& curr = ((TEdit_field&)f).browse()->cursor()->curr(); +/* + const TString& cod = curr.get("COD"); + char tiposp = RIGA_SPESEDOC; + if (cod == "PRS") + tiposp = RIGA_PRESTAZIONI; else + if (cod == "RSS") + tiposp = RIGA_RISORSE; else + if (cod == "ATR") + tiposp = RIGA_ATTREZZATURE; + const TSpesa_prest sp(row_mask.get(FR_CODART), tiposp); +*/ + const TSpesa_prest sp(curr); + + const int pos = row_mask.id2pos(FR_PREZZO); + if (pos >= 0 && !sp.empty()) { - TMask & mask = row_mask.get_sheet()->mask(); - TEdit_field & e = (TEdit_field &) f; - TRelation * r = e.browse()->cursor()->relation(); - const TString16 cod = r->curr().get("COD"); - char tipo = RIGA_SPESEDOC; - - if (cod == "PRS") - tipo = RIGA_PRESTAZIONI; - else - if (cod == "RSS") - tipo = RIGA_RISORSE; - else - if (cod == "ATR") - tipo = RIGA_ATTREZZATURE; + const char tipo = sp.tipo(); + const bool qta_val_fl = tipo == 'Q'; + const bool perc_fl = tipo == 'P'; + int pos = row_mask.id2pos(FR_UMQTASP); - TSpesa_prest sp(row_mask.get(FR_CODART), tipo); - if (!sp.empty()) + if (pos >= 0) + row_mask.fld(pos).enable(!perc_fl); + pos = row_mask.id2pos(FR_PREZZO); + if (pos >= 0) + row_mask.fld(pos).enable(!perc_fl); + pos = row_mask.id2pos(FR_SCONTO); + if (pos >= 0) + row_mask.fld(pos).enable(!perc_fl); + pos = row_mask.id2pos(FR_QTA); + if (pos >= 0) { - const char tipo = sp.tipo(); - const bool qta_val_fl = tipo == 'Q'; - const bool perc_fl = tipo == 'P'; - short pos = row_mask.id2pos(FR_UMQTASP); - - if (pos >= 0) - row_mask.fld(pos).enable(!perc_fl); - pos = row_mask.id2pos(FR_PREZZO); - if (pos >= 0) - row_mask.fld(pos).enable(!perc_fl); - pos = row_mask.id2pos(FR_SCONTO); - if (pos >= 0) - row_mask.fld(pos).enable(!perc_fl); - pos = row_mask.id2pos(FR_QTA); - if (pos >= 0) - { - row_mask.fld(pos).show(!perc_fl); - row_mask.fld(pos).enable(qta_val_fl); - } - pos = row_mask.id2pos(FR_PERCSP); - if (pos >= 0) - { - row_mask.fld(pos).show(perc_fl); - row_mask.fld(pos).enable(perc_fl); - } - if (!perc_fl) - { - const real cambio = mask.get_real(F_CAMBIO); - real prezzo = sp.prezzo(); - const TString& doc_valuta = mask.get(F_CODVAL); - const bool controeuro = mask.get_bool(F_CONTROEURO); - - sppr_calc(sp, doc_valuta, cambio, prezzo, controeuro ? _exchange_contro : _exchange_base); - row_mask.set(FR_PREZZO, prezzo); - - } - const int posiva = row_mask.id2pos(FR_CODIVA); - if (posiva >= 0) - iva_handler(row_mask.fld(posiva), 0); - - if (row_mask.id2pos(FR_CDC1) >= 0) - { - const TString80 cdc(sp.cdc()); - const TString80 cms(sp.cms()); - const TString80 fase(sp.fase()); - - for (short i = FR_CDC1; i <= FR_CDC12; i++) - { - const pos = row_mask.id2pos(i); - - if (pos >=0) - { - TEdit_field & e = (TEdit_field &) row_mask.fld(pos); - const TFieldref * fr = e.field(); - - if (fr->name() == "CODCOSTO") - e.set(cdc.sub(fr->from(), fr->to())); - else - if (fr->name() == "CODCMS") - e.set(cms.sub(fr->from(), fr->to())); - else - if (fr->name() == "FASCMS") - e.set(fase.sub(fr->from(), fr->to())); - } - } - } + row_mask.fld(pos).show(!perc_fl); + row_mask.fld(pos).enable(qta_val_fl); } + pos = row_mask.id2pos(FR_PERCSP); + if (pos >= 0) + { + row_mask.fld(pos).show(perc_fl); + row_mask.fld(pos).enable(perc_fl); + } + if (!perc_fl) + { + const TMask& mask = row_mask.get_sheet()->mask(); + const real cambio = mask.get_real(F_CAMBIO); + real prezzo = sp.prezzo(); + const TString& doc_valuta = mask.get(F_CODVAL); + const bool controeuro = mask.get_bool(F_CONTROEURO); + + sppr_calc(sp, doc_valuta, cambio, prezzo, controeuro ? _exchange_contro : _exchange_base); + row_mask.set(FR_PREZZO, prezzo); + } + } + + const int posiva = row_mask.id2pos(FR_CODIVA); + if (posiva >= 0) + iva_handler(row_mask.fld(posiva), 0); + + if (row_mask.id2pos(FR_CDC1) >= 0) + { + const TString80 cdc(sp.cdc()); + const TString80 cms(sp.cms()); + const TString80 fase(sp.fase()); + + for (short i = FR_CDC1; i <= FR_CDC12; i++) + { + const pos = row_mask.id2pos(i); + if (pos >=0) + { + TEdit_field& e = (TEdit_field&)row_mask.fld(pos); + const TFieldref& fr = *e.field(); + + if (fr.name() == RDOC_CODCOSTO) + e.set(cdc.sub(fr.from(), fr.to())); + else + if (fr.name() == RDOC_CODCMS) + e.set(cms.sub(fr.from(), fr.to())); + else + if (fr.name() == RDOC_FASCMS) + e.set(fase.sub(fr.from(), fr.to())); + } + } } } return true;