255 lines
7.8 KiB
C#
255 lines
7.8 KiB
C#
using AppData;
|
|
using SteamWare;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace C_TRACK.WebUserControls
|
|
{
|
|
public partial class mod_addTask : BaseUserControl
|
|
{
|
|
#region Public Events
|
|
|
|
/// <summary>
|
|
/// evento aggiunta record
|
|
/// </summary>
|
|
public event EventHandler eh_created;
|
|
|
|
#endregion Public Events
|
|
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Cod ARTICOLO corrente
|
|
/// </summary>
|
|
public string CodArticolo
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.StringSessionObj("currCodArt");
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal("currCodArt", value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Input da processare...
|
|
/// </summary>
|
|
public string newInput
|
|
{
|
|
set
|
|
{
|
|
processInput(value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Cod COMMESSA corrente
|
|
/// </summary>
|
|
public string NumTask
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.StringSessionObj("currNumTask");
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal("currNumTask", value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// QTA da produrre
|
|
/// </summary>
|
|
public int Quantita
|
|
{
|
|
get
|
|
{
|
|
return memLayer.ML.IntSessionObj("currQta");
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal("currQta", value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tempo stimato x produzione
|
|
/// </summary>
|
|
public float TimeEst
|
|
{
|
|
get
|
|
{
|
|
float answ = -1;
|
|
string rawVal = memLayer.ML.StringSessionObj("currTimeEst");
|
|
float.TryParse(rawVal, out answ);
|
|
return answ;
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal("currTimeEst", value);
|
|
}
|
|
}
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Private Methods
|
|
|
|
private void checkValori()
|
|
{
|
|
// verifica quali valori siano disponibili e di conseguenza visualizza COLORE...
|
|
divArticolo.Attributes.Remove("class");
|
|
divCommessa.Attributes.Remove("class");
|
|
divQta.Attributes.Remove("class");
|
|
divTime.Attributes.Remove("class");
|
|
divArticolo.Attributes.Add("class", CodArticolo != "" ? "col text-center table-success text-success" : "col text-center text-secondary");
|
|
divCommessa.Attributes.Add("class", NumTask != "" ? "col text-center table-success text-success" : "col text-center text-secondary");
|
|
divQta.Attributes.Add("class", Quantita > 0 ? "col text-center table-success text-success" : "col text-center text-secondary");
|
|
divTime.Attributes.Add("class", TimeEst > 0 ? "col text-center table-success text-success" : "col text-center text-secondary");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Effettua riconoscimento input e determina valori commessa / articolo / qta
|
|
/// </summary>
|
|
/// <param name="value"></param>
|
|
private void processInput(string value)
|
|
{
|
|
// verifico se sia un articolo...
|
|
Match testReset = Regex.Match(value, mUtils.reReset);
|
|
Match testDelete = Regex.Match(value, mUtils.reDelete);
|
|
Match testAddNew = Regex.Match(value, mUtils.reAddNew);
|
|
Match testCodArt = Regex.Match(value, mUtils.reCodArt);
|
|
Match testNumTask = Regex.Match(value, mUtils.reNumTask);
|
|
Match testQta = Regex.Match(value, mUtils.reQta);
|
|
Match testTempo = Regex.Match(value, mUtils.reTempoPrev);
|
|
|
|
if (testReset.Success)
|
|
{
|
|
CodArticolo = "";
|
|
NumTask = "";
|
|
Quantita = 0;
|
|
TimeEst = 0;
|
|
}
|
|
else if (testDelete.Success)
|
|
{
|
|
// creo...
|
|
DLMan.taTL.deleteQuery(NumTask);
|
|
// resetto!
|
|
CodArticolo = "";
|
|
NumTask = "";
|
|
Quantita = 0;
|
|
// invoco update...
|
|
if (eh_created != null)
|
|
{
|
|
eh_created(this, new EventArgs());
|
|
}
|
|
}
|
|
else if (testAddNew.Success)
|
|
{
|
|
// controllo condizione richiesta tempo x setup Task
|
|
bool confAddTaskReqTime = memLayer.ML.CRB("confAddTaskReqTime");
|
|
// se NON richiesto --> Time=0
|
|
if (!confAddTaskReqTime)
|
|
{
|
|
TimeEst = 0;
|
|
}
|
|
|
|
// se qta > 0 ed ho articolo e commessa...
|
|
if (Quantita > 0 && !string.IsNullOrEmpty(CodArticolo) && !string.IsNullOrEmpty(NumTask) && (!confAddTaskReqTime || TimeEst > 0))
|
|
{
|
|
// creo...
|
|
DLMan.taTL.insertQuery(NumTask, CodArticolo, Quantita, TimeEst);
|
|
// resetto!
|
|
CodArticolo = "";
|
|
NumTask = "";
|
|
Quantita = 0;
|
|
// invoco update...
|
|
if (eh_created != null)
|
|
{
|
|
eh_created(this, new EventArgs());
|
|
}
|
|
}
|
|
}
|
|
else if (testTempo.Success)
|
|
{
|
|
string newVal = value;
|
|
// effettuo pulizia variabile da conf...
|
|
foreach (var item in mUtils.lRepCleanTime)
|
|
{
|
|
string[] repVal = item.Split('|');
|
|
if (repVal.Length > 1)
|
|
{
|
|
newVal = newVal.Replace(repVal[0], repVal[1]);
|
|
}
|
|
}
|
|
float tPrev = 0;
|
|
float.TryParse(newVal, out tPrev);
|
|
// se configurata conversione procedo
|
|
if (mUtils.TimeEstFactor != 1)
|
|
{
|
|
tPrev = tPrev / mUtils.TimeEstFactor;
|
|
}
|
|
// assegno!
|
|
TimeEst = tPrev;
|
|
}
|
|
else if (testCodArt.Success)
|
|
{
|
|
CodArticolo = value;
|
|
}
|
|
else if (testNumTask.Success)
|
|
{
|
|
NumTask = value;
|
|
}
|
|
else if (testQta.Success)
|
|
{
|
|
int qta = 0;
|
|
int.TryParse(value, out qta);
|
|
Quantita = qta;
|
|
}
|
|
|
|
// non match con RegExp --> ricerca ESPLICITA, se abilitato ricerca estesa
|
|
if (memLayer.ML.CRB("OptEnableMapoIn") && !(testCodArt.Success || testNumTask.Success))
|
|
{
|
|
var tabArt = DLMan.taAnArt.getByKey(value);
|
|
if (tabArt.Rows.Count > 0)
|
|
{
|
|
CodArticolo = value;
|
|
}
|
|
else
|
|
{
|
|
var tabTask = DLMan.taTL.getByKey(value);
|
|
if (tabTask.Rows.Count > 0)
|
|
{
|
|
NumTask = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
checkValori();
|
|
}
|
|
|
|
#endregion Private Methods
|
|
|
|
#region Protected Methods
|
|
|
|
protected void lbtReset_Click(object sender, EventArgs e)
|
|
{
|
|
processInput(memLayer.ML.CRS("regExp_KO"));
|
|
}
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!Page.IsPostBack)
|
|
{
|
|
CodArticolo = "";
|
|
NumTask = "";
|
|
Quantita = 0;
|
|
}
|
|
checkValori();
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
}
|
|
} |