示例#1
0
        /// <summary>
        /// 工程领料
        /// </summary>
        /// <param name="theData"></param>
        /// <returns></returns>
        public ActionResult ProMaterial(ProMRModel theData)
        {
            StockOutModel stockOut = new StockOutModel();

            stockOut.Id        = Guid.NewGuid().ToSequentialGuid();
            stockOut.ApplyNo   = theData.MaterialRequisitionModel.PMR_No; //物料单编号
            stockOut.StoreId   = theData.StoreId;                         //默认仓库
            stockOut.Context   = theData.Picker;                          //领料人
            stockOut.State     = 0;
            stockOut.OutNo     = $"P-{DateTime.Now.ToString("yyMMddHHmmss.fff")}";
            stockOut.OutDate   = DateTime.Now;
            stockOut.OutOperID = Base_UserBusiness.GetCurrentUser().UserId;
            stockOut.OutType   = 0;//0 工程领料单

            foreach (Pro_MaterialRequisitionItem item in theData.MaterialRequisitionModel.MReqItemList)
            {
                Sto_StockOutItem stockOutItem = new Sto_StockOutItem();
                stockOutItem.Id      = Guid.NewGuid().ToSequentialGuid();
                stockOutItem.OutNo   = stockOut.OutNo;
                stockOutItem.MatNo   = item.MatNo;
                stockOutItem.MatName = item.MatName;
                //stockOutItem.Price = 0;
                stockOutItem.GuiGe    = item.GuiGe;
                stockOutItem.UnitNo   = item.UnitNo;
                stockOutItem.Quantity = item.Quantity;
                stockOut.StockOutItems.Add(stockOutItem);
            }

            this._sto_StockOutBusiness.ProMaterial(stockOut, theData.Picker, theData.MaterialRequisitionModel.ProCode, theData.MaterialRequisitionModel.ProName);

            return(Success());
        }
示例#2
0
        public int StockOut(StockOutModel stockout)
        {
            string query = "INSERT INTO StockOut(ItemId, Type, Quantity, Date) VALUES('" + stockout.ItemId + "','" + stockout.Type + "','" + stockout.Quantity + "','" + stockout.Date + "')";

            command = new SqlCommand(query, connection);
            connection.Open();
            int rowAffect = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffect);
        }
示例#3
0
        public string Damage(StockOutModel aStock)
        {
            int rowAffect = aStockOut.Sell(aStock);

            if (rowAffect == 1)
            {
                return("Damage Successfull");
            }
            else
            {
                return("Damage Failed");
            }
        }
示例#4
0
        public string Lost(StockOutModel aStock)
        {
            int rowAffect = aStockOut.Sell(aStock);

            if (rowAffect == 1)
            {
                return("Lost Successfull");
            }
            else
            {
                return("Lost Failed");
            }
        }
示例#5
0
        public string SaveAllLossRowFromGrid(StockOutModel stockOutModel)
        {
            int rowAffect = stockOutGateway.SaveAllDamageRowFromGrid(stockOutModel);

            if (rowAffect > 0)
            {
                return("Save Lost Succefully");
            }
            else
            {
                return("Save Failed");
            }
        }
示例#6
0
        public int UpdateQuantityFromStockOut(StockOutModel aStockOut)
        {
            string query = "UPDATE Item SET Quantity=@RemainningQuanity WHERE Id=@itemId";

            command = new SqlCommand(query, connection);
            command.Parameters.AddWithValue("@RemainningQuanity", aStockOut.RemainningQuanity);
            command.Parameters.AddWithValue("@itemId", aStockOut.ItemId);
            connection.Open();
            int rowAffect = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffect);
        }
示例#7
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="theData">保存的数据</param>
        public ActionResult SaveOutData(StockOutModel theData)
        {
            if (theData.Id.IsNullOrEmpty())
            {
                theData.OutOperID = Base_UserBusiness.GetCurrentUser().UserId;
                _sto_StockOutBusiness.NormalMaterial(theData);
            }
            else
            {
                _sto_StockOutBusiness.NormalMaterial(theData);
            }

            return(Success());
        }
        public string StockOut(StockOutModel stockout)
        {
            int rowAffect = stockOutGateway.StockOut(stockout);


            if (rowAffect > 0)
            {
                return("Save Successful");
            }
            else
            {
                return("Save Failed");
            }
        }
示例#9
0
        public int Lost(StockOutModel aStockOut)
        {
            string query = "INSERT INTO StockOut(ItemId,Quantity,Type,Date) VALUES(@itemId,@quantity,@type,@datee)";

            command = new SqlCommand(query, connection);
            command.Parameters.AddWithValue("@itemId", aStockOut.ItemId);
            command.Parameters.AddWithValue("@quantity", aStockOut.Quantity);
            command.Parameters.AddWithValue("@type", aStockOut.Type);
            command.Parameters.AddWithValue("@datee", aStockOut.Date);

            connection.Open();
            int rowAffect = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffect);
        }
示例#10
0
        public int SaveAllLossRowFromGrid(StockOutModel stockOutModel)
        {
            string query = "INSERTALLROWFORSALEDAMAGELOSS";

            command             = new SqlCommand(query, connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@item", stockOutModel.ItemSl);
            command.Parameters.AddWithValue("@quantity", stockOutModel.Quantity);
            command.Parameters.AddWithValue("@type", stockOutModel.Type);
            command.Parameters.AddWithValue("@inTime", stockOutModel.InTime);
            connection.Open();
            int rowAffect = command.ExecuteNonQuery();

            connection.Close();
            return(rowAffect);
        }
        // Action code goes here
        public string StockOutByType(string Type)
        {
            ItemGateway stockOutGateway = new ItemGateway();

            foreach (StockOutModel stockOut in listofStockOut)
            {
                StockOutModel stockOutModel = new StockOutModel();
                stockOutModel.Quantity = stockOut.Quantity;
                stockOutModel.ItemId   = stockOut.ItemId;
                stockOutModel.Type     = Type;
                stockOutModel.Price    = stockOut.Price;
                stockOutModel.Date     = stockOut.Date;
                stockOutGateway.StockOut(stockOutModel);
                stockOutGateway.UpdateAfterStockOut(stockOut);
            }
            return("Stock Out Successfully by : " + Type);
        }
示例#12
0
 public int UpdateAfterStockOut(StockOutModel stockout)
 {
     try
     {
         string query = "Update Items SET StockAQ -=@availQ WHERE  Id= @id";
         Command = new SqlCommand(query, Connection);
         Command.Parameters.AddWithValue("@availQ", stockout.Quantity);
         Command.Parameters.AddWithValue("@id", stockout.ItemId);
         Connection.Open();
         int rowAffect = Command.ExecuteNonQuery();
         Connection.Close();
         return(rowAffect);
     }
     catch (Exception)
     {
         return(0);
     }
 }
        public async Task <ActionResult> Edit(string id)
        {
            try
            {
                Guid stock_id = Guid.Parse(id);

                Guid business_working = Guid.Parse(Session["BusinessWorking"].ToString());
                ViewBag.Categories = await applicationDbContext.Categories.Where(x => x.Business_Id == business_working).OrderBy(x => x.Name).ToListAsync();

                StockOut stockout = await applicationDbContext.StockOuts.Include("Product").FirstOrDefaultAsync(x => x.Id == stock_id);

                if (stockout.Receiver_Id != null)
                {
                    ViewBag.Msg = "La salida ha sido recibida y no puede ser editada";

                    return(RedirectToAction("Index"));
                }

                StockOutModel model = new StockOutModel()
                {
                    DT_RowId    = stockout.Id.ToString(),
                    ProductName = stockout.Product_Id.ToString(),
                    Quantity    = stockout.Quantity,
                    SalePrice   = stockout.SalePrice.ToString("#,##0.00"),
                    Category    = stockout.Product.Category_Id.ToString(),
                    Receivered  = stockout.Receiver != null,
                    Description = stockout.Description,
                    Accesories  = new List <AccesoryModel>()
                };

                return(View(model));
            }
            catch (Exception e)
            {
                ViewBag.Msg = "La salida no existe";

                return(RedirectToAction("Index"));
            }
        }
示例#14
0
        public int StockOut(StockOutModel stockout)
        {
            try
            {
                string query = "INSERT INTO StockOut(ItemId, Type, Quantity, Price, Date) VALUES(@itemid, @type, @quantity, @price, @date)";
                Command = new SqlCommand(query, Connection);
                Command.Parameters.AddWithValue("@itemid", stockout.ItemId);
                Command.Parameters.AddWithValue("@type", stockout.Type);
                Command.Parameters.AddWithValue("@quantity", stockout.Quantity);
                Command.Parameters.AddWithValue("@price", stockout.Price);
                Command.Parameters.AddWithValue("@date", stockout.Date);

                Connection.Open();
                int rowAffect = Command.ExecuteNonQuery();
                Connection.Close();
                return(rowAffect);
            }
            catch (Exception)
            {
                return(0);
            }
        }
        private void addCardButton_Click(object sender, EventArgs e)
        {
            if (outQuantityTextBox.Text.Trim() != String.Empty && netBillTexBox.Text.Trim() != String.Empty)
            {
                if (inte.IsMatch(outQuantityTextBox.Text.Trim()))
                {
                    int outQ = Convert.ToInt32(outQuantityTextBox.Text.Trim());
                    int avQ  = Convert.ToInt32(availAbleQuatityTextBox.Text.Trim());
                    if (outQ > avQ || outQ == 0)
                    {
                        cMessageBox.Warning("You Cann't Stock Out This Quantity");
                    }
                    else
                    {
                        if (discountPriceTexBox.Text.Trim() != String.Empty ||
                            discountPercentTextBox.Text.Trim() != String.Empty)
                        {
                            if (!dnum.IsMatch(discountPriceTexBox.Text.Trim()) ||
                                !fnum.IsMatch(discountPercentTextBox.Text.Trim()))
                            {
                                cMessageBox.Information("Discount Amount or Percent is Not In Correct Format");
                            }
                        }
                        if (vatPercentTextBox.Text.Trim() != String.Empty)
                        {
                            if (!fnum.IsMatch(vatPercentTextBox.Text.Trim()))
                            {
                                cMessageBox.Information("Vat is not in Correct Format");
                            }
                        }

                        StockOutModel stockOutModel = new StockOutModel();
                        stockOutModel.CatagoryName = catagoryListBox.Text;
                        stockOutModel.CompanyName  = companyListBox.Text;
                        stockOutModel.ItemName     = ItemListBox.Text;
                        if (!CN.IsMatch(modelBox.Text.Trim()))
                        {
                            stockOutModel.Model = modelBox.Text = "N/A";
                        }
                        else
                        {
                            stockOutModel.Model = modelBox.Text;
                        }
                        stockOutModel.ItemId            = Convert.ToInt32(ItemListBox.SelectedValue);
                        stockOutModel.AvailableQuantity = Convert.ToInt32(availAbleQuatityTextBox.Text.Trim());
                        stockOutModel.Quantity          = Convert.ToInt32(outQuantityTextBox.Text);
                        if (dnum.IsMatch(discountPriceTexBox.Text.Trim()) ||
                            fnum.IsMatch(discountPercentTextBox.Text.Trim()))
                        {
                            stockOutModel.DiscountPercent = Convert.ToDecimal(discountPercentTextBox.Text.Trim());
                            stockOutModel.DiscountAmount  = Convert.ToDecimal(discountPriceTexBox.Text.Trim());
                        }

                        if (fnum.IsMatch(vatPercentTextBox.Text.Trim()))
                        {
                            stockOutModel.Vatpercent = Convert.ToDecimal(vatPercentTextBox.Text.Trim());
                        }
                        stockOutModel.VatAmount = Convert.ToDecimal(vatPriceTextBox.Text);
                        stockOutModel.Price     = Convert.ToDecimal(netBillTexBox.Text.Trim());
                        stockOutModel.Date      = DateTime.Today;

                        var existItem = listofStockOut.Find(x => x.ItemId == stockOutModel.ItemId);
                        if (existItem != null)
                        {
                            // Avobe code are corretly working
                            int quantity = Convert.ToInt32(existItem.Quantity + stockOutModel.Quantity);
                            if (quantity <= Convert.ToInt32(stockOutModel.AvailableQuantity))
                            {
                                existItem.Quantity += stockOutModel.Quantity;
                                existItem.Price    += stockOutModel.Price;
                                stockOutCard.Refresh();
                            }
                            else
                            {
                                cMessageBox.Warning("You cann't Stock Out This Quantity");
                            }
                        }
                        else
                        {
                            listofStockOut.Add(stockOutModel);
                        }

                        ShowCard();
                    }
                }
            }
        }
示例#16
0
        public void AddButton()
        {
            if (ViewState["aStockListVS"] == null)
            {
                StockOutModel aStockOut = new StockOutModel();
                aStockOut.ItemId            = Convert.ToInt32(itemNameDropDownList.SelectedValue);
                aStockOut.ItemName          = itemNameDropDownList.SelectedItem.Text;
                aStockOut.CompanyId         = Convert.ToInt32(companyDropDownList.SelectedValue);
                aStockOut.CompanyName       = companyDropDownList.SelectedItem.Text;
                aStockOut.Quantity          = Convert.ToInt32(stockOutQuantityTextBox.Text);
                aStockOut.RemainningQuanity = Convert.ToInt32(availableQuantityTextBox.Text) -
                                              Convert.ToInt32(stockOutQuantityTextBox.Text);
                DateTime date = DateTime.Now;
                aStockOut.Date = date.ToString("dd-MM-yyyy");


                List <StockOutModel> aStockList = new List <StockOutModel>();

                aStockList.Add(aStockOut);
                ViewState["aStockListVS"] = aStockList;

                allItemGridView.DataSource = aStockList;
                rowCount = allItemGridView.Rows.Count;
                allItemGridView.DataBind();


                ClearBox();
            }


            else
            {
                List <StockOutModel> aStockList = (List <StockOutModel>)ViewState["aStockListVS"];

                int itemIdExists = 0;
                foreach (StockOutModel stockOut in aStockList)
                {
                    int itemId = stockOut.ItemId;
                    if (itemId == Convert.ToInt32(itemNameDropDownList.SelectedValue))
                    {
                        stockOut.Quantity          = stockOut.Quantity + Convert.ToInt32(stockOutQuantityTextBox.Text);
                        stockOut.RemainningQuanity = Convert.ToInt32(availableQuantityTextBox.Text) -
                                                     stockOut.Quantity;

                        itemIdExists = 1;
                    }
                }
                if (itemIdExists != 1)
                {
                    StockOutModel aStockOut = new StockOutModel();
                    aStockOut.ItemId            = Convert.ToInt32(itemNameDropDownList.SelectedValue);
                    aStockOut.ItemName          = itemNameDropDownList.SelectedItem.Text;
                    aStockOut.CompanyId         = Convert.ToInt32(companyDropDownList.SelectedValue);
                    aStockOut.CompanyName       = companyDropDownList.SelectedItem.Text;
                    aStockOut.Quantity          = Convert.ToInt32(stockOutQuantityTextBox.Text);
                    aStockOut.RemainningQuanity = Convert.ToInt32(availableQuantityTextBox.Text) -
                                                  aStockOut.Quantity;

                    DateTime date = DateTime.Now;
                    aStockOut.Date = date.ToString("dd-MM-yyyy");

                    aStockList.Add(aStockOut);
                }
                ViewState["aStockListVS"]  = aStockList;
                allItemGridView.DataSource = aStockList;
                rowCount = allItemGridView.Rows.Count;
                allItemGridView.DataBind();
                ClearBox();
            }
        }
示例#17
0
 public int UpdateQuantityFromStockOut(StockOutModel aStock)
 {
     return(aStockOut.UpdateQuantityFromStockOut(aStock));
 }
 // POST api/stockout
 public void Post(StockOutModel m)
 {
     int i = StockOutProvider.insertStockOutDetails(m);
 }
        public async Task <ActionResult> Create(StockOutModel model)
        {
            Guid business_working = Guid.Parse(Session["BusinessWorking"].ToString());

            if (ModelState.IsValid)
            {
                Guid productId = Guid.Parse(model.ProductName);

                Product product = await applicationDbContext.Products.Include("Category").FirstOrDefaultAsync(x => x.Id == productId);

                StockOut stockOut = new StockOut()
                {
                    Id          = Guid.NewGuid(),
                    Product_Id  = productId,
                    Date        = DateTime.Now,
                    Quantity    = model.Quantity,
                    SalePrice   = decimal.Parse(model.SalePrice.Replace(".", ",")),
                    User_Id     = User.Identity.GetUserId(),
                    Gain        = decimal.Parse(model.SalePrice.Replace(".", ",")) - product.CurrentPrice,
                    Description = model.Description
                };

                if (RoleManager.IsInRole(RoleManager.Editor) || RoleManager.IsInRole(RoleManager.Administrator))
                {
                    stockOut.Receiver_Id = User.Identity.GetUserId();

                    BusinessUser businessUser = await applicationDbContext.BusinessUsers.FirstOrDefaultAsync(x => x.User_Id == stockOut.Receiver_Id && x.Business_Id == business_working);

                    if (product.Category.ActionOut == ActionConstants.Sum)
                    {
                        businessUser.Cash += stockOut.SalePrice * stockOut.Quantity;
                    }
                    else if (product.Category.ActionOut == ActionConstants.Rest)
                    {
                        businessUser.Cash -= stockOut.SalePrice * stockOut.Quantity;
                    }

                    applicationDbContext.Entry(businessUser).State = System.Data.Entity.EntityState.Modified;
                }

                applicationDbContext.StockOuts.Add(stockOut);
                if (!product.NoCountOut)
                {
                    product.Stock      -= stockOut.Quantity;
                    product.LastUpdated = DateTime.Now;

                    applicationDbContext.Entry(product).State = System.Data.Entity.EntityState.Modified;
                }

                if (model.AccesoriesIds != null)
                {
                    foreach (var acc in model.AccesoriesIds)
                    {
                        Guid    accesory    = Guid.Parse(acc);
                        Product acc_product = await applicationDbContext.Products.Include("Category").FirstOrDefaultAsync(x => x.Id == accesory);

                        StockOut acc_stockOut = new StockOut()
                        {
                            Id          = Guid.NewGuid(),
                            Product_Id  = accesory,
                            Date        = DateTime.Now,
                            Quantity    = 1,
                            SalePrice   = 0,
                            User_Id     = User.Identity.GetUserId(),
                            Gain        = 0 - acc_product.CurrentPrice,
                            Description = $"Con producto {product.Name}"
                        };
                        applicationDbContext.StockOuts.Add(acc_stockOut);
                        if (!acc_product.NoCountOut)
                        {
                            acc_product.Stock      -= acc_stockOut.Quantity;
                            acc_product.LastUpdated = DateTime.Now;

                            applicationDbContext.Entry(acc_product).State = System.Data.Entity.EntityState.Modified;
                        }
                    }
                }

                await applicationDbContext.SaveChangesAsync();

                await ActivityPublisher.Publish(User.Identity.GetUserId(), ActivityTypeConstants.Stock_Out_Create, product.Id, product.Name, business_working);

                return(RedirectToAction("Index"));
            }

            ViewBag.Categories = await applicationDbContext.Categories.Where(x => x.Business_Id == business_working).OrderBy(x => x.Name).ToListAsync();

            return(View(model));
        }
示例#20
0
        protected void addButton_Click(object sender, EventArgs e)
        {
            int a = itemManager.CheckNumerical(stockOutQuantityTextBox.Text);

            if (a == 1)
            {
                int stockOutQuantity  = Convert.ToInt32(stockOutQuantityTextBox.Text);
                int availableQuantity = Convert.ToInt32(availableQuantityTextBox.Text);

                if (stockOutQuantity > availableQuantity)
                {
                    messageLabel.Visible = true;
                    messageLabel.Text    = "Sorry StockOut Quantity Cannot Greater Then Available Quantity";
                }
                else if (stockOutQuantity == 0)
                {
                    messageLabel.Visible = true;
                    messageLabel.Text    = "Sorry StockOut Quantity Cannot be 0";
                }
                else
                {
                    StockOutModel stockOutModel = new StockOutModel();
                    stockOutModel.Item_Id      = Convert.ToInt32(itemDropDownList.SelectedValue);
                    stockOutModel.Company_Id   = Convert.ToInt32(companyDropDownList.SelectedValue);
                    stockOutModel.Item_Name    = itemDropDownList.SelectedItem.ToString();
                    stockOutModel.Company_Name = companyDropDownList.SelectedItem.ToString();

                    stockOutModel.AvailableQuantity = availableQuantity - stockOutQuantity;
                    stockOutModel.StockOutQuantity  = stockOutQuantity;


                    if (ViewState["StockOut"] != null)
                    {
                        int flag = 0;
                        List <StockOutModel> stockOutList = (List <StockOutModel>)ViewState["StockOut"];
                        foreach (StockOutModel stock in stockOutList)
                        {
                            if (stock.Item_Id == stockOutModel.Item_Id)
                            {
                                stock.AvailableQuantity = stockOutModel.AvailableQuantity;
                                stock.StockOutQuantity += stockOutModel.StockOutQuantity;
                                flag = 1;
                                break;
                            }
                        }
                        if (flag == 0)
                        {
                            stockOutList.Add(stockOutModel);

                            ViewState["StockOut"] = stockOutList;
                        }

                        GridViewData();
                    }
                    else
                    {
                        List <StockOutModel> stockOutList = new List <StockOutModel>();

                        stockOutList.Add(stockOutModel);

                        ViewState["StockOut"] = stockOutList;
                        GridViewData();
                    }
                    availableQuantityTextBox.Text = stockOutModel.AvailableQuantity.ToString();
                }
            }
            else
            {
                messageLabel.Visible = true;
                messageLabel.Text    = "Stockout Quantity Not Valid";
            }
            stockOutQuantityTextBox.Text = "";
        }