public decimal countOutcheckedArt(string vartOrdernr, string artnr) { string sSql = " select coalesce(sum(coAntal),0) - coalesce(sum(ciAntal),0) sum_outchecked " + " from orderart oa " + " where vart_ordernr = :vart_ordernr " + " and artnr = :artnr "; NxParameterCollection pc = new NxParameterCollection(); decimal countOutchecked = 0; pc.Add("vart_ordernr", vartOrdernr); pc.Add("artnr", artnr); string err = ""; DataTable dt = cdb.getData(sSql, ref err, pc); if (dt.Rows.Count == 1) { countOutchecked = Convert.ToDecimal(dt.Rows[0]["sum_outchecked"]); } return(countOutchecked); }
private string dnExists(string dn) { string sSql = " select count(*) antal " + " from dn " + " where dn = :dn "; string errTxt = ""; NxParameterCollection pc = new NxParameterCollection(); pc.Add("dn", dn); DataTable dt = cdb.getData(sSql, ref errTxt, pc); if (errTxt != "") { return(errTxt); } if (dt.Rows.Count == 1) { return(dt.Rows[0]["antal"].ToString()); } return(""); }
/// <summary> /// Gives a name of a reparator given an ID /// </summary> /// <param name="anvID">ID to look for</param> /// <returns>Name or empty string if no name is found</returns> public string getName(string anvID) { string sSql = " SELECT reparator FROM reparator " + " where anvID = :pAnvId " + " and visas = true "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("pAnvID", anvID); string errSt = ""; DataTable dt = cdb.getData(sSql, ref errSt, pc); // If name exist then return reparator // otherwise return empty string if (dt.Rows.Count == 1) { return(dt.Rows[0][0].ToString()); } return(""); }
private void setParameters(NxParameterCollection np, gGasketCL g, ReparatorCL rep) { DateTime now = DateTime.Now; np.Add("gasketId", g.gasketId); np.Add("gasketTypeId", g.gasketTypeId); np.Add("materialThicknId", g.materialThicknId); np.Add("outerDiam", g.outerDiam); np.Add("innerDiam", g.innerDiam); np.Add("reusableMaterial", g.reusableMaterial); np.Add("cuttingMargin", g.cuttingMargin); np.Add("standardPriceProduct", g.standardPriceProduct); np.Add("handlingTime", g.handlingTime); np.Add("Type2SecHoleCount", g.Type2SecHoleCount); np.Add("Type2SecHoleDiam", g.Type2SecHoleDiam); np.Add("price", g.price); np.Add("note", g.note); np.Add("description", g.description); np.Add("reg", rep.AnvID); np.Add("regdate", now); }
/// <summary> /// Check if there are any orderArt rows /// Use to determine if checkin shall be available /// </summary> /// <param name="ident"></param> /// <param name="vartOrdernr"></param> /// <returns>Number of orderArt articles for the current ordernr or -1 if error occurs</returns> /// public int countOrderArtRows(string ident, string vartOrdernr) { CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { return(-1); } string sSql = " select count(*) count_rows " + " from orderArt " + " where vart_ordernr = :vart_ordernr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", vartOrdernr); string dummy = ""; DataTable dt = cdb.getData(sSql, ref dummy, pc); return(Convert.ToInt32(dt.Rows[0]["count_rows"])); }
private int servHuvExistsAndOpen(string vartOrdernr, ref string errText) { string sSql = "select vart_ordernr, godkand " + " from servicehuvud " + "where vart_ordernr = :vart_ordernr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", vartOrdernr); errText = ""; DataTable dt = cdb.getData(sSql, ref errText, pc); if (dt.Rows.Count == 0) { return(-1); } if (Convert.ToBoolean(dt.Rows[0]["godkand"]) == true) { return(-2); } return(1); }
private void AddOrDeleteReservdelPyr(ReservdelCL r, bool delete, ref string error) { string sSql = " select artnr, coalesce(artnamn,'') artnamn, antal " + " from reservdel " + " where vart_ordernr = :vart_ordernr " + " and radnr = :radnr " + " and reserv_nr = :reserv_nr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", r.VartOrdernr); pc.Add("radnr", r.Radnr); pc.Add("reserv_nr", r.ReservNr); error = ""; DataTable dt = cdb.getData(sSql, ref error, pc); if (error != "") { return; } if (dt.Rows.Count == 1) { DataRow dr = dt.Rows[0]; ReservdelCL res = new ReservdelCL(); res.VartOrdernr = r.VartOrdernr; res.Radnr = r.Radnr; res.ReservNr = r.ReservNr; res.Artnr = dr["artnr"].ToString(); res.ArtNamn = dr["artnamn"].ToString(); res.Antal = Convert.ToDecimal(dr["antal"]); if (delete) { res.Antal = -res.Antal; } if (res.Antal > 0.001M || res.Antal < -0.001M) { addToReservdelPyr(res, ref error); } } }
private int reuseOrderArtId(OrderArtCL oa, ref decimal coAntal) { String sSql = " SELECT orderArtId, coAntal " + " FROM orderArt " + " where vart_ordernr = :vart_ordernr " + " and artnr = :artnr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", oa.VartOrdernr); pc.Add("artnr", oa.Artnr); string error = ""; DataTable dt = cdb.getData(sSql, ref error, pc); if (dt.Rows.Count == 0) { return(0); } DataRow dr = dt.Rows[0]; coAntal = Convert.ToDecimal(dr["coAntal"]); return(Convert.ToInt32(dr["orderArtId"])); }
private Decimal getNotExportedNotUsedAnymore(ReservdelCL r, ref string error) { string sSql = " SELECT coalesce(sum(antal),0) sumAntal " + " FROM reservdelPyr " + " where vart_ordernr = :vart_ordernr " + " and radnr = :radnr " + " and reserv_nr = :reserv_nr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", r.VartOrdernr); pc.Add("radnr", r.Radnr); pc.Add("reserv_nr", r.ReservNr); error = ""; DataTable dt = cdb.getData(sSql, ref error, pc); if (error != "") { return(0); } return(Convert.ToDecimal(dt.Rows[0]["sumAntal"])); }
private int validateVartOrdernr(string vart_ordernr, ref string ErrText) { string sSql = " select count(*) antal " + " from ServiceHuvud " + " where vart_ordernr = :vart_ordernr "; NxParameterCollection np = new NxParameterCollection(); np.Add("vart_ordernr", vart_ordernr); DataTable dt = cdb.getData(sSql, ref ErrText, np); if (ErrText != "") { ErrText = "Error while checking vårt ordernr. Message " + ErrText; return(-100); } int antal = Convert.ToInt32(dt.Rows[0]["antal"]); return(antal == 0 ? 1 : -1); }
private int validateArtikelExists(ReservdelCL r) { String sSql = " SELECT count(artnr) count_artikel " + " FROM artikel " + " where artnr = :artnr " + " and visas = true "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("artnr", r.Artnr); string err = ""; DataTable dt = cdb.getData(sSql, ref err, pc); if (err != "") { return(-1); } if (dt.Rows.Count == 0) { return(0); } return(Convert.ToInt16(dt.Rows[0]["count_artikel"])); }
/// <summary> /// Creates a dummy valve to add as first row to an order /// </summary> /// <param name="kundId"></param> /// <param name="errSt"></param> /// <returns></returns> /// 2018-08-23 KJBO public string getOrCreateOrderValve(string kundId, ref string errSt) { string sSql = "SELECT ventil_id " + " FROM ventil " + " where kund_id = :kund_id " + " and \"position\" = 'order' "; errSt = ""; NxParameterCollection pc = new NxParameterCollection(); pc.Add("kund_id", kundId); DataTable dt = cdb.getData(sSql, ref errSt, pc); if (errSt != "") { return(""); } if (dt.Rows.Count > 0) { return(dt.Rows[0]["ventil_id"].ToString()); } string ventilID = Guid.NewGuid().ToString(); sSql = " insert into ventil (ventil_id, ventilkategori, kund_id, reg, regdat, \"position\") " + " values(:ventil_id, 3, :kund_id, 'API', :regdat, 'order') "; pc.Add("ventil_id", ventilID); pc.Add("kund_id", kundId); pc.Add("regdat", DateTime.Now); int rc = cdb.updateData(sSql, ref errSt, pc); if (errSt != "") { return(""); } return(ventilID); }
private string resetServRadRepTid() { string result = ""; string sSqlSelect = " select alternateKey ak " + " from servicerad " + " where vart_ordernr = :vart_ordernr "; NxParameterCollection pcSelect = new NxParameterCollection(); pcSelect.Add("vart_ordernr", vart_ordernr); DataTable dt = cdb.getData(sSqlSelect, ref result, pcSelect); if (result != "") { return(result); } string sSqlUpdate = "update servradreptid " + " set pyramidExport = null " + " where srAltKey = :srAltKey " + " and pyramidExport is not null "; NxParameterCollection pcUpdate = new NxParameterCollection(); pcUpdate.Add("srAltKey", "xx"); foreach (DataRow dr in dt.Rows) { string ak = dr["ak"].ToString(); pcUpdate["srAltKey"].Value = ak; cdb.updateData(sSqlUpdate, ref result, pcUpdate); if (result != "") { return(result); } } return(result); }
/// <summary> /// Commits the temporary temCiAntal to /// the real ciAntal in the orderArt table /// </summary> /// <param name="ident"></param> /// <param name="vartOrdernr"></param> /// <returns></returns> /// 2018-05-02 KJBO Indentive AB public ErrorCL commitTempCiAntal(string ident, string vartOrdernr) { ErrorCL err = new ErrorCL(); err.ErrCode = 0; err.ErrMessage = ""; CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { err.ErrCode = -10; err.ErrMessage = "Ogiltigt login"; return(err); } string sSql = " update orderArt " + " set ciAntal = ciAntal + coalesce(tempCiAntal, 0) " + " where vart_ordernr = :vart_ordernr "; string error = ""; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", vartOrdernr); cdb.updateData(sSql, ref error, pc); if (error != "") { err.ErrCode = -100; if (error.Length > 2000) { error = error.Substring(1, 2000); } err.ErrMessage = error; return(err); } return(err); }
private int countReparator(string vart_ordernr) { string sSql = "select count(*) antal " + " from shReparator " + " where vart_ordernr = :vart_ordernr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", vart_ordernr); string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, pc); if (errText != "") { return(-1); } int antal = 0; if (dt.Rows.Count == 1) { antal = Convert.ToInt32(dt.Rows[0]["antal"]); } return(antal); }
private bool positionHasChanged(VentilCL v) { string sSql = " select \"position\" " + " from ventil " + " where ventil_id = :ventil_id "; NxParameterCollection np = new NxParameterCollection(); np.Add("ventil_id", v.VentilID); string err = ""; DataTable dt = cdb.getData(sSql, ref err, np); if (dt.Rows.Count == 0) { return(false); } string savedVentil = dt.Rows[0]["position"].ToString(); if (savedVentil != v.Position) { return(true); } return(false); }
public string getSalartUnit(int salartID) { string sSql = "SELECT enhet unit " + " FROM salart " + " where salartId = :salartId "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("salartId", salartID); string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, pc); string unit = ""; if (dt.Rows.Count == 1) { unit = dt.Rows[0]["unit"].ToString(); } return(unit); }
private int getArtKat(string artnr, ref string err) { string sSql = " SELECT coalesce(kategori,0) kategori " + " FROM artikel " + " where artnr = :artnr " + " and visas = true "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("artnr", artnr); err = ""; DataTable dt = cdb.getData(sSql, ref err, pc); if (err != "") { return(0); } if (dt.Rows.Count == 0) { err = "Artikelnr : " + artnr + " finns ej/är ej aktiv"; return(0); } return(Convert.ToInt32(dt.Rows[0]["kategori"])); }
private string resetOrderArt() { string result = ""; string sSql = " select orderArtId, coAntal - ciAntal coAntal " + " from orderArt " + " where vart_ordernr = :vart_ordernr "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("vart_ordernr", vart_ordernr); DataTable dt = cdb.getData(sSql, ref result, pc); if (result != "") { return(result); } string sSqlDelete = " delete from oaPyramid " + " where orderArtId = :orderArtId "; NxParameterCollection pcDelete = new NxParameterCollection(); pcDelete.Add("orderArtId", 1); foreach (DataRow dr in dt.Rows) { int orderArtId = Convert.ToInt32(dr["orderArtId"]); pcDelete["orderArtId"].Value = orderArtId; cdb.updateData(sSqlDelete, ref result, pcDelete); if (result != "") { return(result); } } // Return here. The last code is replaced with resendxOrderArt return(result); }
/// <summary> /// Delete a registered gasket /// </summary> /// <param name="ident"></param> /// <param name="gasketId"></param> /// <returns>Error class.</returns> /// 2018-08-21 KJBO Indentive AB public ErrorCL deleteGasket(string ident, int gasketId) { ErrorCL err = new ErrorCL(); err.ErrCode = 0; err.ErrMessage = ""; CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { err.ErrCode = -10; err.ErrMessage = "Ogiltigt login"; return(err); } string sSql = " delete from gGasket where gasketId = :gasketId "; NxParameterCollection pc = new NxParameterCollection(); pc.Add("gasketId", gasketId); string errTxt = ""; int rc = cdb.updateData(sSql, ref errTxt, pc); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } err.ErrCode = -100; err.ErrMessage = errTxt; return(err); } return(err); }
/// <summary> /// Updates the database from the given SQL Clause /// </summary> /// <param name="sSql">SQL Clause to be executed</param> /// <param name="errText">Refernce string that returns error string</param> /// <param name="pc">Collection of parameters</param> /// <returns>Number of updated rows</returns> public int updateData(string sSql, ref string errText, NxParameterCollection pc) { NxConnection cn = getConn(); NxCommand cm = new NxCommand(sSql, cn); // Check if there are any parameters if (pc != null) { foreach (NxParameter np in pc) { NxParameter npInsert = (NxParameter)np.Clone(); cm.Parameters.Add(npInsert); } } errText = ""; int result = 0; try { cn.Open(); result = cm.ExecuteNonQuery(); } catch (Exception ex) { errText = ex.Message; result = -1; } finally { if (cn.State == ConnectionState.Open) { cn.Close(); } } return(result); }
/// <summary> /// Return one artikel /// </summary> /// <param name="ident">Ident</param> /// <param name="Artnr">Artnr</param> /// <returns></returns> // 2016-02-10 KJBO public ArtikelCL getArtikel(string ident, string Artnr) { ArtikelCL art = new ArtikelCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { art.ErrCode = -10; art.ErrMessage = "Ogiltigt login"; return(art); } string sSql = " SELECT a.artnr, a.artnamn, a.lev_id, l.levnamn, a.anm1, a.anm2, kategori " + " FROM artikel a " + " left outer join leverantor l on a.lev_id = l.lev_id " + " where a.artnr = :artnr " + " and a.visas = true "; NxParameterCollection np = new NxParameterCollection(); np.Add("artnr", Artnr); string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, np); int errCode = -100; if (errText == "" && dt.Rows.Count == 0) { errText = "Artikeln finns ej "; errCode = 0; } if (errText != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } art.ErrCode = errCode; art.ErrMessage = errText; } if (dt.Rows.Count == 1) { DataRow dr = dt.Rows[0]; art.Artnr = dr["artnr"].ToString(); art.Artnamn = dr["artnamn"].ToString(); art.LevID = dr["lev_id"].ToString(); art.LevNamn = dr["levnamn"].ToString(); art.Anm1 = dr["anm1"].ToString(); art.Anm2 = dr["anm2"].ToString(); art.kategori = Convert.ToInt32(dr["kategori"]); } return(art); }
/// <summary> /// Returns all gaskets or just one /// If gasketId = 0 all registered gasket will be returned /// if gasketId > 0 then the gasket with that primary key /// will be returned. /// If a gasket id is provided and this gasket don't exists /// then the errorCode will return -100 and the calling program /// needs to take the correct action. /// </summary> /// <param name="ident"></param> /// <param name="gasketId"></param> /// <returns></returns> /// 2018-08-17 kjbo public List <gGasketCL> getGasket(string ident, int gasketId) { List <gGasketCL> gasketList = new List <gGasketCL>(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { gGasketCL gasket = new gGasketCL(); gasket.ErrCode = -10; gasket.ErrMessage = "Ogiltigt login"; gasketList.Add(gasket); return(gasketList); } string sSql = " select g.gasketId, g.gasketTypeId, g.materialThicknId, g.outerDiam, g.innerDiam, g.reusableMaterial, g.cuttingMargin, " + " g.standardPriceProduct, g.handlingTime, g.price, g.note, g.description " + ", coalesce(g.Type2SecHoleCount,0) Type2SecHoleCount, coalesce(g.Type2SecHoleDiam,0) Type2SecHoleDiam " + " , gt.\"description\" materialThicknName " + " , gs.\"description\" materialSizeName " + " , gm.material materialName " + " , gtp.gasketType gasketTypeName " + ", gt.buyPrice / ((gs.materialLength * 1000) * (gs.materialWidth * 1000)) materialCostMm2 " + ", gt.SellPrice / gt.buyPrice materialMarginPercent " + ", (gt.cuttingTime * 1000) / 60 cuttingSpeedMmSek " + " from gGasket g " + " join gMaterialThickn gt on g.materialThicknId = gt.materialThicknId " + " join gMaterialSize gs on gt.materialSizeId = gs.materialSizeId " + " join gMaterial gm on gs.materialId = gm.materialId " + " join gGasketType gtp on g.gasketTypeId = gtp.gasketTypeId "; if (gasketId > 0) { sSql += " where gasketId = :gasketId "; } NxParameterCollection pc = new NxParameterCollection(); if (gasketId > 0) { pc.Add("gasketId", gasketId); } string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, pc); int errCode = -100; if (errText != "") { gGasketCL gasket = new gGasketCL(); if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } gasket.ErrCode = errCode; gasket.ErrMessage = errText; gasketList.Add(gasket); return(gasketList); } if (gasketId > 0 && dt.Rows.Count == 0) { gGasketCL gasket = new gGasketCL(); gasket.ErrCode = -100; gasket.ErrMessage = "Det finns ingen packning med id " + gasketId.ToString(); gasketList.Add(gasket); return(gasketList); } foreach (DataRow dr in dt.Rows) { gGasketCL gasket = new gGasketCL(); gasket.gasketId = Convert.ToInt32(dr["gasketId"]); gasket.gasketTypeId = Convert.ToInt32(dr["gasketTypeId"]); gasket.materialThicknId = Convert.ToInt32(dr["materialThicknId"]); gasket.outerDiam = Convert.ToDecimal(dr["outerDiam"]); gasket.innerDiam = Convert.ToDecimal(dr["innerDiam"]); gasket.reusableMaterial = Convert.ToDecimal(dr["reusableMaterial"]); gasket.cuttingMargin = Convert.ToDecimal(dr["cuttingMargin"]); gasket.standardPriceProduct = Convert.ToBoolean(dr["standardPriceProduct"]); gasket.handlingTime = Convert.ToDecimal(dr["handlingTime"]); gasket.Type2SecHoleCount = Convert.ToInt32(dr["Type2SecHoleCount"]); gasket.Type2SecHoleDiam = Convert.ToDecimal(dr["Type2SecHoleDiam"]); gasket.price = Convert.ToDecimal(dr["price"]); gasket.note = dr["note"].ToString(); gasket.description = dr["description"].ToString(); gasket.materialName = dr["materialName"].ToString(); gasket.materialSizeName = dr["materialSizeName"].ToString(); gasket.materialThicknName = dr["materialThicknName"].ToString(); gasket.gasketTypeName = dr["gasketTypeName"].ToString(); gasket.materialCostMm2 = Convert.ToDouble(dr["materialCostMm2"]); gasket.materialMarginPercent = Convert.ToDouble(dr["materialMarginPercent"]); gasket.cuttingSpeedMmSek = Convert.ToDouble(dr["cuttingSpeedMmSek"]); if (gasket.gasketTypeId == 1 || gasket.gasketTypeId == 2) { gasket.cuttingLengthOuterMm = Convert.ToDouble(gasket.outerDiam) * Math.PI; gasket.cuttingLengthInnerMm = Convert.ToDouble(gasket.innerDiam) * Math.PI; Double dArea = Convert.ToDouble((gasket.outerDiam + (gasket.cuttingMargin * 2)) * (gasket.outerDiam + (gasket.cuttingMargin * 2))); Double reusable = Convert.ToDouble(1 - (gasket.reusableMaterial / 100)); gasket.materialArea = dArea * reusable; } // 2018-08-30 // Add time to cut the exra holes when typeId = 2 if (gasket.gasketTypeId == 2) { gasket.cuttingLengthOuterMm += (Convert.ToDouble(gasket.Type2SecHoleDiam) * Math.PI) * gasket.Type2SecHoleCount; } gasket.ErrCode = 0; gasket.ErrMessage = ""; gasketList.Add(gasket); } return(gasketList); }
/// <summary> /// Validates and saves a gasket to the database /// Always check ErrCode and ErrMessage for errors /// Returns the new created gasket /// </summary> /// <param name="ident"></param> /// <param name="gasket"></param> /// <returns></returns> /// 2018-08-17 KJBO public gGasketCL saveGasket(string ident, gGasketCL gasket) { gGasketCL gasketRet = new gGasketCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { gasketRet.ErrCode = -10; gasketRet.ErrMessage = "Ogiltigt login"; return(gasketRet); } // If there is only one type of gasket // then this value will be set to the // gasket type field. int gasketTypeId = getGasketTypeId(); if (gasketTypeId > 0) { gasket.gasketTypeId = 1; } if (gasket.gasketTypeId <= 0) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Packningstyp måste väljas"; return(gasketRet); } if (gasket.materialThicknId <= 0) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Packningsmaterial måste väljas"; return(gasketRet); } if (!validateGasketAgainstMaterialSize(gasket)) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Packningens ytterdiameter är större än valt material"; return(gasketRet); } if (gasket.outerDiam <= 0 || gasket.outerDiam > 100000) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Ytterdiameter måste vara större än 0 (och mindre än 100000)"; return(gasketRet); } if (gasket.innerDiam <= 0 || gasket.innerDiam > 100000) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Innerdiameter måste vara större än 0 (och mindre än 100000)"; return(gasketRet); } if (gasket.innerDiam > gasket.outerDiam) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Ytterdiameter måste vara större än innerdiameter"; return(gasketRet); } if (gasket.reusableMaterial < 0 || gasket.reusableMaterial >= 100) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Återanvändbart material har felaktig procentsats"; return(gasketRet); } if (gasket.cuttingMargin < 0 || gasket.cuttingMargin > 100) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Felaktig skärmarginal"; return(gasketRet); } if (gasket.handlingTime < 0 || gasket.handlingTime > 10000) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Felaktig hanteringstid"; return(gasketRet); } if (gasket.price < 0 || gasket.price > 1000000) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Felaktigt pris"; return(gasketRet); } if (gasket.gasketTypeId == 2) { if (gasket.Type2SecHoleCount < 1) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Antal yttre hål felaktigt angivet"; return(gasketRet); } Decimal materialLeft = gasket.outerDiam - gasket.innerDiam; materialLeft = materialLeft / 2; //materialLeft -= gasket.cuttingMargin * 2; if (gasket.Type2SecHoleDiam > materialLeft) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Diameter på yttre hål måste vara mindre än " + materialLeft.ToString() + " mm."; return(gasketRet); } if (gasket.Type2SecHoleDiam <= 0 || gasket.Type2SecHoleDiam > 100000) { gasketRet.ErrCode = -1; gasketRet.ErrMessage = "Diameter på yttre hål måste vara större än 0 (och mindre än 100000)"; return(gasketRet); } } string errTxt = ""; string sSql = ""; if (gasket.gasketId == 0) { sSql = getInsertSql(); } else { sSql = getUpdateSql(); } NxParameterCollection np = new NxParameterCollection(); ReparatorCL rep = cr.getReparator(ident); setParameters(np, gasket, rep); errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, np); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } gasketRet.ErrCode = -100; gasketRet.ErrMessage = errTxt; return(gasketRet); } if (gasket.gasketId == 0) { gasket.gasketId = getLastId(); } List <gGasketCL> gasketList = getGasket(ident, gasket.gasketId); return(gasketList[0]); }
/// <summary> /// Returns a list of all registered materials /// If materialId <> 0 then only the material ID that /// matches the current ID will be returned. /// In that case this will be 0 or 1 instance of gMaterialCL /// </summary> /// <param name="ident"></param> /// <returns></returns> /// 2018-08-15 KJBO public List <gMaterialCL> getMaterial(string ident, int materialId) { List <gMaterialCL> gmList = new List <gMaterialCL>(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { gMaterialCL gm = new gMaterialCL(); gm.ErrCode = -10; gm.ErrMessage = "Ogiltigt login"; gmList.Add(gm); return(gmList); } string sSql = " SELECT materialId, material, materialShort " + " FROM gMaterial"; if (materialId != 0) { sSql += " where materialId = :materialId"; } NxParameterCollection pc = new NxParameterCollection(); if (materialId != 0) { pc.Add("materialId", materialId); } string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, pc); int errCode = -100; if (errText != "") { gMaterialCL gm = new gMaterialCL(); if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } gm.ErrCode = errCode; gm.ErrMessage = errText; gmList.Add(gm); return(gmList); } foreach (DataRow dr in dt.Rows) { gMaterialCL gm = new gMaterialCL(); gm.ErrCode = 0; gm.ErrMessage = ""; gm.material = dr["material"].ToString(); gm.materialId = Convert.ToInt32(dr["materialId"]); gm.materialShort = dr["materialShort"].ToString(); gmList.Add(gm); } return(gmList); }
/// <summary> /// Saves material to database /// </summary> /// <param name="ident"></param> /// <param name="mat"></param> /// <returns>The saved material</returns> public gMaterialCL saveMaterial(string ident, gMaterialCL mat) { gMaterialCL matRet = new gMaterialCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { matRet.ErrCode = -10; matRet.ErrMessage = "Ogiltigt login"; return(matRet); } if (mat.material == "") { matRet.ErrCode = -1; matRet.ErrMessage = "Materialnamn måste anges"; return(matRet); } if (mat.materialShort == "") { matRet.ErrCode = -1; matRet.ErrMessage = "Kortnamn måste anges"; return(matRet); } string errTxt = ""; int iRes = validateMaterial(mat, ref errTxt); if (errTxt != "") { matRet.ErrCode = -1; matRet.ErrMessage = "Fel vid kontroll av unikt kortnamn. Felmeddelande : " + errTxt; return(matRet); } if (iRes == -2) { matRet.ErrCode = -1; matRet.ErrMessage = "Fel vid kontroll av unikt kortnamn. Felmeddelande saknas."; return(matRet); } if (iRes == -1) { matRet.ErrCode = -1; matRet.ErrMessage = "Kortnamn måste vara unikt"; return(matRet); } string sSql = ""; if (mat.materialId == 0) { sSql = getInsertMatrSQL(); } else { sSql = getUpdateMatrSQL(); } NxParameterCollection np = new NxParameterCollection(); ReparatorCL rep = cr.getReparator(ident); setMatrParameters(np, mat, rep); errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, np); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } matRet.ErrCode = -100; matRet.ErrMessage = errTxt; return(matRet); } if (mat.materialId == 0) { mat.materialId = getLastMatrID(); } List <gMaterialCL> matList = getMaterial(ident, mat.materialId); return(matList[0]); }
/// <summary> /// General hub for retrieving reservdel /// </summary> /// <param name="ident"></param> /// <param name="VartOrdernr"></param> /// <param name="RadNr"></param> /// <param name="ReservNr"></param> /// <returns>A list of reservdel or error</returns> private List <ReservdelCL> getReservdelGeneral(string ident, string VartOrdernr, int RadNr, int ReservNr) { List <ReservdelCL> reslist = new List <ReservdelCL>(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { ReservdelCL res = new ReservdelCL(); res.ErrCode = -10; res.ErrMessage = "Ogiltigt login"; reslist.Add(res); return(reslist); } // Build sql string depending on parameters. -1 as ReservNr means return all reservdel for one // ServiceRad. string sSql = " select vart_ordernr, radnr, reserv_nr, antal, artnr, artnamn, faktureras, lev_id, enhet " + " , reg, regdat, uppdaterat, uppdat_dat, skriv_nu, getFromCS " + " from reservdel " + " where vart_ordernr = :vart_ordernr " + " and radnr = :radnr "; if (ReservNr > -1) { sSql += " and reserv_nr = :reserv_nr "; } // Create parameters NxParameterCollection np = new NxParameterCollection(); np.Add("vart_ordernr", VartOrdernr); np.Add("radnr", RadNr); if (ReservNr > -1) { np.Add("reserv_nr", ReservNr); } string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, np); int errCode = -100; if (errText == "" && dt.Rows.Count == 0) { if (ReservNr == -1) { errText = "Det finns inga reservdelar i aktuellt urval "; } else { errText = "Reservdel med ID VartOrdernr : " + VartOrdernr + ", RadNr : " + RadNr.ToString() + ", ReservNr : " + ReservNr.ToString() + " finns ej."; } errCode = 0; } if (errText != "") { ReservdelCL res = new ReservdelCL(); if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } res.ErrCode = errCode; res.ErrMessage = errText; reslist.Add(res); return(reslist); } foreach (DataRow dr in dt.Rows) { ReservdelCL res = new ReservdelCL(); res.Antal = 1; res.Faktureras = true; res.getFromCS = false; res.VartOrdernr = dr["vart_ordernr"].ToString(); res.Radnr = Convert.ToInt32(dr["radnr"]); res.ReservNr = Convert.ToInt32(dr["reserv_nr"]); if (dr["antal"] != DBNull.Value) { res.Antal = Convert.ToDecimal(dr["antal"]); } res.Artnr = dr["artnr"].ToString(); res.ArtNamn = dr["artnamn"].ToString(); if (dr["faktureras"] != DBNull.Value) { res.Faktureras = Convert.ToBoolean(dr["faktureras"]); } if (dr["getFromCS"] != DBNull.Value) { res.getFromCS = Convert.ToBoolean(dr["getFromCS"]); } res.LevID = dr["lev_id"].ToString(); res.Enhet = dr["enhet"].ToString(); reslist.Add(res); } return(reslist); }
/// <summary> /// Get a list of artikel for display purposes /// </summary> /// <param name="ident">Identity</param> /// <param name="ArtnrFilter">Artnr or part of..</param> /// <param name="ArtnamnFilter">ArtNamn or part of..</param> /// <returns></returns> // 2016-02-09 KJBO public List <ArtikelCL> getArtList(string ident, string ArtnrFilter, string ArtnamnFilter) { // Create article list List <ArtikelCL> artlist = new List <ArtikelCL>(); // Get reparator CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { ArtikelCL art = new ArtikelCL(); art.ErrCode = -10; art.ErrMessage = "Ogiltigt login"; artlist.Add(art); return(artlist); } // SQL string string sSql = " SELECT a.artnr, a.artnamn, a.lev_id, l.levnamn, a.anm1, a.anm2 " + " FROM artikel a " + " left outer join leverantor l on a.lev_id = l.lev_id " + " where upper(a.artnr) like upper(:artnr) " + " and upper(a.artnamn) like upper(:artnamn) " + " and a.visas = true "; // Add parameter list NxParameterCollection np = new NxParameterCollection(); np.Add("artnr", CCommonFunc.addWildCard(ArtnrFilter)); np.Add("artnamn", CCommonFunc.addWildCard(ArtnamnFilter)); // Init variable string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, np); // Init varible int errCode = -100; // No rows found..... if (errText == "" && dt.Rows.Count == 0) { errText = "Det finns inga artiklar i aktuellt urval "; errCode = 0; } // No rows found or error when retrieving if (errText != "") { ArtikelCL a = new ArtikelCL(); if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } a.ErrCode = errCode; a.ErrMessage = errText; artlist.Add(a); return(artlist); } // Loop rows..... foreach (DataRow dr in dt.Rows) { ArtikelCL a = new ArtikelCL(); a.Artnr = dr["artnr"].ToString(); a.Artnamn = dr["artnamn"].ToString(); a.LevID = dr["lev_id"].ToString(); a.LevNamn = dr["levnamn"].ToString(); a.Anm1 = dr["anm1"].ToString(); a.Anm2 = dr["anm2"].ToString(); artlist.Add(a); } // .. and return list return(artlist); }
/// <summary> /// Deletes a reservdel identified by primary key /// </summary> /// <param name="ident">identity string</param> /// <param name="reservdel">One valid reservdel</param> /// <returns>Empty string if OK otherwise error message</returns> public string deleteReservdel(string ident, ReservdelCL reservdel) { CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); ReservdelCL retRes = new ReservdelCL(); if (identOK == -1) { return("Ogiltigt login"); } // Validate that order is open for editing CServiceHuvud ch = new CServiceHuvud(); string sOpen = ch.isOpen(ident, reservdel.VartOrdernr); if (sOpen != "1") { { retRes.ErrCode = -10; if (sOpen == "-1") { return("Order är stängd för inmatning"); } else { return(sOpen); } } } int exists = validateReservdelExists(reservdel); if (exists == 0) { return("Reservdel finns ej"); } string sSql = ""; sSql = getDeleteSQL(); NxParameterCollection np = new NxParameterCollection(); setParameters(np, reservdel, ""); string errText = ""; AddOrDeleteReservdelPyr(reservdel, true, ref errText); if (errText == "") { cdb.updateData(sSql, ref errText, np); } if (errText != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } return(errText); } return(""); }
/// <summary> /// Saves a reservdel to database. /// If ReservNr = 0 then the method /// assumes that this is a new row to be added /// Otherwise an update is issued /// </summary> /// <param name="ident">Identity</param> /// <param name="reservdel">ReservdelCL</param> /// <returns>The new created or updated reservdel</returns> // 2016-02-10 KJBO public ReservdelCL saveReservdel(string ident, ReservdelCL reservdel) { CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); ReservdelCL retRes = new ReservdelCL(); if (identOK == -1) { retRes.ErrCode = -10; retRes.ErrMessage = "Ogiltigt login"; return(retRes); } // Validate that order is open for editing CServiceHuvud ch = new CServiceHuvud(); string sOpen = ch.isOpen(ident, reservdel.VartOrdernr); if (sOpen != "1") { { retRes.ErrCode = -10; if (sOpen == "-1") { retRes.ErrMessage = "Order är stängd för inmatning"; } else { retRes.ErrMessage = sOpen; } return(retRes); } } int valid = validateReservdel(reservdel); if (valid == -1) { retRes.ErrCode = -1; retRes.ErrMessage = "Felaktig serviceorder"; return(retRes); } if (valid == -10) { retRes.ErrCode = -1; retRes.ErrMessage = "Fel vid kontroll av reservdel"; return(retRes); } if (valid == -2) { retRes.ErrCode = -1; retRes.ErrMessage = "Reservdel finns inte"; return(retRes); } if (valid == -3) { retRes.ErrCode = -1; retRes.ErrMessage = "Egen reservdel måste ha en benämning"; return(retRes); } if (valid == -4) { retRes.ErrCode = -1; retRes.ErrMessage = "Det finns ingen reservdel på ordernr : " + reservdel.VartOrdernr + "rad : " + reservdel.Radnr.ToString() + " reservdelsrad : " + reservdel.ReservNr.ToString(); return(retRes); } string sSql = ""; string errText = ""; int errCode = 0; // This is a new reservdel if (reservdel.ReservNr == 0) { reservdel.ReservNr = getNextReservNr(reservdel); sSql = getInsertSQL(); } else { sSql = getUpdateSQL(); } AddOrDeleteReservdelPyr(reservdel, true, ref errText); ReparatorCL rep = cr.getReparator(ident); NxParameterCollection np = new NxParameterCollection(); setParameters(np, reservdel, rep.AnvID); int iRc = cdb.updateData(sSql, ref errText, np); if (errText == "") { AddOrDeleteReservdelPyr(reservdel, false, ref errText); if (errText != "") { errText = "Fel vid anrop till addToReservdelPyr. Felmeddelande : " + errText; errCode = -1303; } } if (errText != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } if (errCode == 0) { retRes.ErrCode = -100; } else { retRes.ErrCode = errCode; } retRes.ErrMessage = errText; return(retRes); } // 2018-05-17 KJBO Check if this is a pyramidOrder CMServHuv shuv = new CMServHuv(); if (shuv.isPyramidOrder(reservdel.VartOrdernr)) { ErrorCL errCl = checkOutIfNeeded(ident, reservdel); if (errCl.ErrMessage != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } retRes.ErrCode = errCl.ErrCode; retRes.ErrMessage = errCl.ErrMessage; return(retRes); } CompactStore.CCompactStore store = new CompactStore.CCompactStore(); errCl = store.genCompStoreData(ident, reservdel.VartOrdernr); if (errCl.ErrMessage != "" && errCl.ErrCode != 1) { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } retRes.ErrCode = errCl.ErrCode; retRes.ErrMessage = errCl.ErrMessage; return(retRes); } } return(getReservdel(ident, reservdel.VartOrdernr, reservdel.Radnr, reservdel.ReservNr)); }