/// <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> /// Saves reusable material /// Returns the new created or changed material object /// If an error occurs than that error will be returned /// </summary> /// <param name="ident"></param> /// <param name="reuseMat"></param> /// <returns></returns> /// 2018-08-31 KJBO public gReuseMatCL saveReuseMaterial(string ident, gReuseMatCL reuseMat) { gReuseMatCL reuseMatRet = new gReuseMatCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { reuseMatRet.ErrCode = -10; reuseMatRet.ErrMessage = "Ogiltigt login"; return(reuseMatRet); } if (reuseMat.minDiam <= 0 || reuseMat.minDiam > 1500) { reuseMatRet.ErrCode = -1; reuseMatRet.ErrMessage = "Minsta diameter måste vara större än 0 och mindre än 1500 mm."; return(reuseMatRet); } if (reuseMat.reusePercentage < 0 || reuseMat.reusePercentage >= 100) { reuseMatRet.ErrCode = -1; reuseMatRet.ErrMessage = "Återanvändbar procent måste vara större än 0 och mindre än 100"; return(reuseMatRet); } string sSql = ""; if (reuseMat.reuseMatId == 0) { sSql = getInsertSQL(); } else { sSql = getUpdateSQL(); } ReparatorCL rep = cr.getReparator(ident); NxParameterCollection pc = setParameters(reuseMat, rep); string errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, pc); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } reuseMatRet.ErrCode = -100; reuseMatRet.ErrMessage = errTxt; return(reuseMatRet); } if (reuseMat.reuseMatId == 0) { reuseMat.reuseMatId = getLastID(); } List <gReuseMatCL> list = getReuseMaterial(ident, reuseMat.reuseMatId); if (list.Count == 0) { reuseMatRet.ErrCode = -101; reuseMatRet.ErrMessage = "Can not retrieve the current reuseMaterial"; return(reuseMatRet); } return(list[0]); }
/// <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]); }
public OrderArtCL checkoutOrderArt(OrderArtCL oa, string id, bool acceptGodkand) { ExportToPyramid.CExportToPyramid pyExport = new ExportToPyramid.CExportToPyramid(); string exportErr = pyExport.checkPyramidAPIAvailable(); if (exportErr != "") { OrderArtCL oacl = new OrderArtCL(); oacl.ErrCode = -18250; oacl.ErrMessage = exportErr; return(oacl); } ReparatorCL rep = null; if (id == "") { rep = new ReparatorCL(); rep.AnvID = "Pyramid"; } else { CReparator cr = new CReparator(); rep = cr.getReparator(id); } // 2018-04-23 KJBO // Special handling due to gui limitations //if (oa.OrderArtId != 0 && oa.Artnr == null) //{ // oa.Artnr = getArtnrForOrderArt(oa.OrderArtId); //} if (oa.VartOrdernr == "") { OrderArtCL oaRet = new OrderArtCL(); oaRet.ErrCode = -103; oaRet.ErrMessage = "Ordernummer måste anges"; return(oaRet); } if (oa.Artnr == "") { OrderArtCL oaRet = new OrderArtCL(); oaRet.ErrCode = -104; oaRet.ErrMessage = "Artikelnummer måste anges"; return(oaRet); } string errTxt = ""; int rc = validateOa(oa, ref errTxt); if (rc == -1) { OrderArtCL oaRet = new OrderArtCL(); oaRet.ErrCode = -106; oaRet.ErrMessage = "Felaktigt ordernr"; return(oaRet); } if (rc == -2) { OrderArtCL oaRet = new OrderArtCL(); oaRet.ErrCode = -107; if (errTxt == "") { oaRet.ErrMessage = "Felaktigt ordernr"; } else { oaRet.ErrMessage = errTxt; } return(oaRet); } if (!acceptGodkand) { if (rc == -3) { OrderArtCL oaRet = new OrderArtCL(); oaRet.ErrCode = -108; if (errTxt == "") { oaRet.ErrMessage = "Ordern är godkänd. Ändringar ej tillåtna"; } else { oaRet.ErrMessage = errTxt; } return(oaRet); } } string sSql = ""; // 2018-04-30 KJBO if (oa.OrderArtId == 0) { decimal toBeAdded = 0; oa.OrderArtId = reuseOrderArtId(oa, ref toBeAdded); if (oa.OrderArtId != 0) { oa.CoAntal += toBeAdded; } } if (oa.OrderArtId == 0) { sSql = getOaInsertSql(); } else { sSql = getOaUpdateSql(); } NxParameterCollection pc = new NxParameterCollection(); setOaParameters(pc, oa, oa.OrderArtId == 0, rep.AnvID); int li_rc = cdb.updateData(sSql, ref errTxt, pc); if (errTxt != "") { OrderArtCL oaRet = new OrderArtCL(); if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } oaRet.ErrCode = -100; oaRet.ErrMessage = errTxt; return(oaRet); } if (oa.OrderArtId == 0) { sSql = "SELECT MAX(orderArtId) orderArtId FROM orderArt "; DataTable dt = cdb.getData(sSql, ref errTxt); if (errTxt != "") { OrderArtCL oaRet = new OrderArtCL(); if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } oaRet.ErrCode = -100; oaRet.ErrMessage = errTxt; return(oaRet); } oa.OrderArtId = Convert.ToInt32(dt.Rows[0][0]); } List <OrderArtCL> oaList = getOrderArt(oa.OrderArtId, ""); if (oaList.Count != 1) { OrderArtCL oaRet = new OrderArtCL(); if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } oaRet.ErrCode = -110; oaRet.ErrMessage = "Error when retrieving orderArt"; return(oaRet); } ErrorCL errCl = pyExport.reserveArticle(oaList[0].OrderArtId); //pyExport.retryAllOrders(); return(oaList[0]); }
/// <summary> /// Reset export all Pyramid export /// settings for an order /// </summary> /// <param name="aVart_ordernr"></param> /// <param name="ident"></param> /// <returns>ErrorCL</returns> /// 2018-11-02 KJBO public ErrorCL resetExport(string aVart_ordernr, string ident) { ErrorCL err = new ErrorCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { err.ErrCode = -10; err.ErrMessage = "Ogiltigt login"; return(err); } ReparatorCL reparator = cr.getReparator(ident); vart_ordernr = aVart_ordernr; err = resendServHuv(ident); if (err.ErrCode != 0) { return(err); } err.ErrMessage = resetOrderArt(); if (err.ErrMessage != "") { err.ErrCode = -36102; return(err); } err.ErrMessage = resetReservdel(); if (err.ErrMessage != "") { err.ErrCode = -36103; return(err); } err.ErrMessage = resetServHuvRepTid(); if (err.ErrMessage != "") { err.ErrCode = -36104; return(err); } err.ErrMessage = resetServRadRepTid(); if (err.ErrMessage != "") { err.ErrCode = -36105; return(err); } // 2018-12-03 KJBO err.ErrMessage = pyrExp.resetPyramidExport(vart_ordernr); if (err.ErrMessage != "") { err.ErrCode = -36106; return(err); } pyrExp.addToPyramidChange(vart_ordernr, reparator.AnvID, 3); return(err); }
/// <summary> /// Saves a material thickness to the database. /// If an error occurs then the return object (of type gMaterialThicknCL) /// will have error information /// </summary> /// <param name="ident"></param> /// <param name="thickn"></param> /// <returns></returns> /// 2018-08-16 KJBO public gMaterialThicknCL saveMaterialThickness(string ident, gMaterialThicknCL thickn) { gMaterialThicknCL thicknRet = new gMaterialThicknCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { thicknRet.ErrCode = -10; thicknRet.ErrMessage = "Ogiltigt login"; return(thicknRet); } if (thickn.materialSizeId <= 0) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Materialstorlek måste väljas"; return(thicknRet); } if (thickn.description == "") { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Beskrivning måste anges"; return(thicknRet); } if (thickn.thicknShort == "") { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Kortbeskrivning måste anges"; return(thicknRet); } if (thickn.thickness <= 0 || thickn.thickness > 100) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Tjocklek måste vara större än 0 och mindre än 100 mm "; return(thicknRet); } if (thickn.buyPrice <= 0 || thickn.buyPrice > 100000) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Inköpspris felaktigt angivet"; return(thicknRet); } if (thickn.sellPrice <= 0 || thickn.sellPrice > 1000000) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Försäljningspris felaktigt angivet"; return(thicknRet); } if (thickn.sellPrice < thickn.buyPrice) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Försäljningspris bör vara större än inköpspris"; return(thicknRet); } if (thickn.cuttingTime <= 0 || thickn.cuttingTime > 100) { thicknRet.ErrCode = -1; thicknRet.ErrMessage = "Skärtid bör vara större än 0 men mindre än 100 m/minut"; return(thicknRet); } string errTxt = ""; int rc = validateData(thickn, ref errTxt); // Check if database error occurs when checkin unique value if (errTxt != "") { thicknRet.ErrCode = -100; if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } thicknRet.ErrMessage = "Fel vid kontroll av data. Felbeskrivning : " + errTxt; return(thicknRet); } string sSql = ""; if (thickn.materialThicknId == 0) { sSql = getInsertSql(); } else { sSql = getUpdateSql(); } NxParameterCollection np = new NxParameterCollection(); ReparatorCL rep = cr.getReparator(ident); setParameters(np, thickn, rep); errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, np); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } thicknRet.ErrCode = -100; thicknRet.ErrMessage = errTxt; return(thicknRet); } if (thickn.materialThicknId == 0) { thickn.materialThicknId = getLastId(); } List <gMaterialThicknCL> thicknList = getMaterialThickn(ident, thickn.materialThicknId); return(thicknList[0]); }
/// <summary> /// Saves a working cost. /// Will return the saved item with the /// new value in workingCostId field (if this is a new item) /// </summary> /// <param name="ident"></param> /// <param name="wc"></param> /// <returns></returns> /// 2018-08-17 KJBO public gWorkingCostCL saveWorkingCost(string ident, gWorkingCostCL wc) { gWorkingCostCL wcReturn = new gWorkingCostCL(); wcReturn.ErrCode = 0; wcReturn.ErrMessage = ""; CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { wcReturn.ErrCode = -10; wcReturn.ErrMessage = "Ogiltigt login"; return(wcReturn); } if (wc.cuttingHourNet <= 0 || wc.cuttingHourNet > 100000) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timdebitering skärtid netto utanför marginalen"; return(wcReturn);; } if (wc.cuttingHourSales <= 0 || wc.cuttingHourSales > 100000) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timdebitering skärtid brutto utanför marginalen"; return(wcReturn);; } if (wc.cuttingHourNet > wc.cuttingHourSales) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timdebitering skärtid nettopris är lägre än bruttopris"; return(wcReturn);; } if (wc.handlingHourNet < 0 || wc.handlingHourNet > 100000) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timpris hantering netto utanför marginalen"; return(wcReturn);; } if (wc.handlingHourSales < 0 || wc.handlingHourSales > 100000) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timpris hantering brutto utanför marginalen"; return(wcReturn);; } if (wc.handlingHourNet > wc.handlingHourSales) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Timpris plocktid netto är högre än brutto"; return(wcReturn);; } if (wc.cuttingMargin < 0 || wc.cuttingMargin > 1000) { wcReturn.ErrCode = -1; wcReturn.ErrMessage = "Skärmarginal utanför gränsvärdet"; return(wcReturn);; } string sSql = ""; if (wc.workingCostId == 0) { sSql = getInsertSql(); } else { sSql = getUpdateSql(); } NxParameterCollection np = new NxParameterCollection(); ReparatorCL rep = cr.getReparator(ident); setParameters(np, wc, rep); string errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, np); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } wcReturn.ErrCode = -100; wcReturn.ErrMessage = errTxt; return(wcReturn);; } return(getWorkingCosts(ident)); }
/// <summary> /// Validates and saves material size to the database /// </summary> /// <param name="ident"></param> /// <param name="matSize"></param> /// <returns></returns> /// 2018-08-16 KJBO public gMaterialSizeCL saveMaterialSize(string ident, gMaterialSizeCL matSize) { gMaterialSizeCL matSizeRet = new gMaterialSizeCL(); CReparator cr = new CReparator(); int identOK = cr.checkIdent(ident); if (identOK == -1) { matSizeRet.ErrCode = -10; matSizeRet.ErrMessage = "Ogiltigt login"; return(matSizeRet); } if (matSize.description == "") { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Beskrivning måste anges"; return(matSizeRet); } if (matSize.materialId <= 0) { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Välj material"; return(matSizeRet); } if (matSize.sizeShort == "") { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Kortbeskrivning måste anges"; return(matSizeRet); } if (matSize.materialLength <= 0) { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Materiallängd måste vara större an 0"; return(matSizeRet); } if (matSize.materialWidth <= 0) { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Materialbredd måste vara större an 0"; return(matSizeRet); } string errTxt = ""; int rc = validateData(matSize, ref errTxt); // Check if database error occurs when checkin unique value if (errTxt != "") { matSizeRet.ErrCode = -100; if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } matSizeRet.ErrMessage = "Fel vid kontroll av data. Felbeskrivning : " + errTxt; return(matSizeRet); } // If the current short description already exists if (rc == -1) { matSizeRet.ErrCode = -1; matSizeRet.ErrMessage = "Kortbeskrivning måste vara unik"; return(matSizeRet); } string sSql = ""; if (matSize.materialSizeId == 0) { sSql = getInsertSql(); } else { sSql = getUpdateSql(); } NxParameterCollection np = new NxParameterCollection(); ReparatorCL rep = cr.getReparator(ident); setParameters(np, matSize, rep); errTxt = ""; int iRc = cdb.updateData(sSql, ref errTxt, np); if (errTxt != "") { if (errTxt.Length > 2000) { errTxt = errTxt.Substring(1, 2000); } matSizeRet.ErrCode = -100; matSizeRet.ErrMessage = errTxt; return(matSizeRet); } if (matSize.materialSizeId == 0) { matSize.materialSizeId = getLastId(); } List <gMaterialSizeCL> matList = getMaterialSize(ident, matSize.materialSizeId); return(matList[0]); }