Patch level : 10.0 67
Files correlati : Ricompilazione Demo : [ ] Commento : RIportata la verione 3.2 1167 git-svn-id: svn://10.65.10.50/trunk@16722 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9a3f75125c
commit
2030c1272c
@ -422,7 +422,7 @@ bool TMask_movmag::handle_codarticolo(TMask_field &f, KEY k)
|
|||||||
mov_mask.curr_art().read(codart);
|
mov_mask.curr_art().read(codart);
|
||||||
ok = handle_checksosp(f, k);
|
ok = handle_checksosp(f, k);
|
||||||
if (ok)
|
if (ok)
|
||||||
handle_righeprezzo2(f, k);
|
handle_righeprezzo1(f, k);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
error_box(TR("Articolo assente"));
|
error_box(TR("Articolo assente"));
|
||||||
|
@ -415,11 +415,13 @@ int TMov_mag::line_deleted(TToken_string &k, TLine_movmag &r)
|
|||||||
|
|
||||||
void TMov_mag::mark_current_lines(const bool as_deleted)
|
void TMov_mag::mark_current_lines(const bool as_deleted)
|
||||||
{
|
{
|
||||||
const int nrows = rows(); // lasciare la riga qui perchè comporta il caricamento del body
|
_annoes = get(MOVMAG_ANNOES);
|
||||||
_annoes =get(MOVMAG_ANNOES);
|
_datacomp = get_date(MOVMAG_DATACOMP);
|
||||||
_datacomp=get_date(MOVMAG_DATACOMP);
|
|
||||||
lines_to_add.destroy();
|
lines_to_add.destroy();
|
||||||
lines_to_subtract.destroy();
|
lines_to_subtract.destroy();
|
||||||
|
|
||||||
|
/* Vecchio modo che si pianta se manca qualche riga
|
||||||
|
const int nrows = rows(); // lasciare la riga qui perchè comporta il caricamento del body
|
||||||
for (int i = 1; i<= nrows; i++)
|
for (int i = 1; i<= nrows; i++)
|
||||||
{
|
{
|
||||||
if (as_deleted)
|
if (as_deleted)
|
||||||
@ -427,6 +429,18 @@ void TMov_mag::mark_current_lines(const bool as_deleted)
|
|||||||
else
|
else
|
||||||
line_inserted(line2key(i), line2data(i));
|
line_inserted(line2key(i), line2data(i));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
const TRecord_array& b = body();
|
||||||
|
for (int i = b.last_row(); i > 0; i = b.pred_row(i))
|
||||||
|
{
|
||||||
|
TLine_movmag& data = line2data(i);
|
||||||
|
TToken_string& key = line2key(i);
|
||||||
|
if (as_deleted)
|
||||||
|
line_deleted(key, data);
|
||||||
|
else
|
||||||
|
line_inserted(key, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -451,7 +465,7 @@ bool TMov_mag::lock_anamag(const char *codart)
|
|||||||
|
|
||||||
TString mess;
|
TString mess;
|
||||||
mess << TR("Il record di anagrafica dell'articolo '")<< codart << TR("' risulta essere già in uso.");
|
mess << TR("Il record di anagrafica dell'articolo '")<< codart << TR("' risulta essere già in uso.");
|
||||||
TTimed_breakbox bbox((const char *)mess,10);
|
TTimed_breakbox bbox(mess,10);
|
||||||
|
|
||||||
key = bbox.run();
|
key = bbox.run();
|
||||||
}
|
}
|
||||||
|
@ -129,10 +129,25 @@ TMRP_record::TMRP_record(const TMRP_time& t) : _time(t)
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
TArticolo_giacenza *TMRP_line::_articolo_giac = NULL;
|
TArticolo_giacenza *TMRP_line::_articolo_giac = NULL;
|
||||||
|
|
||||||
|
// Stringa temporanea di lavoro
|
||||||
|
static TString16 _sub;
|
||||||
|
|
||||||
|
const TString& TMRP_line::codmag() const
|
||||||
|
{ return _sub = _codmag.left(3); }
|
||||||
|
|
||||||
|
const TString& TMRP_line::codmagaz_coll() const
|
||||||
|
{ return _sub = _codmag_coll.left(3); }
|
||||||
|
|
||||||
|
const TString& TMRP_line::coddep() const
|
||||||
|
{ return _sub = _codmag.mid(3); }
|
||||||
|
|
||||||
|
const TString& TMRP_line::coddep_coll() const
|
||||||
|
{ return _sub = _codmag_coll.mid(3); }
|
||||||
|
|
||||||
const TString& TMRP_line::livgiac(int l) const
|
const TString& TMRP_line::livgiac(int l) const
|
||||||
{
|
{
|
||||||
const TCodgiac_livelli& lg = livelli_giacenza();
|
const TCodgiac_livelli& lg = livelli_giacenza();
|
||||||
return _livgiac.mid(lg.code_start(l)-1, lg.code_length(l));
|
return _sub = _livgiac.mid(lg.code_start(l)-1, lg.code_length(l));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMRP_line::lotti_riordino(real& minimo, real& increm) const
|
void TMRP_line::lotti_riordino(real& minimo, real& increm) const
|
||||||
@ -948,6 +963,7 @@ private:
|
|||||||
bool gross2net_logic(TMRP_line &curr_article, int bucket, bool & sc_used);
|
bool gross2net_logic(TMRP_line &curr_article, int bucket, bool & sc_used);
|
||||||
bool load_gross_requirements();
|
bool load_gross_requirements();
|
||||||
bool load_planned_orders();
|
bool load_planned_orders();
|
||||||
|
bool ciclica(TDistinta_tree& distinta);
|
||||||
bool explode_articles();
|
bool explode_articles();
|
||||||
|
|
||||||
bool test_codnum(const TCodice_numerazione& num, const TString_array& a) const;
|
bool test_codnum(const TCodice_numerazione& num, const TString_array& a) const;
|
||||||
@ -1572,7 +1588,18 @@ void TMatResMask::select_orders(char type, const char * dacatmer,const char * ac
|
|||||||
xvtil_statbar_set(msg);
|
xvtil_statbar_set(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool handle_interval(TMask_field &fld, KEY k)
|
||||||
|
{
|
||||||
|
if (fld.to_check(k, true))
|
||||||
|
{
|
||||||
|
TMatResMask & m = ((TMatResMask &)fld.mask());
|
||||||
|
const TDate & from = m.get_date(F_DADATA);
|
||||||
|
const TDate & to = m.get_date(F_ADATA);
|
||||||
|
|
||||||
|
m.calendar().set_highlight_interval(from, to);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color(sfield(F_ORDINI))
|
TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color(sfield(F_ORDINI))
|
||||||
{
|
{
|
||||||
@ -1598,6 +1625,12 @@ TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color(sfield(F_ORDI
|
|||||||
set(F_NOIMP, "X");
|
set(F_NOIMP, "X");
|
||||||
}
|
}
|
||||||
_nodist_pos =_sel_color.add_color_def("NODIST", TR("Art.pianificati senza distinta"), COLOR_YELLOW, COLOR_BLACK);
|
_nodist_pos =_sel_color.add_color_def("NODIST", TR("Art.pianificati senza distinta"), COLOR_YELLOW, COLOR_BLACK);
|
||||||
|
set_handler(F_DADATA, handle_interval);
|
||||||
|
set_handler(F_ADATA, handle_interval);
|
||||||
|
|
||||||
|
TCalendar_field & cf = (TCalendar_field &) field(F_CALENDAR);
|
||||||
|
|
||||||
|
cf.set_immediate_write();
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -2117,6 +2150,14 @@ bool TMatResPlanning::load_gross_requirements()
|
|||||||
|
|
||||||
/////////// finished: 100%
|
/////////// finished: 100%
|
||||||
/////////// tested : 100%
|
/////////// tested : 100%
|
||||||
|
|
||||||
|
static bool cyclic(TTree& tree, void* jolly, word flags)
|
||||||
|
{
|
||||||
|
TDistinta_tree & distinta = (TDistinta_tree &) tree;
|
||||||
|
|
||||||
|
return distinta.is_cyclic();
|
||||||
|
}
|
||||||
|
|
||||||
bool TMatResPlanning::explode_articles()
|
bool TMatResPlanning::explode_articles()
|
||||||
{
|
{
|
||||||
const TMatResMask& m = *_mask;
|
const TMatResMask& m = *_mask;
|
||||||
@ -2171,7 +2212,15 @@ bool TMatResPlanning::explode_articles()
|
|||||||
if (distinta.set_root(line.articolo(), "", 1.0 , line.livgiac()))
|
if (distinta.set_root(line.articolo(), "", 1.0 , line.livgiac()))
|
||||||
{
|
{
|
||||||
line.set_final_product(FALSE);
|
line.set_final_product(FALSE);
|
||||||
distinta.explode(boom, FALSE, RAGGR_EXP_UMBASE, 1, "AV");
|
|
||||||
|
distinta.goto_root();
|
||||||
|
if (distinta.scan_depth_first(cyclic, NULL))
|
||||||
|
{
|
||||||
|
TToken_string & rdoc = (TToken_string &)line.da_rdoc_key();
|
||||||
|
error_box ("Ordine %s %d/%ld riga n. %d - Distinta %s ciclica", (const char *) rdoc.left(4), atoi(rdoc.mid(4, 4)), atoi(rdoc.mid(9, 7)), atoi(rdoc.mid(16)), (const char *) line.articolo());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
distinta.explode(boom, FALSE, RAGGR_EXP_UMBASE, 1, "AV");
|
||||||
for (int i = 0; i < boom.items(); i++)
|
for (int i = 0; i < boom.items(); i++)
|
||||||
{
|
{
|
||||||
const TRiga_esplosione& riga = (const TRiga_esplosione&)boom[i];
|
const TRiga_esplosione& riga = (const TRiga_esplosione&)boom[i];
|
||||||
@ -3643,3 +3692,4 @@ int mr2100(int argc, char* argv[])
|
|||||||
a.run(argc, argv, TR("Material Requirements Planning"));
|
a.run(argc, argv, TR("Material Requirements Planning"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,10 +131,10 @@ public:
|
|||||||
const TString& description() const { return _descr; }
|
const TString& description() const { return _descr; }
|
||||||
const TString& da_rdoc_key() const { return _da_rdoc_key; }
|
const TString& da_rdoc_key() const { return _da_rdoc_key; }
|
||||||
|
|
||||||
const TString& codmag() const { return _codmag.left(3);}
|
const TString& codmag() const;
|
||||||
const TString& codmagaz_coll() const { return _codmag_coll.left(3); }
|
const TString& codmagaz_coll() const;
|
||||||
const TString& coddep() const { return _codmag.mid(3); }
|
const TString& coddep() const;
|
||||||
const TString& coddep_coll() const { return _codmag_coll.mid(3); }
|
const TString& coddep_coll() const;
|
||||||
const TString& livgiac(int l) const;
|
const TString& livgiac(int l) const;
|
||||||
int explosion_depth() const { return _explosion_depth; }
|
int explosion_depth() const { return _explosion_depth; }
|
||||||
|
|
||||||
|
@ -531,16 +531,7 @@ bool TPlanning_mask::carica_documenti()
|
|||||||
TDate datalim(date_fr);
|
TDate datalim(date_fr);
|
||||||
const int days = days_per_bucket();
|
const int days = days_per_bucket();
|
||||||
|
|
||||||
if (days < 7 )
|
datalim -= get_int(F_LIM);
|
||||||
datalim -= 7;
|
|
||||||
else
|
|
||||||
if (days < 31)
|
|
||||||
datalim.addmonth(-1);
|
|
||||||
else
|
|
||||||
if (days < 180)
|
|
||||||
datalim.addmonth(-3);
|
|
||||||
else
|
|
||||||
datalim -= days * 2;
|
|
||||||
|
|
||||||
TTable num("%NUM");
|
TTable num("%NUM");
|
||||||
TCodice_numerazione cod;
|
TCodice_numerazione cod;
|
||||||
@ -683,19 +674,20 @@ bool TPlanning_mask::carica_documenti()
|
|||||||
{
|
{
|
||||||
if (skip)
|
if (skip)
|
||||||
{
|
{
|
||||||
const TRectype * doc = riga.find_original_doc();
|
const p = riga.get_long(RDOC_PRIORITY);
|
||||||
|
line = _constraints.find(cli, art, liv, imp, ignore_lin ? "" : lin, mag, magc, da_rdoc_key, false);
|
||||||
if (doc != NULL)
|
if ( line != NULL)
|
||||||
{
|
{
|
||||||
const int stato = doc->get_int(DOC_STATO);
|
|
||||||
|
|
||||||
if (test_status(*doc, tn) < 0)
|
if (p > line->priority())
|
||||||
|
line->priority(p);
|
||||||
|
else
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
line = _articles.find(cli, art, liv, imp, lin, mag, magc, da_rdoc_key, true);
|
line = _articles.find(cli, art, liv, imp, lin, mag, magc, da_rdoc_key, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (line->description().blank())
|
if (line->description().blank())
|
||||||
@ -3827,6 +3819,24 @@ static bool handle_codice(TMask_field &fld, KEY k)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool handle_interval(TMask_field &fld, KEY k)
|
||||||
|
{
|
||||||
|
if (fld.to_check(k, true))
|
||||||
|
{
|
||||||
|
TPlanning_mask & m = ((TPlanning_mask &)fld.mask());
|
||||||
|
const TDate & from = m.get_date(F_DADATA);
|
||||||
|
TDate to(m.get_date(F_DADATA));
|
||||||
|
int days = m.days_per_bucket();
|
||||||
|
|
||||||
|
if (days < 7)
|
||||||
|
days = 7;
|
||||||
|
to += days;
|
||||||
|
|
||||||
|
m.calendar().set_highlight_interval(from, to);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void TPlanning_mask::create_browse1(TEdit_field& kfld, int level, short key_id, short des_id, const TCodart_livelli &cal)
|
void TPlanning_mask::create_browse1(TEdit_field& kfld, int level, short key_id, short des_id, const TCodart_livelli &cal)
|
||||||
{
|
{
|
||||||
TFilename tmp; tmp.temp();
|
TFilename tmp; tmp.temp();
|
||||||
@ -3932,6 +3942,9 @@ void TPlanning_mask::init()
|
|||||||
|
|
||||||
create_codart_fields(10, 4, F_LIVART1, F_DESART1);
|
create_codart_fields(10, 4, F_LIVART1, F_DESART1);
|
||||||
set_handler(F_CODART, handle_codice);
|
set_handler(F_CODART, handle_codice);
|
||||||
|
set_handler(F_DADATA, handle_interval);
|
||||||
|
set_handler(F_BUCKETS, handle_interval);
|
||||||
|
|
||||||
|
|
||||||
TConfig ini(CONFIG_DITTA, "mg");
|
TConfig ini(CONFIG_DITTA, "mg");
|
||||||
if (!ini.get_bool("GESDEPOSITI"))
|
if (!ini.get_bool("GESDEPOSITI"))
|
||||||
@ -3958,6 +3971,11 @@ void TPlanning_mask::init()
|
|||||||
|
|
||||||
load_profile();
|
load_profile();
|
||||||
_npr_pos =_sel_color.add_color_def("PROP", TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
|
_npr_pos =_sel_color.add_color_def("PROP", TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
|
||||||
|
|
||||||
|
TCalendar_field & cf = (TCalendar_field &) field(F_CALENDAR);
|
||||||
|
|
||||||
|
cf.set_immediate_write();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,6 +100,7 @@
|
|||||||
#define F_IGNORE_PREC 268
|
#define F_IGNORE_PREC 268
|
||||||
#define F_SINGLE_DOC 269
|
#define F_SINGLE_DOC 269
|
||||||
|
|
||||||
|
|
||||||
#define F_MSP_SORT_PRILIN 290
|
#define F_MSP_SORT_PRILIN 290
|
||||||
|
|
||||||
|
|
||||||
@ -136,6 +137,7 @@
|
|||||||
#define F_NUMBERBYWEEK 271
|
#define F_NUMBERBYWEEK 271
|
||||||
#define F_DIVIDEBYART 273
|
#define F_DIVIDEBYART 273
|
||||||
#define F_DIVIDEBYDATE 272
|
#define F_DIVIDEBYDATE 272
|
||||||
|
#define F_LIM 274
|
||||||
|
|
||||||
#define F_YEAR 301
|
#define F_YEAR 301
|
||||||
#define F_IMPIANTO 302
|
#define F_IMPIANTO 302
|
||||||
|
@ -92,7 +92,7 @@ END
|
|||||||
|
|
||||||
LIST F_BUCKETS 1 15
|
LIST F_BUCKETS 1 15
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Intervallo "
|
PROMPT 2 5 "Intervallo "
|
||||||
ITEM "1|1 Settimana"
|
ITEM "1|1 Settimana"
|
||||||
MESSAGE SHOW,G_BUCKET_WEEK@|HIDE,G_BUCKET_DEF@|COPY,F_BUCKET|"7",F_DAYXBUCK
|
MESSAGE SHOW,G_BUCKET_WEEK@|HIDE,G_BUCKET_DEF@|COPY,F_BUCKET|"7",F_DAYXBUCK
|
||||||
ITEM "2|2 Settimane"
|
ITEM "2|2 Settimane"
|
||||||
@ -120,13 +120,13 @@ END
|
|||||||
|
|
||||||
NUMBER H_BUCKET 2
|
NUMBER H_BUCKET 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 41 6 "= "
|
PROMPT 41 5 "= "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP G_BUCKET_WEEK
|
GROUP G_BUCKET_WEEK
|
||||||
END
|
END
|
||||||
NUMBER F_BUCKET 2
|
NUMBER F_BUCKET 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 41 6 "= "
|
PROMPT 41 5 "= "
|
||||||
FLAGS "GU"
|
FLAGS "GU"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
MESSAGE COPY,H_BUCKET
|
MESSAGE COPY,H_BUCKET
|
||||||
@ -134,12 +134,16 @@ BEGIN
|
|||||||
END
|
END
|
||||||
LIST F_DAYXBUCK 1 9
|
LIST F_DAYXBUCK 1 9
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 48 6 ""
|
PROMPT 48 5 ""
|
||||||
ITEM "1|giorni"
|
ITEM "1|giorni"
|
||||||
ITEM "7|settimane"
|
ITEM "7|settimane"
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP G_BUCKET_WEEK
|
GROUP G_BUCKET_WEEK
|
||||||
END
|
END
|
||||||
|
NUMBER F_LIM 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 6 "Gg.limite residui"
|
||||||
|
END
|
||||||
BOOL F_RESCHEDULING
|
BOOL F_RESCHEDULING
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Permetti rescheduling"
|
PROMPT 2 9 "Permetti rescheduling"
|
||||||
|
@ -879,8 +879,24 @@ void TMSP_constraint::fill_sheet_row(TToken_string& row, const TMask & m, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (userdesc.full())
|
if (userdesc.full())
|
||||||
|
{
|
||||||
|
const int p0 = val.find(__sep);
|
||||||
|
int p1 = val.find(',');
|
||||||
|
|
||||||
|
if (p1 >= 0 && val[p1 + 1] != ' ')
|
||||||
|
p1 = -1;
|
||||||
userdesc << ", ";
|
userdesc << ", ";
|
||||||
val.insert(userdesc);
|
|
||||||
|
if ((p0 >= 0) && (p1 > p0))
|
||||||
|
{
|
||||||
|
val = userdesc;
|
||||||
|
val << cache().get(LF_ANAMAG, articolo(), ANAMAG_DESCR);
|
||||||
|
if (da_rdoc_key.full())
|
||||||
|
val << '¦' << da_rdoc_key;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
val.insert(userdesc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
row.add(val, F_DESCART-FIRST_FIELD);
|
row.add(val, F_DESCART-FIRST_FIELD);
|
||||||
row.add(codimp(),F_CODIMP-FIRST_FIELD);
|
row.add(codimp(),F_CODIMP-FIRST_FIELD);
|
||||||
|
@ -724,12 +724,14 @@ class TCalendar_win : public TField_window
|
|||||||
{
|
{
|
||||||
int _anno;
|
int _anno;
|
||||||
TMRP_calendar* _calendario;
|
TMRP_calendar* _calendario;
|
||||||
|
bool _immediate_write;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void handler(WINDOW win, EVENT* ep);
|
virtual void handler(WINDOW win, EVENT* ep);
|
||||||
virtual void update();
|
virtual void update();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void set_immediate_write(bool on = true) { _immediate_write = on; }
|
||||||
void set_calendar(TMRP_calendar* cal, int year = 0);
|
void set_calendar(TMRP_calendar* cal, int year = 0);
|
||||||
TMRP_calendar* get_calendar() { return _calendario; }
|
TMRP_calendar* get_calendar() { return _calendario; }
|
||||||
|
|
||||||
@ -818,6 +820,8 @@ void TCalendar_win::handler(WINDOW win, EVENT* ep)
|
|||||||
else
|
else
|
||||||
_calendario->suppress_holiday(d.day(), d.month());
|
_calendario->suppress_holiday(d.day(), d.month());
|
||||||
}
|
}
|
||||||
|
if (_immediate_write)
|
||||||
|
_calendario->write();
|
||||||
owner().set_dirty();
|
owner().set_dirty();
|
||||||
force_update();
|
force_update();
|
||||||
}
|
}
|
||||||
@ -855,6 +859,41 @@ void TCalendar_win::update()
|
|||||||
|
|
||||||
_pixmap = true;
|
_pixmap = true;
|
||||||
|
|
||||||
|
TMRP_calendar* defcal = NULL;
|
||||||
|
TMRP_calendar* cal = _calendario;
|
||||||
|
if (cal == NULL)
|
||||||
|
{
|
||||||
|
defcal = new TMRP_calendar();
|
||||||
|
cal = defcal;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cal->from().ok() || cal->to().ok())
|
||||||
|
{
|
||||||
|
TDate from = cal->from();
|
||||||
|
TDate to = cal->to();
|
||||||
|
|
||||||
|
if (from.year() < _anno)
|
||||||
|
from = TDate(1,1, _anno);
|
||||||
|
if (to.year() > _anno)
|
||||||
|
to = TDate(31, 12, _anno);
|
||||||
|
set_brush(FOCUS_BACK_COLOR);
|
||||||
|
hide_pen();
|
||||||
|
|
||||||
|
|
||||||
|
for (TDate d = from ; d <= to; ++d)
|
||||||
|
{
|
||||||
|
RCT rect;
|
||||||
|
|
||||||
|
rect.left = rct.right * (d.day() + 1) / 33;
|
||||||
|
rect.right = rct.right * (d.day() + 2) / 33;
|
||||||
|
rect.top = rct.bottom * d.month() / 13;
|
||||||
|
rect.bottom = rct.bottom * (d.month() + 1) / 13;
|
||||||
|
xvt_dwin_draw_rect(win(), &rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
set_brush(NORMAL_BACK_COLOR);
|
||||||
|
}
|
||||||
|
|
||||||
TString16 str;
|
TString16 str;
|
||||||
str << _anno;
|
str << _anno;
|
||||||
set_color(NORMAL_COLOR, NORMAL_BACK_COLOR);
|
set_color(NORMAL_COLOR, NORMAL_BACK_COLOR);
|
||||||
@ -893,14 +932,6 @@ void TCalendar_win::update()
|
|||||||
set_font();
|
set_font();
|
||||||
}
|
}
|
||||||
|
|
||||||
TMRP_calendar* defcal = NULL;
|
|
||||||
TMRP_calendar* cal = _calendario;
|
|
||||||
if (cal == NULL)
|
|
||||||
{
|
|
||||||
defcal = new TMRP_calendar();
|
|
||||||
cal = defcal;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (j = 1; j <= 12; j++)
|
for (j = 1; j <= 12; j++)
|
||||||
{
|
{
|
||||||
const int y = rct.bottom * j / 13;
|
const int y = rct.bottom * j / 13;
|
||||||
@ -964,6 +995,7 @@ TCalendar_win::TCalendar_win(int x, int y, int dx, int dy,
|
|||||||
WINDOW parent, TWindowed_field* owner)
|
WINDOW parent, TWindowed_field* owner)
|
||||||
: TField_window(x, y, dx, dy, parent, owner)
|
: TField_window(x, y, dx, dy, parent, owner)
|
||||||
{
|
{
|
||||||
|
_immediate_write = false;
|
||||||
xvt_sbar_set_range(win(), HSCROLL, 0, 0);
|
xvt_sbar_set_range(win(), HSCROLL, 0, 0);
|
||||||
xvt_sbar_set_range(win(), VSCROLL, 0, 0);
|
xvt_sbar_set_range(win(), VSCROLL, 0, 0);
|
||||||
set_calendar(NULL);
|
set_calendar(NULL);
|
||||||
@ -973,6 +1005,14 @@ TCalendar_win::TCalendar_win(int x, int y, int dx, int dy,
|
|||||||
// TCalendar_field
|
// TCalendar_field
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void TCalendar_field::set_immediate_write(bool on)
|
||||||
|
|
||||||
|
{
|
||||||
|
TCalendar_win& cw = (TCalendar_win&)win();
|
||||||
|
|
||||||
|
cw.set_immediate_write(on);
|
||||||
|
}
|
||||||
|
|
||||||
TField_window* TCalendar_field::create_window(int x, int y, int dx, int dy, WINDOW parent)
|
TField_window* TCalendar_field::create_window(int x, int y, int dx, int dy, WINDOW parent)
|
||||||
{
|
{
|
||||||
return new TCalendar_win(x, y, dx, dy, parent, this);
|
return new TCalendar_win(x, y, dx, dy, parent, this);
|
||||||
|
10
mr/mrplib.h
10
mr/mrplib.h
@ -66,6 +66,9 @@ class TMRP_calendar : public TObject
|
|||||||
TAssoc_array _exc_imp, _exc_lin;
|
TAssoc_array _exc_imp, _exc_lin;
|
||||||
TString8 _codimp, _codlin;
|
TString8 _codimp, _codlin;
|
||||||
|
|
||||||
|
TDate _from;
|
||||||
|
TDate _to;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void init_default();
|
void init_default();
|
||||||
TString& turni_del_mese(char tipo, int year, int month) const;
|
TString& turni_del_mese(char tipo, int year, int month) const;
|
||||||
@ -107,6 +110,9 @@ public:
|
|||||||
const TString& linea() const { return _codlin; }
|
const TString& linea() const { return _codlin; }
|
||||||
const TString& impianto() const { return _codimp; }
|
const TString& impianto() const { return _codimp; }
|
||||||
char tipo() const;
|
char tipo() const;
|
||||||
|
void set_highlight_interval(const TDate & from = botime, const TDate & to = botime) { _from = from; _to = to;}
|
||||||
|
const TDate & from() const { return _from; }
|
||||||
|
const TDate & to() const { return _to; }
|
||||||
|
|
||||||
TMRP_calendar(const char* linea = NULL, const char* impianto = NULL);
|
TMRP_calendar(const char* linea = NULL, const char* impianto = NULL);
|
||||||
virtual ~TMRP_calendar() { }
|
virtual ~TMRP_calendar() { }
|
||||||
@ -119,6 +125,8 @@ protected: // TWindowed_field
|
|||||||
WINDOW parent);
|
WINDOW parent);
|
||||||
public:
|
public:
|
||||||
void set_calendar(TMRP_calendar* cal, int year = 0);
|
void set_calendar(TMRP_calendar* cal, int year = 0);
|
||||||
|
void set_immediate_write(bool on = true);
|
||||||
|
void reset_immediate_write() { set_immediate_write(false); }
|
||||||
|
|
||||||
TCalendar_field(TMask* m) : TWindowed_field(m) { }
|
TCalendar_field(TMask* m) : TWindowed_field(m) { }
|
||||||
virtual ~TCalendar_field() { }
|
virtual ~TCalendar_field() { }
|
||||||
@ -137,7 +145,7 @@ public:
|
|||||||
// void save_profile();
|
// void save_profile();
|
||||||
// void load_profile();
|
// void load_profile();
|
||||||
|
|
||||||
const TMRP_calendar& calendar() const { return _calendar; }
|
const TMRP_calendar& calendar() const { return _calendar; }
|
||||||
void update_calendar(short calendar, short year, short plant = 0, short line = 0);
|
void update_calendar(short calendar, short year, short plant = 0, short line = 0);
|
||||||
|
|
||||||
TCalendar_mask(const char* name, int num = 0);
|
TCalendar_mask(const char* name, int num = 0);
|
||||||
|
@ -200,7 +200,7 @@ void TGenera_ordini_mask::update_sheet()
|
|||||||
row.add(recset.get(ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
|
row.add(recset.get(ANAMAG_GIORNIRIOR).as_string(), sf.cid2index(F_LEADTIME));
|
||||||
row.add(recset.get(ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
|
row.add(recset.get(ANAMAG_LOTTORIOR).as_string(), sf.cid2index(F_LOTTOMIN));
|
||||||
row.add(recset.get(ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
|
row.add(recset.get(ANAMAG_DESCRAGG).as_string(), sf.cid2index(F_DESCRAGG));
|
||||||
row.add(giac.stringa(), sf.cid2index(F_GIACENZA));
|
row.add(giac.string(), sf.cid2index(F_GIACENZA));
|
||||||
|
|
||||||
row.add(recset.get(ANAMAG_PPCONF).as_string(), sf.cid2index(F_PPCONF));
|
row.add(recset.get(ANAMAG_PPCONF).as_string(), sf.cid2index(F_PPCONF));
|
||||||
row.add(recset.get(ANAMAG_USER1).as_string(), sf.cid2index(F_USER1));
|
row.add(recset.get(ANAMAG_USER1).as_string(), sf.cid2index(F_USER1));
|
||||||
@ -405,7 +405,7 @@ void TCreazione_ordini::generate_orders(TGenera_ordini_mask & mask)
|
|||||||
FOR_EACH_SHEET_ROW(sf, n, row)
|
FOR_EACH_SHEET_ROW(sf, n, row)
|
||||||
{
|
{
|
||||||
const real qta(row->get(sf.cid2index(F_QTA)));
|
const real qta(row->get(sf.cid2index(F_QTA)));
|
||||||
if (qta > ZERO)
|
if (qta != ZERO)
|
||||||
{
|
{
|
||||||
const TString16 codforn(row->get(sf.cid2index(F_FORNITORE)));
|
const TString16 codforn(row->get(sf.cid2index(F_FORNITORE)));
|
||||||
const long cod = atoi(codforn);
|
const long cod = atoi(codforn);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user