public HttpResponseMessage SaveUpdateChallanMasterNdetails(object[] data) { InvRChallanMaster itemMaster = JsonConvert.DeserializeObject <InvRChallanMaster>(data[0].ToString()); List <InvRChallanDetail> itemDetails = JsonConvert.DeserializeObject <List <InvRChallanDetail> >(data[1].ToString()); int menuID = Convert.ToInt16(data[2]); string result = ""; try { if (ModelState.IsValid && itemMaster != null && itemMaster.CHDate.ToString() != "" && itemDetails.Count > 0 && menuID != null) { result = objChallanService.SaveUpdateChallanMasterNdetails(itemMaster, itemDetails, menuID); } else { result = ""; } } catch (Exception e) { e.ToString(); result = ""; } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public string SaveUpdateChallanMasterNdetails(InvRChallanMaster chMaster, List <InvRChallanDetail> chDetails, int menuID) { _ctxCmn = new ERP_Entities(); GenericFactory_EF_CmnCombo = new CmnCombo_EF(); string result = ""; if (chMaster.CHID > 0) { using (TransactionScope transaction = new TransactionScope()) { try { Int64 chID = chMaster.CHID; IEnumerable <InvRChallanMaster> lstInvRChallanMaster = (from qcm in _ctxCmn.InvRChallanMasters.Where(m => m.CHID == chID) select qcm).ToList(); InvRChallanMaster objInvRChallanMaster = new InvRChallanMaster(); foreach (InvRChallanMaster qcms in lstInvRChallanMaster) { qcms.UpdateBy = chMaster.CreateBy; qcms.UpdateOn = DateTime.Now; qcms.UpdatePc = HostService.GetIP(); qcms.CHID = chMaster.CHID; qcms.CurrencyID = chMaster.CurrencyID; qcms.CompanyID = chMaster.CompanyID; qcms.CHDate = chMaster.CHDate; qcms.CHTypeID = chMaster.CHTypeID; qcms.DepartmentID = chMaster.DepartmentID; qcms.DischargePortID = chMaster.DischargePortID; qcms.IsDeleted = false; qcms.LoadingPortID = chMaster.LoadingPortID; qcms.PartyID = chMaster.PartyID; qcms.PIID = chMaster.PIID; qcms.POID = chMaster.POID; qcms.RefCHDate = chMaster.RefCHDate; qcms.RefCHNo = chMaster.RefCHNo; qcms.Remarks = chMaster.Remarks; qcms.TransactionTypeID = chMaster.TransactionTypeID; qcms.TypeID = chMaster.TypeID; objInvRChallanMaster = qcms; } List <InvRChallanDetail> lstInvRChallanDetail = new List <InvRChallanDetail>(); foreach (InvRChallanDetail qcdt in chDetails) { InvRChallanDetail objInvRChallanDetail = (from qcdetl in _ctxCmn.InvRChallanDetails.Where(m => m.CHDetailID == qcdt.CHDetailID) select qcdetl).FirstOrDefault(); //start for exist passed n reject qty // decimal? prePassedRejectQty = objInvMrrQcDetail.PassQty + objInvMrrQcDetail.RejectQty; //end for exist passed n reject qty objInvRChallanDetail.AditionalQty = qcdt.AditionalQty; objInvRChallanDetail.DisAmount = qcdt.DisAmount; objInvRChallanDetail.IsPercent = qcdt.IsPercent; objInvRChallanDetail.TotalAmount = qcdt.TotalAmount; objInvRChallanDetail.Amount = qcdt.Amount; objInvRChallanDetail.BatchID = qcdt.BatchID; objInvRChallanDetail.IsDeleted = false; objInvRChallanDetail.GrossWeight = qcdt.GrossWeight; objInvRChallanDetail.ItemID = qcdt.ItemID; objInvRChallanDetail.LotID = qcdt.LotID; objInvRChallanDetail.NetWeight = qcdt.NetWeight; objInvRChallanDetail.PackingQty = qcdt.PackingQty; objInvRChallanDetail.PackingUnitID = qcdt.PackingUnitID; objInvRChallanDetail.Qty = qcdt.Qty; objInvRChallanDetail.UnitID = qcdt.UnitID; objInvRChallanDetail.UnitPrice = qcdt.UnitPrice; objInvRChallanDetail.WeightUnitID = qcdt.WeightUnitID; objInvRChallanDetail.UpdateBy = chMaster.CreateBy; objInvRChallanDetail.UpdateOn = DateTime.Now; objInvRChallanDetail.UpdatePc = HostService.GetIP(); lstInvRChallanDetail.Add(objInvRChallanDetail); //InvGrrDetail objInvGrrDetail = (from grrd in _ctxCmn.InvGrrDetails.Where(m => m.GrrID == qcMaster.GrrID && m.ItemID == qcdt.ItemID) select grrd).FirstOrDefault(); //objInvGrrDetail.QcRemainingQty = (objInvGrrDetail.QcRemainingQty + prePassedRejectQty) - (qcdt.PassQty + qcdt.RejectQty); } _ctxCmn.SaveChanges(); transaction.Complete(); result = chMaster.CHNo.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("InvRChallanMaster")); long FirstDigit = 0; long OtherDigits = 0; long nextChDetailId = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("InvRChallanDetail")); FirstDigit = Convert.ToInt64(nextChDetailId.ToString().Substring(0, 1)); OtherDigits = Convert.ToInt64(nextChDetailId.ToString().Substring(1, nextChDetailId.ToString().Length - 1)); //..........END new maxId....................// //......... START for custom code........... // string customCode = ""; string CustomNo = GenericFactory_EF_CmnCombo.getCustomCode(menuID, DateTime.Now, chMaster.CompanyID ?? 1, 1, 1); if (CustomNo != null) { customCode = CustomNo; } else { customCode = NextId.ToString(); } //.........END for custom code............ // string newChNo = customCode; chMaster.CHID = NextId; chMaster.CreateOn = DateTime.Now; chMaster.CreatePc = HostService.GetIP(); chMaster.CHNo = newChNo; chMaster.IsDeleted = false; // itemMaster.IsHDOCompleted = false; // itemMaster.IsLcCompleted = false; List <InvRChallanDetail> lstchDetail = new List <InvRChallanDetail>(); foreach (InvRChallanDetail sdtl in chDetails) { InvRChallanDetail objchDetail = new InvRChallanDetail(); objchDetail.CHDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);//nextQCDetailId; objchDetail.CHID = NextId; objchDetail.AditionalQty = sdtl.AditionalQty; objchDetail.DisAmount = sdtl.DisAmount; objchDetail.IsPercent = sdtl.IsPercent; objchDetail.TotalAmount = sdtl.TotalAmount; objchDetail.ItemID = sdtl.ItemID; objchDetail.BatchID = sdtl.BatchID; objchDetail.GrossWeight = sdtl.GrossWeight; objchDetail.LotID = sdtl.LotID; objchDetail.NetWeight = sdtl.NetWeight; objchDetail.PackingQty = sdtl.PackingQty; objchDetail.PackingUnitID = sdtl.PackingUnitID; objchDetail.UnitID = sdtl.UnitID; objchDetail.UnitPrice = sdtl.UnitPrice; objchDetail.WeightUnitID = sdtl.WeightUnitID; objchDetail.Qty = sdtl.Qty; objchDetail.IsDeleted = false; objchDetail.Amount = sdtl.Amount; objchDetail.UnitID = sdtl.UnitID; objchDetail.CreateBy = chMaster.CreateBy; objchDetail.CreateOn = DateTime.Now; objchDetail.CreatePc = HostService.GetIP(); // objSalPIDetail.IsCICompleted = false; lstchDetail.Add(objchDetail); //nextQCDetailId++; OtherDigits++; // InvGrrDetail objInvGrrDetail = (from grrd in _ctxCmn.InvGrrDetails.Where(m => m.GrrID == qcMaster.GrrID && m.ItemID == sdtl.ItemID) select grrd).FirstOrDefault(); // objInvGrrDetail.QcRemainingQty = objInvGrrDetail.QcRemainingQty - (sdtl.PassQty + sdtl.RejectQty); } _ctxCmn.InvRChallanMasters.Add(chMaster); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("InvRChallanMaster", Convert.ToInt64(NextId)); //............Update CustomCode.............// GenericFactory_EF_CmnCombo.updateCustomCode(menuID, DateTime.Now, chMaster.CompanyID ?? 1, 1, 1); _ctxCmn.InvRChallanDetails.AddRange(lstchDetail); //............Update MaxID.................// GenericFactory_EF_CmnCombo.updateMaxID("InvRChallanDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1))); _ctxCmn.SaveChanges(); transaction.Complete(); result = newChNo; } catch (Exception e) { result = ""; } } } return(result); }