public static string PMSaveCycleCount(object cyclecount) { string result = ""; CustomProfile profile = CustomProfile.GetProfile(); iCycleCountClient cycleclient = new iCycleCountClient(); tCycleCountDetail cycledetail = new tCycleCountDetail(); DataSet ds = new DataSet(); string ContBasis = "", SessionID = ""; decimal DiffQuantity = 0; long LocationID = 0, SKUID = 0; try { Dictionary <string, object> dictionary = new Dictionary <string, object>(); dictionary = (Dictionary <string, object>)cyclecount; cycledetail.CountHeadID = long.Parse(dictionary["CycleheadID"].ToString()); long CycleHeadId = long.Parse(dictionary["CycleheadID"].ToString()); SKUID = long.Parse(dictionary["hdnProductID"].ToString()); LocationID = long.Parse(dictionary["locationID"].ToString()); string SKUCode = dictionary["txtproduct"].ToString(); string LocationCode = dictionary["txtlocationCode"].ToString(); long WarehouseID = long.Parse(dictionary["WarehouseID"].ToString()); decimal Quantity = decimal.Parse(dictionary["Quantity"].ToString()); cycledetail.BatchCode = dictionary["BatchCode"].ToString(); string BatchCode = dictionary["BatchCode"].ToString(); if (LocationID == 0 || LocationID == null) { LocationID = cycleclient.GetLocationID(LocationCode.Trim(), WarehouseID, profile.DBConnection._constr); } if (SKUID == 0 || SKUID == null) { SKUID = cycleclient.GetSKUID(SKUCode.Trim(), WarehouseID, profile.DBConnection._constr); } cycledetail.ProductCode = SKUCode; cycledetail.LocationCode = LocationCode; cycledetail.SKUID = SKUID; cycledetail.LocationID = LocationID; cycledetail.CreatedBy = profile.Personal.UserID.ToString(); cycledetail.CreationDate = DateTime.Now; decimal SystemQty = cycleclient.GetSystemQtyByBatch(SKUID, LocationID, BatchCode, profile.DBConnection._constr); cycledetail.QtyBalance = SystemQty; ds = cycleclient.GetRepeatedCycleCountData(CycleHeadId, SKUID, LocationID, BatchCode, profile.DBConnection._constr); if (ds.Tables[0].Rows.Count == 0) { DiffQuantity = SystemQty - Quantity; cycledetail.ActualQty = Quantity; cycledetail.DiffQty = DiffQuantity; long CycleDetailID = cycleclient.SaveCycleCount(cycledetail, profile.DBConnection._constr); } else { long DetailID = long.Parse(ds.Tables[0].Rows[0]["ID"].ToString()); decimal ActualQty = decimal.Parse(ds.Tables[0].Rows[0]["ActualQty"].ToString()); decimal DiffQty = decimal.Parse(ds.Tables[0].Rows[0]["DiffQty"].ToString()); cycledetail.ActualQty = Quantity + ActualQty; cycledetail.ID = DetailID; DiffQuantity = DiffQty - Quantity; cycledetail.DiffQty = DiffQuantity; long CycleDetailID = cycleclient.SaveCycleCount(cycledetail, profile.DBConnection._constr); } } catch { result = "Some error occurred"; } finally { } return(result); }