Spostate le funzioni del calcolo lordo/netto in velib01.
Corretta la funzione di rinumerazione. git-svn-id: svn://10.65.10.50/trunk@3353 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f9ba9aa42d
commit
1029c6ef35
@ -1,74 +1,12 @@
|
|||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
#include "velib01.h"
|
||||||
#include "ve2300.h"
|
#include "ve2300.h"
|
||||||
#include "veconf.h"
|
#include "veconf.h"
|
||||||
|
|
||||||
#define MAX_REAL "9999999999.99999" //mmmhh..
|
#define MAX_REAL "9999999999.99999" //mmmhh..
|
||||||
|
|
||||||
// Le 4 seguenti funzioni saranno da mettere in velib01
|
|
||||||
|
|
||||||
real lordo2netto(real& lordo, const TString& codiva, bool is_valuta = FALSE);
|
|
||||||
real netto2lordo(const real& netto, const TString& codiva, bool is_valuta = FALSE);
|
|
||||||
real lordo2netto(real& lordo, const real& iva, bool is_valuta = FALSE);
|
|
||||||
real netto2lordo(const real& netto, const real& iva, bool is_valuta = FALSE);
|
|
||||||
|
|
||||||
real lordo2netto(real& lordo, const TString& codiva, bool is_valuta)
|
|
||||||
{
|
|
||||||
TTable tabiva("%IVA");
|
|
||||||
real aliquota = 0.0;
|
|
||||||
|
|
||||||
tabiva.put("CODTAB", codiva);
|
|
||||||
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
|
||||||
|
|
||||||
return lordo2netto(lordo,aliquota,is_valuta);
|
|
||||||
}
|
|
||||||
|
|
||||||
real netto2lordo(const real& netto, const TString& codiva, bool is_valuta)
|
|
||||||
{
|
|
||||||
TTable tabiva("%IVA");
|
|
||||||
real aliquota = 0.0;
|
|
||||||
|
|
||||||
tabiva.put("CODTAB", codiva);
|
|
||||||
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
|
||||||
|
|
||||||
return netto2lordo(netto,aliquota,is_valuta);
|
|
||||||
}
|
|
||||||
|
|
||||||
real lordo2netto(real& lordo, const real& iva, bool is_valuta)
|
|
||||||
{
|
|
||||||
real netto;
|
|
||||||
real imposta = 0.0;
|
|
||||||
real imposta_rec = 0.0;
|
|
||||||
if (!iva.is_zero())
|
|
||||||
{
|
|
||||||
imposta = (lordo * iva) / (iva + 100.0); // Calcola l'imposta...
|
|
||||||
imposta.ceil(is_valuta ? 3 : 0);
|
|
||||||
}
|
|
||||||
netto = lordo - imposta; // Questo e' l'importo netto
|
|
||||||
imposta_rec = (netto * iva) / 100.0; // Ricalcola l'imposta con il nuovo imponibile
|
|
||||||
imposta_rec.ceil(is_valuta ? 3 : 0);
|
|
||||||
if (imposta != imposta_rec) // In questo caso corregge l'importo lordo
|
|
||||||
lordo = netto + imposta_rec;
|
|
||||||
return netto;
|
|
||||||
}
|
|
||||||
|
|
||||||
real netto2lordo(const real& netto, const real& iva, bool is_valuta)
|
|
||||||
{
|
|
||||||
real lordo;
|
|
||||||
real imposta = 0.0;
|
|
||||||
if (!iva.is_zero())
|
|
||||||
{
|
|
||||||
imposta = (netto * iva) / 100.0; // Calcola l'imposta
|
|
||||||
imposta.ceil(is_valuta ? 3 : 0);
|
|
||||||
}
|
|
||||||
lordo = imposta + netto; // prezzo lordo
|
|
||||||
return lordo;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Queste no!
|
|
||||||
|
|
||||||
static void key_hide(TMask & m, short id, int key = 1)
|
static void key_hide(TMask & m, short id, int key = 1)
|
||||||
{
|
{
|
||||||
((TEditable_field &)m.field(id)).reset_key(key);
|
((TEditable_field &)m.field(id)).reset_key(key);
|
||||||
@ -320,8 +258,9 @@ bool TRighe_condizioni_vendita::handle_cod(TMask_field &fld, KEY k) {
|
|||||||
_msk->show(F_R_PREZZO_LORDO, !app()._is_valuta && imp_lordi);
|
_msk->show(F_R_PREZZO_LORDO, !app()._is_valuta && imp_lordi);
|
||||||
_msk->show(F_R_PREZZO_LORDO_VAL, app()._is_valuta && imp_lordi);
|
_msk->show(F_R_PREZZO_LORDO_VAL, app()._is_valuta && imp_lordi);
|
||||||
if (_gest_um) _um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
|
if (_gest_um) _um= condv.get_bool("GESTUM"); // legge lo stato di abilitazione della gestione delle unità di misura
|
||||||
|
_gest_sca &= condv.get_bool("GESTSCAGL");
|
||||||
hide_and_show_codriga(); // lancia la funzione che si occupa di abilitare/disabilitare il campo "unità di misura"
|
hide_and_show_codriga(); // lancia la funzione che si occupa di abilitare/disabilitare il campo "unità di misura"
|
||||||
if (_gest_sca && condv.get_bool("GESTSCAGL")) {
|
if (_gest_sca) {
|
||||||
if (_msk->query_mode())
|
if (_msk->query_mode())
|
||||||
key_enable(*_msk, F_R_NSCAGL); // abilita il campo "numero scaglione"
|
key_enable(*_msk, F_R_NSCAGL); // abilita il campo "numero scaglione"
|
||||||
_msk->enable(F_R_QLIM); // abilita il campo "quantità limite scaglione"
|
_msk->enable(F_R_QLIM); // abilita il campo "quantità limite scaglione"
|
||||||
@ -567,26 +506,12 @@ int TRighe_condizioni_vendita::rewrite(const TMask &m) {
|
|||||||
void TRighe_condizioni_vendita::renumber_sca(const TRectype& r)
|
void TRighe_condizioni_vendita::renumber_sca(const TRectype& r)
|
||||||
{
|
{
|
||||||
TRectype from(r);
|
TRectype from(r);
|
||||||
TRectype to(r);
|
from.zero("NSCAGL");
|
||||||
TLocalisamfile rcondv(LF_RCONDV);
|
TRecord_array rec_arr(from,"NSCAGL");
|
||||||
int sca = 1;
|
if (rec_arr.read(from) == NOERR)
|
||||||
from.put("NSCAGL",sca); // parte dal primo (Se ci sono gli scaglioni questo deve esserci)
|
|
||||||
to.put("NSCAGL",9); // condizione limite...
|
|
||||||
rcondv.curr() = from;
|
|
||||||
for (rcondv.read(_isgteq);rcondv.good() && rcondv.curr() <= to;rcondv.next()) // se non c'e' nessun scaglione, non rinumera niente
|
|
||||||
{
|
{
|
||||||
if (rcondv.get_int("NSCAGL") != sca)
|
rec_arr.pack();
|
||||||
{
|
rec_arr.rewrite();
|
||||||
rcondv.put("NSCAGL",sca);
|
|
||||||
rcondv.rewrite();
|
|
||||||
}
|
|
||||||
sca++;
|
|
||||||
}
|
|
||||||
if (sca > 1)
|
|
||||||
{
|
|
||||||
rcondv.curr() = from;
|
|
||||||
rcondv.put("NSCAGL",sca-1);
|
|
||||||
rcondv.remove();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool TRighe_condizioni_vendita::remove()
|
bool TRighe_condizioni_vendita::remove()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user