Liquidazione e visualizzazione e classificazione

git-svn-id: svn://10.65.10.50/trunk@1968 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-10-17 08:49:03 +00:00
parent 4d5fee2b55
commit 3e6569f09e
9 changed files with 82 additions and 52 deletions

View File

@ -165,7 +165,9 @@ public:
class _ErrItem : public TObject class _ErrItem : public TObject
{ {
public: public:
TString _err; TString _err;
TString _att; TString _att;
TString _firm; TString _firm;
@ -183,7 +185,7 @@ class TLiquidazione_app : public TPrint_application
TArray_sheet* _ditte; TArray_sheet* _ditte;
wht _what; wht _what;
TBit_array _selected; TBit_array _selected;
int _menu; // 1 = Liquidazione, 2 = Deleghe, 3 = Deleghe int _menu; // 1 = Liquidazione, 2 = Deleghe, 3 =
TString _year; // anno di calcolo TString _year; // anno di calcolo
int _month; // mese da calcolare int _month; // mese da calcolare
TDate _date; // data di stampa TDate _date; // data di stampa
@ -234,6 +236,8 @@ class TLiquidazione_app : public TPrint_application
bool _is_interactive; // lanciata da menu o da altro prog bool _is_interactive; // lanciata da menu o da altro prog
bool _is_visliq; // lanciata da visualizzazione liquidazione bool _is_visliq; // lanciata da visualizzazione liquidazione
int _monthinatt; // mese inizio attivita' (serve per differita)
static real CENTO; static real CENTO;
// main cursor // main cursor
@ -436,7 +440,7 @@ public:
void set_plm(_DescrItem& d); void set_plm(_DescrItem& d);
bool set_annual(_DescrItem& d); bool set_annual(_DescrItem& d);
void set_grand(_DescrItem& d); void set_grand(_DescrItem& d);
void set_pim_head(); void set_pim_head(_DescrItem& d);
void set_liqacc(_DescrItem& d); void set_liqacc(_DescrItem& d);
// cercapalle in tabelle con opzione di creazione se serve // cercapalle in tabelle con opzione di creazione se serve

View File

@ -155,11 +155,13 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
_isintr = !cnf.get_bool("InTrTr") && _freqviva != "M"; _isintr = !cnf.get_bool("InTrTr") && _freqviva != "M";
bool gest4 = FALSE; //usato alla riga 342 per stampa acconto bool gest4 = FALSE; //usato alla riga 342 per stampa acconto
if (_isbenzinaro) if (_isbenzinaro)
_gest4 = cnf.get_bool("GesT74"); gest4 = cnf.get_bool("GesT74");
// controlla che il periodo corrente non sia l'inizio dell'attivita' // controlla che il periodo corrente non sia l'inizio dell'attivita'
// nel caso, differita va a FALSE // nel caso, differita va a FALSE
_monthinatt = 1;
TDate inatt(_nditte->lfile().get("DINIZIOATT")); TDate inatt(_nditte->lfile().get("DINIZIOATT"));
if (is_in_liq_period(inatt)) _isdifferita = FALSE; if (is_in_liq_period(inatt)) _isdifferita = FALSE;
if (inatt.year() == atoi(_year)) _monthinatt = inatt.month();
TConfig cnf1(CONFIG_STUDIO, "cg"); TConfig cnf1(CONFIG_STUDIO, "cg");
_isricacq = cnf1.get_bool("RicAcq"); _isricacq = cnf1.get_bool("RicAcq");
@ -340,9 +342,9 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
//dell'acconto in coda al resto //dell'acconto in coda al resto
if (_isregis && stliq) if (_isregis && stliq)
if ((month == 12 && _freqviva == "M") || if ((month == 12 && _freqviva == "M") ||
(month == 12 && _isbenzinaro && _gest4) || (month == 12 && _isbenzinaro && gest4) ||
(_isannual && _freqviva == "T" && !_isbenzinaro) || (_isannual && _freqviva == "T" && !_isbenzinaro) ||
(_isannual && _isbenzinaro && !_gest4)) (_isannual && _isbenzinaro && !gest4))
describe_liqacc(); describe_liqacc();
} }
return ok || calc; return ok || calc;
@ -502,6 +504,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
TString16 reg = _mov->get("REG"); TString16 reg = _mov->get("REG");
bool isreg = look_reg(_mov->get("REG")); bool isreg = look_reg(_mov->get("REG"));
TString16 tipodoc = _mov->get("TIPODOC"); TString16 tipodoc = _mov->get("TIPODOC");
bool corrisp = _reg->get_bool("B0");
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
if (_isviaggio && tipomov == vendita && !(_mov->get("DATA74TER").empty()))
date = _mov->get_date("DATA74TER");
/* /*
* check register present, rmoviva present and date OK * check register present, rmoviva present and date OK
*/ */
@ -540,9 +548,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
if (!_isdifferita && date.day() > 20) if (!_isdifferita && date.day() > 20)
continue; continue;
bool corrisp = _reg->get_bool("B0");
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
do do
{ {
look_iva(_rmoviva->get("CODIVA")); look_iva(_rmoviva->get("CODIVA"));
@ -693,10 +698,17 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
* Comprende anche autofatture, anche nell'annuale * Comprende anche autofatture, anche nell'annuale
* (Sergio 1995) * (Sergio 1995)
*/ */
{
/* NO!
* Invece non le deve comprendere nell'annuale
* (Vladimiro 1995, piu' tardi)
*/
if (!(_month == 13 && autodafe))
{ {
cess_amm += imponibile; cess_amm += imponibile;
cess_amm_iva += imposta; cess_amm_iva += imposta;
} }
}
else if (tipomov == acquisto && tipocr == 8) else if (tipomov == acquisto && tipocr == 8)
// Acquisto beni strum. acquisiti in leasing // Acquisto beni strum. acquisiti in leasing
{ {
@ -1276,6 +1288,13 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
TToken_string atts(codatts); TToken_string atts(codatts);
const char* tmpatt; const char* tmpatt;
// evita casino se differita ma si sta ricalcolando il primo
// mese con ricalcolo di piu' mesi
bool wasdifferita = (_isdifferita && month <= _monthinatt &&
_month > _monthinatt);
if (wasdifferita) _isdifferita = FALSE;
// liq. differita: considera mese precedente (solo per i risultati) // liq. differita: considera mese precedente (solo per i risultati)
int deltam = month; int deltam = month;
if (_isdifferita && !is_first_month(month) && month != 13) if (_isdifferita && !is_first_month(month) && month != 13)
@ -1562,6 +1581,9 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
look_pla(att, TRUE); look_pla(att, TRUE);
_pla->put("R8", prorata); _pla->put("R8", prorata);
_pla->rewrite(); _pla->rewrite();
look_lia();
_lia->put("R5", cred_cost);
_lia->rewrite();
_year = yr; _year = yr;
} }
} }
@ -1573,7 +1595,6 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
/***08/09/1995 /***08/09/1995
_lia->put("R4", acc_dec); _lia->put("R4", acc_dec);
***/ ***/
_lia->put("R5", cred_cost);
_lia->rewrite(); _lia->rewrite();
} }
@ -1612,14 +1633,8 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
/* /*
* acconto dicembre se previsto * acconto dicembre se previsto
*/ */
/*
if ((month == 12 && _isbenzinaro) || if ((month == 12 && _isbenzinaro) ||
(month >= 12 && _freqviva == "M")) (month >= 12 && _freqviva == "M"))
*/
if ((month == 12 && _freqviva == "M") ||
(month == 12 && _isbenzinaro && _gest4) ||
(_isannual && _freqviva == "T" && !_isbenzinaro) ||
(_isannual && _isbenzinaro && !_gest4))
{ {
risultato -= versamenti_IVA(12,"7"); risultato -= versamenti_IVA(12,"7");
acc_dec = versamenti_IVA(12,"7"); acc_dec = versamenti_IVA(12,"7");
@ -1655,8 +1670,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
* Ora gestito esplicitamente nei parametri ditta, forzato * Ora gestito esplicitamente nei parametri ditta, forzato
* FALSE per ditte mensili e liq. annuale * FALSE per ditte mensili e liq. annuale
*/ */
//if (_isintr && month < 13) if (_isintr && month < 13)
if ((_isintr && ((month != 12 || (_isbenzinaro && !_gest4)))))
{ {
real interesse = interesse_trimestrale(_month); real interesse = interesse_trimestrale(_month);
real ivi = risultato * (interesse / CENTO); real ivi = risultato * (interesse / CENTO);
@ -1665,8 +1679,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
} }
// questo serve anche per la visualizzazione e per l'estrazione deleghe // questo serve anche per la visualizzazione e per l'estrazione deleghe
//if (_isintr && month < 13) if (_isintr && month < 13)
if ((_isintr && ((month != 12 || (_isbenzinaro && !_gest4)))))
_lim->put("R10",interesse_trimestrale(_month)); _lim->put("R10",interesse_trimestrale(_month));
// totale conguaglio su tutte le attivita' // totale conguaglio su tutte le attivita'
@ -1686,6 +1699,8 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
_lim->put("B0","X"); _lim->put("B0","X");
if (_isfinal) _lim->put("B1", "X"); if (_isfinal) _lim->put("B1", "X");
if (wasdifferita) _isdifferita = TRUE;
_lim->rewrite(); _lim->rewrite();
_lam->rewrite(); _lam->rewrite();
} }

View File

@ -614,7 +614,7 @@ real TLiquidazione_app::credito_costo_prec(int month)
// (travel agency only) // (travel agency only)
{ {
real c(0.0); real c(0.0);
if (is_first_month(month)) if (is_first_month(month) || month == 13)
{ {
// credito inizio anno // credito inizio anno
if (look_lia()) if (look_lia())

View File

@ -46,7 +46,7 @@ void TLiquidazione_app::set_page(int file, int cnt)
set_pim(d); set_pim(d);
break; break;
case PIM_HEAD: case PIM_HEAD:
set_pim_head(); set_pim_head(d);
break; break;
case MISC_LIQ: case MISC_LIQ:
set_pumpam(d); set_pumpam(d);
@ -399,6 +399,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
// chiarezza, una peggiore efficienza, una gran rottura di coglioni, // chiarezza, una peggiore efficienza, una gran rottura di coglioni,
// ma risulta identico al dio Sistema. // ma risulta identico al dio Sistema.
_DescrItem* hea = new _DescrItem(PIM_HEAD); _DescrItem* hea = new _DescrItem(PIM_HEAD);
hea->_f0 = skip_acq; // cosi' non compare nemmeno la colonnina! contento?
_descr_arr.add(hea); _descr_arr.add(hea);
while ((tmpatt = atts.get()) != NULL) while ((tmpatt = atts.get()) != NULL)
@ -1134,12 +1135,20 @@ void TLiquidazione_app::set_liqacc(_DescrItem& d)
set_auto_ff(); set_auto_ff();
} }
void TLiquidazione_app::set_pim_head() void TLiquidazione_app::set_pim_head(_DescrItem& d)
{ {
set_bookmark("Riepilogo progressivi", _att_bookmark); set_bookmark("Riepilogo progressivi", _att_bookmark);
if (d._f0)
{
set_row(1," Cod.@41gVENDITE@71gCORRISPETTIVI");
set_row(2," IVA Descrizione@30gImponibile@49gImposta@63gImponibile@82gImposta");
}
else
{
set_row(1," Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI"); set_row(1," Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI");
set_row(2," IVA Descrizione@30gImponibile@49gImposta@63gImponibile" set_row(2," IVA Descrizione@30gImponibile@49gImposta@63gImponibile"
"@82gImposta@96gImponibile@115gImposta"); "@82gImposta@96gImponibile@115gImposta");
}
set_row(3,""); set_row(3,"");
} }
@ -1624,6 +1633,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
set_row(rw++, "- SALDO -"); set_row(rw++, "- SALDO -");
} }
//fine //fine
set_row(rw++, "Versamento di L. %s effettuato il %s@68gdiretto all'ufficio IVA di %s", set_row(rw++, "Versamento di L. %s effettuato il %s@68gdiretto all'ufficio IVA di %s",
(const char*)vr, (const char*)vr,
(const char*)dt, (const char*)dt,

View File

@ -767,7 +767,7 @@ END
BOOLEAN CHK_INTRTR BOOLEAN CHK_INTRTR
BEGIN BEGIN
PROMPT 3 12 "Calcolare interessi per frequenza versamenti trimestrale" PROMPT 3 12 "Non calcolare interessi per frequenza versamenti trimestrale"
HELP "Se selezionato, gli interessi non vengono calcolati" HELP "Se selezionato, gli interessi non vengono calcolati"
FIELD InTrTr FIELD InTrTr
END END

View File

@ -351,7 +351,7 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
if (sh.items() == 4) month *= 3; if (sh.items() == 4) month *= 3;
bool ok = FALSE; bool ok = FALSE;
if (m.dirty()) if (m.dirty() || sh.sheet_mask().dirty())
{ {
KEY k = yesnocancel_box("Registrazione modifiche effettuate?"); KEY k = yesnocancel_box("Registrazione modifiche effettuate?");
if (k == K_YES) if (k == K_YES)
@ -697,8 +697,8 @@ bool Visliq_app::vis_one(int m)
bool ok = TRUE; bool ok = TRUE;
if (!n_rimborso.is_zero()) if (!n_rimborso.is_zero())
{ {
// check diritto // check diritto (se non ce n'era gia' uno prima)
if (!_lim->get_bool("B2")) if (!_lim->get_bool("B2") && rimborso.is_zero())
ok = yesno_box("Non risulta diritto al rimborso per il mese %d. Si desidera " ok = yesno_box("Non risulta diritto al rimborso per il mese %d. Si desidera "
"confermare ugualmente?", m); "confermare ugualmente?", m);
} }
@ -1064,6 +1064,7 @@ void Visliq_app::write_del()
if (vers.is_zero() && (wasdel = look_del(month,1))) if (vers.is_zero() && (wasdel = look_del(month,1)))
{ {
_del->remove(); _del->remove();
_del->rewrite();
return; return;
} }
@ -1074,7 +1075,7 @@ void Visliq_app::write_del()
if (!intr.is_zero()) if (!intr.is_zero())
{ {
// riapplica il tasso di interesse // riapplica il tasso di interesse
// se trimstrale e' stato scorporato rispetto // se trimestrale e' stato scorporato rispetto
// all'eventuale input utente // all'eventuale input utente
inter = vers*(real(100.0)/(real(100.0)+intr)); inter = vers*(real(100.0)/(real(100.0)+intr));
inter = vers - inter; inter = vers - inter;

View File

@ -89,9 +89,9 @@ BEGIN
PROMPT 1 5 "Versamenti" PROMPT 1 5 "Versamenti"
ITEM "Mese@15" ITEM "Mese@15"
ITEM "Data@10" ITEM "Data@10"
ITEM "Azienda@5" ITEM "ABI@5"
ITEM "Dipend.@5" ITEM "CAB@5"
ITEM "Concess.@5" ITEM "Conc.@5"
ITEM "Versamenti@15" ITEM "Versamenti@15"
// ITEM "D/C" // ITEM "D/C"
END END

View File

@ -67,9 +67,9 @@ BEGIN
PROMPT 1 12 "Versamenti" PROMPT 1 12 "Versamenti"
ITEM "Mese@10" ITEM "Mese@10"
ITEM "Data@10" ITEM "Data@10"
ITEM "Azienda@5" ITEM "ABI@5"
ITEM "Dipend.@5" ITEM "CAB@5"
ITEM "Concess.@5" ITEM "Conc.@5"
ITEM "Versamenti@15" ITEM "Versamenti@15"
// ITEM "D/C" // ITEM "D/C"
END END

View File

@ -38,8 +38,8 @@ bool classify_pim(TRectype& pimr, real& imp, real& iva, tiporec& t)
tipodet == 5 || tipodet == 9 */); tipodet == 5 || tipodet == 9 */);
if (found) if (found)
{ {
imp = pimr.get_real("R0") - pimr.get_real("R9"); imp = pimr.get_real("R0") /* - pimr.get_real("R9") */; // comprese BD!
iva = pimr.get_real("R1") - pimr.get_real("R10"); iva = pimr.get_real("R1") /* - pimr.get_real("R10") */; // yuk yuk!
} }
break; break;
case vend_norm: case vend_norm: