Patch level : 2.1 048

Files correlati     : mr0.exe mr1.exe mr2.exe
Ricompilazione Demo : [ ]
Commento            :
Bug 0000135

 Implementare la gestione multilingua


git-svn-id: svn://10.65.10.50/trunk@12087 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2004-05-18 11:17:26 +00:00
parent 3005fcd67a
commit a29e4b43d4
10 changed files with 192 additions and 227 deletions

View File

@ -55,14 +55,14 @@ bool TMRP_mask::init_calendar()
if (cf.dirty()) if (cf.dirty())
{ {
TString str(80); TString str(80);
str = "Il calendario "; str = TR("Il calendario ");
switch (calendar().tipo()) switch (calendar().tipo())
{ {
case 'L': str << "della linea " << calendar().linea(); break; case 'L': str << TR("della linea ") << calendar().linea(); break;
case 'I': str << "del impianto " << calendar().impianto(); break; case 'I': str << TR("del impianto ") << calendar().impianto(); break;
default : str << "standard"; break; default : str << TR("standard"); break;
} }
str << " e' stato modificato:\nsi desidera salvare le modifiche effettuate?"; str << TR(" e' stato modificato:\nsi desidera salvare le modifiche effettuate?");
if (yesno_box(str)) if (yesno_box(str))
calendar().rewrite(); calendar().rewrite();
} }
@ -323,7 +323,7 @@ int mr0100(int argc, char* argv[])
if (argc > 2) if (argc > 2)
{ {
TString name; TString name;
name << "Tabella " << argv[2]; name << TR("Tabella ") << argv[2];
TMRPtables a; TMRPtables a;
a.run(argc, argv, name); a.run(argc, argv, name);
} }

View File

@ -124,6 +124,6 @@ int mr0400(int argc, char* argv[])
{ {
TConf_MRP_application app; TConf_MRP_application app;
app.run(argc, argv, "Parametri gestione MRP"); app.run(argc, argv, TR("Parametri gestione MRP"));
return 0; return 0;
} }

View File

@ -309,7 +309,7 @@ bool TRepgen_mask::test_tipodoc_num(const TSheet_field &sheet_num ,const TShee
} }
} }
if (!ok) if (!ok)
return error_box("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte",(const char*)tipo); return error_box(FR("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte"),(const char*)tipo);
} }
return TRUE; return TRUE;
} }
@ -359,7 +359,7 @@ void TRepgen_mask::calcola_capacita(TAssoc_array& capacita) const
TString16 codimp; TString16 codimp;
capacita.restart(); capacita.restart();
TProgind pi(capacita.items(), "Calcolo capacita linee", FALSE, TRUE); TProgind pi(capacita.items(), TR("Calcolo capacita linee"), FALSE, TRUE);
THash_object* ho = capacita.get_hashobj(); THash_object* ho = capacita.get_hashobj();
for (;ho != NULL; ho = capacita.get_hashobj()) for (;ho != NULL; ho = capacita.get_hashobj())
{ {
@ -431,7 +431,7 @@ bool TRepgen_mask::elabora() const
const long items = cur.items(); const long items = cur.items();
cur.freeze(TRUE); cur.freeze(TRUE);
msg = "Elaborazione numerazione "; msg << codnum; msg = TR("Elaborazione numerazione "); msg << codnum;
TProgind pi(items, msg, FALSE, TRUE); TProgind pi(items, msg, FALSE, TRUE);
// Scandisce le righe dei documenti // Scandisce le righe dei documenti
@ -530,7 +530,7 @@ bool TRepgen_mask::elabora() const
calcola_capacita(capacita); calcola_capacita(capacita);
const long total = articles.items(); const long total = articles.items();
TProgind pi(total, "Generazione file", FALSE, TRUE); TProgind pi(total, TR("Generazione file"), FALSE, TRUE);
TMask_field& fld = field(F_FILENAME); TMask_field& fld = field(F_FILENAME);
TFilename filename = fld.get(); TFilename filename = fld.get();
@ -597,7 +597,7 @@ bool TRepgen_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
const TSheet_field& s = (const TSheet_field&)o; const TSheet_field& s = (const TSheet_field&)o;
FOR_EACH_SHEET_ROW_BACK(s, r, row) FOR_EACH_SHEET_ROW_BACK(s, r, row)
if (!row->empty_items()) return TRUE; if (!row->empty_items()) return TRUE;
return error_box("E' necessario inserire almeno una numerazione"); return error_box(TR("E' necessario inserire almeno una numerazione"));
} }
break; break;
case F_TIPI: case F_TIPI:
@ -619,7 +619,7 @@ bool TRepgen_mask::on_field_event(TOperable_field& o, TField_event e, long jolly
const bool ok=test_tipodoc_num(sfield(F_NUMERAZIONI), s ); const bool ok=test_tipodoc_num(sfield(F_NUMERAZIONI), s );
return ok; return ok;
} }
return error_box("E' necessario inserire almeno una riga"); return error_box(TR("E' necessario inserire almeno una riga"));
} }
break; break;
case F_YEAR: case F_YEAR:
@ -736,7 +736,6 @@ class TMRP_repgen : public TSkeleton_application
{ {
TRepgen_mask * _m; TRepgen_mask * _m;
TMRP_form * _form; TMRP_form * _form;
TLocalisamfile * _mrprep;
TCodgiac_livelli *_codgiac; TCodgiac_livelli *_codgiac;
int _livello; int _livello;
tipo_ordinamento _tipo_ord; tipo_ordinamento _tipo_ord;
@ -759,7 +758,7 @@ public:
bool TMRP_repgen::create() bool TMRP_repgen::create()
{ {
_m = new TRepgen_mask; _m = new TRepgen_mask;
_mrprep = new TLocalisamfile(LF_MRPREP); open_files(LF_MRPREP, 0);
_codgiac = new TCodgiac_livelli; _codgiac = new TCodgiac_livelli;
if (!_codgiac->enabled()) if (!_codgiac->enabled())
_m->hide(F_LIVDET); _m->hide(F_LIVDET);
@ -771,8 +770,6 @@ bool TMRP_repgen::destroy()
delete _codgiac; delete _codgiac;
if (_m) if (_m)
delete _m; delete _m;
if (_mrprep)
delete _mrprep;
return TSkeleton_application::destroy(); return TSkeleton_application::destroy();
} }
@ -793,18 +790,18 @@ void TMRP_repgen::set_buckets_description()
const short first_id = 3; const short first_id = 3;
const short last_id = 15; const short last_id = 15;
--fd; --fd;
descr.format("\nAl %s", (const char*)fd); descr.format(FR("\nAl %s"), (const char*)fd);
if (bucket_size == 7) if (bucket_size == 7)
{ {
fd.get_week_year(weekd, yeard, week_complete); fd.get_week_year(weekd, yeard, week_complete);
descr << "\nSett. " << weekd << ' ' << yeard; descr << TR("\nSett. ") << weekd << ' ' << yeard;
} }
_form->find_field('B', odd_page, first_id).set_col_head(descr); _form->find_field('B', odd_page, first_id).set_col_head(descr);
TDate wd; TDate wd;
for (;fd <= td;) for (;fd <= td;)
{ {
++fd; ++fd;
descr.format("Dal %s\nAl ", (const char*)fd); descr.format(FR("Dal %s\nAl "), (const char*)fd);
fd += bucket_size-1; fd += bucket_size-1;
wd = fd; wd = fd;
descr << (const char*)fd; descr << (const char*)fd;
@ -814,15 +811,15 @@ void TMRP_repgen::set_buckets_description()
if (bucket_size == 7) if (bucket_size == 7)
{ {
wd.get_week_year(weekd, yeard, week_complete); wd.get_week_year(weekd, yeard, week_complete);
descr << "\nSett. " << weekd << ' ' << yeard; descr << TR("\nSett. ") << weekd << ' ' << yeard;
} }
_form->find_field('B', odd_page, id).set_col_head(descr); _form->find_field('B', odd_page, id).set_col_head(descr);
} }
descr.format("Dal %s", (const char*)wd); descr.format(FR("Dal %s"), (const char*)wd);
if (bucket_size == 7) if (bucket_size == 7)
{ {
wd.get_week_year(weekd, yeard, week_complete); wd.get_week_year(weekd, yeard, week_complete);
descr << "\n\nSett. " << weekd << ' ' << yeard; descr << TR("\n\nSett. ") << weekd << ' ' << yeard;
} }
_form->find_field('B', odd_page, last_id).set_col_head(descr); _form->find_field('B', odd_page, last_id).set_col_head(descr);
} }
@ -1034,6 +1031,6 @@ void TMRP_repgen::main_loop()
int mr1100(int argc, char* argv[]) int mr1100(int argc, char* argv[])
{ {
TMRP_repgen a; TMRP_repgen a;
a.run(argc, argv, "Generazione MRP reports"); a.run(argc, argv, TR("Generazione MRP reports"));
return 0; return 0;
} }

View File

@ -139,7 +139,7 @@ int TMRP_line::add_son(const real& qta, TMRP_line* son)
{ {
CHECK(son, "Can't add NULL TMRP_line son"); CHECK(son, "Can't add NULL TMRP_line son");
if (son == this) if (son == this)
fatal_box("Riga di MRP %sz %s padre di se stessa", (const char *)articolo(), (const char *)livgiac()); fatal_box(FR("Riga di MRP %sz %s padre di se stessa"), (const char *)articolo(), (const char *)livgiac());
CHECK(son != this, "Hermafrodite TMRP_line"); CHECK(son != this, "Hermafrodite TMRP_line");
_qta_sons.add(qta); _qta_sons.add(qta);
return _sons.add(son); return _sons.add(son);
@ -999,7 +999,7 @@ int TMatResMask::num_orders()
} }
bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
const char * confirm_msg="Le attuali %d righe di ordine verranno perse. Confermare?"; const char * confirm_msg=FR("Le attuali %d righe di ordine verranno perse. Confermare?");
switch (o.dlg()) switch (o.dlg())
{ {
case F_DADATA: case F_DADATA:
@ -1036,7 +1036,7 @@ bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
const TSheet_field& s = (const TSheet_field&)o; const TSheet_field& s = (const TSheet_field&)o;
FOR_EACH_SHEET_ROW_BACK(s, r, row) FOR_EACH_SHEET_ROW_BACK(s, r, row)
if (!row->empty_items()) return TRUE; if (!row->empty_items()) return TRUE;
return error_box("E' necessario inserire almeno una riga"); return error_box(TR("E' necessario inserire almeno una riga"));
} }
break; break;
case F_ORDINI: case F_ORDINI:
@ -1154,7 +1154,7 @@ bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
if (e == fe_button && check_fields()) if (e == fe_button && check_fields())
{ {
if (!app().emit_orders()) if (!app().emit_orders())
message_box("Nessun ordine generato"); message_box(TR("Nessun ordine generato"));
} }
break; break;
case DLG_PRINT: case DLG_PRINT:
@ -1460,7 +1460,7 @@ void TMatResMask::select_orders(char type, const char * dacatmer,const char * ac
s.force_update(r); s.force_update(r);
} }
} }
TString msg=format("Ordini %s %s",type=='F' ? "fornitore" : "di produzione" ,on ? "selezionati" :"de-selezionati"); TString msg=format(FR("Ordini %s %s"),type=='F' ? TR("fornitore") : TR("di produzione") ,on ? TR("selezionati") :TR("de-selezionati"));
xvt_statbar_set(msg); xvt_statbar_set(msg);
} }
@ -1489,7 +1489,7 @@ TMatResMask::TMatResMask() : TCalendar_mask("mr2100a"), _sel_color(sfield(F_ORDI
disable(F_NOIMP); // Forza l'ignoramento degli impianti disable(F_NOIMP); // Forza l'ignoramento degli impianti
set(F_NOIMP, "X"); set(F_NOIMP, "X");
} }
_nodist_pos =_sel_color.add_color_def("NODIST", "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);
} }
@ -1892,7 +1892,7 @@ bool TMatResPlanning::load_gross_requirements()
TString_array& n = m.sfield(F_NUM_ORC).rows_array(); TString_array& n = m.sfield(F_NUM_ORC).rows_array();
TString_array& a = m.sfield(F_TIPI_ORC).rows_array(); TString_array& a = m.sfield(F_TIPI_ORC).rows_array();
TProgind pi(table_items("%NUM"), "Caricamento fabbisogni lordi...", TRUE, TRUE); TProgind pi(table_items("%NUM"), TR("Caricamento fabbisogni lordi..."), TRUE, TRUE);
// Scandisce tutte le numerazioni considerando solo quelle // Scandisce tutte le numerazioni considerando solo quelle
// contenenti i tipi documento specificati nella maschera // contenenti i tipi documento specificati nella maschera
@ -2019,7 +2019,7 @@ bool TMatResPlanning::explode_articles()
if (pi == NULL) if (pi == NULL)
{ {
TString80 msg; TString80 msg;
msg.format("Esplosione articoli (livello %d)", level++); msg.format(FR("Esplosione articoli (livello %d)"), level++);
pi = new TProgind(_articles.items()-a, msg, TRUE, TRUE); pi = new TProgind(_articles.items()-a, msg, TRUE, TRUE);
} }
pi->addstatus(1); pi->addstatus(1);
@ -2097,7 +2097,7 @@ bool TMatResPlanning::load_planned_orders()
TString_array& n = m.sfield(F_NUM_ORF).rows_array(); TString_array& n = m.sfield(F_NUM_ORF).rows_array();
TString_array& a = m.sfield(F_TIPI_ORF).rows_array(); TString_array& a = m.sfield(F_TIPI_ORF).rows_array();
TProgind pi(table_items("%NUM"), "Caricamento arrivi futuri...", TRUE, TRUE); TProgind pi(table_items("%NUM"), TR("Caricamento arrivi futuri..."), TRUE, TRUE);
// Scandisce tutte le numerazioni considerando solo quelle // Scandisce tutte le numerazioni considerando solo quelle
// contenenti i tipi documento specificati nella maschera // contenenti i tipi documento specificati nella maschera
@ -2249,20 +2249,6 @@ bool TMatResPlanning::gross2net_logic(TMRP_line &curr_article, int bucket, bool
{ {
tmpreal = curr_article.on_hand(bucket); tmpreal = curr_article.on_hand(bucket);
tmpreal -= curr_article.gross_requirement(bucket); tmpreal -= curr_article.gross_requirement(bucket);
#ifdef DBG
if (curr_article.articolo() == "U01121")
{
s = tmpreal.string();
tmpreal.round(5);
s = tmpreal.string();
}
if (curr_article.articolo() == "U00124")
{
s = tmpreal.string();
tmpreal.round(5);
s = tmpreal.string();
}
#endif
if (!sc_used) if (!sc_used)
{ {
curr_article.scorta_minima(sm, curr_article.time(bucket).date()); curr_article.scorta_minima(sm, curr_article.time(bucket).date());
@ -2332,7 +2318,7 @@ bool TMatResPlanning::net_requirement_cycle()
// ordina gli articoli // ordina gli articoli
const long total = _articles.sort(); const long total = _articles.sort();
TProgind pi(total, "Calcolo dei fabbisogni netti", FALSE, TRUE); TProgind pi(total, TR("Calcolo dei fabbisogni netti"), FALSE, TRUE);
// cicla iterativamente sugli elementi di _articles // cicla iterativamente sugli elementi di _articles
for (long a = 0; a < total; a++) for (long a = 0; a < total; a++)
@ -2377,7 +2363,7 @@ bool TMatResPlanning::build_orders()
if (tot > 0L) if (tot > 0L)
{ {
TProgind pi(tot, "Generazione righe ordini...", FALSE, TRUE); TProgind pi(tot, TR("Generazione righe ordini..."), FALSE, TRUE);
for (long a = 0; a < tot; a++) for (long a = 0; a < tot; a++)
{ {
pi.addstatus(1); pi.addstatus(1);
@ -2422,7 +2408,7 @@ bool TMatResPlanning::build_orders()
const int orders=sf.items(); const int orders=sf.items();
if (orders==0) if (orders==0)
message_box("Nessun ordine da emettere"); message_box(TR("Nessun ordine da emettere"));
real price, qta; real price, qta;
TCodice_articolo codart; TCodice_articolo codart;
FOR_EACH_SHEET_ROW(sf,n,row) FOR_EACH_SHEET_ROW(sf,n,row)
@ -2468,7 +2454,7 @@ void TMatResPlanning::print_orders_header(TPrinter& pr)
TString format; TString format;
TPrintrow row; TPrintrow row;
print_header(pr); print_header(pr);
row.put("@48G@BSTAMPA PROPOSTE D'ORDINE DA M.R.P."); row.put(FR("@48G@BSTAMPA PROPOSTE D'ORDINE DA M.R.P."));
pr.setheaderline(1,row); pr.setheaderline(1,row);
row.reset(); row.reset();
set_body_order_line(row, NULL); set_body_order_line(row, NULL);
@ -2491,10 +2477,10 @@ void TMatResPlanning::print_orders_body(TPrinter& pr, TToken_string *sheetrow)
if (*sheetrow->get(F_DOCCODNUM-FIRST_FIELD) > ' ') if (*sheetrow->get(F_DOCCODNUM-FIRST_FIELD) > ' ')
{ {
row.put(format("@%dGDocumento %s", pos+= 54+1, (const char *)sheetrow->get(F_DOCCODNUM-FIRST_FIELD))); row.put(format(FR("@%dGDocumento %s"), pos+= 54+1, (const char *)sheetrow->get(F_DOCCODNUM-FIRST_FIELD)));
row.put(format("@%dG%d", pos+= 4+10+1, sheetrow->get_int(F_DOCANNODOC-FIRST_FIELD))); row.put(format("@%dG%d", pos+= 4+10+1, sheetrow->get_int(F_DOCANNODOC-FIRST_FIELD)));
row.put(format("@%dGn.%6ld", pos+= 4+1, sheetrow->get_long(F_DOCNUM-FIRST_FIELD))); row.put(format("@%dGn.%6ld", pos+= 4+1, sheetrow->get_long(F_DOCNUM-FIRST_FIELD)));
row.put(format("@%dGriga %3d", pos+= 2+6+1, sheetrow->get_int(F_DOCNRIGA-FIRST_FIELD))); row.put(format(FR("@%dGriga %3d"), pos+= 2+6+1, sheetrow->get_int(F_DOCNRIGA-FIRST_FIELD)));
} }
pr.print(row); pr.print(row);
} }
@ -2526,7 +2512,7 @@ void TMatResPlanning::set_body_order_line(TPrintrow &row, TToken_string *sheetro
sheetrow->get(F_QUANTITA-FIRST_FIELD, r); sheetrow->get(F_QUANTITA-FIRST_FIELD, r);
row.put(format("@%dG%18s", pos, (const char *)r.string(18,5))); row.put(format("@%dG%18s", pos, (const char *)r.string(18,5)));
} else { } else {
row.put(format("@%dGQuantita'", pos+8)); row.put(format(FR("@%dGQuantita'"), pos+8));
} }
row.put(format("@%dG%s", pos+= 18+1, sheetrow ? (const char *)sheetrow->get(F_UM-FIRST_FIELD): "UM")); row.put(format("@%dG%s", pos+= 18+1, sheetrow ? (const char *)sheetrow->get(F_UM-FIRST_FIELD): "UM"));
if (sheetrow) if (sheetrow)
@ -2549,7 +2535,7 @@ bool TMatResPlanning::print_orders()
TSheet_field& sf = m.sfield(F_ORDINI); TSheet_field& sf = m.sfield(F_ORDINI);
if (sf.items() < 1) if (sf.items() < 1)
{ {
message_box("Nessun ordine da stampare"); message_box(TR("Nessun ordine da stampare"));
return FALSE; return FALSE;
} }
TMask pmask("mr2100c.msk"); TMask pmask("mr2100c.msk");
@ -2574,7 +2560,7 @@ bool TMatResPlanning::print_planning(TMask &pmask)
pr.open(); pr.open();
if (pmask.get_bool(S_RISALITA)) if (pmask.get_bool(S_RISALITA))
{ {
TIndwin(60,"Ordinamento proposte per articolo/data...",FALSE); TIndwin(60,TR("Ordinamento proposte per articolo/data..."),FALSE);
sf.sort(order_compareADTF); sf.sort(order_compareADTF);
sf.force_update(); sf.force_update();
} }
@ -2641,7 +2627,7 @@ bool TMatResPlanning::print_risalita(TToken_string &row, int ris_level, bool det
else else
{ {
TPrintrow prow; TPrintrow prow;
prow.put(format("@32gRisalita: impossibile rintracciare la proposta originale")); prow.put(format(FR("@32gRisalita: impossibile rintracciare la proposta originale")));
pr.print(prow); pr.print(prow);
return FALSE; return FALSE;
} }
@ -2693,22 +2679,22 @@ bool TMatResPlanning::print_risalita(const TMRP_line & line, const TDate &date,
return FALSE; return FALSE;
TPrintrow prow; TPrintrow prow;
int pos = 30; int pos = 30;
prow.put(format("@%dg Totale fabbisogno lordo %s", pos, lordo.string(18,5))); prow.put(format(FR("@%dg Totale fabbisogno lordo %s"), pos, lordo.string(18,5)));
pr.print(prow); pr.print(prow);
prow.put(format("@%dg Giacenza iniziale %s", pos, on_hand.string(18,5))); prow.put(format(FR("@%dg Giacenza iniziale %s"), pos, on_hand.string(18,5)));
pr.print(prow); pr.print(prow);
if (dett_ord) if (dett_ord)
{ {
prow.put(format("@%dg Ordini pianificati %s", pos, plan.string(18,5))); prow.put(format(FR("@%dg Ordini pianificati %s"), pos, plan.string(18,5)));
pr.print(prow); pr.print(prow);
prow.put(format("@%dg Ordini confermati %s", pos, sched.string(18,5))); prow.put(format(FR("@%dg Ordini confermati %s"), pos, sched.string(18,5)));
pr.print(prow); pr.print(prow);
} }
sched += plan; sched += plan;
prow.put(format("@%dg Totale ordinato %s", pos, sched.string(18,5))); prow.put(format(FR("@%dg Totale ordinato %s"), pos, sched.string(18,5)));
pr.print(prow); pr.print(prow);
netto -= plan; netto -= plan;
prow.put(format("@%dg Totale da pianificare %s", pos, netto.string(18,5))); prow.put(format(FR("@%dg Totale da pianificare %s"), pos, netto.string(18,5)));
pr.print(prow); pr.print(prow);
if (backlevel>1 || backlevel<0) if (backlevel>1 || backlevel<0)
{ {
@ -2766,10 +2752,10 @@ int TMatResPlanning::print_internal_ref(const TMRP_internalref &iref, int backle
qtareq.round(5); qtareq.round(5);
// documento di rif. // documento di rif.
docdate = cache().get(LF_DOC,dockey).get(DOC_DATADOC); docdate = cache().get(LF_DOC,dockey).get(DOC_DATADOC);
r2.put(format("@86gDocumento %s",(const char *)docref->codnumdoc() )); r2.put(format(FR("@86gDocumento %s"),(const char *)docref->codnumdoc() ));
r2.put(format("@101g%d",docref->annodoc() )); r2.put(format("@101g%d",docref->annodoc() ));
r2.put(format("@106gn.%6ld",docref->numdoc())); r2.put(format("@106gn.%6ld",docref->numdoc()));
r2.put(format("@115griga %3d",docref->numrig())); r2.put(format(FR("@115griga %3d"),docref->numrig()));
um = docref->um(); um = docref->um();
} }
else else
@ -2897,7 +2883,7 @@ bool TMatResPlanning::ask_save()
bool yes = TRUE; bool yes = TRUE;
if (tot > 0) if (tot > 0)
yes = yesno_box("Si desidera elaborare %d righe?", tot); yes = yesno_box(FR("Si desidera elaborare %d righe?"), tot);
return yes; return yes;
} }
@ -2924,7 +2910,7 @@ bool TMatResPlanning::emit_orders()
if (!ask_save()) if (!ask_save())
return FALSE; return FALSE;
TProgind pi(sf.items(), "Generazione ordini", FALSE, TRUE); TProgind pi(sf.items(), TR("Generazione ordini"), FALSE, TRUE);
FOR_EACH_SHEET_ROW(sf, r, row) FOR_EACH_SHEET_ROW(sf, r, row)
{ {
@ -2950,7 +2936,7 @@ bool TMatResPlanning::emit_orders()
if (datadoc < today && newdoc) if (datadoc < today && newdoc)
if (ignore_docdate_too_soon != K_ENTER && ignore_docdate_too_soon != K_ESC) if (ignore_docdate_too_soon != K_ENTER && ignore_docdate_too_soon != K_ESC)
{ {
TYesnoallnone_box b(format("Riga %d: data di emissione del documento (%s) inferiore a quella odierna. Confermare?",r+1,(const char *)datadoc.string()), K_NO); TYesnoallnone_box b(format(FR("Riga %d: data di emissione del documento (%s) inferiore a quella odierna. Confermare?"),r+1,(const char *)datadoc.string()), K_NO);
ignore_docdate_too_soon = b.run(); ignore_docdate_too_soon = b.run();
} }
if (ignore_docdate_too_soon == K_NO || ignore_docdate_too_soon == K_ESC) if (ignore_docdate_too_soon == K_NO || ignore_docdate_too_soon == K_ESC)
@ -2958,7 +2944,7 @@ bool TMatResPlanning::emit_orders()
if (datacon < datadoc && newdoc) if (datacon < datadoc && newdoc)
if (ignore_duedate_lt_docdate != K_ENTER && ignore_duedate_lt_docdate != K_ESC) if (ignore_duedate_lt_docdate != K_ENTER && ignore_duedate_lt_docdate != K_ESC)
{ {
TYesnoallnone_box b(format("Riga %d: data di consegna (%s) inferiore a quella di emissione del documento (%s). Confermare?",r+1,(const char *)datacon.string(), (const char *)datadoc.string()), K_NO); TYesnoallnone_box b(format(FR("Riga %d: data di consegna (%s) inferiore a quella di emissione del documento (%s). Confermare?"),r+1,(const char *)datacon.string(), (const char *)datadoc.string()), K_NO);
ignore_duedate_lt_docdate = b.run(); ignore_duedate_lt_docdate = b.run();
} }
if (ignore_duedate_lt_docdate == K_NO || ignore_duedate_lt_docdate == K_ESC) if (ignore_duedate_lt_docdate == K_NO || ignore_duedate_lt_docdate == K_ESC)
@ -2968,7 +2954,7 @@ bool TMatResPlanning::emit_orders()
if ((prod && !tipo_doc_prod.clifo_optional()) || if ((prod && !tipo_doc_prod.clifo_optional()) ||
(!prod && !tipo_doc_forn.clifo_optional())) (!prod && !tipo_doc_forn.clifo_optional()))
{ {
error_box("Codice fornitore mancante alla riga %d", r+1); error_box(FR("Codice fornitore mancante alla riga %d"), r+1);
continue; continue;
} }
} }
@ -3132,7 +3118,7 @@ void TMatResPlanning::risalita(const TMask & m)
rismask->run(); rismask->run();
delete rismask; delete rismask;
} else } else
message_box("Impossibile rintracciare la riga d'ordine indicata tra quelle generate in MRP"); message_box(TR("Impossibile rintracciare la riga d'ordine indicata tra quelle generate in MRP"));
} }
@ -3146,7 +3132,7 @@ bool TMatResPlanning::print_exceptions(TMask &m)
{ {
// PER OGNI ARTICOLO ... // PER OGNI ARTICOLO ...
const long max_mrp_rows=_articles.items(); const long max_mrp_rows=_articles.items();
TProgind pi=((max_mrp_rows+1) ,"Ricerca eccezioni...", TRUE, TRUE); TProgind pi=((max_mrp_rows+1) ,TR("Ricerca eccezioni..."), TRUE, TRUE);
for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++) for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++)
{ {
pi.addstatus(1); pi.addstatus(1);
@ -3160,7 +3146,7 @@ bool TMatResPlanning::print_exceptions(TMask &m)
} // ... for each article } // ... for each article
} }
if (e.items()<=0) if (e.items()<=0)
message_box("Nessuna eccezione rilevata"); message_box(TR("Nessuna eccezione rilevata"));
else else
print_exceptions(e); print_exceptions(e);
return e.items()>0; return e.items()>0;
@ -3171,7 +3157,7 @@ void TMatResPlanning::print_except_header(TPrinter& pr)
TString format; TString format;
TPrintrow row; TPrintrow row;
print_header(pr); print_header(pr);
row.put("@48G@BSTAMPA TABULATO ECCEZIONI DA M.R.P."); row.put(FR("@48G@BSTAMPA TABULATO ECCEZIONI DA M.R.P."));
pr.setheaderline(1,row); pr.setheaderline(1,row);
row.reset(); row.reset();
row.put((const char *)TString(131,'-')); row.put((const char *)TString(131,'-'));
@ -3259,13 +3245,12 @@ void print_header(TPrinter& pr)
{ {
TString format; TString format;
TPrintrow row; TPrintrow row;
TLocalisamfile firm(LF_NDITTE); const TRectype & firm = cache().get(LF_NDITTE, main_app().get_firm());
TLocalisamfile anag(LF_ANAG); TString16 key;
firm.put("CODDITTA",main_app().get_firm());
firm.read(); key.format("%s|%s", (const char *) firm.get("TIPOA"), (const char *)firm.get("CODANAGR"));
anag.put("TIPOA",firm.get("TIPOA"));
anag.put("CODANAGR",firm.get("CODANAGR")); const TRectype & anag= cache().get(LF_ANAG, key);
anag.read();
format << "@2g" << anag.get("RAGSOC")<< "@80g@>@110gPagina @#"; format << "@2g" << anag.get("RAGSOC")<< "@80g@>@110gPagina @#";
row.put(format); row.put(format);
pr.setheaderline(0,row); pr.setheaderline(0,row);
@ -3281,7 +3266,7 @@ int mr2100(int argc, char* argv[])
{ {
TMatResPlanning a; TMatResPlanning a;
a.run(argc, argv, "Material Requirements Planning"); a.run(argc, argv, TR("Material Requirements Planning"));
return 0; return 0;
} }

View File

@ -212,10 +212,10 @@ bool TSave_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
_m->elabora(); // necessario per ricaricare i rif alle righe _m->elabora(); // necessario per ricaricare i rif alle righe
if (_exceptions.items()) if (_exceptions.items())
{ {
if (yesno_box("%d eccezioni rilevate. Stampo il tabulato ?",_exceptions.items())) if (yesno_box(FR("%d eccezioni rilevate. Stampo il tabulato ?"),_exceptions.items()))
_m->print_exceptions(_exceptions); _m->print_exceptions(_exceptions);
else else
message_box("Controllare il tabulato eccezioni."); message_box(TR("Controllare il tabulato eccezioni."));
} }
break; break;
default: default:
@ -389,7 +389,7 @@ bool TPlanning_mask::test_tipodoc_num(const TSheet_field &sheet_num ,const TSh
} }
} }
if (!ok) if (!ok)
return error_box("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte",(const char * )tipo); return error_box(FR("Il tipo '%s' non appartiene a nessuna delle numerazioni scelte"),(const char * )tipo);
} }
return TRUE; return TRUE;
} }
@ -510,7 +510,7 @@ bool TPlanning_mask::carica_documenti()
TTable num("%NUM"); TTable num("%NUM");
TCodice_numerazione cod; TCodice_numerazione cod;
TRelation rel(LF_DOC); TRelation rel(LF_DOC);
TCursor cur(&rel); TCursor cur(&rel);
@ -546,7 +546,7 @@ bool TPlanning_mask::carica_documenti()
// Scandisce i documenti inevasi e considera solo // Scandisce i documenti inevasi e considera solo
// quelli con uno stato nel range corretto // quelli con uno stato nel range corretto
TString msg; TString msg;
msg.format("Caricamento documenti %s (numerazione '%s')",tn & _Doc_vincoli ? "ordine":"di planning",(const char *)cod.codice()); msg.format(FR("Caricamento documenti %s (numerazione '%s')"),tn & _Doc_vincoli ? "ordine":"di planning",(const char *)cod.codice());
TProgind pi(items,msg , TRUE, TRUE); TProgind pi(items,msg , TRUE, TRUE);
for (cur = 0; cur.pos() < items; ++cur) for (cur = 0; cur.pos() < items; ++cur)
{ {
@ -793,8 +793,8 @@ int TPlanning_mask::find_constr_row(TMSP_constraint& cons)
//linea articolo (vuota) //linea articolo (vuota)
TMSP_line line(cons); TMSP_line line(cons);
line.fill_sheet_row(sf.row(-1), *this); line.fill_sheet_row(sf.row(-1), *this);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD); rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
row.add("** Ordini ",F_DESCART-FIRST_FIELD); row.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
r = sf.items()-3+2; r = sf.items()-3+2;
if (cons.codclifor()) if (cons.codclifor())
@ -812,7 +812,7 @@ void TPlanning_mask::set_sheet_header()
TSheet_field& sf = sfield(F_ARTICOLI); TSheet_field& sf = sfield(F_ARTICOLI);
sf.enable_column(F_CLIENTE,!get_bool(F_NOCLI_OUT)); sf.enable_column(F_CLIENTE,!get_bool(F_NOCLI_OUT));
sf.set_column_header(F_CLIENTE-FIRST_FIELD,*get(F_TIPOCF)=='C' ? "Cliente" : "Fornitore"); sf.set_column_header(F_CLIENTE-FIRST_FIELD,*get(F_TIPOCF)=='C' ? TR("Cliente") : TR("Fornitore"));
const TDate date_to = get(F_ADATA); const TDate date_to = get(F_ADATA);
const int bucket_size = days_per_bucket(); const int bucket_size = days_per_bucket();
@ -845,9 +845,9 @@ void TPlanning_mask::set_sheet_header()
default: d += bucket_size; break; default: d += bucket_size; break;
} }
sl.set_column_header(F_LBUCKET0 + b, str); sl.set_column_header(F_LBUCKET0 + b, str);
str.insert("Qta "); str.insert(TR("Qta "));
sf.set_column_header(F_BUCKET0 + b*2, str); sf.set_column_header(F_BUCKET0 + b*2, str);
str.overwrite("Prz"); str.overwrite(TR("Prz"));
sf.set_column_header(F_BUCKET0 + b*2 +1, str); sf.set_column_header(F_BUCKET0 + b*2 +1, str);
} }
sf.force_update(); sf.force_update();
@ -904,12 +904,12 @@ void TPlanning_mask::fill_sheet()
// aggiunge la linea di vincolo // aggiunge la linea di vincolo
TToken_string& consrow = sf.row(-1); TToken_string& consrow = sf.row(-1);
curr_constraint->fill_sheet_row(consrow, *this); curr_constraint->fill_sheet_row(consrow, *this);
consrow.add("** Ordini ",F_DESCART-FIRST_FIELD); consrow.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
sf.disable_cell(sf.items()-1, -1); sf.disable_cell(sf.items()-1, -1);
// aggiunge la linea della giacenza prog // aggiunge la linea della giacenza prog
TToken_string& rowgiac = sf.row(-1); TToken_string& rowgiac = sf.row(-1);
copy_sheet_row(rowgiac,consrow); copy_sheet_row(rowgiac,consrow);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD); rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
sf.disable_cell(sf.items()-1, -1); sf.disable_cell(sf.items()-1, -1);
// last_constraint = curr_constraint; // last_constraint = curr_constraint;
curr_constraint->set_on_sheet(); curr_constraint->set_on_sheet();
@ -942,8 +942,8 @@ void TPlanning_mask::fill_sheet()
//linea articolo (vuota) //linea articolo (vuota)
TMSP_line line(cons); TMSP_line line(cons);
line.fill_sheet_row(sf.row(-1), *this); line.fill_sheet_row(sf.row(-1), *this);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD); rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
consrow.add("** Ordini ",F_DESCART-FIRST_FIELD); consrow.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
if (consrow.get_long(sf.cid2index(F_CLIENTE))) if (consrow.get_long(sf.cid2index(F_CLIENTE)))
sf.disable_cell(sf.items()-1,sf.cid2index(F_CLIENTE)); sf.disable_cell(sf.items()-1,sf.cid2index(F_CLIENTE));
} }
@ -988,7 +988,7 @@ bool TPlanning_mask::remove_propose(bool verbose)
bool remove_all = FALSE; bool remove_all = FALSE;
bool some = _proposed_articles.items() > 0L; // proposte attuali bool some = _proposed_articles.items() > 0L; // proposte attuali
if (some) if (some)
remove = (!verbose || yesno_box("Vuoi annullare le nuove proposte?")); remove = (!verbose || yesno_box(TR("Vuoi annullare le nuove proposte?")));
if (!some && verbose) if (!some && verbose)
{ {
if (load_MRP_lines(_actual_plan)) if (load_MRP_lines(_actual_plan))
@ -996,12 +996,12 @@ bool TPlanning_mask::remove_propose(bool verbose)
some = _mrp_articles.items() > 0L; some = _mrp_articles.items() > 0L;
if (some) if (some)
{ {
remove = (noyes_box("Vuoi annullare tutte le pianificazioni non confermate?")); remove = (noyes_box(TR("Vuoi annullare tutte le pianificazioni non confermate?")));
if (remove && get_bool(F_RESCHEDULING) && noyes_box("Vuoi annullare anche le pianificazioni confermate?")) if (remove && get_bool(F_RESCHEDULING) && noyes_box(TR("Vuoi annullare anche le pianificazioni confermate?")))
remove_all = TRUE; remove_all = TRUE;
} }
if (!remove) if (!remove)
message_box("Nessuna pianificazione da annullare"); message_box(TR("Nessuna pianificazione da annullare"));
else else
_proposed_articles = _mrp_articles; _proposed_articles = _mrp_articles;
} }
@ -1050,8 +1050,8 @@ void TPlanning_mask::add_or_sub_propose(char sign, bool scheduled)
sf.disable_cell(sf.items()-1, -1); sf.disable_cell(sf.items()-1, -1);
//linea articolo (vuota) //linea articolo (vuota)
TToken_string& emptyrowc = sf.row(-1); TToken_string& emptyrowc = sf.row(-1);
rowgiac.add("** Giacenza teorica",F_DESCART-FIRST_FIELD); rowgiac.add(TR("** Giacenza teorica"),F_DESCART-FIRST_FIELD);
row.add("** Ordini ",F_DESCART-FIRST_FIELD); row.add(TR("** Ordini "),F_DESCART-FIRST_FIELD);
} }
int art_row; int art_row;
for (art_row=int(sf.items())-1;art_row >=0; art_row--) for (art_row=int(sf.items())-1;art_row >=0; art_row--)
@ -1140,7 +1140,7 @@ void TPlanning_mask::check_articles()
int items=sf.items(); int items=sf.items();
if (items==0) if (items==0)
{ {
message_box("Nessun articolo da verificare"); message_box(TR("Nessun articolo da verificare"));
return; return;
} }
@ -1161,7 +1161,7 @@ void TPlanning_mask::check_capacities()
int items=sf.items(); int items=sf.items();
if (items==0) if (items==0)
{ {
message_box("Nessun carico di linea da verificare"); message_box(TR("Nessun carico di linea da verificare"));
return; return;
} }
TCRPCheck_mask cm(this); TCRPCheck_mask cm(this);
@ -1260,7 +1260,7 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
if (ok = load_MRP_lines(_actual_plan)) if (ok = load_MRP_lines(_actual_plan))
{ {
gross2net(_actual_plan,FALSE); gross2net(_actual_plan,FALSE);
ok = general_review(check_machine, check_human, useextralines, useextrahours,FALSE, no_outcapacity,0, 0,_actual_plan, logic, "Calcolo carico minimo..."); ok = general_review(check_machine, check_human, useextralines, useextrahours,FALSE, no_outcapacity,0, 0,_actual_plan, logic, TR("Calcolo carico minimo..."));
} }
} }
// (two) levels master scheduling // (two) levels master scheduling
@ -1273,7 +1273,7 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
_proposed_articles.destroy(); _proposed_articles.destroy();
gross2net(_stock_break, lotsizing); gross2net(_stock_break, lotsizing);
const char * msg; const char * msg;
msg = (level == 1) ? "Calcolo nuove proposte (articoli non Master)" :"Calcolo nuove proposte"; msg = (level == 1) ? TR("Calcolo nuove proposte (articoli non Master)") :TR("Calcolo nuove proposte");
const int anticipomin=get_int((level == 2) ? F_ANTICIPOMIN : F_ANTICIPOMIN2); const int anticipomin=get_int((level == 2) ? F_ANTICIPOMIN : F_ANTICIPOMIN2);
const int anticipomax=get_int((level == 2) ? F_ANTICIPOMAX : F_ANTICIPOMAX2); const int anticipomax=get_int((level == 2) ? F_ANTICIPOMAX : F_ANTICIPOMAX2);
if (ok = general_review(check_machine, check_human, useextralines, useextrahours,lotsizing, no_outcapacity,anticipomin,anticipomax,_stock_break, logic, msg)) if (ok = general_review(check_machine, check_human, useextralines, useextrahours,lotsizing, no_outcapacity,anticipomin,anticipomax,_stock_break, logic, msg))
@ -1290,10 +1290,10 @@ void TPlanning_mask::propose_1stJIT(TMSP_logic logic, bool check_machine, bool c
TDate dbuck(starting_date()); TDate dbuck(starting_date());
dbuck +=buck*days_per_bucket(); dbuck +=buck*days_per_bucket();
round_date(dbuck); round_date(dbuck);
message_box("Quantita' proposte a partire dal %s (colonna %d)", (const char *)dbuck.string(),buck); message_box(FR("Quantita' proposte a partire dal %s (colonna %d)"), (const char *)dbuck.string(),buck);
} }
else else
message_box("Nessuna nuova proposta"); message_box(TR("Nessuna nuova proposta"));
} }
} }
else else
@ -1400,7 +1400,7 @@ bool TPlanning_mask::general_review(bool check_machine, bool check_human, bool u
nlinea= curr_labor->find_linea(codlin); nlinea= curr_labor->find_linea(codlin);
if (nlinea<0) if (nlinea<0)
{ {
error_box("La linea %s non e' in grado di produrre l'articolo %s", (const char * )codlin, (const char *) _mrp_articles[mrp_row].articolo()); error_box(FR("La linea %s non e' in grado di produrre l'articolo %s"), (const char * )codlin, (const char *) _mrp_articles[mrp_row].articolo());
break; break;
} }
numlinee=nlinea+1; numlinee=nlinea+1;
@ -1639,7 +1639,7 @@ bool TPlanning_mask::capacity_review(bool useextralines, bool useextrahours)
gross2net(_actual_plan); gross2net(_actual_plan);
_capacities.destroy(); _capacities.destroy();
const char *msg="Calcolo carico attuale..."; const char *msg=TR("Calcolo carico attuale...");
if (get(F_RECALC_TYPE).left(1)=="1") if (get(F_RECALC_TYPE).left(1)=="1")
ok = general_review(TRUE, TRUE, useextralines, useextrahours, FALSE, FALSE, 0, 0, _actual_plan,_first_fit_logic, msg); ok = general_review(TRUE, TRUE, useextralines, useextrahours, FALSE, FALSE, 0, 0, _actual_plan,_first_fit_logic, msg);
else if (get(F_RECALC_TYPE).left(3)=="JIT") else if (get(F_RECALC_TYPE).left(3)=="JIT")
@ -1758,7 +1758,7 @@ bool TPlanning_mask::load_MRP_lines(TMSP_mode mode, int level, int numriga)
TSheet_field& sa = sfield(F_ARTICOLI); TSheet_field& sa = sfield(F_ARTICOLI);
if (sa.items()==0) if (sa.items()==0)
{ {
message_box("Nessun articolo da valutare"); message_box(TR("Nessun articolo da valutare"));
return FALSE; return FALSE;
} }
TWait_cursor hourglass; TWait_cursor hourglass;
@ -2064,7 +2064,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
{ {
if (signal) if (signal)
{ {
error_box("Articolo nullo nella riga %d", r+1); error_box(FR("Articolo nullo nella riga %d"), r+1);
signal = FALSE; signal = FALSE;
} }
return signal; return signal;
@ -2115,7 +2115,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
TString err; TString err;
TDate d = starting_date() + long(days_per_bucket() * (b-1)); TDate d = starting_date() + long(days_per_bucket() * (b-1));
round_date(d); round_date(d);
err << "Riga " << first+1 << ": Vincolo non ripettato al " << d; err << TR("Riga ") << first+1 << ": Vincolo non ripettato al " << d;
beep(); beep();
signal =FALSE; signal =FALSE;
xvt_statbar_set(err); xvt_statbar_set(err);
@ -2142,7 +2142,7 @@ bool TPlanning_mask::do_test_art_row(int r, int first, int last, bool signal)
do_test_art_2ndlevel(art2ndlev); do_test_art_2ndlevel(art2ndlev);
else else
if (signal) if (signal)
message_box("Impossibile determinare l'articolo Master per %s",(const char*)currconstr->articolo()); message_box(FR("Impossibile determinare l'articolo Master per %s"),(const char*)currconstr->articolo());
r--; r--;
} }
while (art2ndlev=currconstr->get_unused_line2()) while (art2ndlev=currconstr->get_unused_line2())
@ -2277,7 +2277,7 @@ bool TPlanning_mask::test_art_row(int r, bool signal)
{ {
if (value != goodvalue) if (value != goodvalue)
{ {
error_box("Impossibile modificare la quantita' per l'articolo %s, colonna %d",(const char *)line->articolo(),b); error_box(FR("Impossibile modificare la quantita' per l'articolo %s, colonna %d"),(const char *)line->articolo(),b);
do_events(); do_events();
ok = FALSE; ok = FALSE;
} }
@ -2287,7 +2287,7 @@ bool TPlanning_mask::test_art_row(int r, bool signal)
{ {
if (!get_bool(F_RESCHEDULING) || get_int(F_RESCHED_ALERT)) if (!get_bool(F_RESCHEDULING) || get_int(F_RESCHED_ALERT))
{ {
TString msg (format("%s %s confermati per l'articolo %s, colonna %d",(const char *)line->qta_min(b).string(),(const char *)line->um(),(const char *)line->articolo(),b)); TString msg (format(FR("%s %s confermati per l'articolo %s, colonna %d"),(const char *)line->qta_min(b).string(),(const char *)line->um(),(const char *)line->articolo(),b));
if (get_bool(F_RESCHEDULING)) if (get_bool(F_RESCHEDULING))
{ {
if (err) if (err)
@ -2340,7 +2340,7 @@ bool TPlanning_mask::test_load_row(int r, bool signal)
TString err; TString err;
TDate d = starting_date() + long(days_per_bucket() * (b-1)); TDate d = starting_date() + long(days_per_bucket() * (b-1));
round_date(d); round_date(d);
err << "Riga " << c+1 << ": capacità superata al " << d; err << TR("Riga ") << c+1 << TR(": capacità superata al ") << d;
beep(); beep();
signal =FALSE; signal =FALSE;
xvt_statbar_set(err); xvt_statbar_set(err);
@ -2574,13 +2574,13 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
const bool ordiniXscadenza = get_bool(F_DIVIDEBYDATE); const bool ordiniXscadenza = get_bool(F_DIVIDEBYDATE);
if (ordiniXscadenza && ordiniXarticolo) if (ordiniXscadenza && ordiniXarticolo)
if (!noyes_box("E' stato scelto di generare un ordine diverso per ogni articolo e scadenza: confermare?")) if (!noyes_box(TR("E' stato scelto di generare un ordine diverso per ogni articolo e scadenza: confermare?")))
return 0; return 0;
if (!(ordiniXscadenza || ordiniXarticolo)) if (!(ordiniXscadenza || ordiniXarticolo))
if (!noyes_box("E' stato scelto di generare un unico ordine per ogni articolo e scadenza: confermare?")) if (!noyes_box(TR("E' stato scelto di generare un unico ordine per ogni articolo e scadenza: confermare?")))
return 0; return 0;
TProgind pi(LAST_BUCKET*sf.items(), "Emissione documenti" , FALSE, TRUE); TProgind pi(LAST_BUCKET*sf.items(), TR("Emissione documenti") , FALSE, TRUE);
if (ordiniXscadenza) if (ordiniXscadenza)
{ {
// ************************* // *************************
@ -2604,7 +2604,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
key.format("%d",r); key.format("%d",r);
if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key)) if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key))
{ {
error_box("Riga %d: manca l'indicazione del codice %s",r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente"); error_box(FR("Riga %d: manca l'indicazione del codice %s"),r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_on_row.add(key,NULL); error_on_row.add(key,NULL);
} }
} }
@ -2638,7 +2638,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
key.format("%d",r); key.format("%d",r);
if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key)) if (row->get_long(F_BUCKET0+b-FIRST_FIELD)!=0L && !error_on_row.is_key(key))
{ {
error_box("Riga %d: manca l'indicazione del codice %s",r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente"); error_box(FR("Riga %d: manca l'indicazione del codice %s"),r+1,get(F_TIPOCF)[0] == 'F' ? "fornitore" : "cliente");
error_on_row.add(key,NULL); error_on_row.add(key,NULL);
} }
} }
@ -2657,11 +2657,11 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
switch (some) switch (some)
{ {
case 0: case 0:
message_box("Nessun documento generato o modificato \n(numerazione %s, tipo %s)", message_box(FR("Nessun documento generato o modificato \n(numerazione %s, tipo %s)"),
(const char *)save_numplan,(const char *)save_tipoplan); (const char *)save_numplan,(const char *)save_tipoplan);
break; break;
case -1: case -1:
if (!yesno_box("Problemi nella registrazione dei documenti.\n(numerazione %s, tipo %s)\nRipeto l'elaborazione ?", if (!yesno_box(FR("Problemi nella registrazione dei documenti.\n(numerazione %s, tipo %s)\nRipeto l'elaborazione ?"),
(const char *)save_numplan,(const char *)save_tipoplan)) (const char *)save_numplan,(const char *)save_tipoplan))
some = 0; some = 0;
break; break;
@ -2669,7 +2669,7 @@ int TPlanning_mask::salva_documenti(TExceptions_array &excepts, TSheet_field & s
} }
} }
if (somefilter == 0) if (somefilter == 0)
message_box("Nessuna opzione di registrazione selezionata"); message_box(TR("Nessuna opzione di registrazione selezionata"));
return some; return some;
} }
@ -2689,7 +2689,7 @@ bool TPlanning_mask::on_savefields_event(long jolly)
if (tmp == row->get(num_s.cid2index(F_NUMERAZ))) if (tmp == row->get(num_s.cid2index(F_NUMERAZ)))
break; break;
if (r < 0) if (r < 0)
return sf.error_box("Numerazione '%s' non inclusa tra quelle di planning", (const char *)tmp); return sf.error_box(FR("Numerazione '%s' non inclusa tra quelle di planning"), (const char *)tmp);
} }
{ {
tmp = sf.row(nriga).get(sf.cid2index(F_TIPO_PLAN)); tmp = sf.row(nriga).get(sf.cid2index(F_TIPO_PLAN));
@ -2698,14 +2698,14 @@ bool TPlanning_mask::on_savefields_event(long jolly)
if (tmp == row->get(tipo_s.cid2index(F_TIPO))) if (tmp == row->get(tipo_s.cid2index(F_TIPO)))
break; break;
if (r < 0) if (r < 0)
return sf.error_box("Tipo documento '%s' non incluso tra quelli di planning", (const char *)tmp); return sf.error_box(FR("Tipo documento '%s' non incluso tra quelli di planning"), (const char *)tmp);
} }
} while (--nriga >= 0 && jolly < 0); } while (--nriga >= 0 && jolly < 0);
return TRUE; return TRUE;
} }
bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
const char * confirm_msg="Le modifiche non registrate sulle attuali %d linee di articoli verranno perse: confermare?"; const char * confirm_msg=FR("Le modifiche non registrate sulle attuali %d linee di articoli verranno perse: confermare?");
switch (o.dlg()) switch (o.dlg())
{ {
case F_DADATA: case F_DADATA:
@ -2756,7 +2756,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
ok=test_tipodoc_num(sfield(F_NUM_ORC), s ); ok=test_tipodoc_num(sfield(F_NUM_ORC), s );
return ok; return ok;
} }
return error_box("E' necessario inserire almeno una riga"); return error_box(TR("E' necessario inserire almeno una riga"));
} }
break; break;
@ -3061,7 +3061,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
TMSP_line *l = _articles.find(s.row(curr_row)); TMSP_line *l = _articles.find(s.row(curr_row));
if (l) if (l)
{ {
TLista_docref m(l,"Documenti pianificati", starting_date(), days_per_bucket()); TLista_docref m(l,TR("Documenti pianificati"), starting_date(), days_per_bucket());
if (m.reset_bucket_field()) if (m.reset_bucket_field())
{ {
if (m.run() != K_ESC) if (m.run() != K_ESC)
@ -3069,7 +3069,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
} }
return TRUE; return TRUE;
} }
message_box("Nessun ordine pianificato per la riga corrente"); message_box(TR("Nessun ordine pianificato per la riga corrente"));
} }
break; break;
case F_DOCUMENTI_IN: case F_DOCUMENTI_IN:
@ -3089,7 +3089,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
{ {
case F_DOCUMENTI_IN: case F_DOCUMENTI_IN:
{ {
TLista_docref m(c,"Documenti vincolo",starting_date(), days_per_bucket()); TLista_docref m(c,TR("Documenti vincolo"),starting_date(), days_per_bucket());
if (m.reset_bucket_field()) if (m.reset_bucket_field())
{ {
if (m.run()!= K_ESC) if (m.run()!= K_ESC)
@ -3104,7 +3104,7 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (m.reset_bucket_field()) if (m.reset_bucket_field())
m.run(); m.run();
else else
message_box("Nessun vincolo interno sulla riga corrente"); message_box(TR("Nessun vincolo interno sulla riga corrente"));
return TRUE; return TRUE;
} }
break; break;
@ -3114,13 +3114,13 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (m.reset_bucket_field()) if (m.reset_bucket_field())
m.run(); m.run();
else else
message_box("Nessun articolo Master dipendente dalla riga corrente"); message_box(TR("Nessun articolo Master dipendente dalla riga corrente"));
return TRUE; return TRUE;
} }
break; break;
} }
} }
message_box("Nessun vincolo per la riga corrente"); message_box(TR("Nessun vincolo per la riga corrente"));
} }
break; break;
case F_SHOW_WEEK: case F_SHOW_WEEK:
@ -3233,7 +3233,7 @@ void TPlanning_mask::init()
// sfield(F_TESTE).disable(); // sfield(F_TESTE).disable();
load_profile(); load_profile();
_npr_pos =_sel_color.add_color_def("PROP", "Nuove proposte", COLOR_YELLOW, COLOR_BLACK); _npr_pos =_sel_color.add_color_def("PROP", TR("Nuove proposte"), COLOR_YELLOW, COLOR_BLACK);
} }
@ -3491,7 +3491,7 @@ bool TMSPCheck_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (redo = move_to(FC_UP)) if (redo = move_to(FC_UP))
_col = LAST_BUCKET+1; _col = LAST_BUCKET+1;
} }
message_box("Ricerca terminata"); message_box(TR("Ricerca terminata"));
break; break;
case FC_DOWN_BAD: case FC_DOWN_BAD:
@ -3513,7 +3513,7 @@ bool TMSPCheck_mask::on_field_event(TOperable_field& o, TField_event e, long jol
if (redo = move_to(FC_DOWN)) if (redo = move_to(FC_DOWN))
_col = -1; _col = -1;
} }
message_box("Ricerca terminata"); message_box(TR("Ricerca terminata"));
break; break;
default: default:
@ -3762,6 +3762,6 @@ void TPlanning_app::main_loop()
int mr2200(int argc, char* argv[]) int mr2200(int argc, char* argv[])
{ {
TPlanning_app a; TPlanning_app a;
a.run(argc, argv, "Pianificazione ordini"); a.run(argc, argv, TR("Pianificazione ordini"));
return 0; return 0;
} }

View File

@ -54,12 +54,12 @@ bool TMSP_form::validate(TForm_item &cf, TToken_string &cmd)
TString val; TString val;
if (rel->lfile().get("TIPO")=="C") if (rel->lfile().get("TIPO")=="C")
{ {
val="Ordini da soddisfare"; val=TR("Ordini da soddisfare");
} }
else if (rel->lfile().get("TIPO")=="G") else if (rel->lfile().get("TIPO")=="G")
val="Giacenza proiettata"; val=TR("Giacenza proiettata");
else else
val="Ordini pianificati"; val=TR("Ordini pianificati");
cf.set(val); cf.set(val);
} }
return TRUE; return TRUE;
@ -106,12 +106,12 @@ bool TCRP_form::validate(TForm_item &cf, TToken_string &cmd)
const char type = curr.get_char("TIPO"); const char type = curr.get_char("TIPO");
switch (type) switch (type)
{ {
case 'D': val = " Capacità totale"; break; case 'D': val = TR(" Capacità totale"); break;
case 'd': val = " Carico totale"; break; case 'd': val = TR(" Carico totale"); break;
case 'I': val = " Capacità impianto "; val << curr.get("IMPIANTO"); break; case 'I': val = TR(" Capacità impianto "); val << curr.get("IMPIANTO"); break;
case 'i': val = " Carico impianto "; val << curr.get("IMPIANTO"); break; case 'i': val = TR(" Carico impianto "); val << curr.get("IMPIANTO"); break;
case 'L': val = " Capacità linea "; val << curr.get("LINEA"); break; case 'L': val = TR(" Capacità linea "); val << curr.get("LINEA"); break;
case 'l': val = " Carico linea "; val << curr.get("LINEA"); break; case 'l': val = TR(" Carico linea "); val << curr.get("LINEA"); break;
default: default:
val = curr.get("CODART"); val = curr.get("CODART");
val << " " << relation()->curr(LF_ANAMAG).get("DESCR"); val << " " << relation()->curr(LF_ANAMAG).get("DESCR");
@ -278,14 +278,12 @@ void complete_codlinea(TToken_string &r2, bool ignore_imp)
TString codimp(r2.get(F_CODIMP-FIRST_FIELD)); TString codimp(r2.get(F_CODIMP-FIRST_FIELD));
dist_tree().set_global("_IMPIANTO",codimp); dist_tree().set_global("_IMPIANTO",codimp);
dist_tree().set_global("_LINEA",""); dist_tree().set_global("_LINEA","");
//dist_tree().set_global("_LIVELLO",);
//dist_tree().set_global("_MAGDEP",);
TArray labors; TArray labors;
TRiga_esplosione * l=dist_tree().first_critical_labor(labors); TRiga_esplosione * l=dist_tree().first_critical_labor(labors);
if (l) if (l)
{ {
TLavorazione *curr_labor=TDistinta_tree::find_labor(l); TLavorazione *curr_labor=TDistinta_tree::find_labor(l);
CHECK(curr_labor,"Lavorazione non trovata"); CHECK(curr_labor,TR("Lavorazione non trovata"));
for (int nlinea=0; nlinea <curr_labor->linee_standard(); nlinea ++) for (int nlinea=0; nlinea <curr_labor->linee_standard(); nlinea ++)
{ {
const TRectype &linea_prod= cache().get("LNP",curr_labor->cod_linea(nlinea)); const TRectype &linea_prod= cache().get("LNP",curr_labor->cod_linea(nlinea));
@ -563,7 +561,7 @@ TCRP_line::TCRP_line(const TString& codimp,const TString& codlin,const TString&
} }
else else
{ {
_desc = "Totale ditta"; _desc = TR("Totale ditta");
} }
} }
if (!codart.blank()) if (!codart.blank())
@ -589,7 +587,7 @@ void TCRP_line::fill_capacity_row(TToken_string& row, char load_type, bool perce
{ {
row.add(codimp(),F_CODIMPCRP -FIRST_FIELD); row.add(codimp(),F_CODIMPCRP -FIRST_FIELD);
row.add(codlin(),F_CODLINCRP -FIRST_FIELD); row.add(codlin(),F_CODLINCRP -FIRST_FIELD);
row.add("Capacità",F_CODARTCRP -FIRST_FIELD); row.add(TR("Capacità"),F_CODARTCRP -FIRST_FIELD);
row.add(percent ? "%" : (load_type == '$' ? " $ " :( load_type == 'P' ? "Pz." : "ore")),F_LUM -FIRST_FIELD); row.add(percent ? "%" : (load_type == '$' ? " $ " :( load_type == 'P' ? "Pz." : "ore")),F_LUM -FIRST_FIELD);
@ -617,7 +615,7 @@ void TCRP_line::fill_load_row(TToken_string& row, char load_type, bool percent)
row.add(codimp(),F_CODIMPCRP -FIRST_FIELD); row.add(codimp(),F_CODIMPCRP -FIRST_FIELD);
row.add(codlin(),F_CODLINCRP -FIRST_FIELD); row.add(codlin(),F_CODLINCRP -FIRST_FIELD);
if (codart().blank()) if (codart().blank())
row.add("Carico",F_CODARTCRP -FIRST_FIELD); row.add(TR("Carico"),F_CODARTCRP -FIRST_FIELD);
else else
row.add(codart(),F_CODARTCRP -FIRST_FIELD); row.add(codart(),F_CODARTCRP -FIRST_FIELD);
@ -1339,11 +1337,11 @@ long TPlan_docs::flush(const TDate& data, const char * codart)
if (tot > 0L) if (tot > 0L)
{ {
TString msg; TString msg;
msg << "Registrazione dei documenti di planning"; msg << TR("Registrazione dei documenti di planning");
if (codart) if (codart)
msg << " articolo " << codart; msg << TR(" articolo ") << codart;
if (data.ok()) if (data.ok())
msg << " per il " << data; msg << TR(" per il ") << data;
TProgind pi(tot, msg, FALSE, TRUE); TProgind pi(tot, msg, FALSE, TRUE);
TLocalisamfile lfdoc(LF_DOC); TLocalisamfile lfdoc(LF_DOC);
for (long d = 0; d < tot; d++) for (long d = 0; d < tot; d++)
@ -1372,7 +1370,7 @@ long TPlan_docs::flush(const TDate& data, const char * codart)
} }
if (err != NOERR) if (err != NOERR)
{ {
error_box("Impossibile riscrivere il documento del %d %s %ld",(int)doc.anno(), (const char *)doc.numerazione(),(long)doc.numero()); error_box(FR("Impossibile riscrivere il documento del %d %s %ld"),(int)doc.anno(), (const char *)doc.numerazione(),(long)doc.numero());
retv=-1; retv=-1;
} }
} }
@ -1481,9 +1479,9 @@ void TLista_dettagli::init(const char * title, TDate fromdate, int bucketsize)
_bucksize = bucketsize; _bucksize = bucketsize;
TMask_field &f= add_list(FIRST_FIELD,0,"Bucket ",1,0,2,"","0|1|2|3|4|5|6|7|8|9|10|11|12|13","0|1|2|3|4|5|6|7|8|9|10|11|12|13"); TMask_field &f= add_list(FIRST_FIELD,0,"Bucket ",1,0,2,"","0|1|2|3|4|5|6|7|8|9|10|11|12|13","0|1|2|3|4|5|6|7|8|9|10|11|12|13");
f.set_handler(bucket_handler); f.set_handler(bucket_handler);
add_date(FIRST_FIELD+1,0,"Dal ",16,0,"D"); add_date(FIRST_FIELD+1,0,TR("Dal "),16,0,"D");
add_date(FIRST_FIELD+2,0,"al ",33,0,"D"); add_date(FIRST_FIELD+2,0,TR("al "),33,0,"D");
add_string(FIRST_FIELD+3,0,"Settimana ",49,0,15,"D"); add_string(FIRST_FIELD+3,0,TR("Settimana "),49,0,15,"D");
} }
TLista_dettagli::TLista_dettagli(const char * title, TDate fromdate, int bucketsize, const char * head) : TLista_dettagli::TLista_dettagli(const char * title, TDate fromdate, int bucketsize, const char * head) :
@ -1591,16 +1589,16 @@ TLista_docref ::~TLista_docref ()
const char *TLista_mastercodes::header() const char *TLista_mastercodes::header()
{ {
static TToken_string h; static TToken_string h;
h = "@1|Articolo@20"; h = HR("@1|Articolo@20");
for (int l = 1; l <= livelli_giacenza().last_level() ; l++) for (int l = 1; l <= livelli_giacenza().last_level() ; l++)
h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ; h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ;
h.add("Impianto"); h.add(TR("Impianto"));
h.add("Linea|Cod.Mag.|UM|Quantita'@12|Consegna"); h.add(HR("Linea|Cod.Mag.|UM|Quantita'@12|Consegna"));
return h; return h;
} }
TLista_mastercodes::TLista_mastercodes(TMSP_constraint *c, TToken_string &l, TDate fromdate, int bucketsize): TLista_mastercodes::TLista_mastercodes(TMSP_constraint *c, TToken_string &l, TDate fromdate, int bucketsize):
TLista_dettagli("Articoli Master interessati", fromdate, bucketsize, header()) TLista_dettagli(TR("Articoli Master interessati"), fromdate, bucketsize, header())
{ {
_line_art = c->use_mspline2(l); _line_art = c->use_mspline2(l);
} }
@ -1636,15 +1634,15 @@ long TLista_mastercodes::get_items(int b) const
const char *TLista_upperlines::header() const char *TLista_upperlines::header()
{ {
static TToken_string h; static TToken_string h;
h = "@1|Articolo@20"; h = HR("@1|Articolo@20");
for (int l = 1; l <= livelli_giacenza().last_level() ; l++) for (int l = 1; l <= livelli_giacenza().last_level() ; l++)
h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ; h << "|" << livelli_giacenza().name(l) << "@" << livelli_giacenza().code_length(l) ;
h.add("Impianto|Linea|Mag.|Dep.|UM|Quantita'@12"); h.add(HR("Impianto|Linea|Mag.|Dep.|UM|Quantita'@12"));
return h; return h;
} }
TLista_upperlines::TLista_upperlines(TMSP_constraint *l, TDate fromdate, int bucketsize): TLista_upperlines::TLista_upperlines(TMSP_constraint *l, TDate fromdate, int bucketsize):
TLista_dettagli("Vincoli da articoli non Master", fromdate, bucketsize,header()) TLista_dettagli(TR("Vincoli da articoli non Master"), fromdate, bucketsize,header())
{ {
_line = l; _line = l;
} }

View File

@ -45,7 +45,7 @@ void TPlanning_mask::print_except_header(TPrinter& pr)
{ {
TPrintrow row; TPrintrow row;
print_header(pr); print_header(pr);
row.put("@48G@BSTAMPA TABULATO ECCEZIONI DA M.S.P."); row.put(FR("@48G@BSTAMPA TABULATO ECCEZIONI DA M.S.P."));
pr.setheaderline(1,row); pr.setheaderline(1,row);
row.reset(); row.reset();
row.put((const char *)TString(131,'-')); row.put((const char *)TString(131,'-'));
@ -60,8 +60,8 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
TIsamtempfile * report = new TIsamtempfile(LF_MRPREPORT,repname, TRUE, TRUE ); TIsamtempfile * report = new TIsamtempfile(LF_MRPREPORT,repname, TRUE, TRUE );
TString8 codimp,codlin; TString8 codimp,codlin;
TProgind pi(nrows, format("Stampa %s...",get_bool(F_MSCHEDULEPLAN)? TProgind pi(nrows, format(FR("Stampa %s..."),get_bool(F_MSCHEDULEPLAN)?
"Master Schedule Plan":"pianificazione ordini")); TR("Master Schedule Plan"):TR("pianificazione ordini")));
const int a_buck0 = sf.cid2index(F_BUCKET0); const int a_buck0 = sf.cid2index(F_BUCKET0);
for (int r=0; r<nrows; r++) for (int r=0; r<nrows; r++)
@ -151,13 +151,13 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
short b = -1; short b = -1;
--fd; --fd;
TString descr; TString descr;
descr.format("Fino\nal %s", (const char*)fd); descr.format(FR("Fino\nal %s"), (const char*)fd);
form.find_field('B', odd_page, first_id).set_col_head(descr); form.find_field('B', odd_page, first_id).set_col_head(descr);
for (;fd <= td;) for (;fd <= td;)
{ {
++b; ++b;
++fd; ++fd;
descr.format("Da %s\nAl ",(const char*)fd); descr.format(FR("Da %s\nAl "),(const char*)fd);
round_date(fd,TRUE,FALSE); round_date(fd,TRUE,FALSE);
descr << fd.string(); descr << fd.string();
if (first_id+b+1 > last_id) if (first_id+b+1 > last_id)
@ -165,7 +165,7 @@ void TPlanning_mask::print_articles(int from_col, int num_cols, const char * row
form.find_field('B', odd_page, first_id+b+1).set_col_head(descr); form.find_field('B', odd_page, first_id+b+1).set_col_head(descr);
} }
++td; ++td;
descr.format("Dal %s", (const char*)td); descr.format(FR("Dal %s"), (const char*)td);
if (b == LAST_BUCKET) if (b == LAST_BUCKET)
form.find_field('B', odd_page, first_id+b+1).set_col_head(descr); form.find_field('B', odd_page, first_id+b+1).set_col_head(descr);
const int hh = 7; const int hh = 7;
@ -196,8 +196,8 @@ void TPlanning_mask::print_capacities()
TSheet_field& sf = sfield(F_LINEE); TSheet_field& sf = sfield(F_LINEE);
const int nrows=sf.items(); const int nrows=sf.items();
TProgind pi(nrows, format("Stampa %s...",(*get(F_LOADTYPE)=='M')? TProgind pi(nrows, format(FR("Stampa %s..."),(*get(F_LOADTYPE)=='M')?
"carico macchina":"carico uomo")); TR("carico macchina"):TR("carico uomo")));
const int a_buck0 = sf.cid2index(F_LBUCKET0); const int a_buck0 = sf.cid2index(F_LBUCKET0);
for (int r=0; r <nrows ; r++) for (int r=0; r <nrows ; r++)
{ {
@ -257,7 +257,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
{ {
_mrp_articles.destroy(); _mrp_articles.destroy();
if (verbose) if (verbose)
message_box("Rescheduling non abilitato"); message_box(TR("Rescheduling non abilitato"));
} }
else if (load_MRP_lines(_rescheduling)) else if (load_MRP_lines(_rescheduling))
{ {
@ -265,7 +265,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
const int bucket1 = sf.cid2index(F_BUCKET1); const int bucket1 = sf.cid2index(F_BUCKET1);
// PER OGNI ARTICOLO ... // PER OGNI ARTICOLO ...
const long max_mrp_rows=_mrp_articles.items(); const long max_mrp_rows=_mrp_articles.items();
TProgind pi=((max_mrp_rows+1)*LAST_BUCKET ,"Ricerca eccezioni...", TRUE, TRUE); TProgind pi=((max_mrp_rows+1)*LAST_BUCKET ,TR("Ricerca eccezioni..."), TRUE, TRUE);
for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++) for (long mrp_row=0; mrp_row < max_mrp_rows; mrp_row++)
{ {
pi.addstatus(1); pi.addstatus(1);
@ -278,7 +278,7 @@ bool TPlanning_mask::find_exceptions(TExceptions_array &e, bool anticipi, bool p
} // ... for each article } // ... for each article
} }
if (verbose && e.items()<=0) if (verbose && e.items()<=0)
message_box("Nessuna eccezione rilevata"); message_box(TR("Nessuna eccezione rilevata"));
return e.items()>0; return e.items()>0;
} }
@ -417,7 +417,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
if (header <= 0) if (header <= 0)
{ {
pr.print(prow); pr.print(prow);
prow.put(format("@bArticolo %s %s", (const char *)articolo(), (const char *)cache().get(LF_ANAMAG, code).get(ANAMAG_DESCR))); prow.put(format(FR("@bArticolo %s %s"), (const char *)articolo(), (const char *)cache().get(LF_ANAMAG, code).get(ANAMAG_DESCR)));
pr.print(prow); pr.print(prow);
prow.reset(); prow.reset();
if (livelli_giacenza().enabled()) if (livelli_giacenza().enabled())
@ -436,7 +436,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
} }
if (header <= 1) if (header <= 1)
{ {
prow.put(format("Ordini emessi con scadenza entro il @41g%s", (const char*)fromdate.string())); prow.put(format(FR("Ordini emessi con scadenza entro il @41g%s"), (const char*)fromdate.string()));
pr.print(prow); pr.print(prow);
prow.reset(); prow.reset();
// stampa dettaglio ordini // stampa dettaglio ordini
@ -446,7 +446,7 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
for (int nref = 0; nref < nrefs; nref++) for (int nref = 0; nref < nrefs; nref++)
{ {
TMRP_docref & docref = docrefs->get_ref(nref); TMRP_docref & docref = docrefs->get_ref(nref);
prow.put(format("@2gDocumento %s %4d n.%8ld riga %d %s %s", prow.put(format(FR("@2gDocumento %s %4d n.%8ld riga %d %s %s"),
(const char*)docref.codnumdoc(),docref.annodoc(),docref.numdoc(),docref.numrig(), (const char*)docref.codnumdoc(),docref.annodoc(),docref.numdoc(),docref.numrig(),
(const char*)docref.qta_residua().stringa(18,3),(const char*)docref.um())); (const char*)docref.qta_residua().stringa(18,3),(const char*)docref.um()));
pr.print(prow); pr.print(prow);
@ -457,8 +457,8 @@ void TMRP_line::print_exception(int from, int to, const real &diff, int header)
const TString16 um =cache().get(LF_UMART,code).get("UM"); const TString16 um =cache().get(LF_UMART,code).get("UM");
const real v = abs(diff); const real v = abs(diff);
prow.put(format("@2g%s %s %s", (from == to) ? prow.put(format("@2g%s %s %s", (from == to) ?
(diff.sign()>0 ? "Eliminare " : "Aggiungere " ): (diff.sign()>0 ? TR("Eliminare ") : TR("Aggiungere ") ):
(from < to ? "Posticipare" : "Anticipare "), (from < to ? TR("Posticipare") : TR("Anticipare ")),
(const char*)v.stringa(18,3), (const char *)um)); (const char*)v.stringa(18,3), (const char *)um));
if (from != to) if (from != to)
{ {

View File

@ -32,6 +32,6 @@ bool TMSP_app::create()
int mr2300(int argc, char* argv[]) int mr2300(int argc, char* argv[])
{ {
TMSP_app a; TMSP_app a;
a.run(argc, argv, "Master Schedule Planning"); a.run(argc, argv, TR("Master Schedule Planning"));
return 0; return 0;
} }

View File

@ -34,6 +34,6 @@ bool TOrdAcq_app::create()
int mr2400(int argc, char* argv[]) int mr2400(int argc, char* argv[])
{ {
TOrdAcq_app a; TOrdAcq_app a;
a.run(argc, argv, "Pianificazione ordini acquisto"); a.run(argc, argv, TR("Pianificazione ordini acquisto"));
return 0; return 0;
} }

View File

@ -1,4 +1,5 @@
#include <config.h> #include <config.h>
#include <diction.h>
#include <prefix.h> #include <prefix.h>
#include <progind.h> #include <progind.h>
#include <tabutil.h> #include <tabutil.h>
@ -152,7 +153,7 @@ long TMRP_array::sort()
TProgind* pi = NULL; TProgind* pi = NULL;
if (last >= 16) if (last >= 16)
pi = new TProgind(last, "Ordinamento", FALSE, TRUE); pi = new TProgind(last, TR("Ordinamento"), FALSE, TRUE);
else else
begin_wait(); begin_wait();
@ -206,9 +207,9 @@ void TMRP_calendar::init_default()
// Inizializza i turni dei 5 giorni feriali a 1 // Inizializza i turni dei 5 giorni feriali a 1
// Inizializza i turni di sabato e domenica a 0 // Inizializza i turni di sabato e domenica a 0
// Inizializza i turni dei giorni festivi a 0 // Inizializza i turni dei giorni festivi a 0
_days = cfg.get("Turni", NULL, -1, "1111100011111000"); _days = cfg.get(TR("Turni"), NULL, -1, "1111100011111000");
// Inizializza la lista delle feste comandate tranne la Pasqua // Inizializza la lista delle feste comandate tranne la Pasqua
_holidays = cfg.get("Feste", NULL, -1, _holidays = cfg.get(TR("Feste"), NULL, -1,
"01-01|06-01|25-04|01-05|15-08|01-11|08-12|25-12|26-12"); "01-01|06-01|25-04|01-05|15-08|01-11|08-12|25-12|26-12");
TUnita_produttiva * up=NULL; TUnita_produttiva * up=NULL;
if (_codlin.not_empty()) if (_codlin.not_empty())
@ -278,19 +279,12 @@ void TMRP_calendar::suppress_holiday(int g, int m)
void TMRP_calendar::read_cal(const TString& key, char tipo) void TMRP_calendar::read_cal(const TString& key, char tipo)
{ {
TTable cal(tipo == 'L' ? "CAL" : "CAI");
TString16 codtab = tipo == 'L' ? _codlin : _codimp; TString16 codtab = tipo == 'L' ? _codlin : _codimp;
codtab << key; codtab << key;
cal.put("CODTAB", codtab); TString s1 = cache().get(tipo == 'L' ? "CAL" : "CAI", codtab, "S1");
TString* s1 = new TString(62);
if (cal.read() == NOERR) s1.rpad(62);
*s1 = cal.get("S1");
const int l1 = s1->len();
if (l1 < s1->size())
{
const TString spc(s1->size()-l1, ' ');
*s1 << spc;
}
if (tipo == 'L') if (tipo == 'L')
_exc_lin.add(key, s1); _exc_lin.add(key, s1);
else else
@ -317,12 +311,12 @@ int TMRP_calendar::write_cal(char tipo) const
const int mese = atoi(codtab.mid(9, 2)); const int mese = atoi(codtab.mid(9, 2));
if (tipo == 'L') if (tipo == 'L')
{ {
s0 = "Linea "; s0 = TR("Linea ");
s0 << _codlin; s0 << _codlin;
} }
else else
{ {
s0 = "Impianto "; s0 = TR("Impianto ");
s0 << _codimp; s0 << _codimp;
} }
s0 << ' ' << anno << ' ' << itom(mese); s0 << ' ' << anno << ' ' << itom(mese);
@ -333,7 +327,7 @@ int TMRP_calendar::write_cal(char tipo) const
err = cal.rewrite(); err = cal.rewrite();
if (err != NOERR) if (err != NOERR)
{ {
error_box("Errore %d nell'aggiornamento del calendario %s", error_box(FR("Errore %d nell'aggiornamento del calendario %s"),
err, (const char*)codtab); err, (const char*)codtab);
break; break;
} }
@ -600,23 +594,14 @@ void TMRP_calendar::set(const char* linea, const char* impianto)
if (_codlin.not_empty()) if (_codlin.not_empty())
{ {
TTable lnp("LNP"); const TRectype & lnp = cache().get("LNP", _codlin);
lnp.put("CODTAB", _codlin);
if (lnp.read() == NOERR) _codlin = lnp.get("CODTAB");
{ if (impianto == NULL)
if (impianto == NULL) _codimp = lnp.get("S6");
_codimp = lnp.get("S6");
}
else
_codlin = "";
} }
if (_codimp.not_empty()) if (_codimp.not_empty())
{ _codimp = cache().get("IMP", _codimp, "CODTAB");
TTable imp("IMP");
imp.put("CODTAB", _codimp);
if (imp.read() != NOERR)
_codimp = "";
}
} }
char TMRP_calendar::tipo() const char TMRP_calendar::tipo() const
@ -689,29 +674,29 @@ void TCalendar_win::handler(WINDOW win, EVENT* ep)
switch (_calendario->tipo()) switch (_calendario->tipo())
{ {
case 'S': case 'S':
calname="Calendario standard"; calname=TR("Calendario standard");
break; break;
case 'I': case 'I':
calname="Calendario impianto "; calname=TR("Calendario impianto ");
calname << '"'<< _calendario->impianto() << '"'; calname << '"'<< _calendario->impianto() << '"';
break; break;
case 'L': case 'L':
calname="Calendario linea "; calname=TR("Calendario linea ");
calname << '"'<< _calendario->linea() << '"'; calname << '"'<< _calendario->linea() << '"';
break; break;
} }
TMask m(calname, 1, 40, 8); TMask m(calname, 1, 40, 8);
m.add_static(DLG_NULL, 0, "Turni del giorno ", 1, 1); m.add_static(DLG_NULL, 0, TR("Turni del giorno "), 1, 1);
m.add_date(101, 0, "", 1, 2, "D"); m.add_date(101, 0, "", 1, 2, "D");
m.add_string(102, 0, "", 19, 2, 9, "D"); m.add_string(102, 0, "", 19, 2, 9, "D");
m.add_boolean(103, 0, "Festa", 31, 2, is_std ? "":"D"); m.add_boolean(103, 0, TR("Festa"), 31, 2, is_std ? "":"D");
if (is_std) if (is_std)
{ {
m.add_list(104, 0, "Turni minimi ", 1, 4, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni"); m.add_list(104, 0, TR("Turni minimi "), 1, 4, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, "Turni massimi ", 1, 5, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni"); m.add_list(105, 0, TR("Turni massimi "), 1, 5, 8, "", "0|1|2|3|4|5|6|7|8", "Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
} else { } else {
m.add_list(104, 0, "Turni minimi ", 1, 4, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni"); m.add_list(104, 0, TR("Turni minimi "), 1, 4, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
m.add_list(105, 0, "Turni massimi ", 1, 5, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni"); m.add_list(105, 0, TR("Turni massimi "), 1, 5, 8, "", " |0|1|2|3|4|5|6|7|8", "Standard|Nessuno|1 turno|2 turni|3 turni|4 turni|5 turni|6 turni|7 turni|8 turni");
} }
m.add_number(106, 0, "= ", 31, 4, 1, "D"); m.add_number(106, 0, "= ", 31, 4, 1, "D");
m.add_number(107, 0, "= ", 31, 5, 1, "D"); m.add_number(107, 0, "= ", 31, 5, 1, "D");