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:
parent
385b30da97
commit
729c0ceada
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user