Modifiche varie per trasferimento IVA11.
Cambiate le posizioni di chiamata della funzione di scrittura, tolta la reset dei campi R1/R2 ed integrata in iva11_write(). Corretti: MI2255, MI2236, MI2237, MI2246, MI2208, MI2209, MI2253 MI2242. git-svn-id: svn://10.65.10.50/trunk@3939 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
719c1b81a3
commit
9de7010cf6
@ -34,6 +34,15 @@ bool _BolgArray::sub(const real& val, const char* fld_name, int num_file)
|
|||||||
return add(v1,fld_name, num_file);
|
return add(v1,fld_name, num_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _BolgArray::zero(const char* fld_name)
|
||||||
|
{
|
||||||
|
_BolgItem bolg;
|
||||||
|
const bool is_key = TAssoc_array::is_key(fld_name);
|
||||||
|
_BolgItem& bi = is_key ? (_BolgItem&)find(fld_name) : bolg;
|
||||||
|
bi.value() = 0.0;
|
||||||
|
TAssoc_array::add(fld_name,bi,is_key);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Methods of application!
|
// Methods of application!
|
||||||
real TLiquidazione_app::CENTO(100.0);
|
real TLiquidazione_app::CENTO(100.0);
|
||||||
|
12
cg/cg4300.h
12
cg/cg4300.h
@ -196,6 +196,7 @@ class _BolgArray : public TAssoc_array
|
|||||||
public:
|
public:
|
||||||
bool add(const real& val, const char* fld_name, int num_file = LF_TAB1100A);
|
bool add(const real& val, const char* fld_name, int num_file = LF_TAB1100A);
|
||||||
bool sub(const real& val, const char* fld_name, int num_file = LF_TAB1100A);
|
bool sub(const real& val, const char* fld_name, int num_file = LF_TAB1100A);
|
||||||
|
void zero(const char* fld_name);
|
||||||
_BolgArray() {}
|
_BolgArray() {}
|
||||||
virtual ~_BolgArray() {}
|
virtual ~_BolgArray() {}
|
||||||
};
|
};
|
||||||
@ -260,8 +261,10 @@ class TLiquidazione_app : public TPrint_application
|
|||||||
|
|
||||||
TAssoc_array _codiva_arr; // cache dei codici IVA.
|
TAssoc_array _codiva_arr; // cache dei codici IVA.
|
||||||
TAssoc_array _reg_arr; // cache dei registri.
|
TAssoc_array _reg_arr; // cache dei registri.
|
||||||
_BolgArray _iva11_arr; // array contenente le informazioni da trasferire.
|
TAssoc_array _iva11_arr; // array contenente le informazioni da trasferire.
|
||||||
// La chiave di ordinamento e' sul nome del campo.
|
// La chiave di ordinamento e' sulcodice attivita'.
|
||||||
|
// Ogni elemento dell'array e' un _BolgArray
|
||||||
|
// La cui chiave e' a sua volta sul nome campo
|
||||||
|
|
||||||
// totali vari per attivita'
|
// totali vari per attivita'
|
||||||
real _p8, _p8b, _p9; // totali plafond
|
real _p8, _p8b, _p9; // totali plafond
|
||||||
@ -407,10 +410,9 @@ public:
|
|||||||
void iva11_set_arr (const TString& codatt);
|
void iva11_set_arr (const TString& codatt);
|
||||||
// Scorre tutti i PIM della ditta, per completare _iva11_arr prima di chiamare write_IVA11()
|
// Scorre tutti i PIM della ditta, per completare _iva11_arr prima di chiamare write_IVA11()
|
||||||
void iva11_set_arr_pim (const TString& codatt);
|
void iva11_set_arr_pim (const TString& codatt);
|
||||||
// Resetta i valori di R1 ed R2 per ogni attivita' della ditta corrente se non e' stato stampato il rimborso
|
|
||||||
void iva11_reset_R1R2();
|
|
||||||
// Scrive per la ditta/attivita' corrente, i dati relativi al trasferimento IVA11
|
// Scrive per la ditta/attivita' corrente, i dati relativi al trasferimento IVA11
|
||||||
void iva11_write ();
|
// Se viene passato TRUE come parametro, azzera i campi R1 ed R2.
|
||||||
|
void iva11_write (bool reset_r1r2 = FALSE);
|
||||||
|
|
||||||
// ricalcolo liquidazioni dai progressivi mensili
|
// ricalcolo liquidazioni dai progressivi mensili
|
||||||
void write_liq (int month, const char* atts);
|
void write_liq (int month, const char* atts);
|
||||||
|
499
cg/cg4301.cpp
499
cg/cg4301.cpp
@ -46,6 +46,7 @@ bool TLiquidazione_app::recalc_all()
|
|||||||
* --------------------------------------------------------------
|
* --------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
_reg_arr.destroy(); // Azzera la cache dei registri per ogni ditta.
|
||||||
_nditte->zero();
|
_nditte->zero();
|
||||||
_nditte->curr().put("CODDITTA",nomeditta.get_long(1));
|
_nditte->curr().put("CODDITTA",nomeditta.get_long(1));
|
||||||
_nditte->read();
|
_nditte->read();
|
||||||
@ -321,12 +322,8 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
|
|
||||||
// se sta calcolando l'annuale, scrive tutti i dati calcolati per il trasferimento
|
// se sta calcolando l'annuale, scrive tutti i dati calcolati per il trasferimento
|
||||||
// sui files adibiti a mantenere le informazioni per IVA 11: tab1100a e tab1100b
|
// sui files adibiti a mantenere le informazioni per IVA 11: tab1100a e tab1100b
|
||||||
// Scrive le informazioni per la ditta/attivita' corrente
|
|
||||||
if (_is_interactive && month == 13)
|
if (_is_interactive && month == 13)
|
||||||
{
|
iva11_set_arr_pim(codatt); // scorre tutti i maledetti PIM di questa ditta/attivita' per completare _iva11_arr
|
||||||
iva11_set_arr_pim(codatt); // scorre tutti i maledetti PIM di questa ditta per completare _iva11_arr
|
|
||||||
iva11_write(); // scrive su tab1100 at last.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
while (_nditte->next_match(LF_ATTIV));
|
while (_nditte->next_match(LF_ATTIV));
|
||||||
|
|
||||||
@ -355,8 +352,6 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
// un bel descritem (NULL se non si rimborsa un cas)
|
// un bel descritem (NULL se non si rimborsa un cas)
|
||||||
// da passare a describe_liq
|
// da passare a describe_liq
|
||||||
rimb_d = recalc_rimborso(month,atts, stliq);
|
rimb_d = recalc_rimborso(month,atts, stliq);
|
||||||
if (_is_interactive && month == 13 && rimb_d == NULL)
|
|
||||||
iva11_reset_R1R2();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (month == _month && stliq)
|
if (month == _month && stliq)
|
||||||
@ -1366,12 +1361,18 @@ void TLiquidazione_app::iva11_set_arr(const TString& codatt)
|
|||||||
const TString tipoes_v = _iva->get("S2");
|
const TString tipoes_v = _iva->get("S2");
|
||||||
const TString tipoes_a = _iva->get("S9");
|
const TString tipoes_a = _iva->get("S9");
|
||||||
const int tipoagr = atoi(_iva->get("S4"));
|
const int tipoagr = atoi(_iva->get("S4"));
|
||||||
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
const TRectype& rcs = _cur->curr(LF_CAUSALI);
|
||||||
const bool autofattura = rcs.get_bool("AUTOFATT");
|
const bool autofattura = rcs.get_bool("AUTOFATT");
|
||||||
const bool sosp_imp = _reg->get_bool("B1");
|
const bool valintra = rcs.get_bool("VALINTRA");
|
||||||
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
|
const bool sosp_imp = _reg->get_bool("B1");
|
||||||
const bool is_vendita = tipomov == vendita;
|
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
|
||||||
const bool is_acquisto = tipomov == acquisto;
|
const bool is_vendita = tipomov == vendita;
|
||||||
|
const bool is_acquisto = tipomov == acquisto;
|
||||||
|
|
||||||
|
_BolgArray b_arr;
|
||||||
|
const bool is_key = _iva11_arr.is_key(codatt);
|
||||||
|
_BolgArray& array = is_key ? (_BolgArray&)_iva11_arr.find(codatt) : b_arr;
|
||||||
|
|
||||||
|
|
||||||
// TAB11_RQA34 ovvero "RQA34" non viene trasferito!
|
// TAB11_RQA34 ovvero "RQA34" non viene trasferito!
|
||||||
// Sebbene per motivi di pieta' viene comunque lasciato nel tracciato record (esigenze PRASSI)
|
// Sebbene per motivi di pieta' viene comunque lasciato nel tracciato record (esigenze PRASSI)
|
||||||
@ -1385,157 +1386,223 @@ void TLiquidazione_app::iva11_set_arr(const TString& codatt)
|
|||||||
{
|
{
|
||||||
if (tipocr == 2 || tipocr == 3 || tipocr == 8)
|
if (tipocr == 2 || tipocr == 3 || tipocr == 8)
|
||||||
{
|
{
|
||||||
_iva11_arr.sub(imponibile,TAB11_G30I,LF_TAB1100B);
|
array.sub(imponibile,TAB11_G30I,LF_TAB1100B);
|
||||||
_iva11_arr.sub(imposta,TAB11_G30V,LF_TAB1100B);
|
array.sub(imposta,TAB11_G30V,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_G30I,LF_TAB1100B);
|
array.add(imponibile,TAB11_G30I,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_G30V,LF_TAB1100B);
|
array.add(imposta,TAB11_G30V,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tipoagr == 3 && tipocr !=2 && tipocr != 3 && tipocr != 8)
|
else if (tipoagr == 3 && tipocr !=2 && tipocr != 3 && tipocr != 8)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_G31I,LF_TAB1100B);
|
array.add(imponibile,TAB11_G31I,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_G31V,LF_TAB1100B);
|
array.add(imposta,TAB11_G31V,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sosp_imp && tipodet == 0 && (tipocr == 2 || tipocr == 8))
|
if (!sosp_imp && tipodet == 0 && (tipocr == 2 || tipocr == 8))
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imposta,TAB11_R6,LF_TAB1100B);
|
array.add(imposta,TAB11_R6,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sosp_imp && tipodet == 9)
|
if (!sosp_imp)
|
||||||
if (tipodoc == "BD")
|
{
|
||||||
|
if (tipodoc == "BD" && tipodet == 9)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_F76);
|
array.add(imponibile,TAB11_F76);
|
||||||
if (_sind11)
|
if (_sind11)
|
||||||
_iva11_arr.add(imposta,TAB11_F76);
|
array.add(imposta,TAB11_F76);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (tipodoc != "BD")
|
||||||
{ // Compila prima i campi FC1nn ed FC2nn, poi i campi SBFnn ed SBInn
|
{ // Compila prima i campi FC1nn ed FC2nn, poi i campi SBFnn ed SBInn
|
||||||
if (ali == 2.00)
|
if (ali == 2.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC101);
|
array.add(imponibile,TAB11_FC101);
|
||||||
_iva11_arr.add(imposta,TAB11_FC201);
|
array.add(imposta,TAB11_FC201);
|
||||||
}
|
}
|
||||||
else if (ali == 4.00)
|
else if (ali == 4.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC102);
|
array.add(imponibile,TAB11_FC102);
|
||||||
_iva11_arr.add(imposta,TAB11_FC202);
|
array.add(imposta,TAB11_FC202);
|
||||||
}
|
}
|
||||||
else if (ali == 8.50)
|
else if (ali == 8.50)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC103);
|
array.add(imponibile,TAB11_FC103);
|
||||||
_iva11_arr.add(imposta,TAB11_FC203);
|
array.add(imposta,TAB11_FC203);
|
||||||
}
|
}
|
||||||
else if (ali == 9.00)
|
else if (ali == 9.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC104);
|
array.add(imponibile,TAB11_FC104);
|
||||||
_iva11_arr.add(imposta,TAB11_FC204);
|
array.add(imposta,TAB11_FC204);
|
||||||
}
|
}
|
||||||
else if (ali == 10.00)
|
else if (ali == 10.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC105);
|
array.add(imponibile,TAB11_FC105);
|
||||||
_iva11_arr.add(imposta,TAB11_FC205);
|
array.add(imposta,TAB11_FC205);
|
||||||
}
|
}
|
||||||
else if (ali == 13.00)
|
else if (ali == 13.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC106);
|
array.add(imponibile,TAB11_FC106);
|
||||||
_iva11_arr.add(imposta,TAB11_FC206);
|
array.add(imposta,TAB11_FC206);
|
||||||
}
|
}
|
||||||
else if (ali == 16.00)
|
else if (ali == 16.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC107);
|
array.add(imponibile,TAB11_FC107);
|
||||||
_iva11_arr.add(imposta,TAB11_FC207);
|
array.add(imposta,TAB11_FC207);
|
||||||
}
|
}
|
||||||
else if (ali == 19.00)
|
else if (ali == 19.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_FC108);
|
array.add(imponibile,TAB11_FC108);
|
||||||
_iva11_arr.add(imposta,TAB11_FC208);
|
array.add(imposta,TAB11_FC208);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tipoes_a == "01")
|
if (tipoes_a == "01")
|
||||||
_iva11_arr.add(imponibile,TAB11_FC109);
|
array.add(imponibile,TAB11_FC109);
|
||||||
else if (tipoes_a == "12")
|
else if (tipoes_a == "12")
|
||||||
_iva11_arr.add(imponibile,TAB11_FC110);
|
array.add(imponibile,TAB11_FC110);
|
||||||
else if (tipoes_a == "13")
|
else if (tipoes_a == "13")
|
||||||
_iva11_arr.add(imponibile,TAB11_FC111);
|
array.add(imponibile,TAB11_FC111);
|
||||||
else if (tipoes_a == "14")
|
else if (tipoes_a == "14")
|
||||||
_iva11_arr.add(imponibile,TAB11_FC112);
|
array.add(imponibile,TAB11_FC112);
|
||||||
else if (tipoes_a == "15")
|
else if (tipoes_a == "15")
|
||||||
_iva11_arr.add(imponibile,TAB11_FC113);
|
array.add(imponibile,TAB11_FC113);
|
||||||
|
|
||||||
_iva11_arr.add(imponibile,TAB11_FC114);
|
if (tipodet == 9)
|
||||||
if (_sind11)
|
{
|
||||||
_iva11_arr.add(imposta,TAB11_FC114);
|
array.add(imponibile,TAB11_FC114);
|
||||||
|
if (_sind11)
|
||||||
|
array.add(imposta,TAB11_FC114);
|
||||||
|
}
|
||||||
|
|
||||||
if (intra) // Compila i campi SBFnn
|
if (intra) // Compila i campi SBFnn
|
||||||
{
|
{
|
||||||
if (ali == 4.00)
|
if (ali == 4.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF01);
|
array.add(imponibile,TAB11_SBF01);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI01);
|
array.add(imposta,TAB11_SBI01);
|
||||||
}
|
}
|
||||||
else if (ali == 9.00)
|
else if (ali == 9.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF02);
|
array.add(imponibile,TAB11_SBF02);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI02);
|
array.add(imposta,TAB11_SBI02);
|
||||||
}
|
}
|
||||||
else if (ali == 10.00)
|
else if (ali == 10.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF03);
|
array.add(imponibile,TAB11_SBF03);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI03);
|
array.add(imposta,TAB11_SBI03);
|
||||||
}
|
}
|
||||||
else if (ali == 13.00)
|
else if (ali == 13.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF04);
|
array.add(imponibile,TAB11_SBF04);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI04);
|
array.add(imposta,TAB11_SBI04);
|
||||||
}
|
}
|
||||||
else if (ali == 16.00)
|
else if (ali == 16.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF05);
|
array.add(imponibile,TAB11_SBF05);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI05);
|
array.add(imposta,TAB11_SBI05);
|
||||||
}
|
}
|
||||||
else if (ali == 19.00)
|
else if (ali == 19.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF06);
|
array.add(imponibile,TAB11_SBF06);
|
||||||
_iva11_arr.add(imposta,TAB11_SBI06);
|
array.add(imposta,TAB11_SBI06);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tipoes_a == "01")
|
if (tipoes_a == "01")
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF07);
|
array.add(imponibile,TAB11_SBF07);
|
||||||
else if (tipoes_a == "12")
|
else if (tipoes_a == "12")
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF08);
|
array.add(imponibile,TAB11_SBF08);
|
||||||
else if (tipoes_a == "13")
|
else if (tipoes_a == "13")
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF09);
|
array.add(imponibile,TAB11_SBF09);
|
||||||
else if (tipoes_a == "14")
|
else if (tipoes_a == "14")
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF10);
|
array.add(imponibile,TAB11_SBF10);
|
||||||
|
|
||||||
_iva11_arr.add(imponibile,TAB11_SBF11);
|
if (tipodet == 9)
|
||||||
if (_sind11)
|
{
|
||||||
_iva11_arr.add(imposta,TAB11_SBF11);
|
array.add(imponibile,TAB11_SBF11);
|
||||||
|
if (_sind11)
|
||||||
|
array.add(imposta,TAB11_SBF11);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_vendita)
|
if (is_vendita)
|
||||||
{
|
{
|
||||||
|
if (!valintra)
|
||||||
|
{
|
||||||
|
if ((_isagricolo && tipoagr==2) || !_isagricolo)
|
||||||
|
{
|
||||||
|
if (ali == 4.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC101);
|
||||||
|
array.add(imposta,TAB11_EC201);
|
||||||
|
}
|
||||||
|
else if (ali == 9.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC102);
|
||||||
|
array.add(imposta,TAB11_EC202);
|
||||||
|
}
|
||||||
|
else if (ali == 10.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC103);
|
||||||
|
array.add(imposta,TAB11_EC203);
|
||||||
|
}
|
||||||
|
else if (ali == 13.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC104);
|
||||||
|
array.add(imposta,TAB11_EC204);
|
||||||
|
}
|
||||||
|
else if (ali == 16.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC105);
|
||||||
|
array.add(imposta,TAB11_EC205);
|
||||||
|
}
|
||||||
|
else if (ali == 19.00)
|
||||||
|
{
|
||||||
|
array.add(imponibile,TAB11_EC106);
|
||||||
|
array.add(imposta,TAB11_EC206);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tipoes_v == "10")
|
||||||
|
array.add(imponibile,TAB11_EC107);
|
||||||
|
if (tipoes_v == "24")
|
||||||
|
array.add(imponibile,TAB11_EC108);
|
||||||
|
else if (tipoes_v == "B1")
|
||||||
|
array.add(imponibile,TAB11_EC109);
|
||||||
|
else if (tipoes_v == "B2")
|
||||||
|
array.add(imponibile,TAB11_EC110);
|
||||||
|
else if (tipoes_v == "B3")
|
||||||
|
array.add(imponibile,TAB11_EC111);
|
||||||
|
else if (tipoes_v == "26")
|
||||||
|
array.add(imponibile,TAB11_EC112);
|
||||||
|
else if (tipoes_v == "24B")
|
||||||
|
array.add(imponibile,TAB11_EC114);
|
||||||
|
else if (tipoes_v == "23")
|
||||||
|
array.add(imponibile,TAB11_EC115);
|
||||||
|
|
||||||
|
if (tipocr == 4)
|
||||||
|
array.add(imponibile,TAB11_EC113);
|
||||||
|
}
|
||||||
|
|
||||||
if (!autofattura && tipoiva != "NS")
|
if (!autofattura && tipoiva != "NS")
|
||||||
if (tipodoc == "AF")
|
if (tipodoc == "AF")
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_A35);
|
array.add(imponibile,TAB11_A35);
|
||||||
_iva11_arr.add(imposta,TAB11_L2);
|
array.add(imposta,TAB11_L2);
|
||||||
}
|
}
|
||||||
else if (rcs.get_bool("VALINTRA") && !intra)
|
else if (valintra && !intra)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_A35BIS);
|
array.add(imponibile,TAB11_A35BIS);
|
||||||
_iva11_arr.add(imposta,TAB11_L2BIS);
|
array.add(imposta,TAB11_L2BIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!autofattura && !sosp_imp && intra && tipoes_v == "24B")
|
if (!autofattura && !sosp_imp && intra && tipoes_v == "24B")
|
||||||
_iva11_arr.add(imponibile,TAB11_E52);
|
array.add(imponibile,TAB11_E52);
|
||||||
|
|
||||||
if (_isagricolo && (tipodoc != "CR" && tipodoc != "SC" && tipodoc != "RF" && tipodoc != "FS"))
|
if (_isagricolo && (tipodoc != "CR" && tipodoc != "SC" && tipodoc != "RF" && tipodoc != "FS"))
|
||||||
{
|
{
|
||||||
@ -1545,52 +1612,52 @@ void TLiquidazione_app::iva11_set_arr(const TString& codatt)
|
|||||||
{
|
{
|
||||||
if (t1)
|
if (t1)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_AGME01,LF_TAB1100B);
|
array.add(imponibile,TAB11_AGME01,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_AGVE01,LF_TAB1100B);
|
array.add(imposta,TAB11_AGVE01,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
if (intra && t1_3)
|
if (intra && t1_3)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_ABME01);
|
array.add(imponibile,TAB11_ABME01);
|
||||||
_iva11_arr.add(imposta,TAB11_ABVE01);
|
array.add(imposta,TAB11_ABVE01);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ali == 4.00)
|
else if (ali == 4.00)
|
||||||
{
|
{
|
||||||
if (t1)
|
if (t1)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_AGME02,LF_TAB1100B);
|
array.add(imponibile,TAB11_AGME02,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_AGVE02,LF_TAB1100B);
|
array.add(imposta,TAB11_AGVE02,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
if (intra && t1_3)
|
if (intra && t1_3)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_ABME02);
|
array.add(imponibile,TAB11_ABME02);
|
||||||
_iva11_arr.add(imposta,TAB11_ABVE02);
|
array.add(imposta,TAB11_ABVE02);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ali == 8.50)
|
else if (ali == 8.50)
|
||||||
{
|
{
|
||||||
if (t1)
|
if (t1)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_AGME03,LF_TAB1100B);
|
array.add(imponibile,TAB11_AGME03,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_AGVE03,LF_TAB1100B);
|
array.add(imposta,TAB11_AGVE03,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
if (intra && t1_3)
|
if (intra && t1_3)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_ABME03);
|
array.add(imponibile,TAB11_ABME03);
|
||||||
_iva11_arr.add(imposta,TAB11_ABVE03);
|
array.add(imposta,TAB11_ABVE03);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ali == 9.00)
|
else if (ali == 9.00)
|
||||||
{
|
{
|
||||||
if (t1)
|
if (t1)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_AGME04,LF_TAB1100B);
|
array.add(imponibile,TAB11_AGME04,LF_TAB1100B);
|
||||||
_iva11_arr.add(imposta,TAB11_AGVE04,LF_TAB1100B);
|
array.add(imposta,TAB11_AGVE04,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
if (intra && t1_3)
|
if (intra && t1_3)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imponibile,TAB11_ABME04);
|
array.add(imponibile,TAB11_ABME04);
|
||||||
_iva11_arr.add(imposta,TAB11_ABVE04);
|
array.add(imposta,TAB11_ABVE04);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1598,7 +1665,9 @@ void TLiquidazione_app::iva11_set_arr(const TString& codatt)
|
|||||||
|
|
||||||
if (is_acquisto || is_vendita)
|
if (is_acquisto || is_vendita)
|
||||||
if (autofattura)
|
if (autofattura)
|
||||||
_iva11_arr.add(imponibile,TAB11_A35TER);
|
array.add(imponibile,TAB11_A35TER);
|
||||||
|
|
||||||
|
_iva11_arr.add(codatt,array,is_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
||||||
@ -1613,7 +1682,10 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
|||||||
int tipocr,tipodet,tagr;
|
int tipocr,tipodet,tagr;
|
||||||
real aliq, imp, iva, vtot, atot, ivav, ivaa;
|
real aliq, imp, iva, vtot, atot, ivav, ivaa;
|
||||||
TString cur_att;
|
TString cur_att;
|
||||||
|
_BolgArray b_arr;
|
||||||
|
const bool is_key = _iva11_arr.is_key(codatt);
|
||||||
|
_BolgArray& array = is_key ? (_BolgArray&)_iva11_arr.find(codatt) : b_arr;
|
||||||
|
|
||||||
for (_pim->first(); !_pim->eof(); _pim->next())
|
for (_pim->first(); !_pim->eof(); _pim->next())
|
||||||
{
|
{
|
||||||
if (_year != *_pim_anno) continue;
|
if (_year != *_pim_anno) continue;
|
||||||
@ -1644,150 +1716,101 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
|||||||
switch (tipocr)
|
switch (tipocr)
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
_iva11_arr.add(imp,TAB11_IMA01);
|
array.add(imp,TAB11_IMA01);
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
_iva11_arr.add(imp,TAB11_IMA02);
|
array.add(imp,TAB11_IMA02);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case 5:
|
case 5:
|
||||||
_iva11_arr.add(imp,TAB11_IMA03);
|
array.add(imp,TAB11_IMA03);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tipodet == 1)
|
if (tipodet == 1)
|
||||||
_iva11_arr.add(iva,TAB11_B14);
|
array.add(iva,TAB11_B14);
|
||||||
|
|
||||||
if (aliq == 4.00)
|
if (aliq == 4.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC101);
|
array.add(_pim->get_real("R9"),TAB11_FBC101);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC201);
|
array.add(_pim->get_real("R10"),TAB11_FBC201);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (aliq == 9.00)
|
if (aliq == 9.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC102);
|
array.add(_pim->get_real("R9"),TAB11_FBC102);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC202);
|
array.add(_pim->get_real("R10"),TAB11_FBC202);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (aliq == 10.00)
|
if (aliq == 10.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC103);
|
array.add(_pim->get_real("R9"),TAB11_FBC103);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC203);
|
array.add(_pim->get_real("R10"),TAB11_FBC203);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (aliq == 13.00)
|
if (aliq == 13.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC104);
|
array.add(_pim->get_real("R9"),TAB11_FBC104);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC204);
|
array.add(_pim->get_real("R10"),TAB11_FBC204);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (aliq == 16.00)
|
if (aliq == 16.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC105);
|
array.add(_pim->get_real("R9"),TAB11_FBC105);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC205);
|
array.add(_pim->get_real("R10"),TAB11_FBC205);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (aliq == 19.00)
|
if (aliq == 19.00)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC106);
|
array.add(_pim->get_real("R9"),TAB11_FBC106);
|
||||||
_iva11_arr.add(_pim->get_real("R10"),TAB11_FBC206);
|
array.add(_pim->get_real("R10"),TAB11_FBC206);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a11 == "12")
|
if (a11 == "12")
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC107);
|
array.add(_pim->get_real("R9"),TAB11_FBC107);
|
||||||
if (a11 == "13" || a11 == "14")
|
if (a11 == "13" || a11 == "14")
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC108);
|
array.add(_pim->get_real("R9"),TAB11_FBC108);
|
||||||
if (a11 == "15")
|
if (a11 == "15")
|
||||||
_iva11_arr.add(_pim->get_real("R9"),TAB11_FBC109);
|
array.add(_pim->get_real("R9"),TAB11_FBC109);
|
||||||
} // is_acquisto
|
} // is_acquisto
|
||||||
|
|
||||||
if (is_vendita && ((_isagricolo && tagr==2) || !_isagricolo))
|
|
||||||
{
|
|
||||||
if (aliq == 4.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC101);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC201);
|
|
||||||
}
|
|
||||||
else if (aliq == 9.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC102);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC202);
|
|
||||||
}
|
|
||||||
else if (aliq == 10.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC103);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC203);
|
|
||||||
}
|
|
||||||
else if (aliq == 13.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC104);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC204);
|
|
||||||
}
|
|
||||||
else if (aliq == 16.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC105);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC205);
|
|
||||||
}
|
|
||||||
else if (aliq == 19.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_EC106);
|
|
||||||
_iva11_arr.add(iva,TAB11_EC206);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (is_vendita)
|
if (is_vendita)
|
||||||
{
|
{
|
||||||
if (v11 == "10")
|
if (v11 == "E50")
|
||||||
_iva11_arr.add(imp,TAB11_EC107);
|
array.add(imp,TAB11_EC116);
|
||||||
if (v11 == "24")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC108);
|
|
||||||
else if (v11 == "B1")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC109);
|
|
||||||
else if (v11 == "B2")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC110);
|
|
||||||
else if (v11 == "B3")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC111);
|
|
||||||
else if (v11 == "26")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC112);
|
|
||||||
else if (v11 == "24B")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC114);
|
|
||||||
else if (v11 == "23")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC115);
|
|
||||||
else if (v11 == "E50")
|
|
||||||
_iva11_arr.add(imp,TAB11_EC116);
|
|
||||||
else if (v11 == "E51")
|
else if (v11 == "E51")
|
||||||
_iva11_arr.add(imp,TAB11_EC117);
|
array.add(imp,TAB11_EC117);
|
||||||
else if (v11 == "R9")
|
else if (v11 == "R9")
|
||||||
_iva11_arr.add(imp,TAB11_R9,LF_TAB1100B);
|
array.add(imp,TAB11_R9,LF_TAB1100B);
|
||||||
}
|
|
||||||
if (is_vendita && tipocr == 4)
|
|
||||||
_iva11_arr.add(imp,TAB11_EC113);
|
|
||||||
|
|
||||||
if (is_vendita && _isagricolo && (tagr == 1 || tagr == 3))
|
if (_isagricolo && (tagr == 1 || tagr == 3))
|
||||||
{
|
|
||||||
if (aliq == 2.00)
|
|
||||||
{
|
{
|
||||||
_iva11_arr.add(imp,TAB11_AGME01,LF_TAB1100B);
|
if (aliq == 2.00)
|
||||||
_iva11_arr.add(iva,TAB11_AGVE01,LF_TAB1100B);
|
{
|
||||||
|
array.add(imp,TAB11_AGME01,LF_TAB1100B);
|
||||||
|
array.add(iva,TAB11_AGVE01,LF_TAB1100B);
|
||||||
|
}
|
||||||
|
else if (aliq == 4.00)
|
||||||
|
{
|
||||||
|
array.add(imp,TAB11_AGME02,LF_TAB1100B);
|
||||||
|
array.add(iva,TAB11_AGVE02,LF_TAB1100B);
|
||||||
|
}
|
||||||
|
else if (aliq == 8.50)
|
||||||
|
{
|
||||||
|
array.add(imp,TAB11_AGME03,LF_TAB1100B);
|
||||||
|
array.add(iva,TAB11_AGVE03,LF_TAB1100B);
|
||||||
|
}
|
||||||
|
else if (aliq == 9.00)
|
||||||
|
{
|
||||||
|
array.add(imp,TAB11_AGME04,LF_TAB1100B);
|
||||||
|
array.add(iva,TAB11_AGVE04,LF_TAB1100B);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (aliq == 4.00)
|
} // is_vendita
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_AGME02,LF_TAB1100B);
|
|
||||||
_iva11_arr.add(iva,TAB11_AGVE02,LF_TAB1100B);
|
|
||||||
}
|
|
||||||
else if (aliq == 8.50)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_AGME03,LF_TAB1100B);
|
|
||||||
_iva11_arr.add(iva,TAB11_AGVE03,LF_TAB1100B);
|
|
||||||
}
|
|
||||||
else if (aliq == 9.00)
|
|
||||||
{
|
|
||||||
_iva11_arr.add(imp,TAB11_AGME04,LF_TAB1100B);
|
|
||||||
_iva11_arr.add(iva,TAB11_AGVE04,LF_TAB1100B);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Boia chi linka!
|
// Boia chi linka!
|
||||||
// Sommatoria per il calcolo aliquote medie vendite/acquisti...
|
// Sommatoria per il calcolo aliquote medie vendite/acquisti...
|
||||||
if (_pim->get_bool("B3")) // E' un record valido per fare questa cosa?
|
if (_pim->get_bool("B3")) // E' un record valido per fare questa cosa?
|
||||||
@ -1808,20 +1831,20 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
|||||||
// Hisss... Rettifica l'importo di EC115: EC115 = EC116 + EC117 + EC115
|
// Hisss... Rettifica l'importo di EC115: EC115 = EC116 + EC117 + EC115
|
||||||
// Va beh...
|
// Va beh...
|
||||||
real r16, r17;
|
real r16, r17;
|
||||||
if (_iva11_arr.is_key(TAB11_EC116))
|
if (array.is_key(TAB11_EC116))
|
||||||
r16 = ((_BolgItem&)_iva11_arr[TAB11_EC116]).value();
|
r16 = ((_BolgItem&)array[TAB11_EC116]).value();
|
||||||
if (_iva11_arr.is_key(TAB11_EC117))
|
if (array.is_key(TAB11_EC117))
|
||||||
r17 = ((_BolgItem&)_iva11_arr[TAB11_EC117]).value();
|
r17 = ((_BolgItem&)array[TAB11_EC117]).value();
|
||||||
r17+=r16;
|
r17+=r16;
|
||||||
_iva11_arr.add(r17,TAB11_EC115);
|
array.add(r17,TAB11_EC115);
|
||||||
|
|
||||||
|
|
||||||
// Calcola le maledette aliquote medie...
|
// Calcola le maledette aliquote medie...
|
||||||
real alv,ala;
|
real alv,ala;
|
||||||
if (vtot != 0.0) { alv = ivav/vtot; alv *= CENTO; alv.round(2); }
|
if (vtot != 0.0) { alv = ivav/vtot; alv *= CENTO; alv.round(2); }
|
||||||
if (atot != 0.0) { ala = ivaa/atot; ala *= CENTO; ala.round(2); }
|
if (atot != 0.0) { ala = ivaa/atot; ala *= CENTO; ala.round(2); }
|
||||||
_iva11_arr.add(ala,TAB11_R1,LF_TAB1100B);
|
array.add(ala,TAB11_R1,LF_TAB1100B);
|
||||||
_iva11_arr.add(alv,TAB11_R2,LF_TAB1100B);
|
array.add(alv,TAB11_R2,LF_TAB1100B);
|
||||||
|
|
||||||
// Uargh, Uargh. Mo' mi pappo i PLM per compilare T1, T1C, T2, T2C, T3, T5 e T6
|
// Uargh, Uargh. Mo' mi pappo i PLM per compilare T1, T1C, T2, T2C, T3, T5 e T6
|
||||||
// Ah, Ah, Ah!
|
// Ah, Ah, Ah!
|
||||||
@ -1834,59 +1857,59 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
|
|||||||
if (codatt != cur_att) continue;
|
if (codatt != cur_att) continue;
|
||||||
if (_isviaggio)
|
if (_isviaggio)
|
||||||
{
|
{
|
||||||
_iva11_arr.add(_plm->get_real("R5"),TAB11_T1,LF_TAB1100B);
|
array.add(_plm->get_real("R5"),TAB11_T1,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R7"),TAB11_T1C,LF_TAB1100B);
|
array.add(_plm->get_real("R7"),TAB11_T1C,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R6"),TAB11_T2,LF_TAB1100B);
|
array.add(_plm->get_real("R6"),TAB11_T2,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R8"),TAB11_T2C,LF_TAB1100B);
|
array.add(_plm->get_real("R8"),TAB11_T2C,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R9"),TAB11_T3,LF_TAB1100B);
|
array.add(_plm->get_real("R9"),TAB11_T3,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R10"),TAB11_T5,LF_TAB1100B);
|
array.add(_plm->get_real("R10"),TAB11_T5,LF_TAB1100B);
|
||||||
_iva11_arr.add(_plm->get_real("R11"),TAB11_T6,LF_TAB1100B);
|
array.add(_plm->get_real("R11"),TAB11_T6,LF_TAB1100B);
|
||||||
}
|
}
|
||||||
_iva11_arr.add(_plm->get_real("R0"),TAB11_IVVENR);
|
array.add(_plm->get_real("R0"),TAB11_IVVENR);
|
||||||
}
|
}
|
||||||
|
_iva11_arr.add(codatt,array,is_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TLiquidazione_app::iva11_reset_R1R2()
|
void TLiquidazione_app::iva11_write(bool reset_r1r2)
|
||||||
// Azzera su file i valori di R1 ed R2 se non e' stato stampato il rimborso.
|
|
||||||
{
|
|
||||||
TLocalisamfile& tab1100b = _tab11->lfile(LF_TAB1100B);
|
|
||||||
TString ditta,ditta_read;
|
|
||||||
ditta.format("%05ld",_nditte->curr().get_long(NDT_CODDITTA));
|
|
||||||
tab1100b.put(TAB11_TADITT,ditta);
|
|
||||||
for (tab1100b.read(_isgteq); !tab1100b.eof(); tab1100b.next())
|
|
||||||
{
|
|
||||||
ditta_read = tab1100b.get(TAB11_TADITT);
|
|
||||||
if (ditta != ditta_read) break;
|
|
||||||
tab1100b.zero(TAB11_R1);
|
|
||||||
tab1100b.zero(TAB11_R2);
|
|
||||||
tab1100b.rewrite();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TLiquidazione_app::iva11_write()
|
|
||||||
// Trasferisce i dati IVA11 annuali dall'assoc_array al file tab1100
|
// Trasferisce i dati IVA11 annuali dall'assoc_array al file tab1100
|
||||||
{
|
{
|
||||||
const int items = _iva11_arr.items();
|
const int items = _iva11_arr.items();
|
||||||
if (items == 0) return;
|
if (items == 0) return;
|
||||||
|
|
||||||
// Setta i campi chiave per entrambi i files della relazione
|
TString ditta,attiv,fld_name;
|
||||||
TString ditta,attiv;
|
|
||||||
ditta.format("%05ld",_nditte->curr().get_long(NDT_CODDITTA));
|
|
||||||
attiv = _nditte->curr(LF_ATTIV).get(ATT_CODATT);
|
|
||||||
_tab11->lfile().zero();
|
|
||||||
_tab11->lfile().put(TAB11_TADITT,ditta);
|
|
||||||
_tab11->lfile().put(TAB11_TACATT,attiv);
|
|
||||||
_tab11->lfile(LF_TAB1100B).zero();
|
|
||||||
_tab11->lfile(LF_TAB1100B).put(TAB11_TADITT,ditta);
|
|
||||||
_tab11->lfile(LF_TAB1100B).put(TAB11_TACATT,attiv);
|
|
||||||
|
|
||||||
|
_BolgArray * bolg_arr;
|
||||||
_BolgItem * bolg;
|
_BolgItem * bolg;
|
||||||
int i=0,err;
|
int i=0,err;
|
||||||
for (bolg = (_BolgItem *)_iva11_arr.first_item(); bolg != NULL && i<items;i++,bolg = (_BolgItem *)_iva11_arr.succ_item())
|
// Ciclo sulle attivita'
|
||||||
_tab11->lfile(bolg->file()).put(_iva11_arr.get_hashobj()->key(),bolg->value());
|
for (bolg_arr = (_BolgArray *) _iva11_arr.first_item(); bolg_arr != NULL && i < items; i++,bolg_arr = (_BolgArray*)_iva11_arr.succ_item())
|
||||||
if (_tab11->write() != NOERR)
|
{
|
||||||
if ((err=_tab11->rewrite()) != NOERR)
|
// Setta i campi chiave per entrambi i files della relazione
|
||||||
error_box("Errore %d tentando di scrivere sul file tab1100.",err);
|
ditta.format("%05ld",_nditte->curr().get_long(NDT_CODDITTA));
|
||||||
|
attiv = _iva11_arr.get_hashobj()->key();
|
||||||
|
TLocalisamfile& tab1100a = _tab11->lfile();
|
||||||
|
TLocalisamfile& tab1100b = _tab11->lfile(LF_TAB1100B);
|
||||||
|
tab1100a.zero();
|
||||||
|
tab1100a.put(TAB11_TADITT,ditta);
|
||||||
|
tab1100a.put(TAB11_TACATT,attiv);
|
||||||
|
tab1100b.zero();
|
||||||
|
tab1100b.put(TAB11_TADITT,ditta);
|
||||||
|
tab1100b.put(TAB11_TACATT,attiv);
|
||||||
|
|
||||||
|
const int bolg_items = bolg_arr->items();
|
||||||
|
int j=0;
|
||||||
|
// Ciclo sugli elementi per compilare i campi della relazione
|
||||||
|
for (bolg = (_BolgItem *)bolg_arr->first_item(); bolg != NULL && j<bolg_items;j++,bolg = (_BolgItem *)bolg_arr->succ_item())
|
||||||
|
{
|
||||||
|
fld_name = bolg_arr->get_hashobj()->key();
|
||||||
|
if (reset_r1r2 && (fld_name == TAB11_R1 || fld_name == TAB11_R2)) continue; // salta R1/R2 se devono rimanere a zero
|
||||||
|
_tab11->lfile(bolg->file()).put(fld_name,bolg->value());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_tab11->write() != NOERR)
|
||||||
|
if ((err=_tab11->rewrite()) != NOERR)
|
||||||
|
error_box("Errore %d tentando di scrivere sul file tab1100.",err);
|
||||||
|
}
|
||||||
|
|
||||||
_iva11_arr.destroy(); // resetta l'array.
|
_iva11_arr.destroy(); // resetta l'array.
|
||||||
}
|
}
|
||||||
|
@ -397,6 +397,12 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
|||||||
//};
|
//};
|
||||||
|
|
||||||
|
|
||||||
|
// defines per stabilire quale cazzo di metodo piace oggi alla prassi
|
||||||
|
// ------------------------------------------------------------------
|
||||||
|
// Considera tutti i mesi del trimestre fino a quello indicato
|
||||||
|
// se lasciato indefinito usa solo il mese passato
|
||||||
|
#define OGGI_GLI_TIRA_DI_USARE_TRE_MESI
|
||||||
|
|
||||||
_DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
_DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
||||||
bool stliq)
|
bool stliq)
|
||||||
{
|
{
|
||||||
@ -417,22 +423,19 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
|||||||
while ((tmpatt = atts.get()) != NULL)
|
while ((tmpatt = atts.get()) != NULL)
|
||||||
{
|
{
|
||||||
att = tmpatt;
|
att = tmpatt;
|
||||||
if (!is_mens) // Trimestrali
|
#ifdef OGGI_GLI_TIRA_DI_USARE_TRE_MESI
|
||||||
for (int m = (month == 13 ? 1 : (next_trim(month)-2)); m <= month; m++)
|
for (int m = (month == 13 ? 1 : (next_trim(month)-2)); m <= month; m++)
|
||||||
{
|
{
|
||||||
if (!look_plm(m,att)) continue;
|
#else
|
||||||
|
|
||||||
vol_aff += _pam->get_real("R1");
|
|
||||||
es_ni += _pum->get_real("R12");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // Mensili
|
|
||||||
int m = month;
|
int m = month;
|
||||||
|
#endif
|
||||||
if (!look_plm(m,att)) continue;
|
if (!look_plm(m,att)) continue;
|
||||||
|
|
||||||
vol_aff += _pam->get_real("R1");
|
vol_aff += _pam->get_real("R1");
|
||||||
es_ni += _pum->get_real("R12");
|
es_ni += _pum->get_real("R12");
|
||||||
}
|
#ifdef OGGI_GLI_TIRA_DI_USARE_TRE_MESI
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// condizione 1
|
// condizione 1
|
||||||
@ -593,7 +596,7 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
|||||||
(month != 13 && (rmese < (next_trim(month)-2) || rmese > month)))
|
(month != 13 && (rmese < (next_trim(month)-2) || rmese > month)))
|
||||||
continue;
|
continue;
|
||||||
} else // Mensili
|
} else // Mensili
|
||||||
if (year != ryear || (month != rmese))
|
if (year != ryear || (month != rmese && month != 13))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int tipomov = (tiporeg)_pim->get_long("I1");
|
int tipomov = (tiporeg)_pim->get_long("I1");
|
||||||
|
@ -857,6 +857,7 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
|
|||||||
d->_arr.add(di);
|
d->_arr.add(di);
|
||||||
else delete di;
|
else delete di;
|
||||||
}
|
}
|
||||||
|
iva11_write(di == NULL || d->_r0.sign() >= 0); // scrive su tab1100 at last.
|
||||||
|
|
||||||
if (!_is_visliq)
|
if (!_is_visliq)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user