public HttpResponseMessage SaveUpdateQAMasterDetail(object[] data) { vmFinishingInspactionDetail Master = JsonConvert.DeserializeObject <vmFinishingInspactionDetail>(data[0].ToString()); List <vmFinishingInspactionDetail> Detail = JsonConvert.DeserializeObject <List <vmFinishingInspactionDetail> >(data[1].ToString()); vmCmnParameters objcmnParam = JsonConvert.DeserializeObject <vmCmnParameters>(data[2].ToString()); string result = string.Empty; try { result = _iQmgt.SaveUpdateQAMasterDetail(Master, Detail, objcmnParam); } catch (Exception e) { e.ToString(); result = ""; } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public string SaveUpdateQAMasterDetail(vmFinishingInspactionDetail Master, List <vmFinishingInspactionDetail> Detail, vmCmnParameters objcmnParam) { string result = string.Empty; using (var transaction = new TransactionScope()) { //*********************************************Start Initialize Variable***************************************** long MasterId = 0, DetailId = 0, FirstDigit = 0, OtherDigits = 0; string CustomNo = string.Empty, QANo = string.Empty; //***************************************End Initialize Variable************************************************* //**************************Start Initialize Generic Repository Based on table*********************************** GenericFactory_PrdFinishingQAMaster_EF = new PrdFinishingQAMaster_EF(); GenericFactory_PrdFinishingQADetail_EF = new PrdFinishingQADetail_EF(); //****************************End Initialize Generic Repository Based on table*********************************** //**********************************Start Create Related Table Instance to Save********************************** var MasterItem = new PrdFinishingQAMaster(); var DetailItem = new List <PrdFinishingQADetail>(); //************************************End Create Related Table Instance to Save********************************** //*************************************Start Create Model Instance to get Data*********************************** vmFinishingInspactionDetail item = new vmFinishingInspactionDetail(); //***************************************End Create Model Instance to get Data*********************************** //**************************************************Start Main Operation************************************************ if (Detail.Count > 0) { try { if (Master.QAID == 0) { //***************************************************Start Save Operation************************************************ //**********************************************Start Generate Master & Detail ID**************************************** MasterId = Convert.ToInt16(GenericFactory_PrdFinishingQAMaster_EF.getMaxID("PrdFinishingQAMaster")); DetailId = Convert.ToInt64(GenericFactory_PrdFinishingQADetail_EF.getMaxID("PrdFinishingQADetail")); FirstDigit = Convert.ToInt64(DetailId.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1)); //***********************************************End Generate Master & Detail ID***************************************** CustomNo = GenericFactory_PrdFinishingQAMaster_EF.getCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, 1, 1); if (CustomNo == null || CustomNo == "") { QANo = MasterId.ToString(); } else { QANo = CustomNo; } MasterItem = new PrdFinishingQAMaster { QAID = MasterId, QANo = QANo, ItemID = (long)Master.ItemID, QADate = (DateTime)Master.QADate, FromDate = Master.FromDate, ToDate = Master.ToDate, Remarks = Master.Remarks, QATypeID = objcmnParam.tTypeId, IsDeleted = false, CompanyID = objcmnParam.loggedCompany, CreateBy = objcmnParam.loggeduser, CreateOn = DateTime.Now, CreatePc = HostService.GetIP() }; for (int i = 0; i < Detail.Count; i++) { item = Detail[i]; var Detailitem = new PrdFinishingQADetail { QADetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits), QAID = MasterId, InspactionDateilID = (long)item.InspactionDateilID, InspactionID = (long)item.InspactionID, LPercent = item.LPercent, WPercent = item.WPercent, GradeID = item.ItemGradeID, IsNotDeliverable = item.IsNotDeliverable, Remarks = item.Remarks, CompanyID = objcmnParam.loggedCompany, CreateBy = objcmnParam.loggeduser, CreateOn = DateTime.Now, CreatePc = HostService.GetIP(), IsDeleted = false }; DetailItem.Add(Detailitem); OtherDigits++; } //***************************************************End Save Operation************************************************ } else { //***********************************Start Get Data From Related Table to Update********************************* var MasterAll = GenericFactory_PrdFinishingQAMaster_EF.GetAll().Where(x => x.QAID == Master.QAID && x.CompanyID == objcmnParam.loggedCompany); var DetailAll = GenericFactory_PrdFinishingQADetail_EF.GetAll().Where(x => x.QAID == Master.QAID && x.CompanyID == objcmnParam.loggedCompany).ToList(); //*************************************End Get Data From Related Table to Update********************************* //***************************************************Start Update Operation******************************************** MasterItem = MasterAll.First(x => x.QAID == Master.QAID); MasterItem.QADate = (DateTime)Master.QADate; MasterItem.ItemID = (long)Master.ItemID; MasterItem.FromDate = Master.FromDate; MasterItem.ToDate = Master.ToDate; MasterItem.Remarks = Master.Remarks; MasterItem.QATypeID = objcmnParam.tTypeId; MasterItem.CompanyID = objcmnParam.loggedCompany; MasterItem.UpdateBy = objcmnParam.loggeduser; MasterItem.UpdateOn = DateTime.Now; MasterItem.UpdatePc = HostService.GetIP(); MasterItem.IsDeleted = false; for (int i = 0; i < Detail.Count; i++) { item = Detail[i]; foreach (PrdFinishingQADetail d in DetailAll.Where(d => d.QAID == Master.QAID && d.QADetailID == item.QADetailID)) { d.InspactionDateilID = (long)item.InspactionDateilID; d.InspactionID = (long)item.InspactionID; d.LPercent = item.LPercent; d.WPercent = item.WPercent; d.GradeID = item.ItemGradeID; d.IsNotDeliverable = item.IsNotDeliverable; d.Remarks = item.Remarks; d.CompanyID = objcmnParam.loggedCompany; d.UpdateBy = objcmnParam.loggeduser; d.UpdateOn = DateTime.Now; d.UpdatePc = HostService.GetIP(); d.IsDeleted = false; DetailItem.Add(d); break; } } //***************************************************End Update Operation******************************************** } if (Master.QAID > 0) { //***************************************************Start Update************************************************ if (MasterItem != null) { GenericFactory_PrdFinishingQAMaster_EF.Update(MasterItem); GenericFactory_PrdFinishingQAMaster_EF.Save(); } if (DetailItem != null && DetailItem.Count != 0) { GenericFactory_PrdFinishingQADetail_EF.UpdateList(DetailItem.ToList()); GenericFactory_PrdFinishingQADetail_EF.Save(); } //***************************************************End Update************************************************ } else { //***************************************************Start Save************************************************ if (MasterItem != null) { GenericFactory_PrdFinishingQAMaster_EF.Insert(MasterItem); GenericFactory_PrdFinishingQAMaster_EF.Save(); GenericFactory_PrdFinishingQAMaster_EF.updateMaxID("PrdFinishingQAMaster", Convert.ToInt64(MasterId)); } if (DetailItem != null && DetailItem.Count != 0) { GenericFactory_PrdFinishingQADetail_EF.InsertList(DetailItem.ToList()); GenericFactory_PrdFinishingQADetail_EF.Save(); GenericFactory_PrdFinishingQADetail_EF.updateMaxID("PrdFinishingQADetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1))); } //******************************************************End Save************************************************ } transaction.Complete(); result = MasterItem.QANo; } catch (Exception e) { e.ToString(); result = ""; } } else { result = ""; } } return(result); //**************************************************End Main Operation************************************************ }
public string SaveUpdateFebricInspection(PrdFinishingInspactionMaster Master, List <vmFinishingInspactionDetail> Detail, vmCmnParameters objcmnParam) { string result = string.Empty; using (var transaction = new TransactionScope()) { //*********************************************Start Initialize Variable***************************************** long MasterId = 0, DetailId = 0, FirstDigit = 0, OtherDigits = 0; string CustomNo = string.Empty, InspactionNo = string.Empty; //***************************************End Initialize Variable************************************************* //**************************Start Initialize Generic Repository Based on table*********************************** GenericFactory_EFFinishingInspactionMaster = new PrdFinishingInspactionMaster_EF(); GenericFactory_EFFinishingInspactionDetails = new PrdFinishingInspactionDetail_EF(); //****************************End Initialize Generic Repository Based on table*********************************** //**********************************Start Create Related Table Instance to Save********************************** var MasterItem = new PrdFinishingInspactionMaster(); var DetailItem = new List <PrdFinishingInspactionDetail>(); var DetailItems = new List <PrdFinishingInspactionDetail>(); //************************************End Create Related Table Instance to Save********************************** //*************************************Start Create Model Instance to get Data*********************************** vmFinishingInspactionDetail item = new vmFinishingInspactionDetail(); vmFinishingInspactionDetail items = new vmFinishingInspactionDetail(); PrdFinishingInspactionDetail itemdel = new PrdFinishingInspactionDetail(); //***************************************End Create Model Instance to get Data*********************************** var SDetail = Detail.Where(x => x.InspactionID == 0).ToList(); var UDetail = Detail.Where(x => x.InspactionID != 0).ToList(); //**************************************************Start Main Operation************************************************ if (Detail.Count > 0) { try { if (Master.InspactionID == 0) { //***************************************************Start Save Operation************************************************ //**********************************************Start Generate Master & Detail ID**************************************** MasterId = Convert.ToInt16(GenericFactory_EFFinishingInspactionMaster.getMaxID("PrdFinishingInspactionMaster")); DetailId = Convert.ToInt64(GenericFactory_EFFinishingInspactionDetails.getMaxID("PrdFinishingInspactionDetail")); FirstDigit = Convert.ToInt64(DetailId.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1)); //***********************************************End Generate Master & Detail ID***************************************** CustomNo = GenericFactory_EFFinishingInspactionMaster.getCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, 1, 1); if (CustomNo == null || CustomNo == "") { InspactionNo = MasterId.ToString(); } else { InspactionNo = CustomNo; } MasterItem = new PrdFinishingInspactionMaster { InspactionID = MasterId, InspactionNo = InspactionNo, FinishingMRRID = Master.FinishingMRRID, ItemID = Master.ItemID, SetID = Master.SetID, WeivingMRRID = Master.WeivingMRRID, SizeMRRID = Master.SizeMRRID, MachineConfigID = Master.MachineConfigID, ShiftID = Master.ShiftID, PlateID = Master.PlateID, OperatorID = Master.OperatorID, Date = Master.Date, Remarks = Master.Remarks, IsQAComplete = false, IsDeleted = false, CompanyID = objcmnParam.loggedCompany, CreateBy = objcmnParam.loggeduser, CreateOn = DateTime.Now, CreatePc = HostService.GetIP() }; for (int i = 0; i < Detail.Count; i++) { item = Detail[i]; var Detailitem = new PrdFinishingInspactionDetail { InspactionDateilID = Convert.ToInt64(FirstDigit + "" + OtherDigits), InspactionID = MasterId, BeamNo = item.BeamNo, RollNo = item.RollNo, Length = item.GreigeLength, UnitID = item.UnitID, Piece = item.Piece, DefecetPointID = item.DefectPoint, GrossWeight = item.GrossWt, NetWeight = item.NetWt, Remarks = item.Remarks, CompanyID = objcmnParam.loggedCompany, CreateBy = objcmnParam.loggeduser, CreateOn = DateTime.Now, CreatePc = HostService.GetIP(), IsDeleted = false }; DetailItem.Add(Detailitem); OtherDigits++; } //***************************************************End Save Operation************************************************ } else { //***********************************Start Get Data From Related Table to Update********************************* var MasterAll = GenericFactory_EFFinishingInspactionMaster.GetAll().Where(x => x.InspactionID == Master.InspactionID && x.CompanyID == objcmnParam.loggedCompany); var DetailAll = GenericFactory_EFFinishingInspactionDetails.GetAll().Where(x => x.InspactionID == Master.InspactionID && x.CompanyID == objcmnParam.loggedCompany).ToList(); //*************************************End Get Data From Related Table to Update********************************* //***************************************************Start Update Operation******************************************** MasterItem = MasterAll.First(x => x.InspactionID == Master.InspactionID); MasterItem.FinishingMRRID = Master.FinishingMRRID; MasterItem.ItemID = Master.ItemID; MasterItem.SetID = Master.SetID; MasterItem.WeivingMRRID = Master.WeivingMRRID; MasterItem.SizeMRRID = Master.SizeMRRID; MasterItem.MachineConfigID = Master.MachineConfigID; MasterItem.ShiftID = Master.ShiftID; MasterItem.PlateID = Master.PlateID; MasterItem.OperatorID = Master.OperatorID; MasterItem.Date = Master.Date; MasterItem.Remarks = Master.Remarks; MasterItem.CompanyID = objcmnParam.loggedCompany; MasterItem.UpdateBy = objcmnParam.loggeduser; MasterItem.UpdateOn = DateTime.Now; MasterItem.UpdatePc = HostService.GetIP(); MasterItem.IsDeleted = false; for (int i = 0; i < UDetail.Count; i++) { item = UDetail[i]; foreach (PrdFinishingInspactionDetail d in DetailAll.Where(d => d.InspactionID == Master.InspactionID && d.InspactionDateilID == item.InspactionDateilID)) { d.BeamNo = item.BeamNo; d.RollNo = item.RollNo; d.Length = item.GreigeLength; d.UnitID = item.UnitID; d.Piece = item.Piece; d.DefecetPointID = item.DefectPoint; d.GrossWeight = item.GrossWt; d.NetWeight = item.NetWt; d.Remarks = item.Remarks; d.CompanyID = objcmnParam.loggedCompany; d.UpdateBy = objcmnParam.loggeduser; d.UpdateOn = DateTime.Now; d.UpdatePc = HostService.GetIP(); d.IsDeleted = false; DetailItem.Add(d); break; } } if (SDetail != null && SDetail.Count != 0) { for (int i = 0; i < SDetail.Count; i++) { item = SDetail[i]; DetailId = Convert.ToInt64(GenericFactory_EFFinishingInspactionDetails.getMaxID("PrdFinishingInspactionDetail")); FirstDigit = Convert.ToInt64(DetailId.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1)); var Detailitems = new PrdFinishingInspactionDetail { InspactionDateilID = Convert.ToInt64(FirstDigit + "" + OtherDigits), InspactionID = Master.InspactionID, BeamNo = item.BeamNo, RollNo = item.RollNo, Length = item.GreigeLength, UnitID = item.UnitID, Piece = item.Piece, DefecetPointID = item.DefectPoint, GrossWeight = item.GrossWt, NetWeight = item.NetWt, Remarks = item.Remarks, CompanyID = objcmnParam.loggedCompany, CreateBy = objcmnParam.loggeduser, CreateOn = DateTime.Now, CreatePc = HostService.GetIP(), IsDeleted = false }; DetailItems.Add(Detailitems); GenericFactory_EFFinishingInspactionDetails.updateMaxID("PrdFinishingInspactionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits))); } } if (UDetail.Count < DetailAll.Count()) { for (int i = 0; i < DetailAll.Count(); i++) { itemdel = DetailAll[i]; var delDetail = (from del in DetailItem.Where(x => x.InspactionDateilID == itemdel.InspactionDateilID) select del.InspactionDateilID).FirstOrDefault(); if (delDetail != itemdel.InspactionDateilID) { var tem = DetailAll.FirstOrDefault(d => d.InspactionID == Master.InspactionID && d.InspactionDateilID == itemdel.InspactionDateilID); tem.CompanyID = objcmnParam.loggedCompany; tem.DeleteBy = objcmnParam.loggeduser; tem.DeleteOn = DateTime.Now; tem.DeletePc = HostService.GetIP(); tem.IsDeleted = true; DetailItem.Add(tem); } } } //***************************************************End Update Operation******************************************** } if (Master.InspactionID > 0) { //***************************************************Start Update************************************************ if (MasterItem != null) { GenericFactory_EFFinishingInspactionMaster.Update(MasterItem); GenericFactory_EFFinishingInspactionMaster.Save(); } if (DetailItem != null && DetailItem.Count != 0) { GenericFactory_EFFinishingInspactionDetails.UpdateList(DetailItem.ToList()); GenericFactory_EFFinishingInspactionDetails.Save(); } if (DetailItems != null && DetailItems.Count != 0) { GenericFactory_EFFinishingInspactionDetails.InsertList(DetailItems.ToList()); GenericFactory_EFFinishingInspactionDetails.Save(); } //***************************************************End Update************************************************ } else { //***************************************************Start Save************************************************ if (MasterItem != null) { GenericFactory_EFFinishingInspactionMaster.Insert(MasterItem); GenericFactory_EFFinishingInspactionMaster.Save(); GenericFactory_EFFinishingInspactionMaster.updateMaxID("PrdFinishingInspactionMaster", Convert.ToInt64(MasterId)); } if (DetailItem != null && DetailItem.Count != 0) { GenericFactory_EFFinishingInspactionDetails.InsertList(DetailItem.ToList()); GenericFactory_EFFinishingInspactionDetails.Save(); GenericFactory_EFFinishingInspactionDetails.updateMaxID("PrdFinishingInspactionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1))); } //******************************************************End Save************************************************ } transaction.Complete(); result = MasterItem.InspactionNo; } catch (Exception e) { e.ToString(); result = ""; } } else { result = ""; } } return(result); //**************************************************End Main Operation************************************************ }