private int validateVentil(VentilCL v) { if (validateVentilKategori(v.VentilkatID) == 0) { return(-1); } CKund cKund = new CKund(); if (cKund.validateKund(v.KundID) == 0) { return(-2); } if (v.forceSave == false) { if (duplicateExists(v) > 0) { return(-3); } } if (v.insideDiameter != 0 && v.outsideDiameter != 0) { if (v.insideDiameter > v.outsideDiameter) { return(-4); } } return(1); }
private int duplicateExists(VentilCL v) { // 2019-04-29 KJBO // Problems when other properties has changed than position // Only do a duplicate check if position has changed if (v.VentilID != "") { if (!positionHasChanged(v)) { return(0); } } string sSql = " select count(*) as antal " + " from ventil " + " where kund_id = :kund_id " + " and \"position\" = :position "; if (v.VentilID != null) { sSql += " and ventil_id <> :ventil_id "; } NxParameterCollection np = new NxParameterCollection(); np.Add("kund_id", v.KundID); np.Add("position", v.Position); if (v.VentilID != null) { np.Add("ventil_id", v.VentilID); } string err = ""; DataTable dt = cdb.getData(sSql, ref err, np); if (dt.Rows.Count == 0) { return(0); } return(Convert.ToInt32(dt.Rows[0]["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 VentilCL saveVentil(string ident, VentilCL v) { CVentil cv = new CVentil(); return(cv.saveVentil(ident, v)); }
public VentilCL saveVentil(string ident, VentilCL v) { VentilCL vc = new VentilCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { vc.ErrCode = -10; vc.ErrMessage = "Ogiltigt login"; return(vc); } // 2018-11-09 Samtal med Simon if (v.Position == "") { vc.ErrCode = -1; vc.ErrMessage = "Positionsnr måste anges"; return(vc); } int iRes = validateVentil(v); if (iRes == -1) { vc.ErrCode = -1; vc.ErrMessage = "Felaktig ventilkategori"; return(vc); } if (iRes == -2) { vc.ErrCode = -1; vc.ErrMessage = "Felaktigt kundID"; return(vc); } if (iRes == -3) { vc.ErrCode = 101; vc.ErrMessage = "Det finns redan en ventil med detta positionsnr"; return(vc); } if (iRes == -4) { vc.ErrCode = -1; vc.ErrMessage = "Ytterdiameter måste vara större än innerdiameter"; return(vc); } ReparatorCL r = cr.getReparator(ident); string sSql = ""; bool bNew = false; // This is a new ventil if (v.VentilID == null) { string ventilID = Guid.NewGuid().ToString(); v.VentilID = ventilID; sSql = getVentilInsertSQL(); bNew = true; } else { sSql = getVentilUpdateSQL(); } NxParameterCollection np = new NxParameterCollection(); setParameters(np, v, bNew, r.AnvID); string errText = ""; int iRc = cdb.updateData(sSql, ref errText, np); if (errText != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } v.ErrCode = -100; v.ErrMessage = errText; return(v); } // 2016-10-17 KJBO CServRad csr = new CServRad(); csr.updateFromVentil2(v.VentilID); return(getVentil(ident, v.VentilID)); }
private void setParameters(NxParameterCollection np, VentilCL v, bool bNew, string sAnvID) { string sVar = ""; if (bNew) { DateTime lDt = System.DateTime.Now; np.Add("pregdat", lDt); sVar = sAnvID; if (sVar.Length == 0) { np.Add("preg", System.DBNull.Value); } else { np.Add("preg", sVar); } } sVar = v.Anlaggningsnr; np.Add("panlaggningsnr", sVar); sVar = v.Avdelning; np.Add("pavdelning", sVar); sVar = v.LagesstallFabrikat; np.Add("plagesstall_fabrikat", sVar); sVar = v.LagesstallIDNr; np.Add("plagesstall_id_nr", sVar); sVar = v.Lagesstallartyp; np.Add("plagesstallartyp", sVar); sVar = v.StalldonArtnr; np.Add("pstalldon_artnr", sVar); sVar = v.StalldonFabrikat; np.Add("pstalldon_fabrikat", sVar); sVar = v.StalldonIDNr; np.Add("pstalldon_id_nr", sVar); sVar = v.Stalldonstyp; np.Add("pstalldonstyp", sVar); Decimal d = v.Oppningstryck; if (d == 0) { np.Add("poppningstryck", System.DBNull.Value); } else { np.Add("poppningstryck", d); } sVar = v.Dn2; np.Add("pdn2", sVar); sVar = v.Dn; np.Add("pdn", sVar); sVar = v.Pn2; np.Add("ppn2", sVar); sVar = v.Pn; np.Add("ppn", sVar); sVar = v.IdNr; np.Add("pid_nr", sVar); sVar = v.Ventiltyp; np.Add("pventiltyp", sVar); sVar = v.Fabrikat; np.Add("pfabrikat", sVar); sVar = v.Position; np.Add("pposition", sVar); sVar = v.KundID; np.Add("pkund_id", sVar); np.Add("pventilkategori", v.VentilkatID); np.Add("pventil_id", v.VentilID); if (!bNew) { sVar = sAnvID; np.Add("pUppdaterat", sVar); DateTime ldtNow = System.DateTime.Now; np.Add("pUppdat_dat", ldtNow); } np.Add("pchanged", System.DateTime.Now); np.Add("pplan", v.Plan); np.Add("prum", v.Rum); // 2017-06-21 KJBO if (v.insideDiameter == 0) { np.Add("insideDiameter", System.DBNull.Value); } else { np.Add("insideDiameter", v.insideDiameter); } if (v.outsideDiameter == 0) { np.Add("outsideDiameter", System.DBNull.Value); } else { np.Add("outsideDiameter", v.outsideDiameter); } }
/// <summary> /// Get all ventils for one customer /// </summary> /// <param name="ident"></param> /// <param name="KundID"></param> /// <returns></returns> public List <VentilCL> getVentilsForCust(string ident, string KundID, string position, string IDnr, string ventiltyp, string fabrikat, string anlaggningsnr) { List <VentilCL> vl = new List <VentilCL>(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { VentilCL v = new VentilCL(); v.ErrCode = -10; v.ErrMessage = "Ogiltigt login"; vl.Add(v); return(vl); } string sSql = " SELECT v.ventil_id, v.ventilkategori, v.kund_id, v.\"position\", v.fabrikat, v.ventiltyp, v.id_nr, v.pn, v.pn2, v.dn, v.dn2, " + " v.oppningstryck, v.stalldonstyp, v.stalldon_id_nr, v.stalldon_fabrikat, v.stalldon_artnr, v.lagesstallartyp, " + " v.lagesstall_id_nr, v.lagesstall_fabrikat, v.avdelning, v.anlaggningsnr, " + " v.forra_comment, vk.ventilkategori as ventilkategori_namn " + ", v.plan, v.rum, v.insideDiameter, v.outsideDiameter " + " FROM ventil v " + " join ventilkategori vk on v.ventilkategori = vk.ventilkat_id " + " where v.kund_id = :pKundID " + " and upper(coalesce(v.\"position\",'')) like upper(:position) " + " and upper(coalesce(v.id_nr,'')) like upper(:id_nr) " + " and upper(coalesce(v.ventiltyp,'')) like upper(:ventiltyp) " + " and upper(coalesce(v.fabrikat,'')) like upper(:fabrikat) " + " and upper(coalesce(v.anlaggningsnr,'')) like upper(:anlaggningsnr) "; NxParameterCollection np = new NxParameterCollection(); np.Add("pKundID", KundID); np.Add("position", CCommonFunc.addWildCard(position)); np.Add("ID_nr", CCommonFunc.addWildCard(IDnr)); np.Add("ventiltyp", CCommonFunc.addWildCard(ventiltyp)); np.Add("fabrikat", CCommonFunc.addWildCard(fabrikat)); np.Add("anlaggningsnr", CCommonFunc.addWildCard(anlaggningsnr)); string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, np); int errCode = -100; if (errText == "" && dt.Rows.Count == 0) { errText = "Det finns inga ventiler för aktuell kund"; errCode = 0; } if (errText != "") { VentilCL v = new VentilCL(); if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } v.ErrCode = errCode; v.ErrMessage = errText; vl.Add(v); return(vl); } foreach (DataRow dr in dt.Rows) { VentilCL vr = new VentilCL(); vr.VentilID = dr["ventil_id"].ToString(); vr.VentilkatID = Convert.ToInt16(dr["ventilkategori"]); vr.Ventilkategori = dr["ventilkategori_namn"].ToString(); vr.KundID = dr["kund_id"].ToString(); vr.Position = dr["position"].ToString(); vr.Fabrikat = dr["fabrikat"].ToString(); vr.Ventiltyp = dr["ventiltyp"].ToString(); vr.IdNr = dr["id_nr"].ToString(); vr.Pn = dr["pn"].ToString(); vr.Pn2 = dr["pn2"].ToString(); vr.Dn = dr["dn"].ToString(); vr.Dn2 = dr["dn2"].ToString(); if (dr["oppningstryck"] == DBNull.Value) { vr.Oppningstryck = 0; } else { vr.Oppningstryck = Convert.ToDecimal(dr["oppningstryck"]); } vr.Stalldonstyp = dr["stalldonstyp"].ToString(); vr.StalldonIDNr = dr["stalldon_id_nr"].ToString(); vr.StalldonFabrikat = dr["stalldon_fabrikat"].ToString(); vr.StalldonArtnr = dr["stalldon_artnr"].ToString(); vr.Lagesstallartyp = dr["lagesstallartyp"].ToString(); vr.LagesstallIDNr = dr["lagesstall_id_nr"].ToString(); vr.LagesstallFabrikat = dr["lagesstall_fabrikat"].ToString(); vr.Avdelning = dr["avdelning"].ToString(); vr.Anlaggningsnr = dr["anlaggningsnr"].ToString(); vr.Plan = dr["plan"].ToString(); vr.Rum = dr["rum"].ToString(); // 2017-09-25 KJBO if (dr["insideDiameter"] == DBNull.Value) { vr.insideDiameter = 0; } else { vr.insideDiameter = Convert.ToDecimal(dr["insideDiameter"]); } if (dr["outsideDiameter"] == DBNull.Value) { vr.outsideDiameter = 0; } else { vr.outsideDiameter = Convert.ToDecimal(dr["outsideDiameter"]); } vr.ErrCode = 0; vr.ErrMessage = ""; vl.Add(vr); } return(vl); }
public VentilCL getVentil(string ident, string ventilID, bool validateUser) { VentilCL vr = new VentilCL(); if (validateUser) { CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { vr.ErrCode = -10; vr.ErrMessage = "Ogiltigt login"; return(vr); } } string sSql = " SELECT v.ventil_id, v.ventilkategori, v.kund_id, v.\"position\", v.fabrikat, v.ventiltyp, v.id_nr, v.pn, v.pn2, v.dn, v.dn2, " + " v.oppningstryck, v.stalldonstyp, v.stalldon_id_nr, v.stalldon_fabrikat, v.stalldon_artnr, v.lagesstallartyp, " + " v.lagesstall_id_nr, v.lagesstall_fabrikat, v.avdelning, v.anlaggningsnr, " + " v.forra_comment, vk.ventilkategori as ventilkategori_namn " + " , plan, rum, v.insideDiameter, v.outsideDiameter " + " FROM ventil v " + " join ventilkategori vk on v.ventilkategori = vk.ventilkat_id " + " where ventil_id = :pVentilID "; NxParameterCollection np = new NxParameterCollection(); np.Add("pVentilID", ventilID); string errText = ""; DataTable dt = cdb.getData(sSql, ref errText, np); int errCode = -100; if (errText == "" && dt.Rows.Count == 0) { errText = "Felaktigt ventilID"; errCode = 0; } if (errText != "") { if (errText.Length > 2000) { errText = errText.Substring(1, 2000); } vr.ErrCode = errCode; vr.ErrMessage = errText; return(vr); } DataRow dr = dt.Rows[0]; vr.VentilID = dr["ventil_id"].ToString(); vr.VentilkatID = Convert.ToInt16(dr["ventilkategori"]); vr.Ventilkategori = dr["ventilkategori_namn"].ToString(); vr.KundID = dr["kund_id"].ToString(); vr.Position = dr["position"].ToString(); vr.Fabrikat = dr["fabrikat"].ToString(); vr.Ventiltyp = dr["ventiltyp"].ToString(); vr.IdNr = dr["id_nr"].ToString(); vr.Pn = dr["pn"].ToString(); vr.Pn2 = dr["pn2"].ToString(); vr.Dn = dr["dn"].ToString(); vr.Dn2 = dr["dn2"].ToString(); if (dr["oppningstryck"] == DBNull.Value) { vr.Oppningstryck = 0; } else { vr.Oppningstryck = Convert.ToDecimal(dr["oppningstryck"]); } vr.Stalldonstyp = dr["stalldonstyp"].ToString(); vr.StalldonIDNr = dr["stalldon_id_nr"].ToString(); vr.StalldonFabrikat = dr["stalldon_fabrikat"].ToString(); vr.StalldonArtnr = dr["stalldon_artnr"].ToString(); vr.Lagesstallartyp = dr["lagesstallartyp"].ToString(); vr.LagesstallIDNr = dr["lagesstall_id_nr"].ToString(); vr.LagesstallFabrikat = dr["lagesstall_fabrikat"].ToString(); vr.Avdelning = dr["avdelning"].ToString(); vr.Plan = dr["plan"].ToString(); vr.Rum = dr["rum"].ToString(); vr.Anlaggningsnr = dr["anlaggningsnr"].ToString(); // 2017-09-25 KJBO if (dr["insideDiameter"] == DBNull.Value) { vr.insideDiameter = 0; } else { vr.insideDiameter = Convert.ToDecimal(dr["insideDiameter"]); } if (dr["outsideDiameter"] == DBNull.Value) { vr.outsideDiameter = 0; } else { vr.outsideDiameter = Convert.ToDecimal(dr["outsideDiameter"]); } vr.ErrCode = 0; vr.ErrMessage = ""; return(vr); }