Patch level : 10.0 526
Files correlati : mg3 mg4 Ricompilazione Demo : [ ] Commento : 0001188: stampa inventario + stampa schede segnalato per cliente sailog: la selezione di un articolo es. 1104 (loro base dati), e se richiesto il calcolo dell'inventario alla data, erroneamente il programma calcola anche i movimenti relativi agli articoli con la stessa radice (es. 1104006 e 1104007). l'errore si verifica sia sulla stampa dell'inventario che sulla stampa schede. git-svn-id: svn://10.65.10.50/trunk@19659 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
6a712169e3
commit
2ab92d7bb0
12
mg/mg3.cpp
12
mg/mg3.cpp
@ -10,12 +10,12 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
switch (r)
|
switch (r)
|
||||||
{
|
{
|
||||||
case 1: mg3200(argc,argv) ; break; // stampa disponibilitŕ ....
|
case 1: mg3200(argc,argv); break; // stampa disponibilitŕ ....
|
||||||
case 2: mg3300(argc,argv) ; break; // stampa schede di magazzino
|
case 2: mg3300(argc,argv); break; // stampa schede di magazzino
|
||||||
case 3: mg3400(argc,argv) ; break; // stampa report magazzino
|
case 3: mg3400(argc,argv); break; // stampa report magazzino
|
||||||
case 4: mg3500(argc,argv) ; break; // stampa storico rimanenze
|
case 4: mg3500(argc,argv); break; // stampa storico rimanenze
|
||||||
case 5: mg3600(argc,argv) ; break; // stampa etichette articoli
|
case 5: mg3600(argc,argv); break; // stampa etichette articoli
|
||||||
default: mg3100(argc,argv) ; break; // stampa dati storici, giac e prezzi
|
default: mg3100(argc,argv); break; // stampa dati storici, giac e prezzi
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,8 @@
|
|||||||
#define VALUE_NOT_SET "~~"
|
#define VALUE_NOT_SET "~~"
|
||||||
|
|
||||||
TCausale_magazzino& get_cau(const char* codcaus)
|
TCausale_magazzino& get_cau(const char* codcaus)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
static TAssoc_array _c;
|
static TAssoc_array _c;
|
||||||
TCausale_magazzino * caus = (TCausale_magazzino*) _c.objptr(codcaus);
|
TCausale_magazzino * caus = (TCausale_magazzino*) _c.objptr(codcaus);
|
||||||
if (caus == NULL)
|
if (caus == NULL)
|
||||||
@ -23,12 +24,14 @@ TCausale_magazzino& get_cau(const char* codcaus)
|
|||||||
_c.add(codcaus, caus);
|
_c.add(codcaus, caus);
|
||||||
}
|
}
|
||||||
return *caus;
|
return *caus;
|
||||||
|
*/
|
||||||
|
return cached_causale_magazzino(codcaus);
|
||||||
}
|
}
|
||||||
|
|
||||||
class TForm_schedemag : public TForm_stampemg
|
class TForm_schedemag : public TForm_stampemg
|
||||||
{
|
{
|
||||||
int _tolivgiac,_tolivart;
|
int _tolivgiac,_tolivart;
|
||||||
TString16 _anno_prec;
|
TString4 _anno_prec;
|
||||||
bool _magazzino_chiuso;
|
bool _magazzino_chiuso;
|
||||||
bool _sottocatmer;
|
bool _sottocatmer;
|
||||||
bool _sudd_mag;
|
bool _sudd_mag;
|
||||||
@ -74,23 +77,15 @@ const char* TForm_schedemag::descr_tiposcheda() const
|
|||||||
{
|
{
|
||||||
switch (_tiposcheda)
|
switch (_tiposcheda)
|
||||||
{
|
{
|
||||||
case s_giac:
|
case s_giac: return (TR("Giacenza"));
|
||||||
return (TR("Giacenza"));
|
case s_acl: return (TR("A conto lavoro"));
|
||||||
case s_acl:
|
case s_incl: return (TR("In conto lavoro"));
|
||||||
return (TR("A conto lavoro"));
|
case s_prodc: return (TR("In produzione componenti"));
|
||||||
case s_incl:
|
case s_prodf: return (TR("In produzione finiti"));
|
||||||
return (TR("In conto lavoro"));
|
case s_ordc: return (TR("Ordinato clienti"));
|
||||||
case s_prodc:
|
case s_ordf: return (TR("Ordinato fornitori"));
|
||||||
return (TR("In produzione componenti"));
|
|
||||||
case s_prodf:
|
|
||||||
return (TR("In produzione finiti"));
|
|
||||||
case s_ordc:
|
|
||||||
return (TR("Ordinato clienti"));
|
|
||||||
case s_ordf:
|
|
||||||
return (TR("Ordinato fornitori"));
|
|
||||||
case s_acq:
|
case s_acq:
|
||||||
default:
|
default: break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@ -99,26 +94,18 @@ const char* TForm_schedemag::nomecampo_scheda() const
|
|||||||
{
|
{
|
||||||
switch (_tiposcheda)
|
switch (_tiposcheda)
|
||||||
{
|
{
|
||||||
case s_giac:
|
case s_giac: return (MAG_GIAC);
|
||||||
return (MAG_GIAC);
|
case s_acl: return (MAG_ACL);
|
||||||
case s_acl:
|
case s_incl: return (MAG_INCL);
|
||||||
return (MAG_ACL);
|
case s_prodc:return (MAG_PRODCOMP);
|
||||||
case s_incl:
|
case s_prodf:return (MAG_PRODFIN);
|
||||||
return (MAG_INCL);
|
case s_ordc: return (MAG_ORDC);
|
||||||
case s_prodc:
|
case s_ordf: return (MAG_ORDF);
|
||||||
return (MAG_PRODCOMP);
|
|
||||||
case s_prodf:
|
|
||||||
return (MAG_PRODFIN);
|
|
||||||
case s_ordc:
|
|
||||||
return (MAG_ORDC);
|
|
||||||
case s_ordf:
|
|
||||||
return (MAG_ORDF);
|
|
||||||
case s_acq:
|
case s_acq:
|
||||||
case s_ent:
|
case s_ent:
|
||||||
case s_ven:
|
case s_ven:
|
||||||
case s_usc:
|
case s_usc:
|
||||||
default:
|
default: break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@ -744,16 +731,22 @@ void TStampa_schede_mag::setprint_perarticoli()
|
|||||||
int tolivelloart = m.get_int(F_TOLIVELLOART);
|
int tolivelloart = m.get_int(F_TOLIVELLOART);
|
||||||
int tolivellogiac = m.get_int(F_TOLIVELLOGIAC);
|
int tolivellogiac = m.get_int(F_TOLIVELLOGIAC);
|
||||||
TString sortexp;
|
TString sortexp;
|
||||||
|
int tilde = 0x2;
|
||||||
switch (subordine)
|
switch (subordine)
|
||||||
{
|
{
|
||||||
case 'C':
|
case 'C':
|
||||||
_cur->setkey(1); sortexp = ANAMAG_CODART;
|
{
|
||||||
darec.put("CODART", m.get(F_DAART));
|
_cur->setkey(1); sortexp = ANAMAG_CODART;
|
||||||
arec.put("CODART", m.get(F_AART));
|
darec.put(ANAMAG_CODART, m.get(F_DAART));
|
||||||
_form->setdett_perart(false, false, tolivelloart, tolivellogiac,
|
const TString& aart = m.get(F_AART);
|
||||||
m.get_bool(F_SUDDIV_MAGAZZINI),
|
arec.put(ANAMAG_CODART, aart);
|
||||||
m.get_bool(F_SUDDIV_DEPOSITI));
|
if (aart.blank() || cache().get(LF_ANAMAG, aart).empty())
|
||||||
|
tilde = 0x0;
|
||||||
|
|
||||||
|
_form->setdett_perart(false, false, tolivelloart, tolivellogiac,
|
||||||
|
m.get_bool(F_SUDDIV_MAGAZZINI),
|
||||||
|
m.get_bool(F_SUDDIV_DEPOSITI));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
_cur->setkey(2); sortexp = ANAMAG_DESCR;
|
_cur->setkey(2); sortexp = ANAMAG_DESCR;
|
||||||
@ -801,7 +794,7 @@ void TStampa_schede_mag::setprint_perarticoli()
|
|||||||
TSortedfile *rmovmag= new TSortedfile(LF_RMOVMAG,aux,_form->rmov_sortexp(),filter,0x2);
|
TSortedfile *rmovmag= new TSortedfile(LF_RMOVMAG,aux,_form->rmov_sortexp(),filter,0x2);
|
||||||
darecr.put(RMOVMAG_CODART,darec.get(ANAMAG_CODART));
|
darecr.put(RMOVMAG_CODART,darec.get(ANAMAG_CODART));
|
||||||
arecr.put(RMOVMAG_CODART,arec.get(ANAMAG_CODART));
|
arecr.put(RMOVMAG_CODART,arec.get(ANAMAG_CODART));
|
||||||
rmovmag->setregion(darecr,arecr,0x2);
|
rmovmag->setregion(darecr,arecr,tilde);
|
||||||
if (tiposcheda() != s_giac)
|
if (tiposcheda() != s_giac)
|
||||||
rmovmag->cursor().set_filterfunction(cau_filter);
|
rmovmag->cursor().set_filterfunction(cau_filter);
|
||||||
_cur->relation()->replace(rmovmag,1, _form->rmov_joinexp() );
|
_cur->relation()->replace(rmovmag,1, _form->rmov_joinexp() );
|
||||||
|
@ -3,17 +3,18 @@
|
|||||||
|
|
||||||
#include "../cg/cglib01.h"
|
#include "../cg/cglib01.h"
|
||||||
#include "../ve/veconf.h"
|
#include "../ve/veconf.h"
|
||||||
|
|
||||||
#include "mglib.h"
|
#include "mglib.h"
|
||||||
#include "mg4200.h"
|
#include "mg4200.h"
|
||||||
#include "mg4200a.h"
|
#include "mg4200a.h"
|
||||||
#include "mg4frm.h"
|
#include "mg4frm.h"
|
||||||
|
|
||||||
const char * and_connect(const TString & expr)
|
static const char* and_connect(const TString & expr)
|
||||||
{
|
{
|
||||||
return expr.full() ? "&&" : "";
|
return expr.full() ? "&&" : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * or_connect(TString & expr)
|
static const char* or_connect(TString & expr)
|
||||||
{
|
{
|
||||||
return expr.full() ? "||" : "";
|
return expr.full() ? "||" : "";
|
||||||
}
|
}
|
||||||
@ -504,21 +505,23 @@ TIsamtempfile * TStampa_inventario::crea_tempmag(const bool valcomp)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TIsamtempfile * TStampa_inventario::calcola_giacenze(const bool giaceff, const bool valcomp, const TDate & al, const char subordine)
|
TIsamtempfile* TStampa_inventario::calcola_giacenze(const bool giaceff, const bool valcomp, const TDate & al, const char subordine)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Scorre l'anagrafica di magazzino e calcola per ognuno la giacenza alla data indicata
|
//Scorre l'anagrafica di magazzino e calcola per ognuno la giacenza alla data indicata
|
||||||
//Memorizzando i records in un file temporaneo che avrà lo stesso tracciato di LF_MAG
|
//Memorizzando i records in un file temporaneo che avrà lo stesso tracciato di LF_MAG
|
||||||
TIsamtempfile * temp_mag = new TIsamtempfile(LF_MAG, "tmpmag");
|
TIsamtempfile * temp_mag = new TIsamtempfile(LF_MAG, "tmpmag");
|
||||||
TRectype darec(LF_ANAMAG), arec(LF_ANAMAG);
|
TRectype darec(LF_ANAMAG), arec(LF_ANAMAG);
|
||||||
TMask & m = mask();
|
TMask& m = mask();
|
||||||
|
|
||||||
// aggiunto da cristina (far vedere a guy) insieme al parametro subordine
|
int ordine = 1; // aggiunto da cristina (far vedere a guy) insieme al parametro subordine
|
||||||
int ordine = 1;
|
int tilde = 0x2; // aggiunto da guy (far vedere a cristina)
|
||||||
if (subordine == 'C')
|
if (subordine == 'C')
|
||||||
{
|
{
|
||||||
darec.put(ANAMAG_CODART, m.get(F_DAART));
|
darec.put(ANAMAG_CODART, m.get(F_DAART));
|
||||||
arec.put(ANAMAG_CODART, m.get(F_AART));
|
const TString& aart = m.get(F_AART);
|
||||||
|
arec.put(ANAMAG_CODART, aart);
|
||||||
|
if (aart.blank() || cache().get(LF_ANAMAG, aart).empty())
|
||||||
|
tilde = 0x0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (subordine == 'D')
|
if (subordine == 'D')
|
||||||
@ -545,7 +548,7 @@ TIsamtempfile * TStampa_inventario::calcola_giacenze(const bool giaceff, const b
|
|||||||
}
|
}
|
||||||
|
|
||||||
TRelation ana_rel(LF_ANAMAG);
|
TRelation ana_rel(LF_ANAMAG);
|
||||||
TCursor ana_cur(&ana_rel, "", ordine, &darec, &arec, 0x2);
|
TCursor ana_cur(&ana_rel, "", ordine, &darec, &arec, tilde);
|
||||||
const TRecnotype items = ana_cur.items();
|
const TRecnotype items = ana_cur.items();
|
||||||
|
|
||||||
ana_cur.freeze();
|
ana_cur.freeze();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user