Aggiunta contabilizzazione spese di incasso e bolli.
git-svn-id: svn://10.65.10.50/trunk@3766 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
070cb8ede0
commit
8767aec9c8
@ -467,6 +467,8 @@ TIVA_element& TIVA_element::operator+=(const TRiga_documento& a)
|
||||
class TContabilizzazione_app : public TApplication
|
||||
{
|
||||
TString16 _cod_el; // codice elaborazione immesso
|
||||
TString16 _spin_cod, // codice iva spese d'incasso
|
||||
_spbo_cod; // codice iva spese bolli
|
||||
TDate _data_reg; // data di registrazione immessa
|
||||
TDate _data_ini; // data di inizio intervallo
|
||||
TDate _data_fine; // data di fine intervallo
|
||||
@ -496,7 +498,7 @@ class TContabilizzazione_app : public TApplication
|
||||
*_caa, // tabella categorie acquisto articoli
|
||||
*_cra, // tabella categorie ricavo articoli
|
||||
*_cco; // tabella categorie contabili
|
||||
TDocumentoEsteso *_doc; // documento corrente
|
||||
TDocumento *_doc; // documento corrente
|
||||
TMovimentoPN_VE *_movimento; // movimento di prima nota costruito sul documento corrente
|
||||
TPagamento *_pagamento; // pagamento corrente, ricalcolato prima di scrivere le scadenze
|
||||
TAssoc_array _righe_iva; // array per la memorizzazione delle righe iva raggruppate in codesto modo:
|
||||
@ -523,11 +525,17 @@ class TContabilizzazione_app : public TApplication
|
||||
// Gli utlimi 6 fanno parte della ricerca per costi ricavi, in particolare AR,GM,SM e RF
|
||||
// non possono essere interrotti da CV o CC. Ad es. CA|CF|AR|CV|GM|CC|RF non e' valida come stringa
|
||||
// di ricerca.
|
||||
TBill _sco_perc_bill, _sco_imp_bill; // Conti per gli sconti a percentuale ed importi (dalla configurazione)
|
||||
TBill _sco_perc_bill, _sco_imp_bill, // Conti per gli sconti a percentuale ed importi (dalla configurazione)
|
||||
_spin_billa, _spin_billv,
|
||||
_spbo_billa, _spbo_billv;
|
||||
protected: // TApplication
|
||||
bool sc_enabled() const ;
|
||||
// Funzione per ricercare il conto di costo/ricavo
|
||||
error_type search_costo_ricavo(TBill& conto, const TRiga_documento& r);
|
||||
// Funzione atomica per aggiungere le righe di spese d'incasso e bolli al TAssoc_array _righe_iva
|
||||
void calculate_spese(real& spese, real& sp_iva, int ndec, bool is_incasso);
|
||||
// Funzione per aggiungere le righe di spese d'incasso e bolli al TAssoc_array _righe_iva (chiama calculate_spese())
|
||||
error_type add_spese_inbo();
|
||||
// Funzione per aggiungere la riga iva al TAssoc_array _righe_iva
|
||||
error_type add_iva_row(const TBill& conto, const TRiga_documento& r);
|
||||
// Crea le righe iva su _movimento
|
||||
@ -739,7 +747,7 @@ bool TContabilizzazione_app::create()
|
||||
"@1|Cod. numerazione|Descrizione@50");
|
||||
_docfile = new TLocalisamfile(LF_DOC);
|
||||
_rdocfile = new TLocalisamfile(LF_RIGHEDOC);
|
||||
_doc = new TDocumentoEsteso;
|
||||
_doc = new TDocumento;
|
||||
_cpg = new TTable("%CPG");
|
||||
_tri = new TTable("%TRI");
|
||||
_val = new TTable("%VAL");
|
||||
@ -790,6 +798,29 @@ bool TContabilizzazione_app::create()
|
||||
so = conf.get_long("SCOIMCODCON","ve",3);
|
||||
_sco_imp_bill.set(gr,co,so);
|
||||
|
||||
gr = conf.get_int("SPINCODCONA","ve",1);
|
||||
co = conf.get_int("SPINCODCONA","ve",2);
|
||||
so = conf.get_long("SPINCODCONA","ve",3);
|
||||
_spin_billa.set(gr,co,so);
|
||||
|
||||
gr = conf.get_int("SPINCODCONV","ve",1);
|
||||
co = conf.get_int("SPINCODCONV","ve",2);
|
||||
so = conf.get_long("SPINCODCONV","ve",3);
|
||||
_spin_billv.set(gr,co,so);
|
||||
|
||||
gr = conf.get_int("SPBOCODCONA","ve",1);
|
||||
co = conf.get_int("SPBOCODCONA","ve",2);
|
||||
so = conf.get_long("SPBOCODCONA","ve",3);
|
||||
_spbo_billa.set(gr,co,so);
|
||||
|
||||
gr = conf.get_int("SPBOCODCONV","ve",1);
|
||||
co = conf.get_int("SPBOCODCONV","ve",2);
|
||||
so = conf.get_long("SPBOCODCONV","ve",3);
|
||||
_spbo_billv.set(gr,co,so);
|
||||
|
||||
_spin_cod = conf.get("SPINCODIVA","ve");
|
||||
_spbo_cod = conf.get("SPBOCODIVA","ve");
|
||||
|
||||
dispatch_e_menu(BAR_ITEM(1));
|
||||
return TRUE;
|
||||
}
|
||||
@ -841,7 +872,7 @@ bool TContabilizzazione_app::menu(MENU_TAG mt)
|
||||
error_type TContabilizzazione_app::search_costo_ricavo(TBill& conto, const TRiga_documento& r)
|
||||
{
|
||||
const int items = _search_seq.items();
|
||||
TLocalisamfile & cli_file = _clifo->lfile();
|
||||
TLocalisamfile & cli_file = _clifo->lfile(); // YES, arriva qui dentro quando la relazione e' gia' posizionata
|
||||
const bool is_cli = cli_file.get(CLI_TIPOCF) == "C";
|
||||
bool skip_art_related = FALSE;
|
||||
bool skip_clifo = _clifo->bad();
|
||||
@ -1190,6 +1221,53 @@ error_type TContabilizzazione_app::compile_head_mov()
|
||||
return _error;
|
||||
}
|
||||
|
||||
void TContabilizzazione_app::calculate_spese(real& spese, real& sp_iva, int ndec, bool is_incasso)
|
||||
{
|
||||
char tipo;
|
||||
int gr,co;
|
||||
long so;
|
||||
const bool is_cli = _doc->get("TIPOCF") == "C";
|
||||
const TBill& zio = is_incasso ? (is_cli ? _spin_billv : _spin_billa) : (is_cli ? _spbo_billv : _spbo_billa);
|
||||
TIVA sp_cod(is_incasso ? _spin_cod : _spbo_cod);
|
||||
TIVA_element el_tmp;
|
||||
TString key;
|
||||
|
||||
sp_iva = iva(spese,sp_cod,ndec);
|
||||
tipo = zio.tipo();
|
||||
gr = zio.gruppo();
|
||||
co = zio.conto();
|
||||
so = zio.sottoconto();
|
||||
key.format("%-4s|%c|%3d|%3d|%6ld",(const char*)sp_cod.codice(),tipo,gr,co,so);
|
||||
const bool exists = _righe_iva.is_key(key);
|
||||
TIVA_element& el = (exists ? (TIVA_element&)_righe_iva[key] : el_tmp);
|
||||
el.imp() = spese;
|
||||
el.iva() = sp_iva;
|
||||
el.ali() = sp_cod.aliquota();
|
||||
_righe_iva.add(key,el,exists);
|
||||
}
|
||||
|
||||
error_type TContabilizzazione_app::add_spese_inbo()
|
||||
// Aggiunge le righe di spese incasso/bolli
|
||||
{
|
||||
real tot_netto, sp_incasso, sp_bolli;
|
||||
real iva_sp_incasso, iva_sp_bolli;
|
||||
const int ndec = _doc->in_valuta() ? 3 : 0;
|
||||
|
||||
// Aggiunge le spese d'incasso
|
||||
tot_netto = _doc->totale_netto();
|
||||
sp_incasso = _doc->spese_incasso(tot_netto,ndec, TRUE);
|
||||
if (sp_incasso != 0.0)
|
||||
calculate_spese(sp_incasso,iva_sp_incasso,ndec,TRUE);
|
||||
|
||||
// Aggiunge le spese bolli
|
||||
tot_netto += sp_incasso + iva_sp_incasso;
|
||||
sp_bolli = _doc->bolli(tot_netto,ndec, TRUE);
|
||||
if (sp_bolli != 0)
|
||||
calculate_spese(sp_bolli,iva_sp_bolli,ndec,FALSE);
|
||||
|
||||
return _error;
|
||||
}
|
||||
|
||||
error_type TContabilizzazione_app::add_iva_row(const TBill& conto, const TRiga_documento& r)
|
||||
// Aggiunge le righe iva all'assoc_array di raggruppamento
|
||||
{
|
||||
@ -1354,6 +1432,11 @@ error_type TContabilizzazione_app::compile_rows_mov()
|
||||
|
||||
if (good() && _righe_iva.items() == 0)
|
||||
_error = no_rows_error;
|
||||
|
||||
// Crea le righe per le spese d'incasso e bolli
|
||||
if (good())
|
||||
add_spese_inbo();
|
||||
|
||||
// Crea le righe di IVA
|
||||
if (good())
|
||||
create_iva_rows();
|
||||
|
Loading…
x
Reference in New Issue
Block a user