Patch level : 2.2

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Corretta ricerca conto di costo/ricavo delle righe documento


git-svn-id: svn://10.65.10.50/trunk@13247 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2005-07-01 16:13:50 +00:00
parent 385b30da97
commit 729c0ceada
2 changed files with 14 additions and 18 deletions

View File

@ -466,12 +466,12 @@ public:
virtual ~TConsuntivazione_produzione() { }
};
class TContabilizzazione_analitica : public TElaborazione // velib04b
class TContabilizzazione_analitica : public TElaborazione // velib04f
{
error_type _error; // Errore rilevato durante l'elaborazione
protected:
error_type search_costo_ricavo(const TRiga_documento& riga, TBill& conto);
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto);
bool find_conti(const TRiga_documento& riga, TString_array& conti);
const TCausale& doc2caus(const TDocumento& doc);

View File

@ -66,7 +66,7 @@ const TCausale& TContabilizzazione_analitica::rdoc2caus(const TRiga_documento& r
}
// Copiata dalla contabilizzazione ed eliminati riferimenti a tutte le variabili globali del cazzo
error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r, TBill& conto)
bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r, TBill& conto)
{
if (_search_seq.blank())
{
@ -98,7 +98,7 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
TString16 tok;
// Scorre la stringa di ricerca
for (int i=0; _error == no_error && i<items;i++)
for (int i=0; i < items;i++)
{
_search_seq.get(i, tok);
if (tok == "CF")
@ -213,7 +213,7 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
{
TString16 tok;
// Scorre la stringa di ricerca ma solo per causale o CLI/FO
for (int i=0; _error == no_error && i<items;i++)
for (int i=0; i<items;i++)
{
_search_seq.get(i, tok);
if (tok == "CF")
@ -243,22 +243,12 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
default :
break;
} // end of switch
if (_error == no_error)
{
if (!conto.ok() || !conto.find())
_error = conto_error;
}
return _error;
return conto.ok() && conto.find();
}
bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TString_array& conti)
{
TBill bill; // Cerco il conto contabile
if (search_costo_ricavo(riga, bill) != no_error)
return true;
if (!bill.is_analitico())
return true;
bool bArcticleFound = false;
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
@ -287,10 +277,15 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
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;
const TString80 riga_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_commessa();
@ -430,6 +425,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
msg.format(FR("*** Riga %d: Manca il conto analitico dell'articolo '%s'"), i, (const char*)riga.get(RDOC_CODART));
viswin->add_line(msg);
}
_error = conto_error;
can_write = false;
continue;
}