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() { } virtual ~TConsuntivazione_produzione() { }
}; };
class TContabilizzazione_analitica : public TElaborazione // velib04b class TContabilizzazione_analitica : public TElaborazione // velib04f
{ {
error_type _error; // Errore rilevato durante l'elaborazione error_type _error; // Errore rilevato durante l'elaborazione
protected: 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); bool find_conti(const TRiga_documento& riga, TString_array& conti);
const TCausale& doc2caus(const TDocumento& doc); 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 // 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()) if (_search_seq.blank())
{ {
@ -98,7 +98,7 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
TString16 tok; TString16 tok;
// Scorre la stringa di ricerca // 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); _search_seq.get(i, tok);
if (tok == "CF") if (tok == "CF")
@ -213,7 +213,7 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
{ {
TString16 tok; TString16 tok;
// Scorre la stringa di ricerca ma solo per causale o CLI/FO // 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); _search_seq.get(i, tok);
if (tok == "CF") if (tok == "CF")
@ -243,22 +243,12 @@ error_type TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documen
default : default :
break; break;
} // end of switch } // end of switch
if (_error == no_error)
{ return conto.ok() && conto.find();
if (!conto.ok() || !conto.find())
_error = conto_error;
}
return _error;
} }
bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TString_array& conti) 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; bool bArcticleFound = false;
const char tipocf = riga.doc().get_char(DOC_TIPOCF); 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"); contanal = spp.get(tipocf == 'F' ? "S2" : "S1");
} }
} }
if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi' if (!bArcticleFound) // Se l'anagrtafica non esiste va bene cosi'
return true; 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_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa(); const TString80 riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_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)); msg.format(FR("*** Riga %d: Manca il conto analitico dell'articolo '%s'"), i, (const char*)riga.get(RDOC_CODART));
viswin->add_line(msg); viswin->add_line(msg);
} }
_error = conto_error;
can_write = false; can_write = false;
continue; continue;
} }