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:
parent
2f3f6f3904
commit
206c799466
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user