Пример #1
0
        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);
        }