Files
MoonPro.net/MP-Admin/WebUserControls/mod_gestKIT.ascx.cs
T
2018-10-24 19:11:00 +02:00

322 lines
7.5 KiB
C#

using Newtonsoft.Json;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Text;
namespace MoonProAdmin.WebUserControls
{
public partial class mod_gestKIT : System.Web.UI.UserControl
{
#region setup VARS
/// <summary>
/// RegExp x RESET / CANCEL
/// </summary>
protected string regExp_KO = memLayer.ML.cdv("regExp_KO");
/// <summary>
/// RegExp x CONFERMA
/// </summary>
protected string regExp_OK = memLayer.ML.cdv("regExp_OK");
/// <summary>
/// RegExp x START KIT
/// </summary>
protected string regExp_KitStart = memLayer.ML.cdv("regExp_KitStart");
/// <summary>
/// RegExp x SAVE KIT
/// </summary>
protected string regExp_KitSave = memLayer.ML.cdv("regExp_KitSave");
#endregion
#region variabili in sessione
/// <summary>
/// UID formattato con "_"
/// </summary>
public string uid
{
get
{
return this.UniqueID.Replace("$", "_").Replace("-", "_");
}
}
public string codArt
{
get
{
return memLayer.ML.StringSessionObj(string.Format("codArt_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("codArt_{0}", uid), value);
}
}
public string descArt
{
get
{
return memLayer.ML.StringSessionObj(string.Format("descArt_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("descArt_{0}", uid), value);
}
}
public string kitCode
{
get
{
return memLayer.ML.StringSessionObj(string.Format("kitCode_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("kitCode_{0}", uid), value);
}
}
public string codOrd
{
get
{
return memLayer.ML.StringSessionObj(string.Format("codOrd_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("codOrd_{0}", uid), value);
}
}
public int qta
{
get
{
return memLayer.ML.IntSessionObj(string.Format("qta_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("qta_{0}", uid), value);
}
}
public string idxMacc
{
get
{
return memLayer.ML.StringSessionObj(string.Format("idxMacc_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("idxMacc_{0}", uid), value);
}
}
public string nomeMacc
{
get
{
return memLayer.ML.StringSessionObj(string.Format("nomeMacc_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("nomeMacc_{0}", uid), value);
}
}
public string codGruppo
{
get
{
return memLayer.ML.StringSessionObj(string.Format("codGruppo_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("codGruppo_{0}", uid), value);
}
}
/// <summary>
/// titolo pagina
/// </summary>
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url).Replace(".aspx", "");
}
}
/// <summary>
/// Oggetto KIT in composizione gestito in sessione
/// </summary>
public OrdineProdKit OrdineKit
{
get
{
OrdineProdKit answ;
string serVal = memLayer.ML.StringSessionObj(string.Format("OrdineKit_{0}", uid));
// deserializzo SE C'E'...
if (serVal != "")
{
//var objDeser = memLayer.ML.deserializeVal(serVal);
//answ = (OrdineProdKit)objDeser;
answ = JsonConvert.DeserializeObject<OrdineProdKit>(serVal);
}
else
{
answ = new OrdineProdKit();
}
return answ;
}
set
{
// serializzo...
string serVal = memLayer.ML.serializeVal(value);
//string serVal = JsonConvert.SerializeObject(value);
// salvo
memLayer.ML.setSessionVal(string.Format("OrdineKit_{0}", uid), serVal);
}
}
/// <summary>
/// Aggiunge (in obj OrdineKit) l'ordine coi parametri indicati
/// </summary>
/// <param name="codOrd"></param>
/// <param name="codArt"></param>
/// <param name="descArt"></param>
/// <param name="qta"></param>
/// <returns></returns>
public bool addOrdArt(string codOrd, string codArt, string descArt, int qta)
{
bool answ = false;
var currOrd = OrdineKit;
// creo oggetto articolo
Articolo newArt = new Articolo
{
Codice = codArt,
Descrizione = descArt
};
// creo un nuovo oggetto OrdineArticolo
OrdineProdArt newOrdArt = new OrdineProdArt
{
OrdNum = codOrd,
ArtOrd = newArt,
Qta = qta
};
var orderList = new List<OrdineProdArt>();
// se nullo inizializzo...
if (currOrd == null || currOrd.Codice == null)
{
orderList.Add(newOrdArt);
currOrd = new OrdineProdKit
{
OrdNum = "000000",
Codice = "KIT_UNKNOWN",
Qta = 1,
OrdiniArt = orderList
};
}
else
{
// cerco duplicato...
int idx = currOrd.OrdiniArt.FindIndex(x => x.OrdNum.Equals(codOrd));
if (idx >= 0)
{
// se ci fosse riga la cancello...
currOrd.OrdiniArt.RemoveAt(idx);
}
// aggiungo SOLO la riga articolo
currOrd.OrdiniArt.Add(newOrdArt);
}
// salvo ordine...
OrdineKit = currOrd;
answ = true;
return answ;
}
#endregion
/// <summary>
/// Caricamento pagina
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Ultimo input registrato
/// </summary>
public string lastInput
{
get
{
return hlLastInput.Value;
}
set
{
hlLastInput.Value = value;
}
}
/// <summary>
/// Aggiorno controllo secondo ULTIMO input
/// </summary>
public void doUpdate()
{
// aggiorno label...
messOut = "";
// controllo input (reset/inizio o salva...)
if (lastInput == regExp_KO)
{
// resetto dati
doReset();
messOut = "Effettuato reset!";
}
else if (lastInput == regExp_KitStart)
{
// resetto dati
doReset();
messOut = "Inizio configurazione KIT";
}
else if (lastInput == regExp_KitSave)
{
}
else if (lastInput == regExp_OK)
{
}
//riporto gli ordini caricati...
StringBuilder sb = new StringBuilder();
var currOrd = OrdineKit;
if (currOrd != null && currOrd.Codice != null)
{
sb.AppendLine(string.Format("OrdNum:{0}, TemplateKIT: {1}, Qta: {2}<br/>", currOrd.OrdNum, currOrd.Codice, currOrd.Qta));
foreach (var item in OrdineKit.OrdiniArt)
{
sb.AppendLine(string.Format("OrdNum:{0}, CodArt: {1}, Descr: {2}, Qta: {3}<br/>", item.OrdNum, item.ArtOrd.Codice, item.ArtOrd.Descrizione, item.Qta));
}
}
// accodo...
messOut += sb.ToString();
}
private void doReset()
{
codOrd = "";
codArt = "";
kitCode = "";
qta = 0;
descArt = "";
OrdineKit = new OrdineProdKit();
}
public string messOut
{
set
{
lblOut.Text = value;
}
get
{
return lblOut.Text;
}
}
}
}