Patch level : 10.0 patch 477

Files correlati     : lv2
Ricompilazione Demo : [ ]
Commento            :
Corrette ulteriormente le query di selezione

Corretto il messaggio in cui non riesca a generare alcun movimento di magazzino


git-svn-id: svn://10.65.10.50/trunk@19463 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-10-16 13:13:53 +00:00
parent 2f3f6f3904
commit 206c799466

View File

@ -507,8 +507,13 @@ bool TConta_pulito_msk::on_field_event(TOperable_field& f,TField_event e,long jo
if(e == fe_button)
{
prepara_movimenti(file, movimenti);
if (genera_movmag(movimenti))
message_box(TR("Generazione dei movimenti di magazzino terminata terminata"));
if (movimenti.items() > 0)
{
genera_movmag(movimenti);
message_box(TR("Generazione dei movimenti di magazzino terminata"));
}
else
message_box(TR("Non è stato possibile generare nessun documento con i parametri fissati"));
}
break;
default: break;
@ -635,7 +640,7 @@ bool TConta_pulito_msk::genera_documenti(const TFilename& file, TAssoc_array& do
//che risultano associati a un cliente ma che non hanno una bolla associata
TString query;
query << "USE PACCHI KEY 2\n";
query << "SELECT (NDOC=0)&&(CODCF>0)\n";
query << "SELECT (NDOC=0)&&(CODCF>0)&&(MGNUMREG=0)\n";
query << "FROM DATA=#DADATA";
if (codcf > 0)
query << " CODCF=" << codcf;
@ -829,7 +834,7 @@ void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& m
//seleziona tutti i record del file pacchi da data a data che non hanno una bolla associata
TString query;
query << "USE PACCHI KEY 2\n";
query << "SELECT (NDOC=0)&&(CODCF=0)\n";
query << "SELECT (NDOC=0)&&(CODCF=0)&&(MGNUMREG=0)\n";
query << "FROM DATA=#DADATA\n";
query << "TO DATA=#ADATA";
@ -880,7 +885,8 @@ void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& m
//GENERA_MOVMAG: metodo che genera i movimenti di magazzino dai pacchi
bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
{
const TString4 causale = ini_get_string(CONFIG_DITTA, "lv", "CAUCARPA");
const TCausale_lavanderie lcau(ini_get_string(CONFIG_DITTA, "lv", "CAUCARMAG"));
const TCausale_magazzino causale = lcau.causale_ritiro();
TString8 magazzino;
magazzino << ini_get_string(CONFIG_DITTA, "lv", "CODMAG") << ini_get_string(CONFIG_DITTA, "lv", "CODMAGP");
@ -892,6 +898,19 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
TLocalisamfile movi(LF_MOVMAG);
//inizializzo le variabili di interesse
TDate dadata(TODAY);
TDate adata(TODAY);
long codcf = _codcf;
//se non ho lanciato il programma da linea di comando, leggo i paramtri dalla maschera
if (_auto != 'A')
{
dadata = get_date(F_DADATA);
adata = get_date(F_ADATA);
codcf = get_long(F_CODCF);
}
//per ogni oggetto salvato in movimenti, creo un movimento di magazzino
FOR_EACH_ASSOC_OBJECT(movimenti, hobj, ansidate, obj)
{
@ -901,6 +920,30 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
TMov_mag movmag(++nummov);
movmag.put(MOVMAG_ANNOES, annoes);
movmag.put(MOVMAG_DATAREG, data);
movmag.put(MOVMAG_CODCAUS, causale.codice());
//seleziona tutti i record del file pacchi da data a data che non hanno una bolla associata
//per poter assegnare il riferimento al movimento di magazzino
TString query;
query << "USE PACCHI KEY 2\n";
query << "SELECT (NDOC=0)&&(CODCF=0)&&(MGNUMREG=0)\n";
query << "FROM DATA=#DADATA\n";
query << "TO DATA=#ADATA";
TISAM_recordset selrighe(query);
selrighe.set_var("#DADATA", data);
selrighe.set_var("#ADATA", data);
selrighe.move_first();
TLocalisamfile& pacchi = selrighe.cursor()->file();
//scorro tutti i pacchi trovato
for (bool ok = selrighe.move_first(); ok; ok = selrighe.move_next())
{
TRiga_pacco rp = selrighe.cursor()->curr();
rp.set_movmag(nummov);
rp.rewrite(pacchi);
}
TAssoc_array& articoli = *(TAssoc_array*)obj;
@ -920,12 +963,13 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
TRectype& rmovmag = movmag.new_row();
rmovmag.put(RMOVMAG_CODMAG, magazzino);
rmovmag.put(RMOVMAG_CODART, codart);
rmovmag.put(RMOVMAG_CODCAUS, causale);
//rmovmag.put(RMOVMAG_CODCAUS, causale.codice());
rmovmag.put(RMOVMAG_UM, um);
rmovmag.put(RMOVMAG_QUANT, quantita);
}
movmag.write(movi);
}
/*MANCA IL CARICO DEL MAGAZZINO*/
return true;
}