public long SaveCycleCount(tCycleCountDetail cycledetail, string[] conn) { BISPL_CRMDBEntities db = new BISPL_CRMDBEntities(svr.GetEntityConnection(conn)); try { if (cycledetail.ID == 0) { db.tCycleCountDetails.AddObject(cycledetail); db.SaveChanges(); } else { db.tCycleCountDetails.Attach(cycledetail); db.ObjectStateManager.ChangeObjectState(cycledetail, EntityState.Modified); db.SaveChanges(); } return(cycledetail.ID); } catch { return(0); } }
public static string GetlocationQty(object objReq) { iCycleCountClient Cycle = new iCycleCountClient(); CustomProfile profile = CustomProfile.GetProfile(); tCycleCountDetail Dcycle = new tCycleCountDetail(); string result = ""; try { Dictionary <string, object> dictionary = new Dictionary <string, object>(); dictionary = (Dictionary <string, object>)objReq; string ProductCode = dictionary["ProductCode"].ToString(); string locationcode = dictionary["Location"].ToString(); long ProductID = long.Parse(dictionary["ProductID"].ToString()); long LocationID = long.Parse(dictionary["FromLocID"].ToString()); string BatchCode = dictionary["BatchCode"].ToString(); decimal SystemQty = decimal.Parse(dictionary["SystemQty"].ToString()); decimal ActualQty = decimal.Parse(dictionary["ActualQty"].ToString()); decimal AjustmentQty = decimal.Parse(dictionary["AjustmentQty"].ToString()); string Remark = dictionary["Remark"].ToString(); string AdjustLoc = dictionary["AdjustmentLocIds"].ToString(); long CycleHeadID = long.Parse(dictionary["CycleHeadID"].ToString()); long CycleDetailID = long.Parse(dictionary["CycleDetailID"].ToString()); string[] ToLocIds = AdjustLoc.Split(','); decimal calculateQty = AjustmentQty; Cycle.UpdateStockSkuTransForFromLoc(ProductID, BatchCode, LocationID, AjustmentQty, profile.DBConnection._constr); for (int i = 0; i < ToLocIds.Length; i++) { long ToLocID = long.Parse(ToLocIds[i].ToString()); decimal availQty = Cycle.getLocationRemainingQty(ToLocID, profile.DBConnection._constr); // need to craete sp add in domain ninterface and build if (calculateQty > availQty) { calculateQty = calculateQty - availQty; Cycle.UpdateStocktransToLoc(ProductID, BatchCode, calculateQty, ToLocID, profile.Personal.UserID, CycleHeadID, profile.DBConnection._constr); // need to Add CompanyID,CustomerID and UserID } else { Cycle.UpdateStocktransToLoc(ProductID, BatchCode, calculateQty, ToLocID, profile.Personal.UserID, CycleHeadID, profile.DBConnection._constr); // need to Add CompanyID,CustomerID and UserID calculateQty = 0; } } Dcycle.ID = CycleDetailID; Dcycle.CountHeadID = CycleHeadID; Dcycle.QtyBalance = SystemQty; Dcycle.ActualQty = ActualQty; Dcycle.DiffQty = AjustmentQty; Dcycle.AdjustmentQty = AjustmentQty; Dcycle.Remark = Remark; Dcycle.AdjustLocation = AdjustLoc; Dcycle.ProductCode = ProductCode; Dcycle.LocationCode = locationcode; Dcycle.SKUID = ProductID; Dcycle.LocationID = LocationID; Dcycle.BatchCode = BatchCode; Dcycle.CreatedBy = profile.Personal.UserID.ToString(); Dcycle.CreationDate = DateTime.Now; long CycleDtailID = Cycle.SaveCycleCount(Dcycle, profile.DBConnection._constr); /*decimal ClosingBalOutProd = Cycle.GetClosingBalance(Parameter, AjustmentQty, ProductID, LocationID); * decimal ClosingBalInProd = Cycle.GetClosingBalance(param, AjustmentQty, ProductID, AdjustLoc); * decimal AdjustmentSUMOut = Cycle.GetAdjustmentSUM(AjustmentQty, ProductID, LocationID); * decimal AdjustmentSUMIN = Cycle.GetAdjustmentSUM(AjustmentQty, ProductID, AdjustLoc);*/ // Cycle.UpdateCycleCountDetail(AjustmentQty, Remark, CreatedBy, DateTime.Now.Date, ProductCode, CycleHeadID, AdjstmentLoc); // // write method for transaction Entries One for out product and one for In product // Cycle.InsertTransactionAdjustment("Cycle Count", CycleHeadID, ProductID, LocationID, AdjustLoc, Remark, CreatedBy, DateTime.Now.Date, DateTime.Now.Date, AjustmentQty); // // update tinventry AdjustmentQty & QtyBalance for Out transaction // Cycle.UpdateInventryForOut(AdjustmentSUMOut, ClosingBalOutProd, ProductID, LocationID); // if records of ClosingBalIn product Is not inserted then we have to insert that and if present then update that /* long CheckEntry = Cycle.GetCountTOCheckEntryInInventry(AdjustLoc, ProductID); * if (CheckEntry > 0) * { * Cycle.UpdateInventryForOut(AdjustmentSUMIN, ClosingBalInProd, ProductID, AdjustLoc); * } * else * { * Cycle.InsertInventryCycleCount(ProductID, AdjustLoc, "Secondary", AjustmentQty, AjustmentQty, AjustmentQty, CreatedBy, DateTime.Now.Date, "Inventory_Inventory"); * }*/ result = "Adjustment successful"; } catch { result = "Some error occurred"; } finally { Cycle.Close(); } return(result); }
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); }
public void ProcessRequest(HttpContext context) { CustomProfile profile = CustomProfile.GetProfile(); iCycleCountClient cycleclient = new iCycleCountClient(); tCycleCountDetail cycledetail = new tCycleCountDetail(); SqlConnection conn = new SqlConnection(strcon); long wid = long.Parse(context.Request.Form["wid"]); long uid = long.Parse(context.Request.Form["uid"]); long cyclecountid = long.Parse(context.Request.Form["cid"]); string locationcode = ""; long locid = 0; string prdomsskucode = ""; decimal skuqty = 0; //long locid = GetLocationID(locationcode); //LocationID String cycleCountDetails = context.Request.Form["cycleCountDetails"]; //string myquerystring = "select * from SplitString('" + cycleCountDetails + "',':')"; //string myquerystring = "select * from SplitString('" + cycleCountDetails + "','@')"; string myquerystring = "select * from SplitString('" + cycleCountDetails + "',':')"; cmd.CommandType = CommandType.Text; cmd.CommandText = myquerystring; cmd.Connection = conn; cmd.Parameters.Clear(); da.SelectCommand = cmd; da.Fill(ds, "tbl1"); dt = ds.Tables[0]; int cntr = dt.Rows.Count; long mySeq = 0; if (cntr > 0) { for (int i = 0; i <= cntr - 1; i++) { locationcode = ds.Tables[0].Rows[i]["part"].ToString(); locid = GetLocationID(ds.Tables[0].Rows[i]["part"].ToString()); i = i + 1; prdomsskucode = ds.Tables[0].Rows[i]["part"].ToString(); i = i + 1; skuqty = Convert.ToDecimal(ds.Tables[0].Rows[i]["part"].ToString()); SqlCommand cmd1 = new SqlCommand(); SqlDataAdapter da1 = new SqlDataAdapter(); DataSet ds1 = new DataSet(); DataTable dt1 = new DataTable(); string dsprdDetails = "select ID,ProductCode,Name , Description from mProduct where OMSSKUCode=ltrim(rtrim('" + prdomsskucode + "'))"; cmd1.CommandType = CommandType.Text; cmd1.CommandText = dsprdDetails; cmd1.Connection = conn; cmd1.Parameters.Clear(); da1.SelectCommand = cmd1; da1.Fill(ds1, "tbl2"); dt1 = ds1.Tables[0]; string productCode = ""; long prdID = 0; if (dt1.Rows.Count > 0) { productCode = ds1.Tables[0].Rows[0]["ProductCode"].ToString(); prdID = long.Parse(ds1.Tables[0].Rows[0]["ID"].ToString()); } SqlCommand cmd3 = new SqlCommand(); SqlDataAdapter da3 = new SqlDataAdapter(); DataSet ds3 = new DataSet(); DataTable dt3 = new DataTable(); string insPrdDetails = "insert into tCycleCountDetail(CountHeadID,ProductCode, LocationCode,ActualQty,CreatedBy, CreationDate,SKUID,LocationID) values(" + cyclecountid + ",'" + productCode + "','" + locationcode + "'," + skuqty + "," + uid + ",'" + DateTime.Now + "'," + prdID + "," + locid + ")"; cmd3.CommandType = CommandType.Text; cmd3.CommandText = insPrdDetails; cmd3.Connection = conn; cmd3.Parameters.Clear(); da3.SelectCommand = cmd3; da3.Fill(ds3, "tbl3"); mySeq = mySeq + 1; } } String xmlString = String.Empty; context.Response.ContentType = "text/plain"; String jsonString = String.Empty; jsonString = "{\n\"resultlist\": [\n"; /*json Loop Start*/ if (mySeq > 0) { jsonString = jsonString + "{\n\"status\":\"success\"\n}\n"; } else { jsonString = jsonString + "{\n\"status\":\"failed\"\n}\n"; } jsonString = jsonString + "]\n}"; /*json Loop End*/ context.Response.Write(jsonString); }