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;
|
||||
|
||||
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; }
|
||||
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)
|
||||
{
|
||||
const int err = read(codice);
|
||||
/*
|
||||
#ifdef DBG
|
||||
if (err != NOERR)
|
||||
|
||||
if (err != NOERR)
|
||||
switch (tipo)
|
||||
{
|
||||
case RIGA_SPESEDOC :
|
||||
@ -203,8 +202,6 @@ TSpesa_prest::TSpesa_prest(const char* codice, char tipo)
|
||||
error_box("Spesa %s assente", codice);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3120,62 +3120,70 @@ void TDocumento::update_conai()
|
||||
if (cli_add_conai)
|
||||
{
|
||||
const TString4 cod_iva_cli = codesiva();
|
||||
TConai conai;
|
||||
TConai conai;
|
||||
|
||||
|
||||
FOR_EACH_ASSOC_OBJECT(_conaiqta, o, key, item)
|
||||
{
|
||||
const TString cod_sottocat = key;
|
||||
FOR_EACH_ASSOC_OBJECT(_conaiqta, o, key, item)
|
||||
{
|
||||
const TString8 cod_sottocat = key;
|
||||
|
||||
// Se l'ho già fatto skippo
|
||||
if (conai_aggiornati.objptr(cod_sottocat) != NULL)
|
||||
continue;
|
||||
// Se l'ho già fatto skippo
|
||||
if (conai_aggiornati.objptr(cod_sottocat) != NULL)
|
||||
continue;
|
||||
|
||||
TSpesa_prest sp = conai.get_spesa(cod_sottocat);
|
||||
|
||||
// Aggiungo la spesa
|
||||
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 (conai.exist_sottocat(cod_sottocat))
|
||||
{
|
||||
TSpesa_prest sp = conai.get_spesa(cod_sottocat);
|
||||
|
||||
if (qta > ZERO)
|
||||
{
|
||||
const TString4 tipo = sp.tipo_riga();
|
||||
TRiga_documento& riga = new_row(tipo);
|
||||
// Aggiungo la spesa
|
||||
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);
|
||||
}
|
||||
|
||||
riga.put(RDOC_CODART, sp.codice());
|
||||
riga.generata();
|
||||
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);
|
||||
if (qta > ZERO)
|
||||
{
|
||||
TString4 tipo = sp.tipo_riga();
|
||||
|
||||
// Mi salvo anche la sottocategoria in questione
|
||||
riga.put(RDOC_TIPOCON, cod_sottocat);
|
||||
if (tipo.blank())
|
||||
tipo = "03";
|
||||
TRiga_documento& riga = new_row(tipo);
|
||||
|
||||
const real cambio = get_real(DOC_CAMBIO);
|
||||
const TString4 valuta = get(DOC_CODVAL);
|
||||
real prezzo = cli_esente ? ZERO : sp.prezzo();
|
||||
riga.put(RDOC_CODART, sp.codice());
|
||||
riga.generata();
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Mi salvo anche la sottocategoria in questione
|
||||
riga.put(RDOC_TIPOCON, cod_sottocat);
|
||||
|
||||
const real cambio = get_real(DOC_CAMBIO);
|
||||
const TString4 valuta = get(DOC_CODVAL);
|
||||
real prezzo = cli_esente ? ZERO : sp.prezzo();
|
||||
|
||||
sppr_calc(sp, valuta, cambio, prezzo);
|
||||
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