Patch level : 12.0 332

Files correlati     : ve0.exe ve6.exe

Aggiunte le spese di trasporto all'imponibile intra suddivise per nomenclatura.
La tabella spese ha ora una tipologia di spesa esplicita ( Altro, Incasso, Rimborsi, Trasporto).

git-svn-id: svn://10.65.10.50/branches/R_10_00@23524 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-01-12 15:49:57 +00:00
parent 5604127e3e
commit cd0b472034
5 changed files with 3279 additions and 3204 deletions

View File

@ -64,6 +64,11 @@ class TSelect_color_mask;
#define RIGA_DESCRIZIONI 'D' #define RIGA_DESCRIZIONI 'D'
#define RIGA_RETTIFICHE 'T' #define RIGA_RETTIFICHE 'T'
#define TIPO_SPESE_ALTRO "A"
#define TIPO_SPESE_INCASSO "I"
#define TIPO_SPESE_RIMBORSO "R"
#define TIPO_SPESE_TRASPORTO "T"
#define MAX_IVA_SLICES 5 #define MAX_IVA_SLICES 5
class TDocumento; class TDocumento;
@ -878,6 +883,7 @@ public:
real totale_netto() const; real totale_netto() const;
real basesconto() const; real basesconto() const;
real spese() const; real spese() const;
real spese(const TString & tipo_spesa) const;
real ritenute(const char tipo = '\0', bool lordo = false, int ndec = AUTO_DECIMALS) const; real ritenute(const char tipo = '\0', bool lordo = false, int ndec = AUTO_DECIMALS) const;
real provvigione(bool first = true, int ndec = AUTO_DECIMALS) const; real provvigione(bool first = true, int ndec = AUTO_DECIMALS) const;
real valore(bool totale, bool lordo = false, int ndec = AUTO_DECIMALS) const; real valore(bool totale, bool lordo = false, int ndec = AUTO_DECIMALS) const;

View File

@ -70,6 +70,7 @@ protected:
public: public:
TCodice_numerazione & num(const char* key); TCodice_numerazione & num(const char* key);
TNumerazione_cache(); TNumerazione_cache();
virtual ~TNumerazione_cache() { }
}; };
TNumerazione_cache::TNumerazione_cache() TNumerazione_cache::TNumerazione_cache()
@ -2500,7 +2501,41 @@ real TDocumento::basesconto() const
real TDocumento::spese() const real TDocumento::spese() const
{ {
const TString& field = tipo().spese(); const TString& field = tipo().spese();
return field.full() ? get_real(field) : ZERO;
if (field.full())
return get_real(field);
else
{
real r;
FOR_EACH_PHYSICAL_RDOC(*this, i, rdoc)
if (rdoc->is_spese())
r += rdoc->imponibile();
return r;
}
}
real TDocumento::spese(const TString & tipo_spesa) const
{
TString16 field = tipo().spese();
field << tipo_spesa;
if (tipo().exist(field))
return get_real(field);
else
{
real r;
FOR_EACH_PHYSICAL_RDOC(*this, i, rdoc)
if (rdoc->is_spese())
{
const TSpesa_prest s(rdoc->get(RDOC_CODART));
if (s.get("S11").sleft(1) == tipo_spesa)
r += rdoc->imponibile();
}
return r;
}
} }
real TDocumento::ritenute(const char tipo, bool lordo, int ndec) const real TDocumento::ritenute(const char tipo, bool lordo, int ndec) const

View File

@ -3963,14 +3963,37 @@ error_type TContabilizzazione::write_intra(TDocumento& doc)
totale_righe += imp.get_num(); totale_righe += imp.get_num();
} }
if (nota_credito)
totale_righe -= doc.spese(TIPO_SPESE_TRASPORTO);
else
totale_righe += doc.spese(TIPO_SPESE_TRASPORTO);
if (_error == no_error) if (_error == no_error)
{ {
TGeneric_distrib d(doc.spese(TIPO_SPESE_TRASPORTO));
TRectype* rc;
for(rc = (TRectype*)righe.first_item(); rc != NULL; rc = (TRectype*)righe.succ_item())
d.add(is_val ? rc->get_real("AMMVALUTA") : rc->get_real("AMMLIRE"));
// Copia il contenuto dell'assoc nel record array // Copia il contenuto dell'assoc nel record array
TRectype* rc = new TRectype(LF_RINTRA); rc = new TRectype(LF_RINTRA);
rc->put("NUMREG", numreg); rc->put("NUMREG", numreg);
rintra.set_key(rc); rintra.set_key(rc);
for(rc = (TRectype*)righe.first_item(); rc != NULL; rc = (TRectype*)righe.succ_item()) for(rc = (TRectype*)righe.first_item(); rc != NULL; rc = (TRectype*)righe.succ_item())
{
real amm = is_val ? rc->get_real("AMMVALUTA") : rc->get_real("AMMLIRE");
amm += d.get();
rc->put(is_val ? "AMMVALUTA" : "AMMLIRE", amm);
if (is_val)
{
TCurrency_documento imp(amm, doc);
imp.change_to_firm_val();
rc->put("AMMLIRE", imp.get_num());
}
rintra.add_row(*rc); // Devo aggiungere una copia della riga dell'assoc array! rintra.add_row(*rc); // Devo aggiungere una copia della riga dell'assoc array!
}
// Testa (de coccio...) // Testa (de coccio...)
intra.zero(); intra.zero();
intra.put("NUMREG", numreg); intra.put("NUMREG", numreg);

View File

@ -26,6 +26,7 @@
#define SPP_CODTRB1 126 #define SPP_CODTRB1 126
#define SPP_SEZIONE 127 #define SPP_SEZIONE 127
#define SPP_CODCAUS770 128 #define SPP_CODCAUS770 128
#define SPP_TIPOSP 129
#define SPP_CDC_V1 130 #define SPP_CDC_V1 130
#define SPP_CDC_V2 131 #define SPP_CDC_V2 131

View File

@ -330,6 +330,16 @@ BEGIN
ADD RUN CG0 -0 ADD RUN CG0 -0
END END
LIST SPP_TIPOSP 1 20
BEGIN
PROMPT 2 19 "Tipologia di spesa/prestazione "
FIELD S11[1,1]
ITEM " |Altro"
ITEM "I|Incasso"
ITEM "R|Rimborso"
ITEM "T|Trasporto"
END
STRING SPP_CODTRB 4 STRING SPP_CODTRB 4
BEGIN BEGIN
PROMPT 2 20 "Cod. tributo " PROMPT 2 20 "Cod. tributo "
@ -376,7 +386,7 @@ END
LISTBOX SPP_SEZIONE 6 LISTBOX SPP_SEZIONE 6
BEGIN BEGIN
PROMPT 25 21 "Sezione per cooperative " PROMPT 25 21 "Sezione per cooperative "
FIELD S11 FIELD S11[5,5]
ITEM "D|Dare" ITEM "D|Dare"
ITEM "A|Avere" ITEM "A|Avere"
END END