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();
|
||||
};
|
||||
|
||||
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)
|
||||
{
|
||||
if (e == fe_button && o.dlg() == DLG_PREVIEW)
|
||||
switch (o.dlg())
|
||||
{
|
||||
TString query;
|
||||
query = "USE &MAG";
|
||||
|
||||
const TString& codmag = get(get_bool(F_USEDEP) ? F_DEP : F_MAG);
|
||||
if (codmag.full())
|
||||
case DLG_PREVIEW:
|
||||
if (e == fe_button)
|
||||
{
|
||||
query << "\nFROM CODTAB=" << codmag
|
||||
<< "\nTO CODTAB=" << codmag;
|
||||
TString query;
|
||||
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);
|
||||
|
||||
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"))
|
||||
break;
|
||||
case DLG_DELREC:
|
||||
if (e == fe_button && noyes_box(TR("Si desiderano azzerare tutte le giacenze alla data?")))
|
||||
{
|
||||
fields.add("CODTAB[1,3]", 0);
|
||||
heads.add(HR("Mag"), 0);
|
||||
TISAM_recordset recset("USE &MAG");
|
||||
recset.cursor()->scan(reset_cb, NULL, TR("Azzeramento"));
|
||||
return false; // Otherwise quits!
|
||||
}
|
||||
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();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TSaldodata_mask::TSaldodata_mask() : TAutomask("mg1300a")
|
||||
{
|
||||
const bool lg = ini_get_bool(CONFIG_DITTA, "mg", "GESLIVGIAC");
|
||||
enable(F_USEDEP, lg);
|
||||
const bool gd = ini_get_bool(CONFIG_DITTA, "mg", "GESDEPOSITI");
|
||||
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);
|
||||
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())
|
||||
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 int sgn_giac = caus.sgn(s_giac);
|
||||
const int sgn_icl = caus.sgn(s_incl);
|
||||
const int sgn_acl = caus.sgn(s_acl);
|
||||
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 (!use_dep) codmag.cut(3);
|
||||
if (mag.full() && codmag != mag)
|
||||
continue;
|
||||
|
||||
const TString80 codart = recset.get(RMOVMAG_CODART).as_string();
|
||||
const TString4 um = recset.get(RMOVMAG_UM).as_string();
|
||||
const TString80 codart = riga.get(RMOVMAG_CODART);
|
||||
const TString4 um = riga.get(RMOVMAG_UM);
|
||||
TArticolo& art = cached_article(codart);
|
||||
qta = art.convert_to_um(qta, EMPTY_STRING, um);
|
||||
|
||||
key = codmag;
|
||||
key.add(codart);
|
||||
key.add(recset.get(RMOVMAG_LIVGIAC).as_string());
|
||||
key.add(riga.get(RMOVMAG_LIVGIAC));
|
||||
|
||||
TSaldo_info& info = saldi.info(key);
|
||||
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;
|
||||
TString80 codtab;
|
||||
|
||||
TProgind pi(saldi.items(), TR("Salvataggio inventario"));
|
||||
TProgind pi(saldi.items(), TR("Salvataggio giacenze"));
|
||||
FOR_EACH_ASSOC_OBJECT(saldi, hash, key, obj)
|
||||
{
|
||||
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);
|
||||
if (mag.rewrite() != NOERR)
|
||||
{
|
||||
cantwrite_box("inventario alla data");
|
||||
cantwrite_box(title());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "mg1300a.h"
|
||||
|
||||
PAGE "Giacenza alla data" -1 -1 40 3
|
||||
PAGE "Giacenza alla data" -1 -1 46 3
|
||||
|
||||
DATE F_DATA
|
||||
BEGIN
|
||||
@ -49,6 +49,12 @@ BEGIN
|
||||
PICTURE TOOL_PREVIEW
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Azzera"
|
||||
PICTURE TOOL_DELREC
|
||||
END
|
||||
|
||||
#include <elabar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
@ -123,14 +123,14 @@ public:
|
||||
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; }
|
||||
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);
|
||||
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 & deslin() const { return body(LF_DESLIN); }
|
||||
TRecord_array & codcorr() const { return body(LF_CODCORR); }
|
||||
TRecord_array& um() const { return body(LF_UMART); }
|
||||
TRecord_array& deslin() const { return body(LF_DESLIN); }
|
||||
TRecord_array& codcorr() const { return body(LF_CODCORR); }
|
||||
|
||||
TArticolo(const char* codice = NULL);
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
void TArticolo::round_um(real& r, const char* to_um)
|
||||
{
|
||||
|
@ -46,9 +46,10 @@ Item_10 = "Controllo lista movimenti", "mg4 -3", "F"
|
||||
[MGMENU_070]
|
||||
Caption = "Servizi modulo magazzino"
|
||||
Picture = <mg01>
|
||||
Module = 32
|
||||
Module = mg
|
||||
Flags = ""
|
||||
Item_01 = "Apertura/chiusura magazzino", "mg1 -3", "F"
|
||||
Item_02 = "Giacenza alla data", "mg1 -2", "F"
|
||||
|
||||
[MGMENU_090]
|
||||
Caption = "Configurazione modulo magazzino"
|
||||
|
@ -64,7 +64,7 @@ END
|
||||
|
||||
STRING F_RAGGFD 50 40
|
||||
BEGIN
|
||||
PROMPT 30 5 ""
|
||||
PROMPT 32 5 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user