Patch level : 12.0 900
Files correlati : ve0.exe ve6.exe Commento : Contollata la sottocategoria e il codice spesa coani in fatturazione bolle
This commit is contained in:
parent
192867cff1
commit
3cde95efb6
@ -563,7 +563,8 @@ class TConai : public TObject
|
|||||||
TAssoc_array _conais;
|
TAssoc_array _conais;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const TSpesa_prest& get_spesa(const TString& sottocat) { return (const TSpesa_prest &) _conais[sottocat]; }
|
bool exist_sottocat(const TString& sottocat) { return _conais.objptr(sottocat); }
|
||||||
|
const TSpesa_prest& get_spesa(const TString& sottocat) { return (const TSpesa_prest &)_conais[sottocat]; }
|
||||||
const bool find(const TString& cod_spesa) { return _conais.objptr(cod_spesa) != NULL; }
|
const bool find(const TString& cod_spesa) { return _conais.objptr(cod_spesa) != NULL; }
|
||||||
int get_lista_cod_spesa(TString_array & keys) { return _conais.get_keys(keys); }
|
int get_lista_cod_spesa(TString_array & keys) { return _conais.get_keys(keys); }
|
||||||
|
|
||||||
|
@ -182,9 +182,8 @@ TSpesa_prest::TSpesa_prest(const char* codice, char tipo)
|
|||||||
if (codice && *codice)
|
if (codice && *codice)
|
||||||
{
|
{
|
||||||
const int err = read(codice);
|
const int err = read(codice);
|
||||||
/*
|
|
||||||
#ifdef DBG
|
if (err != NOERR)
|
||||||
if (err != NOERR)
|
|
||||||
switch (tipo)
|
switch (tipo)
|
||||||
{
|
{
|
||||||
case RIGA_SPESEDOC :
|
case RIGA_SPESEDOC :
|
||||||
@ -203,8 +202,6 @@ TSpesa_prest::TSpesa_prest(const char* codice, char tipo)
|
|||||||
error_box("Spesa %s assente", codice);
|
error_box("Spesa %s assente", codice);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3120,62 +3120,70 @@ void TDocumento::update_conai()
|
|||||||
if (cli_add_conai)
|
if (cli_add_conai)
|
||||||
{
|
{
|
||||||
const TString4 cod_iva_cli = codesiva();
|
const TString4 cod_iva_cli = codesiva();
|
||||||
TConai conai;
|
TConai conai;
|
||||||
|
|
||||||
|
|
||||||
FOR_EACH_ASSOC_OBJECT(_conaiqta, o, key, item)
|
FOR_EACH_ASSOC_OBJECT(_conaiqta, o, key, item)
|
||||||
{
|
{
|
||||||
const TString cod_sottocat = key;
|
const TString8 cod_sottocat = key;
|
||||||
|
|
||||||
// Se l'ho già fatto skippo
|
// Se l'ho già fatto skippo
|
||||||
if (conai_aggiornati.objptr(cod_sottocat) != NULL)
|
if (conai_aggiornati.objptr(cod_sottocat) != NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
TSpesa_prest sp = conai.get_spesa(cod_sottocat);
|
if (conai.exist_sottocat(cod_sottocat))
|
||||||
|
{
|
||||||
// Aggiungo la spesa
|
TSpesa_prest sp = conai.get_spesa(cod_sottocat);
|
||||||
const real perc_esenz = cfven.get_real(get_cf_esenz(cod_sottocat.left(2)));
|
|
||||||
const bool cli_esente = (esponi_esenti) && (perc_esenz >= CENTO);
|
|
||||||
const real qta_lorda = *((real *) item);
|
|
||||||
real qta = qta_lorda;
|
|
||||||
if (!cli_esente && !qta_lorda.is_zero() && !perc_esenz.is_zero())
|
|
||||||
{
|
|
||||||
qta = qta_lorda * (CENTO - perc_esenz) / CENTO;
|
|
||||||
qta.round(5);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (qta > ZERO)
|
// Aggiungo la spesa
|
||||||
{
|
const real perc_esenz = cfven.get_real(get_cf_esenz(cod_sottocat.left(2)));
|
||||||
const TString4 tipo = sp.tipo_riga();
|
const bool cli_esente = (esponi_esenti) && (perc_esenz >= CENTO);
|
||||||
TRiga_documento& riga = new_row(tipo);
|
const real qta_lorda = *((real *)item);
|
||||||
|
real qta = qta_lorda;
|
||||||
|
if (!cli_esente && !qta_lorda.is_zero() && !perc_esenz.is_zero())
|
||||||
|
{
|
||||||
|
qta = qta_lorda * (CENTO - perc_esenz) / CENTO;
|
||||||
|
qta.round(5);
|
||||||
|
}
|
||||||
|
|
||||||
riga.put(RDOC_CODART, sp.codice());
|
if (qta > ZERO)
|
||||||
riga.generata();
|
{
|
||||||
riga.put(RDOC_GENTIPO, 'C');
|
TString4 tipo = sp.tipo_riga();
|
||||||
static TString descrizione;
|
|
||||||
descrizione.cut(0) << sp.descrizione() << " (" << cod_sottocat << ")";
|
|
||||||
riga.put(RDOC_DESCR, descrizione);
|
|
||||||
riga.put(RDOC_QTA, qta);
|
|
||||||
|
|
||||||
// Mi salvo anche la sottocategoria in questione
|
if (tipo.blank())
|
||||||
riga.put(RDOC_TIPOCON, cod_sottocat);
|
tipo = "03";
|
||||||
|
TRiga_documento& riga = new_row(tipo);
|
||||||
|
|
||||||
const real cambio = get_real(DOC_CAMBIO);
|
riga.put(RDOC_CODART, sp.codice());
|
||||||
const TString4 valuta = get(DOC_CODVAL);
|
riga.generata();
|
||||||
real prezzo = cli_esente ? ZERO : sp.prezzo();
|
riga.put(RDOC_GENTIPO, 'C');
|
||||||
|
static TString descrizione;
|
||||||
|
descrizione.cut(0) << sp.descrizione() << " (" << cod_sottocat << ")";
|
||||||
|
riga.put(RDOC_DESCR, descrizione);
|
||||||
|
riga.put(RDOC_QTA, qta);
|
||||||
|
|
||||||
sppr_calc(sp, valuta, cambio, prezzo);
|
// Mi salvo anche la sottocategoria in questione
|
||||||
if (this->tipo().calcolo_lordo())
|
riga.put(RDOC_TIPOCON, cod_sottocat);
|
||||||
prezzo = riga.iva().lordo(prezzo, ALL_DECIMALS);
|
|
||||||
riga.put(RDOC_PREZZO, prezzo);
|
const real cambio = get_real(DOC_CAMBIO);
|
||||||
riga.put(RDOC_UMQTA, sp.um());
|
const TString4 valuta = get(DOC_CODVAL);
|
||||||
if (cod_iva_cli.empty())
|
real prezzo = cli_esente ? ZERO : sp.prezzo();
|
||||||
riga.put(RDOC_CODIVA, sp.cod_iva());
|
|
||||||
else
|
sppr_calc(sp, valuta, cambio, prezzo);
|
||||||
riga.put(RDOC_CODIVA, cod_iva_cli);
|
if (this->tipo().calcolo_lordo())
|
||||||
}
|
prezzo = riga.iva().lordo(prezzo, ALL_DECIMALS);
|
||||||
}
|
riga.put(RDOC_PREZZO, prezzo);
|
||||||
}
|
riga.put(RDOC_UMQTA, sp.um());
|
||||||
|
if (cod_iva_cli.empty())
|
||||||
|
riga.put(RDOC_CODIVA, sp.cod_iva());
|
||||||
|
else
|
||||||
|
riga.put(RDOC_CODIVA, cod_iva_cli);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
error_box("Sottocategoria CONAI %s assente", (const char *) cod_sottocat);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user