Patch level : 2.2

Files correlati     : ve0
Ricompilazione Demo : [ ]
Commento            :

Corretta proposta della commessa sulle spese a percentuale


git-svn-id: svn://10.65.10.50/trunk@13752 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2006-02-02 13:49:19 +00:00
parent 2ee558e8c1
commit 0b64b3ae0f
4 changed files with 82 additions and 97 deletions

View File

@ -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--)

View File

@ -1,4 +1,3 @@
#include <tabutil.h>
#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;
}

View File

@ -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);

View File

@ -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;