Aggiustata maschera causali
git-svn-id: svn://10.65.10.50/branches/R_10_00@22813 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
92b444daf1
commit
55a0b71a66
@ -28,45 +28,66 @@ public:
|
|||||||
TSaldodata_mask();
|
TSaldodata_mask();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool reset_cb(const TRelation& rel, void* pJolly)
|
||||||
|
{
|
||||||
|
return rel.file().remove() == NOERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TSaldodata_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TSaldodata_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
if (e == fe_button && o.dlg() == DLG_PREVIEW)
|
switch (o.dlg())
|
||||||
{
|
{
|
||||||
TString query;
|
case DLG_PREVIEW:
|
||||||
query = "USE &MAG";
|
if (e == fe_button)
|
||||||
|
|
||||||
const TString& codmag = get(get_bool(F_USEDEP) ? F_DEP : F_MAG);
|
|
||||||
if (codmag.full())
|
|
||||||
{
|
{
|
||||||
query << "\nFROM CODTAB=" << codmag
|
TString query;
|
||||||
<< "\nTO CODTAB=" << codmag;
|
query = "USE &MAG";
|
||||||
|
|
||||||
|
const TString& codmag = get(get_bool(F_USEDEP) ? F_DEP : F_MAG);
|
||||||
|
if (codmag.full())
|
||||||
|
{
|
||||||
|
query << "\nFROM CODTAB=" << codmag
|
||||||
|
<< "\nTO CODTAB=" << codmag;
|
||||||
|
}
|
||||||
|
TISAM_recordset recset(query);
|
||||||
|
|
||||||
|
TToken_string fields = "CODTAB[1,5]|CODTAB[6,25]|CODTAB[26,35]|S7|R0|R1|R2|D0|S6|I0|I1|I2|I3|I4|I5|S0";
|
||||||
|
TToken_string heads = HR("Mag+Dep|Articolo@20|Livello@10|UM|Giacenza@12V|Effettiva@12V|Fisica@12V|Data@10|Gr.Mer.|Gr.A|Cnt.A|Sott.A|Gr.V|Cnt.V|Sott.V|Descrizione@50");
|
||||||
|
|
||||||
|
if (!ini_get_bool(CONFIG_DITTA, "mg", "GESDEPOSITI"))
|
||||||
|
{
|
||||||
|
fields.add("CODTAB[1,3]", 0);
|
||||||
|
heads.add(HR("Mag"), 0);
|
||||||
|
}
|
||||||
|
if (!ini_get_bool(CONFIG_DITTA, "mg", "GESLIVGIAC"))
|
||||||
|
{
|
||||||
|
fields.destroy(2);
|
||||||
|
heads.destroy(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
TCursor_sheet s(recset.cursor(), fields, TR("Situazione"), heads, 0, 1);
|
||||||
|
s.run();
|
||||||
}
|
}
|
||||||
TISAM_recordset recset(query);
|
break;
|
||||||
|
case DLG_DELREC:
|
||||||
TToken_string fields = "CODTAB[1,5]|CODTAB[6,25]|CODTAB[26,35]|S7|R0|R1|R2|D0|S6|I0|I1|I2|I3|I4|I5|S0";
|
if (e == fe_button && noyes_box(TR("Si desiderano azzerare tutte le giacenze alla data?")))
|
||||||
TToken_string heads = HR("Mag+Dep|Articolo@20|Livello@10|UM|Giacenza@12V|Effettiva@12V|Fisica@12V|Data@10|Gr.Mer.|Gr.A|Cnt.A|Sott.A|Gr.V|Cnt.V|Sott.V|Descrizione@50");
|
|
||||||
|
|
||||||
if (!ini_get_bool(CONFIG_DITTA, "mg", "GESDEPOSITI"))
|
|
||||||
{
|
{
|
||||||
fields.add("CODTAB[1,3]", 0);
|
TISAM_recordset recset("USE &MAG");
|
||||||
heads.add(HR("Mag"), 0);
|
recset.cursor()->scan(reset_cb, NULL, TR("Azzeramento"));
|
||||||
|
return false; // Otherwise quits!
|
||||||
}
|
}
|
||||||
if (!ini_get_bool(CONFIG_DITTA, "mg", "GESLIVGIAC"))
|
break;
|
||||||
{
|
default:
|
||||||
fields.destroy(2);
|
break;
|
||||||
heads.destroy(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
TCursor_sheet s(recset.cursor(), fields, TR("Situazione"), heads, 0, 1);
|
|
||||||
s.run();
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
TSaldodata_mask::TSaldodata_mask() : TAutomask("mg1300a")
|
TSaldodata_mask::TSaldodata_mask() : TAutomask("mg1300a")
|
||||||
{
|
{
|
||||||
const bool lg = ini_get_bool(CONFIG_DITTA, "mg", "GESLIVGIAC");
|
const bool gd = ini_get_bool(CONFIG_DITTA, "mg", "GESDEPOSITI");
|
||||||
enable(F_USEDEP, lg);
|
enable(F_USEDEP, gd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -210,31 +231,32 @@ void TSaldodata_app::update_saldi(const TDate& data, bool use_dep, const TString
|
|||||||
TRecord_array righe(key, LF_RMOVMAG);
|
TRecord_array righe(key, LF_RMOVMAG);
|
||||||
for (int i = righe.last_row(); i > 0; i = righe.pred_row(i))
|
for (int i = righe.last_row(); i > 0; i = righe.pred_row(i))
|
||||||
{
|
{
|
||||||
real qta = recset.get(RMOVMAG_QUANT).as_real();
|
const TRectype& riga = righe.row(i);
|
||||||
|
real qta = riga.get_real(RMOVMAG_QUANT);
|
||||||
if (qta.is_zero())
|
if (qta.is_zero())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const TString& rcaus = recset.get(RMOVMAG_CODCAUS).as_string();
|
const TString& rcaus = riga.get(RMOVMAG_CODCAUS);
|
||||||
const TCausale_magazzino& caus = cached_causale_magazzino(rcaus.full() ? rcaus : hcaus);
|
const TCausale_magazzino& caus = cached_causale_magazzino(rcaus.full() ? rcaus : hcaus);
|
||||||
const int sgn_giac = caus.sgn(s_giac);
|
const int sgn_giac = caus.sgn(s_giac);
|
||||||
const int sgn_icl = caus.sgn(s_incl);
|
const int sgn_icl = caus.sgn(s_incl);
|
||||||
const int sgn_acl = caus.sgn(s_acl);
|
const int sgn_acl = caus.sgn(s_acl);
|
||||||
if ((sgn_giac != 0 || sgn_icl != 0 || sgn_acl != 0) && caus.update_qta())
|
if ((sgn_giac != 0 || sgn_icl != 0 || sgn_acl != 0) && caus.update_qta())
|
||||||
{
|
{
|
||||||
TString8 codmag = recset.get(RMOVMAG_CODMAG).as_string();
|
TString8 codmag = riga.get(RMOVMAG_CODMAG);
|
||||||
if (codmag.empty()) codmag.spaces(5);
|
if (codmag.empty()) codmag.spaces(5);
|
||||||
if (!use_dep) codmag.cut(3);
|
if (!use_dep) codmag.cut(3);
|
||||||
if (mag.full() && codmag != mag)
|
if (mag.full() && codmag != mag)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const TString80 codart = recset.get(RMOVMAG_CODART).as_string();
|
const TString80 codart = riga.get(RMOVMAG_CODART);
|
||||||
const TString4 um = recset.get(RMOVMAG_UM).as_string();
|
const TString4 um = riga.get(RMOVMAG_UM);
|
||||||
TArticolo& art = cached_article(codart);
|
TArticolo& art = cached_article(codart);
|
||||||
qta = art.convert_to_um(qta, EMPTY_STRING, um);
|
qta = art.convert_to_um(qta, EMPTY_STRING, um);
|
||||||
|
|
||||||
key = codmag;
|
key = codmag;
|
||||||
key.add(codart);
|
key.add(codart);
|
||||||
key.add(recset.get(RMOVMAG_LIVGIAC).as_string());
|
key.add(riga.get(RMOVMAG_LIVGIAC));
|
||||||
|
|
||||||
TSaldo_info& info = saldi.info(key);
|
TSaldo_info& info = saldi.info(key);
|
||||||
info._giac += qta * sgn_giac;
|
info._giac += qta * sgn_giac;
|
||||||
@ -256,7 +278,7 @@ void TSaldodata_app::rebuild_saldi(const TDate& data, bool use_dep, const TStrin
|
|||||||
TToken_string k;
|
TToken_string k;
|
||||||
TString80 codtab;
|
TString80 codtab;
|
||||||
|
|
||||||
TProgind pi(saldi.items(), TR("Salvataggio inventario"));
|
TProgind pi(saldi.items(), TR("Salvataggio giacenze"));
|
||||||
FOR_EACH_ASSOC_OBJECT(saldi, hash, key, obj)
|
FOR_EACH_ASSOC_OBJECT(saldi, hash, key, obj)
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (!pi.addstatus(1))
|
||||||
@ -293,7 +315,7 @@ void TSaldodata_app::rebuild_saldi(const TDate& data, bool use_dep, const TStrin
|
|||||||
mag.put("D0", data);
|
mag.put("D0", data);
|
||||||
if (mag.rewrite() != NOERR)
|
if (mag.rewrite() != NOERR)
|
||||||
{
|
{
|
||||||
cantwrite_box("inventario alla data");
|
cantwrite_box(title());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "mg1300a.h"
|
#include "mg1300a.h"
|
||||||
|
|
||||||
PAGE "Giacenza alla data" -1 -1 40 3
|
PAGE "Giacenza alla data" -1 -1 46 3
|
||||||
|
|
||||||
DATE F_DATA
|
DATE F_DATA
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -49,6 +49,12 @@ BEGIN
|
|||||||
PICTURE TOOL_PREVIEW
|
PICTURE TOOL_PREVIEW
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_DELREC 2 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Azzera"
|
||||||
|
PICTURE TOOL_DELREC
|
||||||
|
END
|
||||||
|
|
||||||
#include <elabar.h>
|
#include <elabar.h>
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -123,14 +123,14 @@ public:
|
|||||||
int find_codcorr(const char * codcorr, int from = 0) const;
|
int find_codcorr(const char * codcorr, int from = 0) const;
|
||||||
|
|
||||||
bool is_first_um(const char * ums) const { return um().rows() > 0 ? find_um(ums) == 1: false; }
|
bool is_first_um(const char * ums) const { return um().rows() > 0 ? find_um(ums) == 1: false; }
|
||||||
const char * first_um() const { return um().rows() > 0 ? um()[1].get(UMART_UM) : ""; }
|
const TString& first_um() const;
|
||||||
|
|
||||||
static void round_um(real& v, const char* to_um);
|
static void round_um(real& v, const char* to_um);
|
||||||
real convert_to_um(const real& v, const TString& to_um, const TString& from_um = EMPTY_STRING, bool arrotonda = true);
|
real convert_to_um(const real& v, const TString& to_um, const TString& from_um = EMPTY_STRING, bool arrotonda = true);
|
||||||
|
|
||||||
TRecord_array & um() const { return body(LF_UMART); }
|
TRecord_array& um() const { return body(LF_UMART); }
|
||||||
TRecord_array & deslin() const { return body(LF_DESLIN); }
|
TRecord_array& deslin() const { return body(LF_DESLIN); }
|
||||||
TRecord_array & codcorr() const { return body(LF_CODCORR); }
|
TRecord_array& codcorr() const { return body(LF_CODCORR); }
|
||||||
|
|
||||||
TArticolo(const char* codice = NULL);
|
TArticolo(const char* codice = NULL);
|
||||||
TArticolo(const TRectype& rec);
|
TArticolo(const TRectype& rec);
|
||||||
|
@ -302,6 +302,12 @@ int TArticolo::find_codcorr(const char * codcorr, int from) const
|
|||||||
return find(LF_CODCORR, CODCORR_CODARTALT, codcorr, from);
|
return find(LF_CODCORR, CODCORR_CODARTALT, codcorr, from);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const TString& TArticolo::first_um() const
|
||||||
|
{
|
||||||
|
const TRecord_array& a = um();
|
||||||
|
return a.rows() > 0 ? a[1].get(UMART_UM) : EMPTY_STRING;
|
||||||
|
}
|
||||||
|
|
||||||
// Funzione statica utilizzabile da tutti
|
// Funzione statica utilizzabile da tutti
|
||||||
void TArticolo::round_um(real& r, const char* to_um)
|
void TArticolo::round_um(real& r, const char* to_um)
|
||||||
{
|
{
|
||||||
|
@ -46,9 +46,10 @@ Item_10 = "Controllo lista movimenti", "mg4 -3", "F"
|
|||||||
[MGMENU_070]
|
[MGMENU_070]
|
||||||
Caption = "Servizi modulo magazzino"
|
Caption = "Servizi modulo magazzino"
|
||||||
Picture = <mg01>
|
Picture = <mg01>
|
||||||
Module = 32
|
Module = mg
|
||||||
Flags = ""
|
Flags = ""
|
||||||
Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F"
|
Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F"
|
||||||
|
Item_02 = "Giacenza alla data", "mg1 -2", "F"
|
||||||
|
|
||||||
[MGMENU_090]
|
[MGMENU_090]
|
||||||
Caption = "Configurazione modulo magazzino"
|
Caption = "Configurazione modulo magazzino"
|
||||||
|
@ -64,7 +64,7 @@ END
|
|||||||
|
|
||||||
STRING F_RAGGFD 50 40
|
STRING F_RAGGFD 50 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 30 5 ""
|
PROMPT 32 5 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user