using MapoDb;
using SteamWare;
using System;
using System.Text;
namespace MoonProAdmin.WebUserControls
{
public partial class mod_gestKIT : System.Web.UI.UserControl
{
#region setup VARS
///
/// RegExp x RESET / CANCEL
///
protected string regExp_KO = memLayer.ML.cdv("regExp_KO");
///
/// RegExp x CONFERMA
///
protected string regExp_OK = memLayer.ML.cdv("regExp_OK");
///
/// RegExp x START KIT
///
protected string regExp_KitStart = memLayer.ML.cdv("regExp_KitStart");
///
/// RegExp x SAVE KIT
///
protected string regExp_KitSave = memLayer.ML.cdv("regExp_KitSave");
#endregion
#region variabili in sessione
///
/// UID formattato con "_"
///
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);
}
}
///
/// titolo pagina
///
public string titolo
{
get
{
return devicesAuthProxy.getPage(Request.Url).Replace(".aspx", "");
}
}
public string codKitTemp
{
get
{
return memLayer.ML.StringSessionObj(string.Format("codKitTemp_{0}", uid));
}
set
{
memLayer.ML.setSessionVal(string.Format("codKitTemp_{0}", uid), value);
}
}
#if false
///
/// Oggetto KIT in composizione gestito in sessione
///
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(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);
}
}
#endif
///
/// Aggiunge (in obj OrdineKit) l'ordine coi parametri indicati
///
///
///
///
///
///
public bool addOrdArt(string codOrd, string codArt, string descArt, int qta)
{
bool answ = false;
// verifico di avere un codiceKIT
checkCodKit();
// salvo info x il cod temporaneo...
DataLayer.obj.taWKS.insertQuery(codKitTemp, codOrd, codArt, descArt, qta);
answ = true;
#if 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();
// 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;
#endif
return answ;
}
#endregion
///
/// Caricamento pagina
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
doReset();
}
}
///
/// Ultimo input registrato
///
public string lastInput
{
get
{
return hlLastInput.Value;
}
set
{
hlLastInput.Value = value;
}
}
///
/// Aggiorno controllo secondo ULTIMO input
///
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();
string elCodArt = "";
string elCodOrd = "";
checkCodKit();
if (codKitTemp != "")
{
sb.AppendLine(string.Format("CodTemp:{0}
", codKitTemp));
// recupero da tab...
var tabRes = DataLayer.obj.taWKS.getByFilt(codKitTemp);
foreach (var item in tabRes)
{
sb.AppendLine(string.Format("OrdNum:{0}, CodArt: {1}, Descr: {2}, Qta: {3}
", item.CodOrd, item.CodArt, item.DescArt, item.Qta));
elCodArt += item.CodArt + ",";
elCodOrd += item.CodOrd + ",";
}
}
#if false
var currOrd = OrdineKit;
if (currOrd != null && currOrd.Codice != null)
{
sb.AppendLine(string.Format("OrdNum:{0}, TemplateKIT: {1}, Qta: {2}
", currOrd.OrdNum, currOrd.Codice, currOrd.Qta));
foreach (var item in OrdineKit.OrdiniArt)
{
sb.AppendLine(string.Format("OrdNum:{0}, CodArt: {1}, Descr: {2}, Qta: {3}
", item.OrdNum, item.ArtOrd.Codice, item.ArtOrd.Descrizione, item.Qta));
elCodArt += item.ArtOrd.Codice + ",";
elCodOrd += item.OrdNum + ",";
}
}
#endif
// accodo...
messOut += sb.ToString();
hfCodArtList.Value = elCodArt;
hfCodOrdList.Value = elCodOrd;
}
private void doReset()
{
codOrd = "";
codArt = "";
kitCode = "";
qta = 0;
descArt = "";
#if false
OrdineKit = new OrdineProdKit();
#endif
// elimino eventuali record ODL
DataLayer.obj.taWKS.deleteQuery(codKitTemp);
codKitTemp = "";
checkCodKit();
}
///
/// Verifico SE HO un codKit Temporaneo sennò lo creo...
///
private void checkCodKit()
{
if (codKitTemp == "")
{
// genero un NUOVO cod temp kit...
codKitTemp = string.Format("KIT_{0:yyMMdd_HHmmss}", DateTime.Now);
}
}
public string messOut
{
set
{
lblOut.Text = value;
}
get
{
return lblOut.Text;
}
}
protected void grViewKitSel_SelectedIndexChanged(object sender, EventArgs e)
{
// se ho selezionato recupero CHIAVE
string CodKit = grViewKitSel.SelectedValue.ToString();
// calcolo NUOVO codice kit...
var tabKey = DataLayer.obj.taIstK.getNewKey();
if (tabKey.Rows.Count == 1)
{
// !!! FARE!!! nuovo metodo x creazione PODL
#if false
// recupero dati
var currOrd = OrdineKit;
// ora calcolo codice ordine...
currOrd.Codice = CodKit;
string newCodKit = tabKey[0].KeyKit;
// creo NUOVA IstanzaKIT PER OGNI ordine
if (currOrd != null && currOrd.Codice != null)
{
foreach (var item in OrdineKit.OrdiniArt)
{
DataLayer.obj.taIstK.insertQuery(newCodKit, item.OrdNum, currOrd.Codice, item.ArtOrd.Codice, item.Qta, item.Qta);
}
}
// ora resetto ordine caricato...
OrdineKit = new OrdineProdKit();
messOut = string.Format("Creato NUOVA P.ODL cod {0} per il KIT {1}", newCodKit, CodKit);
#endif
}
}
}
}