public HttpResponseMessage SaveNUpdateBOM(object[] data) { string result = ""; try { PrdBOMMaster objPrdBOMMaster = JsonConvert.DeserializeObject <PrdBOMMaster>(data[0].ToString()); int menuID = Convert.ToInt16(data[1]); List <PrdBOMDying> lstPrdBOMDying = JsonConvert.DeserializeObject <List <PrdBOMDying> >(data[2].ToString()); List <PrdBOMSize> lstPrdBOMSize = JsonConvert.DeserializeObject <List <PrdBOMSize> >(data[3].ToString()); if (ModelState.IsValid && objPrdBOMMaster != null && objPrdBOMMaster.BOMDate.ToString() != "" && menuID != 0) { result = objBillOfMaterial.SaveNUpdateBOM(objPrdBOMMaster, lstPrdBOMDying, lstPrdBOMSize, menuID); } else { result = ""; } } catch (Exception e) { e.ToString(); result = ""; } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public string DeleteBOM(vmCmnParameters objcmnParam, Int64 bomID) { _ctxCmn = new ERP_Entities(); string result = ""; if (bomID > 0) { using (TransactionScope transaction = new TransactionScope()) { try { // Int64 bomID = objPrdBOMMaster.BOMID; IEnumerable <PrdBOMMaster> lstPrdBOMMaster = (from qcm in _ctxCmn.PrdBOMMasters.Where(m => m.BOMID == bomID && m.CompanyID == objcmnParam.loggedCompany) select qcm).ToList(); PrdBOMMaster objBOMMaster = new PrdBOMMaster(); foreach (PrdBOMMaster bms in lstPrdBOMMaster) { bms.DeleteBy = objcmnParam.loggeduser; bms.DeleteOn = DateTime.Now; bms.DeletePc = HostService.GetIP(); bms.IsDeleted = true; objBOMMaster = bms; } List <PrdBOMDying> lstPrdBOMDying = (from alD in _ctxCmn.PrdBOMDyings.Where(m => m.BOMID == bomID && m.CompanyID == objcmnParam.loggedCompany) select alD).ToList(); List <PrdBOMDying> lstBOMDying = new List <PrdBOMDying>(); foreach (PrdBOMDying qcdt in lstPrdBOMDying) { PrdBOMDying objDyingDetail = (from qcdetl in _ctxCmn.PrdBOMDyings.Where(m => m.BOMDyingID == qcdt.BOMDyingID) select qcdetl).FirstOrDefault(); objDyingDetail.DeleteBy = objcmnParam.loggeduser; objDyingDetail.DeleteOn = DateTime.Now; objDyingDetail.DeletePc = HostService.GetIP(); objDyingDetail.IsDeleted = true; lstBOMDying.Add(objDyingDetail); } List <PrdBOMSize> lstPrdBOMSize = (from als in _ctxCmn.PrdBOMSizes.Where(m => m.BOMID == bomID && m.CompanyID == objcmnParam.loggedCompany) select als).ToList(); List <PrdBOMSize> lstBOMSize = new List <PrdBOMSize>(); foreach (PrdBOMSize qsiz in lstPrdBOMSize) { PrdBOMSize objSizeDetail = (from qszdetl in _ctxCmn.PrdBOMSizes.Where(m => m.BOMSizeID == qsiz.BOMSizeID) select qszdetl).FirstOrDefault(); objSizeDetail.DeleteBy = objcmnParam.loggeduser; objSizeDetail.DeleteOn = DateTime.Now; objSizeDetail.DeletePc = HostService.GetIP(); objSizeDetail.IsDeleted = true; lstBOMSize.Add(objSizeDetail); } _ctxCmn.SaveChanges(); transaction.Complete(); result = lstPrdBOMMaster.FirstOrDefault().BOMNO.ToString(); } catch (Exception e) { e.ToString(); result = ""; } } } return(result); }
public string SaveNUpdateBOM(PrdBOMMaster objPrdBOMMaster, List <PrdBOMDying> lstPrdBOMDying, List <PrdBOMSize> lstPrdBOMSize, int menuID) { _ctxCmn = new ERP_Entities(); GenericFactory_EF_CmnCombo = new CmnCombo_EF(); string result = ""; if (objPrdBOMMaster.BOMID > 0) { using (TransactionScope transaction = new TransactionScope()) { try { Int64 bomID = objPrdBOMMaster.BOMID; IEnumerable <PrdBOMMaster> lstPrdBOMMaster = (from qcm in _ctxCmn.PrdBOMMasters.Where(m => m.BOMID == bomID && m.CompanyID == objPrdBOMMaster.CompanyID) select qcm).ToList(); PrdBOMMaster objBOMMaster = new PrdBOMMaster(); foreach (PrdBOMMaster bms in lstPrdBOMMaster) { bms.UpdateBy = objPrdBOMMaster.CreateBy; bms.UpdateOn = DateTime.Now; bms.UpdatePc = HostService.GetIP(); bms.BOMDate = objPrdBOMMaster.BOMDate; bms.Description = objPrdBOMMaster.Description; objBOMMaster = bms; } List <PrdBOMDying> lstBOMDying = new List <PrdBOMDying>(); List <PrdBOMDying> lstBOMDyingNewAdd = new List <PrdBOMDying>(); // for dying long FirstDigit = 0; long OtherDigits = 0; long nextDyingID = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PrdBOMDying")); FirstDigit = Convert.ToInt64(nextDyingID.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(nextDyingID.ToString().Substring(1, nextDyingID.ToString().Length - 1)); foreach (PrdBOMDying qcdt in lstPrdBOMDying) { if (qcdt.BOMDyingID > 0) { PrdBOMDying objDyingDetail = (from qcdetl in _ctxCmn.PrdBOMDyings.Where(m => m.BOMDyingID == qcdt.BOMDyingID) select qcdetl).FirstOrDefault(); objDyingDetail.UpdateBy = objPrdBOMMaster.CreateBy; objDyingDetail.UpdateOn = DateTime.Now; objDyingDetail.UpdatePc = HostService.GetIP(); objDyingDetail.Qty = qcdt.Qty; lstBOMDying.Add(objDyingDetail); } //end for new item added when update dying else if (qcdt.BOMDyingID == 0) { PrdBOMDying objDyingDetailNewAdded = new PrdBOMDying(); objDyingDetailNewAdded.BOMDyingID = Convert.ToInt64(FirstDigit + "" + OtherDigits); objDyingDetailNewAdded.BOMID = bomID;// qcdt.BOMID; objDyingDetailNewAdded.Qty = qcdt.Qty; objDyingDetailNewAdded.DyingChemicalID = qcdt.DyingChemicalID; objDyingDetailNewAdded.IsDeleted = false; objDyingDetailNewAdded.UnitID = qcdt.UnitID; objDyingDetailNewAdded.CreateBy = objPrdBOMMaster.CreateBy; objDyingDetailNewAdded.CompanyID = objPrdBOMMaster.CompanyID; objDyingDetailNewAdded.CreateOn = DateTime.Now; objDyingDetailNewAdded.CreatePc = HostService.GetIP(); lstBOMDyingNewAdd.Add(objDyingDetailNewAdded); OtherDigits++; } //star for new item added when update dying } List <PrdBOMSize> lstBOMSize = new List <PrdBOMSize>(); List <PrdBOMSize> lstBOMSizeNewAdd = new List <PrdBOMSize>(); // for Sizing long FirstDigitSizing = 0; long OtherDigitsSizing = 0; long nextSizingID = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PrdBOMSize")); FirstDigitSizing = Convert.ToInt64(nextSizingID.ToString().Substring(0, 1)); OtherDigitsSizing = Convert.ToInt64(nextSizingID.ToString().Substring(1, nextSizingID.ToString().Length - 1)); foreach (PrdBOMSize qsiz in lstPrdBOMSize) { if (qsiz.BOMSizeID > 0) { PrdBOMSize objSizeDetail = (from qszdetl in _ctxCmn.PrdBOMSizes.Where(m => m.BOMSizeID == qsiz.BOMSizeID) select qszdetl).FirstOrDefault(); objSizeDetail.UpdateBy = objPrdBOMMaster.CreateBy; objSizeDetail.UpdateOn = DateTime.Now; objSizeDetail.UpdatePc = HostService.GetIP(); objSizeDetail.Qty = qsiz.Qty; lstBOMSize.Add(objSizeDetail); } //end for new item added when update siz else if (qsiz.BOMSizeID == 0) { PrdBOMSize objSiDetailNewAdded = new PrdBOMSize(); objSiDetailNewAdded.BOMSizeID = Convert.ToInt64(FirstDigitSizing + "" + OtherDigitsSizing); objSiDetailNewAdded.BOMID = bomID; //qsiz.BOMID; objSiDetailNewAdded.Qty = qsiz.Qty; objSiDetailNewAdded.IsDeleted = false; objSiDetailNewAdded.UnitID = qsiz.UnitID; objSiDetailNewAdded.SizeChemicalID = qsiz.SizeChemicalID; objSiDetailNewAdded.CreateBy = objPrdBOMMaster.CreateBy; objSiDetailNewAdded.CompanyID = objPrdBOMMaster.CompanyID; objSiDetailNewAdded.CreateOn = DateTime.Now; objSiDetailNewAdded.CreatePc = HostService.GetIP(); lstBOMSizeNewAdd.Add(objSiDetailNewAdded); OtherDigitsSizing++; } //star for new item added when update siz } // for new add when update if (lstBOMDyingNewAdd.Count > 0) { _ctxCmn.PrdBOMDyings.AddRange(lstBOMDyingNewAdd); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("PrdBOMDying", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1))); _ctxCmn.SaveChanges(); } if (lstBOMSizeNewAdd.Count > 0) { _ctxCmn.PrdBOMSizes.AddRange(lstBOMSizeNewAdd); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("PrdBOMSize", Convert.ToInt64(FirstDigitSizing + "" + (OtherDigitsSizing - 1))); _ctxCmn.SaveChanges(); } _ctxCmn.SaveChanges(); transaction.Complete(); result = objPrdBOMMaster.BOMNO.ToString(); } catch (Exception e) { e.ToString(); result = ""; } } } else { using (TransactionScope transaction = new TransactionScope()) { try { //...........START new maxId...............// long NextId = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PrdBOMMaster")); // for dying long FirstDigit = 0; long OtherDigits = 0; long nextDyingID = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PrdBOMDying")); FirstDigit = Convert.ToInt64(nextDyingID.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(nextDyingID.ToString().Substring(1, nextDyingID.ToString().Length - 1)); // for Sizing long FirstDigitSizing = 0; long OtherDigitsSizing = 0; long nextSizingID = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PrdBOMSize")); FirstDigitSizing = Convert.ToInt64(nextSizingID.ToString().Substring(0, 1)); OtherDigitsSizing = Convert.ToInt64(nextSizingID.ToString().Substring(1, nextSizingID.ToString().Length - 1)); //..........END new maxId....................// //......... START for custom code........... // string customCode = ""; string CustomNo = GenericFactory_EF_CmnCombo.getCustomCode(menuID, objPrdBOMMaster.BOMDate ?? DateTime.Now, objPrdBOMMaster.CompanyID, 1, 1); if (CustomNo != "") { customCode = CustomNo; } else { customCode = NextId.ToString(); } //.........END for custom code............ // string newBomNo = customCode; objPrdBOMMaster.BOMID = NextId; objPrdBOMMaster.CreateOn = DateTime.Now; objPrdBOMMaster.CreatePc = HostService.GetIP(); objPrdBOMMaster.BOMNO = newBomNo; objPrdBOMMaster.IsDeleted = false; // For Dying List <PrdBOMDying> lstDyingDetail = new List <PrdBOMDying>(); foreach (PrdBOMDying sdtl in lstPrdBOMDying) { PrdBOMDying objchDetail = new PrdBOMDying(); objchDetail.BOMDyingID = Convert.ToInt64(FirstDigit + "" + OtherDigits); objchDetail.BOMID = NextId; objchDetail.Qty = sdtl.Qty; objchDetail.DyingChemicalID = sdtl.DyingChemicalID; objchDetail.IsDeleted = false; objchDetail.UnitID = sdtl.UnitID; objchDetail.CreateBy = objPrdBOMMaster.CreateBy; objchDetail.CompanyID = objPrdBOMMaster.CompanyID; objchDetail.CreateOn = DateTime.Now; objchDetail.CreatePc = HostService.GetIP(); lstDyingDetail.Add(objchDetail); OtherDigits++; } // For Sizing List <PrdBOMSize> lstSizeDetail = new List <PrdBOMSize>(); foreach (PrdBOMSize sze in lstPrdBOMSize) { PrdBOMSize objSiDetail = new PrdBOMSize(); objSiDetail.BOMSizeID = Convert.ToInt64(FirstDigitSizing + "" + OtherDigitsSizing); objSiDetail.BOMID = NextId; objSiDetail.Qty = sze.Qty; objSiDetail.IsDeleted = false; objSiDetail.UnitID = sze.UnitID; objSiDetail.SizeChemicalID = sze.SizeChemicalID; objSiDetail.CreateBy = objPrdBOMMaster.CreateBy; objSiDetail.CompanyID = objPrdBOMMaster.CompanyID; objSiDetail.CreateOn = DateTime.Now; objSiDetail.CreatePc = HostService.GetIP(); lstSizeDetail.Add(objSiDetail); OtherDigitsSizing++; } _ctxCmn.PrdBOMMasters.Add(objPrdBOMMaster); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("PrdBOMMaster", Convert.ToInt64(NextId)); //............Update CustomCode.............// GenericFactory_EF_CmnCombo.updateCustomCode(menuID, objPrdBOMMaster.BOMDate ?? DateTime.Now, objPrdBOMMaster.CompanyID, 1, 1); _ctxCmn.PrdBOMDyings.AddRange(lstDyingDetail); _ctxCmn.PrdBOMSizes.AddRange(lstSizeDetail); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("PrdBOMDying", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1))); GenericFactory_EF_CmnCombo.updateMaxID("PrdBOMSize", Convert.ToInt64(FirstDigitSizing + "" + (OtherDigitsSizing - 1))); _ctxCmn.SaveChanges(); transaction.Complete(); result = newBomNo; } catch (Exception e) { result = ""; } } } return(result); }