Patch level : 10.0 642
Files correlati : cg0.exe cg2.exe ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento : Bug 0001506: iva per cassa e causale contabile è richiesto di poter inserire un conto di iva per cassa/ad esigibilità differita nella causale contabile. git-svn-id: svn://10.65.10.50/trunk@20138 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8a95f43ce6
commit
e6e65d3096
@ -201,6 +201,7 @@ void TCaus_app::causale_vendite()
|
||||
set_descr(i++, TR("C Imp. non soggetti"));
|
||||
set_descr(i++, TR("C Ritenute fiscali"));
|
||||
set_descr(i++, TR("C Ritenute soc."));
|
||||
set_descr(i++, TR("C Iva ad esig.diff."));
|
||||
_tipo_des = vendita;
|
||||
carica_righe_libere(i);
|
||||
}
|
||||
@ -221,6 +222,7 @@ void TCaus_app::causale_acquisti()
|
||||
set_descr(i++, TR("C Imp. non soggetti"));
|
||||
set_descr(i++, TR("C Ritenute fiscali"));
|
||||
set_descr(i++, TR("C Ritenute soc."));
|
||||
set_descr(i++, TR("C Iva ad esig.diff."));
|
||||
_tipo_des = acquisto;
|
||||
carica_righe_libere(i);
|
||||
}
|
||||
|
@ -87,6 +87,8 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
m->set_handler(F_CORRVALUTA, corrvaluta_handler);
|
||||
m->set_handler(F_DATAINTRA, dataintra_handler);
|
||||
m->set_handler(F_CODIVA, main_codiva_handler);
|
||||
if (_liqdiff)
|
||||
m->set_handler(F_LIQDIFF, liqdiff_handler);
|
||||
m->set_handler(F_OCCASEDIT, occas_handler);
|
||||
m->set_handler(F_SOLAIVA, solaiva_handler);
|
||||
m->set_handler(F_SHEETIVA, iva_handler);
|
||||
@ -384,7 +386,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nriga >= 2 && nriga <= 9)
|
||||
if (nriga >= 2 && nriga <= RIGA_IVA_DIFFERITA)
|
||||
continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali
|
||||
|
||||
const char tipo = nriga == 1 ? 'T' : ' ';
|
||||
|
@ -1467,8 +1467,18 @@ bool TPrimanota_application::iva_notify(TSheet_field& iva, int r, KEY k)
|
||||
oldposiva[d] = type2pos(tipod);
|
||||
if (oldposiva[d] < 0 && !oldiva[d].is_zero())
|
||||
{
|
||||
const int ri = d ? RIGA_IVA_DETRAIBILE : RIGA_IVA_NON_DETRAIBILE;
|
||||
TBill c; cau.bill(ri, c);
|
||||
TBill c;
|
||||
int ri;
|
||||
|
||||
if (d)
|
||||
{
|
||||
if (iva.mask().get_bool(F_LIQDIFF))
|
||||
cau.bill(ri = RIGA_IVA_DIFFERITA, c);
|
||||
if (!c.ok())
|
||||
cau.bill(ri = RIGA_IVA_DETRAIBILE, c);
|
||||
}
|
||||
else
|
||||
cau.bill(ri = RIGA_IVA_NON_DETRAIBILE, c);
|
||||
if (c.ok())
|
||||
{
|
||||
const TString80 desc(cau.desc_agg(ri));
|
||||
@ -1587,12 +1597,23 @@ bool TPrimanota_application::iva_notify(TSheet_field& iva, int r, KEY k)
|
||||
{
|
||||
if (!imposta.is_zero()) // Se c'e' imposta ...
|
||||
{ // ... crea nuova riga per l'IVA
|
||||
const int ri = d ? RIGA_IVA_DETRAIBILE : RIGA_IVA_NON_DETRAIBILE;
|
||||
const TString desc(cau.desc_agg(ri));
|
||||
TBill contoiva; cau.bill(ri, contoiva);
|
||||
newposiva = a.set_cgs_row(-1, newiva, contoiva, desc, tipod);
|
||||
}
|
||||
TBill contoiva;
|
||||
int ri;
|
||||
|
||||
if (d)
|
||||
{
|
||||
if (iva.mask().get_bool(F_LIQDIFF))
|
||||
cau.bill(ri = RIGA_IVA_DIFFERITA, contoiva);
|
||||
if (!contoiva.ok())
|
||||
cau.bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||
}
|
||||
else
|
||||
cau.bill(ri = RIGA_IVA_NON_DETRAIBILE, contoiva);
|
||||
|
||||
const TString desc(cau.desc_agg(ri));
|
||||
cau.bill(ri, contoiva);
|
||||
newposiva = a.set_cgs_row(-1, newiva, contoiva, desc, tipod);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2653,6 +2674,51 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
// Handler of the F_LIQDIFF
|
||||
// Certified 99%
|
||||
bool TPrimanota_application::liqdiff_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
|
||||
if (key == K_SPACE && f.mask().is_running())
|
||||
{
|
||||
TSheet_field & cgs = app().cgs();
|
||||
const bool liqdiff = f.get().full();
|
||||
const TCausale& cau = app().causale();
|
||||
TBill contoiva;
|
||||
int ri;
|
||||
|
||||
if (f.mask().get_bool(F_LIQDIFF))
|
||||
cau.bill(ri = RIGA_IVA_DIFFERITA, contoiva);
|
||||
if (!contoiva.ok())
|
||||
cau.bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||
TToken_string conto(contoiva.string(0x3));
|
||||
const TString80 descragg(cau.desc_agg(ri));
|
||||
int rowtype = cgs.cid2index(CG_ROWTYPE);
|
||||
int tp = cgs.cid2index(CG_TIPO);
|
||||
int gr = cgs.cid2index(CG_GRUPPO);
|
||||
int co = cgs.cid2index(CG_CONTO);
|
||||
int sc = cgs.cid2index(CG_SOTTOCONTO);
|
||||
int des = cgs.cid2index(CG_DESCR);
|
||||
|
||||
FOR_EACH_SHEET_ROW(cgs, r, row)
|
||||
{
|
||||
const TString4 type(row->get(rowtype));
|
||||
|
||||
if (type == "D")
|
||||
{
|
||||
row->add(conto.get(0), tp);
|
||||
row->add(conto.get(), gr);
|
||||
row->add(conto.get(), co);
|
||||
row->add(conto.get(), sc);
|
||||
row->add(conto.get(), sc + 1);
|
||||
row->add(descragg, des);
|
||||
}
|
||||
}
|
||||
cgs.force_update();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Riempie i campi valuta a zero in base agli altri
|
||||
void TPrimanota_application::gioca_cambi(int force)
|
||||
{
|
||||
|
@ -104,6 +104,7 @@ class TPrimanota_application : public TRelation_application
|
||||
static bool ritfis_handler(TMask_field& f, KEY key);
|
||||
static bool ritsoc_handler(TMask_field& f, KEY key);
|
||||
static bool main_codiva_handler(TMask_field& f, KEY key);
|
||||
static bool liqdiff_handler(TMask_field& f, KEY key);
|
||||
static bool dataintra_handler(TMask_field& f, KEY key);
|
||||
static bool corrlire_handler(TMask_field& f, KEY key);
|
||||
static bool corrvaluta_handler(TMask_field& f, KEY key);
|
||||
|
@ -75,6 +75,7 @@ public:
|
||||
|
||||
#define RIGA_IVA_DETRAIBILE 3
|
||||
#define RIGA_IVA_NON_DETRAIBILE 4
|
||||
#define RIGA_IVA_DIFFERITA 10
|
||||
|
||||
// Fatture
|
||||
#define RIGA_RITENUTE_FISCALI 8
|
||||
|
@ -241,11 +241,18 @@ void TMovimentoPN_VE::enter_row(int i, const TString & descr_cr)
|
||||
const TImporto val(real2imp(iva, 'I'));
|
||||
|
||||
if (newposiva < 0)
|
||||
{
|
||||
const TString80 d(_caus->desc_agg(RIGA_IVA_DETRAIBILE));
|
||||
{
|
||||
int ri;
|
||||
TBill contoiva;
|
||||
const TRectype & head = lfile().curr();
|
||||
|
||||
if (head.get_bool(MOV_LIQDIFF))
|
||||
_caus->bill(ri = RIGA_IVA_DIFFERITA, contoiva);
|
||||
if (!contoiva.ok())
|
||||
_caus->bill(ri = RIGA_IVA_DETRAIBILE, contoiva);
|
||||
|
||||
const TString80 d(_caus->desc_agg(ri));
|
||||
|
||||
_caus->bill(RIGA_IVA_DETRAIBILE, contoiva);
|
||||
if (contoiva.ok())
|
||||
newposiva = set_cg_rec(-1, val, contoiva, d, 'D');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user