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) if(e == fe_button)
{ {
prepara_movimenti(file, movimenti); prepara_movimenti(file, movimenti);
if (genera_movmag(movimenti)) if (movimenti.items() > 0)
message_box(TR("Generazione dei movimenti di magazzino terminata terminata")); {
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; break;
default: 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 //che risultano associati a un cliente ma che non hanno una bolla associata
TString query; TString query;
query << "USE PACCHI KEY 2\n"; 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"; query << "FROM DATA=#DADATA";
if (codcf > 0) if (codcf > 0)
query << " CODCF=" << codcf; 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 //seleziona tutti i record del file pacchi da data a data che non hanno una bolla associata
TString query; TString query;
query << "USE PACCHI KEY 2\n"; 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 << "FROM DATA=#DADATA\n";
query << "TO DATA=#ADATA"; 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 //GENERA_MOVMAG: metodo che genera i movimenti di magazzino dai pacchi
bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti) 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; TString8 magazzino;
magazzino << ini_get_string(CONFIG_DITTA, "lv", "CODMAG") << ini_get_string(CONFIG_DITTA, "lv", "CODMAGP"); 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); 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 //per ogni oggetto salvato in movimenti, creo un movimento di magazzino
FOR_EACH_ASSOC_OBJECT(movimenti, hobj, ansidate, obj) 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); TMov_mag movmag(++nummov);
movmag.put(MOVMAG_ANNOES, annoes); movmag.put(MOVMAG_ANNOES, annoes);
movmag.put(MOVMAG_DATAREG, data); 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; TAssoc_array& articoli = *(TAssoc_array*)obj;
@ -920,12 +963,13 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti)
TRectype& rmovmag = movmag.new_row(); TRectype& rmovmag = movmag.new_row();
rmovmag.put(RMOVMAG_CODMAG, magazzino); rmovmag.put(RMOVMAG_CODMAG, magazzino);
rmovmag.put(RMOVMAG_CODART, codart); rmovmag.put(RMOVMAG_CODART, codart);
rmovmag.put(RMOVMAG_CODCAUS, causale); //rmovmag.put(RMOVMAG_CODCAUS, causale.codice());
rmovmag.put(RMOVMAG_UM, um); rmovmag.put(RMOVMAG_UM, um);
rmovmag.put(RMOVMAG_QUANT, quantita); rmovmag.put(RMOVMAG_QUANT, quantita);
} }
movmag.write(movi); movmag.write(movi);
} }
/*MANCA IL CARICO DEL MAGAZZINO*/
return true; return true;
} }