Patch level : 2.2 232

Files correlati     :  ve0.exe ve6.exe
Ricompilazione Demo : [ ]
Commento

Bug  0000549

Non riesco a contab. un NAF con Ritenuta acc. es. 376
Faq con righe sconto non passano in analitica 374/375


git-svn-id: svn://10.65.10.50/trunk@13537 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2005-11-25 14:11:06 +00:00
parent 7195f56cb2
commit c87ad73c8c
3 changed files with 72 additions and 51 deletions

View File

@ -2,18 +2,18 @@
TOOLBAR "" 0 -2 0 2
BUTTON DLG_OK 10 2
BUTTON DLG_OK 12 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_LINK 10 2
BUTTON DLG_LINK 12 2
BEGIN
PROMPT -23 -1 "Colle~ga"
PICTURE BMP_LINK
END
BUTTON DLG_QUIT 10 2
BUTTON DLG_QUIT 12 2
BEGIN
PROMPT -33 -1 ""
END

View File

@ -31,15 +31,11 @@ TImporto TMovimentoPN_VE::real2imp(const real& r, char row_type)
CHECK(_caus,"Orgggssbb..._caus pointer is NULL!");
bool dare = false;
if (row_type == 'S')
{
dare = _caus->sezione_ritsoc() == 'D';
}
else
{
if (row_type == 'F')
{
dare = _caus->sezione_ritsoc() == 'D';
}
dare = _caus->sezione_ritfis() == 'D';
else
{
dare = _caus->sezione_clifo() == 'D';
@ -517,8 +513,8 @@ int TMovimentoPN_VE::recalc_cg_rows(const TString & descr_cr, TCausale & caus)
}
// Parametri da leggere all'inizio dell'elaborazione tramite load_parameters()
static TBill _sco_perc_bill, _sco_imp_bill, // Conti per gli sconti a percentuale ed importi (dalla configurazione)
_spin_billa, _spin_billv,
TBill _sco_perc_bill, _sco_imp_bill; // Conti per gli sconti a percentuale ed importi (dalla configurazione)
static TBill _spin_billa, _spin_billv,
_spbo_billa, _spbo_billv;
static TBill _co_cliente, // conto clifo per movimento d'anticipo
_co_controp; // conto di contropartita per il movimetno d'anticipo

View File

@ -10,6 +10,7 @@
#include "../cg/cg2103.h"
#include "../mg/anamag.h"
extern TBill _sco_perc_bill, _sco_imp_bill;
class TCache_causali : public TCache
{
@ -330,51 +331,73 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
TString80 contanal;
TBill bill; // Cerco il conto contabile
if (!search_costo_ricavo(riga, bill))
return true;
if (!bill.is_analitico())
return true;
if (riga.is_articolo())
{
const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
bArcticleFound = !anamag.empty();
if (riga.is_sconto())
{
if (!_sco_perc_bill.ok())
{
TConfig conf(CONFIG_DITTA, "ve");
int gr = conf.get_int("SCOPRCODCON","ve",1);
int co = conf.get_int("SCOPRCODCON","ve",2);
long so = conf.get_long("SCOPRCODCON","ve",3);
_sco_perc_bill.set(gr,co,so);
gr = conf.get_int("SCOIMCODCON","ve",1);
co = conf.get_int("SCOIMCODCON","ve",2);
so = conf.get_long("SCOIMCODCON","ve",3);
_sco_imp_bill.set(gr,co,so);
}
if (riga.is_sconto_perc())
bill = _sco_perc_bill;
else
bill = _sco_imp_bill;
if (!bill.is_analitico())
return true;
if (_usepdcc)
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
else
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
}
else
{
const char* tabanal = NULL;
if (riga.is_spese())
{ tabanal = "SPP"; } else
if (riga.is_prestazione())
{ tabanal = "PRS"; } else
if (riga.is_risorsa())
{ tabanal = "RIS"; } else
if (riga.is_attrezzatura())
{ tabanal = "ATR"; }
if (tabanal != NULL)
{
const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART));
bArcticleFound = !spp.empty();
}
else
{
if (!search_costo_ricavo(riga, bill))
return true;
if (!bill.is_analitico())
return true;
if (riga.is_articolo())
{
const TRectype& anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
bArcticleFound = !anamag.empty();
if (_usepdcc)
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
else
contanal = spp.get(tipocf == 'F' ? "S2" : "S1");
}
}
if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi'
return true;
/* TBill bill; // Cerco il conto contabile
if (!search_costo_ricavo(riga, bill))
return true;
if (!bill.is_analitico())
return true;*/
contanal = anamag.get(tipocf == 'F' ? ANAMAG_CONTOINDA : ANAMAG_CONTOINDV);
}
else
{
const char* tabanal = NULL;
if (riga.is_spese())
{ tabanal = "SPP"; } else
if (riga.is_prestazione())
{ tabanal = "PRS"; } else
if (riga.is_risorsa())
{ tabanal = "RIS"; } else
if (riga.is_attrezzatura())
{ tabanal = "ATR"; }
if (tabanal != NULL)
{
const TRectype& spp = cache().get(tabanal, riga.get(RDOC_CODART));
bArcticleFound = !spp.empty();
if (_usepdcc)
contanal.format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
else
contanal = spp.get(tipocf == 'F' ? "S2" : "S1");
}
}
if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi'
return true;
}
const TString80 riga_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa();
@ -520,8 +543,10 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
{
const TRiga_documento& riga = doc[i];
// salto descrizioni, sconti e omaggi
if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio())
// salto descrizioni, sconti e omaggi
// if (riga.is_descrizione() || riga.is_sconto() || riga.is_omaggio())
// salto descrizioni, e omaggi
if (riga.is_descrizione() || riga.is_omaggio())
continue;
// salto valori nulli
@ -532,7 +557,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
if (valore.is_zero())
continue;
if (tiva != iva_vendite)
if (tiva != iva_vendite && !riga.is_sconto())
{
real pind = ZERO;
if (tiva != nessuna_iva)