Patch level : 10.0

Files correlati     : pd0610.exe
Ricompilazione Demo : [ ]
Commento            :
Corretta ricerca prezzo che utilizzava sempre il contratto 001


git-svn-id: svn://10.65.10.50/branches/R_10_00@22037 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2011-04-28 08:37:23 +00:00
parent 6f1eec4750
commit eaeba9c57e

View File

@ -150,16 +150,16 @@ const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const TDocumen
//gestione RCONDV - Contratti
key.add('C'); //tipo
key.add(""); //categoria di vendita
key.add(""); //categoria di vendita nulla sui contratti
key.add('F'); //tipocf
key.add(ordf.get(DOC_CODCF)); //codcf
key.add("001"); //codice contratto
key.add(ordf.get(DOC_CODCONT)); //codice contratto
key.add('A'); //<A>rticolo
key.add(codart); //codice articolo
real prezzo(cache().get(LF_RCONDV, key, RCONDV_PREZZO));
real prezzo = cache().get(LF_RCONDV, key, RCONDV_PREZZO);
if(prezzo == ZERO)
if (prezzo.is_zero())
{
key.cut(0);
//gestione RCONDV - Listini
@ -174,14 +174,13 @@ const real TCrea_ordini_srm_app::cerca_prezzo(const char* codart, const TDocumen
const TRectype& rcondv = cache().get(LF_RCONDV, key);
prezzo = rcondv.get_real(RCONDV_PREZZO);
if(prezzo == ZERO)
if (prezzo.is_zero())
{
const TRectype& anamag = cache().get(LF_ANAMAG, codart);
prezzo = anamag.get_real(ANAMAG_ULTCOS1);
}
}
return prezzo;
}
@ -242,24 +241,22 @@ void TCrea_ordini_srm_app::aggiorna_righe(TDocumento& ordf, const TDocumento& or
//ORDINI_FORNITORE: genera effettivamente gli ordini fornitore
void TCrea_ordini_srm_app::ordini_fornitore(const TDocumento& ordc, const int nriga, TDocumento& ordf)
{
const TRiga_documento & rordc = ordc[nriga];
const TRiga_documento& rordc = ordc[nriga];
const int idrigac = rordc.get_int(RDOC_IDRIGA);
bool trovato = false;
//ciclo di aggiornamento delle righe che ancora esistono
for(int i = 1; i <= ordf.rows(); i++)
FOR_EACH_PHYSICAL_RDOC(ordf, i, rordf)
{
TRiga_documento& rordf = ordf[i];
if(idrigac == rordf.get_int(RDOC_DAIDRIGA))
if(idrigac == rordf->get_int(RDOC_DAIDRIGA))
{
trovato = true;
aggiorna_righe(ordf, ordc, rordc, rordf, idrigac);
aggiorna_righe(ordf, ordc, rordc, *rordf, idrigac);
}
}
if(! trovato)
if (!trovato)
{
TRiga_documento& rordf = ordf.new_row();
aggiorna_righe(ordf, ordc, rordc, rordf, idrigac);
@ -292,29 +289,22 @@ void TCrea_ordini_srm_app::aggiorna_ordf(const TDocumento& ordc, const int nriga
const TString8 codcont = orfrow.get(first ? "CF1" : "CF2");
if (codcont.full())
{
keyc.cut(0);
keyc.add('C'); //tipo
keyc.add(""); //categoria di vendita
keyc = "C"; //tipo
keyc.add(""); //categoria di vendita nulla sui contratti
keyc.add('F'); //tipocf
keyc.add(codcf); //codcf
keyc.add(codcont);
const TRectype & contr = cache().get(LF_CONDV, keyc);
if (!contr.empty())
ordf.put(DOC_CODCONT, codcont);
else
const TRectype& contr = cache().get(LF_CONDV, keyc);
if (contr.empty())
{
keyc.cut(0);
keyc.add('C'); //tipo
keyc.add(""); //categoria di vendita
keyc.add('F'); //tipocf
keyc.add(codcf); //codcf
keyc.add("001"); //codice contratto
const TRectype & contr1 = cache().get(LF_CONDV, keyc);
if (!contr1.empty())
warning_box("Non trovando il contratto %s si utilizza lo 001.", (const char*)keyc);
keyc.add("001", 4); // codice contratto default
if (!cache().get(LF_CONDV, keyc).empty())
ordf.put(DOC_CODCONT, "001");
}
else
ordf.put(DOC_CODCONT, codcont);
}
ordini_fornitore(ordc, nriga, ordf);
@ -344,7 +334,7 @@ TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nr
//gestione CONDV - Listini
if (codlist.full())
{
keyc.add('L'); // 'L'istino
keyc = "L"; // 'L'istino
keyc.add(ordf.get(DOC_CATVEN)); //categoria di vendita
keyc.add(""); //tipocf
keyc.add(""); //codcf
@ -359,29 +349,22 @@ TDoc_key * TCrea_ordini_srm_app::crea_ordf(const TDocumento& ordc, const long nr
if (codcont.full())
{
keyc.cut(0);
keyc.add('C'); // 'C'ontratti
keyc = "C"; // 'C'ontratti
keyc.add(""); // categoria di vendita nulla sui contratti
keyc.add('F'); // tipocf
keyc.add(codcf); // codcf
keyc.add(codcont); // codice contratto
const TRectype & contr = cache().get(LF_CONDV, keyc);
if (!contr.empty())
ordf.put(DOC_CODCONT, codcont);
else
const TRectype& contr = cache().get(LF_CONDV, keyc);
if (contr.empty())
{
keyc.cut(0);
keyc.add('C'); // 'C'ontratti
keyc.add(""); // categoria di vendita nulla sui contratti
keyc.add('F'); // tipocf
keyc.add(codcf); // codcf
keyc.add("001"); // codice contratto di default
const TRectype & contr1 = cache().get(LF_CONDV, keyc);
if (!contr1.empty())
warning_box("Non trovando il contratto %s si utilizza lo 001.", (const char*)keyc);
keyc.add("001", 4); // codice contratto di default
if (!cache().get(LF_CONDV, keyc).empty())
ordf.put(DOC_CODCONT, "001");
}
else
ordf.put(DOC_CODCONT, codcont);
}
TRiga_documento & row = ordf.new_row("05");
@ -557,23 +540,19 @@ bool TCrea_ordini_srm_app::load_ini(bool check)
void TCrea_ordini_srm_app::main_loop() //definizione della member function main_loop, della classe TCrea_ordini_srm_app
{
TString sw(argv(2)); sw.upper();
TString sw = argv(2); sw.upper();
const bool chk_doc = sw == "-V";
open_files(LF_TAB, LF_DOC, LF_RIGHEDOC, 0);
open_files(LF_TAB, LF_TABCOM, LF_DOC, LF_RIGHEDOC, 0);
//mostra un messaggio di errore se non riesce ad aprire il file richiesto; nota la conversione dei tipi che
//é da eseguire quando devo passare una TString ad un %s
if(!load_ini(chk_doc))
{
error_box(TR("Impossibile aprire il file '%s'"), (const char*)_ini_name);
return;
}
else
// mostra un messaggio di errore se non riesce ad aprire il file richiesto
if (load_ini(chk_doc))
{
elabora_ordini_cliente();
message_box(TR("Creazione ordini fornitore completata"));
}
else
cantread_box(_ini_name);
}
////// Esecuzione del programma ///////////
@ -581,6 +560,6 @@ void TCrea_ordini_srm_app::main_loop() //definizione della member function main_
int pd0610200(int argc, char* argv[])
{
TCrea_ordini_srm_app app;
app.run(argc,argv,"Ordini Fornitori");
app.run(argc,argv, TR("Ordini Fornitori"));
return 0;
}