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:
parent
6f1eec4750
commit
eaeba9c57e
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user