Exemple #1
0
 private void btnPlanAddItem_Click(object sender, EventArgs e)
 {
     itemAdd.SearchItem(new pts_stock {
         item_cd = txtPlanItemCD.Text
     });
     listADd.AddRange(itemAdd.listStockItems.Where(x => x.packing_qty > 0).Select(x => x));
     UpdatePlanGrid();
 }
 /// <summary>
 /// Search stock item
 /// </summary>
 /// <param name="itemNumber"></param>
 private void SearchNoSet(string itemNumber, string invoiceText)
 {
     try
     {
         pts_item itemdata = new pts_item();
         itemdata = itemdata.GetItem(itemNumber);
         double totalWHQty = itemdata.wh_qty;
         txtWHQty.Text = totalWHQty.ToString();
         pts_stock stockdata = new pts_stock();
         stockdata.SearchItem(new pts_stock {
             item_cd = itemNumber, invoice = invoiceText
         });
         double totalPackingQty = stockdata.listStockItems.Select(x => x.packing_qty).Sum();
         txtTotalPackingQty.Text    = totalPackingQty.ToString();
         dgvMainStockOut.DataSource = stockdata.listStockItems;
         dgvMainStockOut.Columns["stock_id"].HeaderText               = "ID";
         dgvMainStockOut.Columns["packing_cd"].HeaderText             = "Packing Code";
         dgvMainStockOut.Columns["item_cd"].HeaderText                = "Item Number";
         dgvMainStockOut.Columns["supplier_cd"].HeaderText            = "Supplier Code";
         dgvMainStockOut.Columns["order_no"].HeaderText               = "Order Number";
         dgvMainStockOut.Columns["invoice"].HeaderText                = "Invoice";
         dgvMainStockOut.Columns["stockin_date"].HeaderText           = "Stock-In Date";
         dgvMainStockOut.Columns["stockin_user_cd"].HeaderText        = "Incharge";
         dgvMainStockOut.Columns["stockin_qty"].HeaderText            = "Stock-In Qty";
         dgvMainStockOut.Columns["packing_qty"].HeaderText            = "Packing Qty";
         dgvMainStockOut.Columns["registration_user_cd"].HeaderText   = "Reg User";
         dgvMainStockOut.Columns["registration_date_time"].HeaderText = "Reg Time";
         if (dgvMainStockOut.Columns.Contains("order_no"))
         {
             dgvMainStockOut.Columns.Remove("order_no");
         }
         if (dgvMainStockOut.Columns.Contains("registration_user_cd"))
         {
             dgvMainStockOut.Columns.Remove("registration_user_cd");
         }
         if (dgvMainStockOut.Columns.Contains("registration_date_time"))
         {
             dgvMainStockOut.Columns.Remove("registration_date_time");
         }
         if (dgvMainStockOut.Columns.Contains("btnOpenSet"))
         {
             dgvMainStockOut.Columns.Remove("btnOpenSet");
         }
     }
     catch (Exception ex)
     {
         CustomMessageBox.Error(ex.Message);
     }
 }
        private void txtSetStockOutQty_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                if (e.KeyCode == Keys.Enter)
                {
                    string itemCode = txtSetLowItemCode.Text;

                    pts_stock stockData = new pts_stock();
                    #region CHECK ITEM IS EXIST IN STOCK?
                    if (!stockData.SearchItem(new pts_stock {
                        item_cd = itemCode, invoice = txtSetInvoice.Text
                    }))
                    {
                        CustomMessageBox.Error("This item is not exist in stock!");
                        txtSetLowItem.Clear();
                        txtSetInvoice.Clear();
                        txtSetLowItem.Focus();
                        return;
                    }
                    #endregion

                    #region GET INDEX OF ITEM IF IT IS EXIST IN SET LIST
                    int rindex = 0;
                    try
                    {
                        rindex = dgvSetData.Rows.Cast <DataGridViewRow>()
                                 .Where(x => x.Cells["low_level_item"].Value.ToString() == itemCode)
                                 .Select(x => x.Index).First();
                    }
                    catch (Exception ex)
                    {
                        CustomMessageBox.Error("This item is not exist in list!" + Environment.NewLine + ex.Message);
                        txtSetLowItem.Clear();
                        txtSetInvoice.Clear();
                        txtSetLowItem.Focus();
                        return;
                    }
                    #endregion

                    DataGridViewRow dr = dgvSetData.Rows[rindex];
                    double          totalpackingQty = stockData.listStockItems.Sum(x => x.packing_qty);
                    double          packingQty      = double.Parse(txtSetStockOutQty.Text);
                    double          orderQty        = (double)dr.Cells["request_qty"].Value;
                    //double stockQty = (double)dr.Cells["wh_qty"].Value;
                    double stockoutQty = 0;
                    double residualQty = 0;
                    if (dr.Cells["stockout_qty"].Value != null)
                    {
                        stockoutQty = (double)dr.Cells["stockout_qty"].Value;
                    }

                    //Check qty of label
                    if (packingQty > totalpackingQty)
                    {
                        packingQty = totalpackingQty;
                        CustomMessageBox.Notice("Packing Qty of this item is empty! Please stock-in first!");
                    }
                    stockoutQty += packingQty;
                    if (stockoutQty > orderQty)
                    {
                        packingQty -= stockoutQty - orderQty;
                        stockoutQty = orderQty;
                    }
                    residualQty = totalpackingQty - packingQty;
                    dr.Cells["stockout_qty"].Value = stockoutQty;
                    //ADD OUTPUT ITEM FOR CSV
                    listOut.Add(new OutputItem
                    {
                        issue_cd       = 20,
                        destination_cd = cmbDestination.SelectedValue.ToString(),
                        item_number    = itemCode,
                        delivery_qty   = packingQty,
                        delivery_date  = dtpStockOutDate.Value,
                        order_number   = txtSetOrderNum.Text,
                        incharge       = txtSetUserCD.Text,
                    });

                    pts_supplier supplierData = new pts_supplier();
                    foreach (pts_stock item in stockData.listStockItems)
                    {
                        if (item.packing_qty == 0)
                        {
                            continue;
                        }
                        //ADD NEW STOCK OUT LOG
                        listStockOut.Add(new pts_stockout_log
                        {
                            packing_cd       = item.packing_cd,
                            process_cd       = txtSetOrderNum.Text,
                            issue_cd         = 20,
                            stockout_date    = dtpStockOutDate.Value,
                            stockout_user_cd = txtSetUserCD.Text,
                            stockout_qty     = packingQty,
                            comment          = txtComment.Text,
                            remark           = "N",
                        });
                        if (packingQty < item.packing_qty)
                        {
                            item.packing_qty -= packingQty;
                            //ADD STOCK-IN TO PRINT LIST
                            listPrint.Add(new PrintItem
                            {
                                Item_Number  = item.item_cd,
                                Item_Name    = dr.Cells["item_name"].Value.ToString(),
                                SupplierName = supplierData.GetSupplier(new pts_supplier {
                                    supplier_cd = item.supplier_cd
                                }).supplier_name,
                                Invoice       = txtSetInvoice.Text,
                                Delivery_Date = item.stockin_date,
                                Delivery_Qty  = item.packing_qty,
                                SupplierCD    = item.supplier_cd,
                                isRec         = true,
                                Label_Qty     = 1
                            });
                            //ADD STOCK-OUT TO PRINT LIST
                            listPrint.Add(new PrintItem
                            {
                                Item_Number  = item.item_cd,
                                Item_Name    = dr.Cells["item_name"].Value.ToString(),
                                SupplierName = supplierData.GetSupplier(new pts_supplier {
                                    supplier_cd = item.supplier_cd
                                }).supplier_name,
                                Invoice       = txtSetInvoice.Text,
                                Delivery_Date = dtpStockOutDate.Value,
                                Delivery_Qty  = packingQty,
                                SupplierCD    = item.supplier_cd,
                                isRec         = false,
                                Label_Qty     = 1
                            });
                            packingQty = 0;
                        }
                        else
                        {
                            packingQty      -= item.packing_qty;
                            item.packing_qty = 0;
                        }
                        listStock.Add(item);
                        if (packingQty == 0)
                        {
                            break;
                        }
                    }
                    dr.DefaultCellStyle.BackColor = Color.FromKnownColor(KnownColor.ActiveCaption);
                    UpdateGridStockOut(listStockOut);
                    UpdateGridPrint(listPrint);
                    txtSetLowItem.Clear();
                    txtSetLowItem.Focus();
                }
            }
            catch (Exception ex)
            {
                CustomMessageBox.Error(ex.Message);
                txtSetLowItem.Clear();
                txtSetInvoice.Clear();
                txtSetLowItem.Focus();
            }
        }