public void Singleton_CanOnlyConfigureIdLinkViaIdLinkFactory()
        {
            // Arrange
            ODataModelBuilder builder = GetSingletonModel();
            const string ExpectedEditLink = "http://server/service/Exchange";

            var product = builder.Singleton<SingletonProduct>("Exchange");
            product.HasIdLink(c => new Uri("http://server/service/Exchange"),
                followsConventions: false);

            var exchange = builder.Singletons.Single();
            var model = builder.GetEdmModel();
            var productType = model.SchemaElements.OfType<IEdmEntityType>().Single();
            var singleton = model.SchemaElements.OfType<IEdmEntityContainer>().Single().FindSingleton("Exchange");
            var singletonInstance = new SingletonProduct { ID = 15 };
            var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton };
            var entityContext = new EntityInstanceContext(serializerContext, productType.AsReference(), singletonInstance);
            var linkBuilderAnnotation = new NavigationSourceLinkBuilderAnnotation(exchange);

            // Act
            var selfLinks = linkBuilderAnnotation.BuildEntitySelfLinks(entityContext, ODataMetadataLevel.FullMetadata);

            // Assert
            Assert.NotNull(selfLinks.IdLink);
            Assert.Equal(ExpectedEditLink, selfLinks.IdLink.ToString());
            Assert.Null(selfLinks.ReadLink);
            Assert.Null(selfLinks.EditLink);
        }
        /// <summary>
        /// Bindding data main product
        /// </summary>
        /// <param name="send"></param>
        public void BinddingProductChoose(int id)
        {
            var     send     = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id);
            int     row      = dataGridView1.CurrentRow.Index;
            var     checkQty = dataGridView1.Rows[row].Cells[colQty].Value ?? "0";
            decimal qty      = decimal.Parse(checkQty.ToString());

            dataGridView1.Rows[row].Cells[colId].Value           = send.Id;
            dataGridView1.Rows[row].Cells[colCode].Value         = send.Code;
            dataGridView1.Rows[row].Cells[colName].Value         = send.Products.ThaiName;
            dataGridView1.Rows[row].Cells[colUnit].Value         = send.ProductUnit.Name;
            dataGridView1.Rows[row].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(send.SellPrice);
            dataGridView1.Rows[row].Cells[colVatType].Value      = send.Products.ProductVatType.Name;
            dataGridView1.Rows[row].Cells[colDiscount].Value     = "0.00";
            dataGridView1.Rows[row].Cells[colRemark].Value       = "-";

            if (qty == 0)
            {
                dataGridView1.Rows[row].Cells[colQty].Value        = "1";
                dataGridView1.Rows[row].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(send.SellPrice);
            }
            else
            {
                dataGridView1.Rows[row].Cells[colQty].Value        = qty;
                dataGridView1.Rows[row].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * send.SellPrice);
            }

            dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty];
            dataGridView1.BeginEdit(true);
            TotalSummary();
        }
Example #3
0
        public void Singleton_CanOnlyConfigureIdLinkViaIdLinkFactory()
        {
            // Arrange
            ODataModelBuilder builder          = GetSingletonModel();
            const string      ExpectedEditLink = "http://server/service/Exchange";

            var product = builder.Singleton <SingletonProduct>("Exchange");

            product.HasIdLink(c => new Uri("http://server/service/Exchange"),
                              followsConventions: false);

            var exchange          = builder.Singletons.Single();
            var model             = builder.GetEdmModel();
            var productType       = model.SchemaElements.OfType <IEdmEntityType>().Single();
            var singleton         = model.SchemaElements.OfType <IEdmEntityContainer>().Single().FindSingleton("Exchange");
            var singletonInstance = new SingletonProduct {
                ID = 15
            };
            var serializerContext = new ODataSerializerContext {
                Model = model, NavigationSource = singleton
            };
            var entityContext         = new ResourceContext(serializerContext, productType.AsReference(), singletonInstance);
            var linkBuilderAnnotation = new NavigationSourceLinkBuilderAnnotation(exchange);

            // Act
            var selfLinks = linkBuilderAnnotation.BuildEntitySelfLinks(entityContext, ODataMetadataLevel.FullMetadata);

            // Assert
            Assert.NotNull(selfLinks.IdLink);
            Assert.Equal(ExpectedEditLink, selfLinks.IdLink.ToString());
            Assert.Null(selfLinks.ReadLink);
            Assert.Null(selfLinks.EditLink);
        }
Example #4
0
        private void buttonSearchProduct_Click(object sender, EventArgs e)
        {
            List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList();
            SelectedProductPopup  obj  = new SelectedProductPopup(this, list, 1);

            obj.ShowDialog();
        }
Example #5
0
        /// <summary>
        /// เลือกสินค้า เพื่อย้ายฐาน
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            int id = int.Parse(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString());

            Console.WriteLine(id);
            if (fk2 == null || fk2 == 0)
            {
                MessageBox.Show("กรุณาเลือก สินค้า 2");
                return;
            }
            else // allow transfer
            {
                List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList();
                var data = list.FirstOrDefault(w => w.Enable == true && w.Id == id);
                dataGridView2.Rows.Add
                (
                    data.Id,
                    data.Code,
                    data.PackSize,
                    data.ProductUnit.Name,
                    data.CostOnly,
                    data.CostAndVat,
                    data.SellPrice);
                dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
            }
        }
        /// <summary>
        /// เมื่อมีการ Tab data grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            List <ProductDetails> products = new List <ProductDetails>();

            products = SingletonProduct.Instance().ProductDetails;

            if (e.RowIndex < 0)
            {
                return;
            }
            try
            {
                ProductDetails p   = new ProductDetails();
                string         pNo = "0";
                switch (e.ColumnIndex)
                {
                case 0:
                    if (dataGridView1.Rows[e.RowIndex].Cells[colCode].Value != null)
                    {
                        pNo = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString();
                    }
                    p = products.FirstOrDefault(w => w.Code == pNo);
                    if (p != null)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colId].Value = p.Id;                                                      // Id
                        //dataGridView1.Rows[e.RowIndex].Cells[colCode].Value = p.Code; // code
                        dataGridView1.Rows[e.RowIndex].Cells[colName].Value         = p.Products.ThaiName;                             // ชื่อ
                        dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value         = p.ProductUnit.Name;                              // หน่วย
                        dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value = Library.ConvertDecimalToStringForm(p.SellPrice); // ราคาปกติ
                        dataGridView1.Rows[e.RowIndex].Cells[colSpecialPrice].Value = "0.00";                                          // ราคาพิเศษ
                        dataGridView1.Rows[e.RowIndex].Cells[colDiffPercent].Value  = "0.00 %";                                        // ส่วนต่าง %
                        dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value     = "0.00";                                          // ส่วนต่าง บาท
                        dataGridView1.Rows[e.RowIndex].Cells[colRemark].Value       = "-";                                             // หมายเหตุ
                    }
                    break;

                case 5:
                    // ราคา ปกติ
                    decimal price = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value.ToString());
                    // ส่วนต่าง ได้จาก ราคาปกติ - ราคาพิเศษ
                    decimal sPrice = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colSpecialPrice].Value.ToString());
                    if (sPrice >= price)
                    {
                        MessageBox.Show("คุณแน่ใจหรือไม่ ? ราคาโปรโมชั่นมากว่าหรือเท่ากันราคาปกติ");
                    }
                    // set diff bath
                    dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value = Library.ConvertDecimalToStringForm(price - sPrice);
                    // เงินต่าง
                    decimal diffBath = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiffBath].Value.ToString());
                    decimal percent  = diffBath * 100 / price;
                    dataGridView1.Rows[e.RowIndex].Cells[colDiffPercent].Value = Library.ConvertDecimalToStringForm(percent) + " %";
                    break;
                }
            }
            catch (Exception)
            {
            }
        }
Example #7
0
        public void BinddingProduct(int id)
        {
            var product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id);

            if (changeTxt == true)
            {
                txt_p_S.Text = product.Code;
            }
            else
            {
                txt_p_E.Text = product.Code;
            }
        }
        private void CampaignFullyQtyAndGiftForm_Load(object sender, EventArgs e)
        {
            SingletonProduct.Instance();
            dateTimePickerStart.MinDate = DateTime.Now;
            var thisBudget = SingletonThisBudgetYear.Instance().ThisYear;

            using (SSLsEntities db = new SSLsEntities())
            {
                int currentYear  = DateTime.Now.Year;
                int currentMonth = DateTime.Now.Month;
                var pro          = db.PriceSchedule.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1;
                textBoxProCode.Text = thisBudget.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3);
            }
        }
        void TotalSummary()
        {
            try
            {
                decimal totalQty    = 0;
                decimal totalUnVat  = 0;
                decimal totalHasVat = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (dataGridView1.Rows[i].Cells[colCode].Value == null)
                    {
                        continue;
                    }
                    else if (dataGridView1.Rows[i].Cells[colCode].Value.ToString() == "")
                    {
                        continue;
                    }
                    int            id      = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString());
                    ProductDetails product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id);
                    decimal        qty     = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString());
                    totalQty += qty;

                    decimal totalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotalPrice].Value.ToString());
                    if (product.Products.ProductVatType.Id == MyConstant.ProductVatType.UnVat)
                    {
                        // ถ้าเป็น ยกเว้นภาษี
                        totalUnVat += totalPrice;
                    }
                    else
                    {
                        totalHasVat += totalPrice;
                    }
                    //if (i >= dataGridView1.Rows.Count - 2) break;
                }
                textBoxQtyUnit.Text    = Library.ConvertDecimalToStringForm(totalQty);
                textBoxTotalUnVat.Text = Library.ConvertDecimalToStringForm(totalUnVat);
                decimal vat       = Library.CalVatFromValue(totalHasVat);
                decimal beforeVat = totalHasVat - vat;
                textBoxTotalBeforeVat.Text = Library.ConvertDecimalToStringForm(beforeVat);
                textBoxTotalVat.Text       = Library.ConvertDecimalToStringForm(vat);
                textBoxTotalBalance.Text   = Library.ConvertDecimalToStringForm(totalUnVat + totalHasVat);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
 private void CampaignDiscountDayForm_Load(object sender, EventArgs e)
 {
     dateTimePickerStart.MinDate = DateTime.Now;
     SingletonProduct.Instance();
     //using (SSLsEntities db = new SSLsEntities())
     //{
     //    string proCodeGen = SingletonPriority1.Instance().ThisBudgetYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(db.PriceSchedule.Count() + 1, 3);
     //    textBoxProCode.Text = proCodeGen;
     //}
     using (SSLsEntities db = new SSLsEntities())
     {
         int    currentYear  = DateTime.Now.Year;
         int    currentMonth = DateTime.Now.Month;
         var    pro          = db.PriceSchedule.Where(w => w.CreateDate.Year == currentYear && w.CreateDate.Month == currentMonth).Count() + 1;
         string code         = SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(pro, 3);
         textBoxProCode.Text = code;
     }
 }
Example #11
0
        /// <summary>
        /// Tab data grid 1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            List <ProductDetails> products = new List <ProductDetails>();

            products = SingletonProduct.Instance().ProductDetails;

            if (e.RowIndex < 0)
            {
                return;
            }
            try
            {
                ProductDetails p   = new ProductDetails();
                string         pNo = "0";
                switch (e.ColumnIndex)
                {
                case 0:
                    if (dataGridView1.Rows[e.RowIndex].Cells[colCode].Value != null)
                    {
                        pNo = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString();
                    }
                    p = products.FirstOrDefault(w => w.Code == pNo);
                    if (p != null)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colId].Value           = p.Id;                                            // Id
                        dataGridView1.Rows[e.RowIndex].Cells[colName].Value         = p.Products.ThaiName;                             // ชื่อ
                        dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value         = p.ProductUnit.Name;                              // หน่วย
                        dataGridView1.Rows[e.RowIndex].Cells[colCurrentPrice].Value = Library.ConvertDecimalToStringForm(p.SellPrice); // ราคาปกติ
                        dataGridView1.Rows[e.RowIndex].Cells[colRemark].Value       = "-";                                             // หมายเหตุ
                    }
                    break;

                case 5:

                    break;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #12
0
        public void Singleton_CanConfigureLinksIndependently()
        {
            // Arrange
            ODataModelBuilder builder          = GetSingletonModel();
            const string      ExpectedEditLink = "http://server1/service/Exchange";
            const string      ExpectedReadLink = "http://server2/service/Exchange";
            const string      ExpectedIdLink   = "http://server3/service/Exchange";

            var product = builder.Singleton <SingletonProduct>("Exchange");

            product.HasEditLink(c => new Uri("http://server1/service/Exchange"),
                                followsConventions: false);
            product.HasReadLink(c => new Uri("http://server2/service/Exchange"),
                                followsConventions: false);
            product.HasIdLink(c => new Uri("http://server3/service/Exchange"),
                              followsConventions: false);

            var exchange          = builder.Singletons.Single();
            var model             = builder.GetEdmModel();
            var productType       = model.SchemaElements.OfType <IEdmEntityType>().Single();
            var singleton         = model.SchemaElements.OfType <IEdmEntityContainer>().Single().FindSingleton("Exchange");
            var singletonInstance = new SingletonProduct {
                ID = 15
            };
            var serializerContext = new ODataSerializerContext {
                Model = model, NavigationSource = singleton
            };
            var entityContext = new ResourceContext(serializerContext, productType.AsReference(), singletonInstance);

            // Act
            var editLink = exchange.GetEditLink().Factory(entityContext);
            var readLink = exchange.GetReadLink().Factory(entityContext);
            var idLink   = exchange.GetIdLink().Factory(entityContext);

            // Assert
            Assert.NotNull(editLink);
            Assert.Equal(ExpectedEditLink, editLink.ToString());
            Assert.NotNull(readLink);
            Assert.Equal(ExpectedReadLink, readLink.ToString());
            Assert.NotNull(idLink);
            Assert.Equal(ExpectedIdLink, idLink.ToString());
        }
Example #13
0
        private void SelectedProductPopup_Load(object sender, EventArgs e)
        {
            if (_FromForm == "GoodsReturnWmsForm")
            {
                using (SSLsEntities db = new SSLsEntities())
                {
                    List <int> fkProDtlInWaste           = db.WasteWarehouseDetails.Where(w => w.Enable == true).Select(w => w.FKProductDetails).Distinct().ToList <int>();
                    var        getPdtl                   = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true && fkProDtlInWaste.Contains(w.Id)).ToList();
                    AutoCompleteStringCollection colPdtl = new AutoCompleteStringCollection();
                    foreach (var item in getPdtl)
                    {
                        colPdtl.Add(item.Products.ThaiName);
                    }
                    textBoxSearchKey.AutoCompleteCustomSource = colPdtl;

                    foreach (var item in getPdtl)
                    {
                        dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description);
                    }
                }
            }
            else
            {
                var getPdtl = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList();
                AutoCompleteStringCollection colPdtl = new AutoCompleteStringCollection();
                foreach (var item in getPdtl)
                {
                    colPdtl.Add(item.Products.ThaiName);
                }
                textBoxSearchKey.AutoCompleteCustomSource = colPdtl;

                foreach (var item in SingletonProduct.Instance().ProductDetails.Where(w => w.Enable).Take(MyConstant.SelectTopRow.Product))
                {
                    dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description);
                }
            }

            textBoxSearchKey.Select();
            textBoxSearchKey.SelectAll();
        }
        public void Singleton_CanConfigureLinksIndependently()
        {
            // Arrange
            ODataModelBuilder builder = GetSingletonModel();
            const string ExpectedEditLink = "http://server1/service/Exchange";
            const string ExpectedReadLink = "http://server2/service/Exchange";
            const string ExpectedIdLink = "http://server3/service/Exchange";

            var product = builder.Singleton<SingletonProduct>("Exchange");
            product.HasEditLink(c => new Uri("http://server1/service/Exchange"),
                followsConventions: false);
            product.HasReadLink(c => new Uri("http://server2/service/Exchange"),
                followsConventions: false);
            product.HasIdLink(c => new Uri("http://server3/service/Exchange"),
                followsConventions: false);

            var exchange = builder.Singletons.Single();
            var model = builder.GetEdmModel();
            var productType = model.SchemaElements.OfType<IEdmEntityType>().Single();
            var singleton = model.SchemaElements.OfType<IEdmEntityContainer>().Single().FindSingleton("Exchange");
            var singletonInstance = new SingletonProduct { ID = 15 };
            var serializerContext = new ODataSerializerContext { Model = model, NavigationSource = singleton };
            var entityContext = new EntityInstanceContext(serializerContext, productType.AsReference(), singletonInstance);

            // Act
            var editLink = exchange.GetEditLink().Factory(entityContext);
            var readLink = exchange.GetReadLink().Factory(entityContext);
            var idLink = exchange.GetIdLink().Factory(entityContext);

            // Assert
            Assert.NotNull(editLink);
            Assert.Equal(ExpectedEditLink, editLink.ToString());
            Assert.NotNull(readLink);
            Assert.Equal(ExpectedReadLink, readLink.ToString());
            Assert.NotNull(idLink);
            Assert.Equal(ExpectedIdLink, idLink.ToString());
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                string  code     = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString();
                var     product  = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).FirstOrDefault(w => w.Code == code);
                var     checkQty = dataGridView1.Rows[e.RowIndex].Cells[colQty].Value ?? "0";
                decimal qty      = decimal.Parse(checkQty.ToString());
                switch (e.ColumnIndex)
                {
                /// Code
                case 1:
                    if (product != null)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colId].Value           = product.Id;
                        dataGridView1.Rows[e.RowIndex].Cells[colName].Value         = product.Products.ThaiName;
                        dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value         = product.ProductUnit.Name;
                        dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(product.SellPrice);
                        dataGridView1.Rows[e.RowIndex].Cells[colVatType].Value      = product.Products.ProductVatType.Name;
                        if (dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value == null)
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00";
                        }

                        if (qty == 0)
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = "1";
                            dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice);
                        }
                        else
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = qty;
                            dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice);
                        }
                        TotalSummary();
                    }
                    else
                    {
                        //MessageBox.Show("ไม่พบข้อมูล");
                    }
                    break;

                case 7:     // คีย์ ส่วนลด
                    decimal pricePerUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString());
                    decimal total        = pricePerUnit * qty;
                    decimal discount     = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString());
                    dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total - discount);
                    TotalSummary();
                    break;

                case 5:     // จำนวน
                    if (qty == 0)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = "1";
                        dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice);
                    }
                    else
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = qty;
                        dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice);
                    }
                    /// คีย์จำนวน ต้องไปเชค Stock
                    int     id      = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[colId].Value.ToString());
                    decimal qtyUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString());
                    using (SSLsEntities db = new SSLsEntities())
                    {
                        var stockWms = db.WmsStockDetail.Where(w => w.Enable == true && w.FKProductDetail == id).OrderByDescending(w => w.CreateDate).FirstOrDefault();
                        Console.WriteLine("row " + e.RowIndex + " Want: " + qtyUnit + " stock: " + stockWms.ResultQtyUnit);
                        if (qtyUnit > stockWms.ResultQtyUnit)
                        {
                            MessageBox.Show("Stock คงเหลือ " + stockWms.ResultQtyUnit);
                            //dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colQty];
                            //dataGridView1.CurrentCell.Selected = true;
                        }
                        else
                        {
                        }
                    }
                    TotalSummary();
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
            }
        }
Example #16
0
        void Selected(int id)
        {
            var product = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == id);

            switch (_FromForm)
            {
            case "AdjustWasteForm":
                this.adjustWasteForm.BinddingProduct(id);     // adjust ห่้องของเสีย
                break;

            case "WasteInOutStockForm":
                this.wasteInOutStockForm.BinddingProduct(id);     // สินค้า แปรรูป
                break;

            case "PGoodsForm":
                this.pGoodsForm.BinddingProduct(id);     // สินค้า แปรรูป
                break;

            case "MergeProductForm":
                this.mergeProductForm.BinddingProduct(id, gvNumber);     // ย้ายฐานสินค้า
                break;

            case "GetGoodsForUseForm":     // เบิกใช้เอง
                this.getGoodsForUseForm.BinddingProductChoose(id);
                break;

            case "StoreFrontAdjustForm":     // รายงาน
                this.storeFrontAdjustForm.BinddingProduct(id);
                break;

            case "ReportStockCard":     // รายงาน
                this.reportStockCard.BinddingProduct(id);
                break;

            case "ProductRawInOut":     // รายงาน รับ-จ่าย- คงเหลือ
                this.productRawInOut.BinddingProduct(id);
                break;

            case "LeftInStock":     // รายงาน สินค้าคงเหลือ
                this.leftInStock.BinddingProduct(id);
                break;

            case "ManageProductForm":
                this.manageProductForm.BinddingProduct(id);
                break;

            case "SaleOrderWarehouseForm":
                this.saleOrderWarehouseForm.BinddingSelectedProduct(product);
                break;

            case "CampaignDiscountDayForm":
                this.campaignDiscountDayForm.BinddingSelectedProduct(product);
                break;

            case "CampaignFullyQtyAndSaleForm1":     // datagrid1
                this.campaignFullyQtyAndSaleForm.BinddingSelectedProduct(product);
                break;

            case "CampaignFullyQtyAndSaleForm2":     // datagrid2
                this.campaignFullyQtyAndSaleForm.BinddingSelectedProduct(product, true);
                break;

            case "CampiagnFullyQtyAndDiscount":
                this.campiagnFullyQtyAndDiscount.BinddingSelectedProduct(product);
                break;

            case "CampiagnFullyAmountAndSaleForm1":     // datagrid1
                this.campiagnFullyAmountAndSaleForm.BinddingSelectedProduct(product);
                break;

            case "CampiagnFullyAmountAndSaleForm2":     // datagrid2
                this.campiagnFullyAmountAndSaleForm.BinddingSelectedProduct(product, true);
                break;

            case "CampaignFullyAmountAndDisForm":
                this.campaignFullyAmountAndDisForm.BinddingSelectedProduct(product);
                break;

            case "CreatePOForm":
                this.createPOForm.BinddingProductChoose(id);
                break;

            case "CampaignFullyQtyAndGiftForm1":
                this.campaignFullyQtyAndGiftForm.BinddingGrid1(id);
                break;

            case "CampaignFullyQtyAndGiftForm2":
                this.campaignFullyQtyAndGiftForm.BinddingGrid2(id);
                break;

            case "POEditForm":
                this.pOEditForm.BinddingProductChoose(id);
                break;

            case "WmsTransferBranchForm":
                this.wmsTransferBranchForm.BinddingProductChoose(id);
                break;

            case "GoodsReturnWmsForm":
                this.goodsReturnWmsForm.BinddingProductChoose(id);
                break;

            case "StoreFrontAddForm":
                this.storeFrontAddForm.BinddingProductChoose(id);
                break;

            case "SaleOrderWarehouseEditForm":
                this.saleOrderWarehouseEditForm.BinddingProductChoose(id);
                break;

            case "TransferOutForm":
                this.transferOutForm.BinddingProductChoose(id);
                break;

            case "TransferOutEditForm":
                this.transferOutEditForm.BinddingProductChoose(id);
                break;

            case "WasteManageForm":
                this.wasteManageForm.BinddingProductChoose(id);
                break;

            case "WasteWarehouseManageForm":
                this.wasteWarehouseManageForm.BinddingProductChoose(id);
                break;

            case "StockCardListForm":
                this.stockCardListForm.BinddingProductChoose(id);
                break;

            case "CheckStockFront1Form":
                this.checkStockFront1Form.BinddingProductChoose(id);
                break;
            }
            this.Dispose();
        }
        private void SaveCommit()
        {
            using (SSLsEntities db = new SSLsEntities())
            {
                int    count   = db.GetGoodsStoreFront.Where(w => w.CreateDate.Year == DateTime.Now.Year && w.CreateDate.Month == DateTime.Now.Month).Count() + 1;
                string docCode = MyConstant.PrefixForGenerateCode.GetGoodsForUse + Singleton.SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(count, 4);

                GetGoodsStoreFront gg = new GetGoodsStoreFront();
                List <GetGoodsStoreFrontDetails> details = new List <GetGoodsStoreFrontDetails>();
                GetGoodsStoreFrontDetails        detail;
                gg.Enable       = true;
                gg.Code         = docCode;
                gg.CreateDate   = DateTime.Now;
                gg.CreateBy     = Singleton.SingletonAuthen.Instance().Id;
                gg.UpdateDate   = DateTime.Now;
                gg.UpdateBy     = Singleton.SingletonAuthen.Instance().Id;
                gg.TotalQtyUnit = decimal.Parse(textBoxQtyUnit.Text);
                gg.TotalBalance = decimal.Parse(textBoxTotalBalance.Text);
                gg.Description  = textBoxDesc.Text;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    var code = dataGridView1.Rows[i].Cells[colCode].Value;
                    if (code == null)
                    {
                        continue;
                    }
                    code = code.ToString();

                    detail                  = new GetGoodsStoreFrontDetails();
                    detail.Enable           = true;
                    detail.Description      = dataGridView1.Rows[i].Cells[colLocation].Value.ToString();
                    detail.CreateDate       = DateTime.Now;
                    detail.CreateBy         = Singleton.SingletonAuthen.Instance().Id;
                    detail.UpdateDate       = DateTime.Now;
                    detail.UpdateBy         = Singleton.SingletonAuthen.Instance().Id;
                    detail.FKProductDetails = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString());
                    var prodDtl = Singleton.SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == detail.FKProductDetails);

                    detail.Qty              = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString());
                    detail.CostPerUnit      = decimal.Parse(dataGridView1.Rows[i].Cells[colCostPerUnit].Value.ToString());
                    detail.SellPricePerUnit = prodDtl.SellPrice;
                    details.Add(detail);
                    gg.GetGoodsStoreFrontDetails.Add(detail);

                    // check product นี้ว่ามีในหน้าร้านหรือไม่ ถ้าไม่มีแสดงว่า ไม่เคยเบิกเติมหน้าร้าน เดี่ยวจะมีปันหา
                    var getTransactionPos = db.StoreFrontStockDetails.FirstOrDefault(w => w.Enable == true && w.FKProductDetails == detail.FKProductDetails);
                    if (getTransactionPos == null) // ถ้าไม่มีตัวตนในหน้าร้าน แปลว่า ของไม่มีการเบิกเติม แต่มีสินค้ายุ่จริง
                    {
                        MessageBox.Show("" + code + " " + prodDtl.Products.ThaiName + "(" + prodDtl.ProductUnit.Name + ") " + "ไม่มีในระบบ ไม่สามารถเบิกใช้ได้ กรุณาติดต่อ admin");
                        return;
                    }
                }
                db.GetGoodsStoreFront.Add(gg);
                /// add To Transaction
                int j = 1;
                foreach (var item in details)
                {
                    var prodDtl = SingletonProduct.Instance().ProductDetails.SingleOrDefault(w => w.Id == item.FKProductDetails);
                    StoreFrontStockDetails addDtl = new StoreFrontStockDetails();
                    addDtl.DocNo        = gg.Code;
                    addDtl.DocDtlNumber = j;
                    addDtl.Description  = "เบิกหน้าร้าน ใช้เอง";
                    addDtl.CreateDate   = DateTime.Now;
                    addDtl.CreateBy     = SingletonAuthen.Instance().Id;
                    addDtl.UpdateDate   = DateTime.Now;
                    addDtl.UpdateBy     = SingletonAuthen.Instance().Id;
                    addDtl.Enable       = true;
                    addDtl.ActionQty    = prodDtl.PackSize * item.Qty; // จำนวนหน่วย * pz
                    var stockHD = db.StoreFrontStock.FirstOrDefault(w => w.FKProduct == prodDtl.FKProduct && w.Enable == true);
                    addDtl.FKStoreFrontStock = stockHD.Id;
                    addDtl.FKTransactionType = MyConstant.PosTransaction.GGF;
                    addDtl.Barcode           = prodDtl.Code;
                    addDtl.Name             = prodDtl.Products.ThaiName;
                    addDtl.FKProductDetails = prodDtl.Id;
                    addDtl.ResultQty        = 0;

                    addDtl.PackSize          = prodDtl.PackSize;
                    addDtl.DocRefer          = "-";
                    addDtl.DocReferDtlNumber = 0;
                    addDtl.CostOnlyPerUnit   = prodDtl.CostOnly;
                    addDtl.SellPricePerUnit  = prodDtl.SellPrice;
                    db.StoreFrontStockDetails.Add(addDtl);
                    j++;
                }

                db.SaveChanges();
                // open paper
                frmMainReport report = new frmMainReport(this, gg.Code);
                report.Show();
                dataGridView1.Rows.Clear();
                dataGridView1.Refresh();

                dataGridView1.Rows.Add(1);
                count              = db.GetGoodsStoreFront.Where(w => w.CreateDate.Year == DateTime.Now.Year && w.CreateDate.Month == DateTime.Now.Month).Count() + 1;
                docCode            = MyConstant.PrefixForGenerateCode.GetGoodsForUse + Singleton.SingletonThisBudgetYear.Instance().ThisYear.CodeYear + DateTime.Now.ToString("MM") + Library.GenerateCodeFormCount(count, 4);
                textBoxTOCode.Text = docCode;
                textBoxTODate.Text = Library.ConvertDateToThaiDate(DateTime.Now);
            }
        }
Example #18
0
        /// <summary>
        /// ส่ง fk prod dtl มา
        /// </summary>
        /// <param name="id"></param>
        public void BinddingProduct(int id, int gvNumber)
        {
            List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList();
            var fkProd         = list.FirstOrDefault(w => w.Enable == true && w.Id == id).FKProduct;
            var getProdDetails = list.Where(w => w.Enable == true && w.FKProduct == fkProd).ToList();

            //using (SSLsEntities db = new SSLsEntities())
            //{
            //    var getStock = db.StoreFrontStock.FirstOrDefault(w => w.Enable == true && w.FKProduct == fkProd);
            //    if (getStock)
            //    {

            //    }
            //}
            if (gvNumber == 1) // bindding datagrid 1
            {
                fk1         = fkProd;
                label3.Text = getProdDetails.FirstOrDefault().Products.ThaiName;
                dataGridView1.Rows.Clear();
                dataGridView1.Refresh();
                foreach (var item in getProdDetails)
                {
                    dataGridView1.Rows.Add
                    (
                        item.Id,
                        item.Code,
                        item.PackSize,
                        item.ProductUnit.Name,
                        item.CostOnly,
                        item.CostAndVat,
                        item.SellPrice
                    );
                }
                qtyLb1.Text = Library.ConvertDecimalToStringForm(Library.GetResult(fkProd, DateTime.Now.AddDays(1)));
                /// clear grid2 กันพลาดจาก grid1 หลงเข้ามา
                fk2         = 0;
                label4.Text = "";
                qtyLb2.Text = "0.00";
                dataGridView2.Rows.Clear();
                dataGridView2.Refresh();
            }
            else
            {
                fk2         = fkProd;
                label4.Text = getProdDetails.FirstOrDefault().Products.ThaiName;
                dataGridView2.Rows.Clear();
                dataGridView2.Refresh();
                foreach (var item in getProdDetails)
                {
                    dataGridView2.Rows.Add
                    (
                        item.Id,
                        item.Code,
                        item.PackSize,
                        item.ProductUnit.Name,
                        item.CostOnly,
                        item.CostAndVat,
                        item.SellPrice
                    );
                }
                qtyLb2.Text = Library.ConvertDecimalToStringForm(Library.GetResult(fkProd, DateTime.Now.AddDays(1)));
            }
            if (fk1 == fk2)
            {
                MessageBox.Show("คุณเลือกสินค้าฐานเดียวกัน");
                fk2         = 0;
                label4.Text = "สินค้า 2";
                dataGridView2.Rows.Clear();
                dataGridView2.Refresh();
                return;
            }
        }
        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                string  code     = dataGridView1.Rows[e.RowIndex].Cells[colCode].Value.ToString();
                var     product  = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).FirstOrDefault(w => w.Code == code);
                var     checkQty = dataGridView1.Rows[e.RowIndex].Cells[colQty].Value ?? "0";
                decimal qty      = decimal.Parse(checkQty.ToString());

                int col = dataGridView1.CurrentCell.ColumnIndex;
                int row = dataGridView1.CurrentRow.Index;
                if (col == colCode)
                {
                    if (product != null)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colId].Value           = product.Id;
                        dataGridView1.Rows[e.RowIndex].Cells[colName].Value         = product.Products.ThaiName;
                        dataGridView1.Rows[e.RowIndex].Cells[colUnit].Value         = product.ProductUnit.Name;
                        dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value = Library.ConvertDecimalToStringForm(product.SellPrice);
                        dataGridView1.Rows[e.RowIndex].Cells[colVatType].Value      = product.Products.ProductVatType.Name;

                        if (dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value == null)
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00";
                        }

                        if (qty == 0)
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = "0";
                            dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = "0";
                        }
                        else
                        {
                            dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = qty;
                            dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * product.SellPrice);
                        }
                        TotalSummary();
                    }
                    else
                    {
                        MessageBox.Show("ไม่พบข้อมูล");
                        dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colCode];
                        dataGridView1.BeginEdit(true);
                    }

                    dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty];
                    dataGridView1.BeginEdit(true);
                }
                else if (col == colQty)
                {
                    decimal pricePerunit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString());
                    decimal total        = qty * pricePerunit;

                    if (qty == 0)
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = "1";
                        dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(product.SellPrice);
                    }
                    else
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[colQty].Value        = qty;
                        dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(qty * pricePerunit);
                    }
                    /// คีย์จำนวน ต้องไปเชค Stock
                    int     id      = int.Parse(dataGridView1.Rows[e.RowIndex].Cells[colId].Value.ToString());
                    decimal qtyUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString());
                    using (WH_TRATEntities db = new WH_TRATEntities())
                    {
                        var locStk = db.WH_LOCSTK.Where(w => w.PRODUCT_NO == code);
                        if (locStk.Count() > 0)
                        {
                            decimal sumQty   = ConvertDecimalNull(locStk.Sum(w => w.QTY));
                            decimal sumbook  = ConvertDecimalNull(locStk.Sum(w => w.BOOK_QTY));
                            decimal packsize = ConvertDecimalNull(locStk.FirstOrDefault().PACK_SIZE);
                            if (qty > ((sumQty - sumbook) / packsize))
                            {
                                MessageBox.Show("Stock ไม่พอ พบ : " + ((sumQty - sumbook) / packsize) + " " + product.ProductUnit.Name);
                                TotalSummary();

                                dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colQty];
                                dataGridView1.BeginEdit(true);
                                return;
                            }
                        }
                        else
                        {
                            MessageBox.Show("ไม่พบ Stock");
                            dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colCode];
                            dataGridView1.BeginEdit(true);
                            return;
                        }
                        //var stockWms = db.WmsStockDetail.Where(w => w.Enable == true && w.FKProductDetail == id).OrderByDescending(w => w.CreateDate).FirstOrDefault();
                        //Console.WriteLine("row " + e.RowIndex + " Want: " + qtyUnit + " stock: " + stockWms.ResultQtyUnit);
                        //if (qtyUnit > stockWms.ResultQtyUnit)
                        //{
                        //    MessageBox.Show("Stock คงเหลือ " + stockWms.ResultQtyUnit);
                        //    //dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[colQty];
                        //    //dataGridView1.CurrentCell.Selected = true;
                        //}
                        //else
                        //{

                        //}
                    }
                    TotalSummary();

                    dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colPricePerUnit];
                    dataGridView1.BeginEdit(true);
                }
                else if (col == colPricePerUnit)
                {
                    // calculate toal
                    decimal pricePerunit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString());
                    decimal total        = qty * pricePerunit;
                    dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total);
                    dataGridView1.CurrentCell = dataGridView1.Rows[row].Cells[colDiscount];
                    dataGridView1.BeginEdit(true);
                }
                else if (col == colDiscount)
                {
                    //decimal total = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value.ToString());
                    decimal pricePerUnit = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colPricePerUnit].Value.ToString());
                    decimal total        = pricePerUnit * qty;
                    decimal discount     = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString());
                    dataGridView1.Rows[e.RowIndex].Cells[colTotalPrice].Value = Library.ConvertDecimalToStringForm(total - discount);
                    TotalSummary();

                    if (row == dataGridView1.RowCount - 1)
                    {
                        dataGridView1.Rows.Add(1);
                        dataGridView1.CurrentCell = dataGridView1.Rows[row + 1].Cells[1];
                        dataGridView1.BeginEdit(true);
                    }
                    else
                    {
                        dataGridView1.CurrentCell = dataGridView1.Rows[row + 1].Cells[colDiscount];
                        dataGridView1.BeginEdit(true);
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Example #20
0
        private void SaveCommit()
        {
            using (SSLsEntities db = new SSLsEntities())
            {
                List <ProductDetails> list = SingletonProduct.Instance().ProductDetails.Where(w => w.Enable == true).ToList();
                var        getProdDetails  = list.Where(w => w.Enable == true && w.FKProduct == fk2).ToList();
                List <int> disId           = new List <int>();

                // ต้องมี pz 1 ยุ่ในฐาน
                if (dataGridView1.Rows.Count > 0)
                {
                    bool checkPz1 = false;
                    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                    {
                        decimal pz = decimal.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
                        if (pz == 1)
                        {
                            checkPz1 = true;
                        }
                    }
                    if (!checkPz1) // not allow
                    {
                        MessageBox.Show("ต้องเหลือ packsize 1 ไว้");
                        return;
                    }
                }

                for (int i = 0; i < dataGridView2.Rows.Count; i++)
                {
                    int     id       = int.Parse(dataGridView2.Rows[i].Cells[0].Value.ToString());
                    string  code     = dataGridView2.Rows[i].Cells[1].Value.ToString();
                    decimal pz       = decimal.Parse(dataGridView2.Rows[i].Cells[2].Value.ToString());
                    decimal costOnly = decimal.Parse(dataGridView2.Rows[i].Cells[4].Value.ToString());
                    // id check new
                    if (getProdDetails.SingleOrDefault(w => w.Id == id) != null)
                    {
                        continue;
                    }
                    else
                    {
                        // add new
                        var            oldProd = list.FirstOrDefault(w => w.Enable == true && w.Id == id);
                        ProductDetails details = new ProductDetails();
                        details.Code            = code;
                        details.Name            = "-";
                        details.Description     = "ย้ายฐานจาก : " + fk1;
                        details.PackSize        = pz;
                        details.CostOnly        = costOnly;
                        details.CostAndVat      = oldProd.CostAndVat;
                        details.CostVat         = oldProd.CostVat;
                        details.IsPrintLabel    = oldProd.IsPrintLabel;
                        details.SellPrice       = oldProd.SellPrice;
                        details.FKProduct       = fk2;
                        details.FKUnit          = oldProd.FKUnit;
                        details.SpecialQtyPiece = oldProd.SpecialQtyPiece;
                        details.SetPallet       = oldProd.SetPallet;
                        details.PalletRow       = oldProd.PalletRow;
                        details.PalletLevel     = oldProd.PalletLevel;
                        details.PalletTotal     = oldProd.PalletTotal;
                        details.CreateDate      = DateTime.Now;
                        details.CreateBy        = SingletonAuthen.Instance().Id;
                        details.UpdateDate      = DateTime.Now;
                        details.UpdateBy        = SingletonAuthen.Instance().Id;
                        details.Enable          = true;
                        db.ProductDetails.Add(details);
                        // disable old
                        var getOld = db.ProductDetails.SingleOrDefault(w => w.Id == id);
                        getOld.Enable          = false;
                        getOld.Description     = "ถูกย้ายไป : " + fk2;
                        db.Entry(getOld).State = EntityState.Modified;
                    }
                }

                // check การย้ายฐาน
                if (dataGridView1.Rows.Count == 0)
                {
                    // แปลว่ามีการย้ายทั้งฐาน ต้อง เพิ่ม transactions
                    decimal getResultProduct1 = decimal.Parse(qtyLb1.Text);
                    if (getResultProduct1 < 0)
                    {
                        // add transactions
                        getResultProduct1 = Math.Abs(getResultProduct1);
                    }
                    else if (getResultProduct1 > 0) // พบสินค้าหน้าร้าน ห้ามย้ายฐานทั้งหมด
                    {
                        MessageBox.Show("ไม่สามารถย้ายฐานทั้งหมดได้ ยังมีสินค้าค้างอยู่หน้าร้าน");
                        return;
                    }
                }
                else
                {
                }
                //db.SaveChanges();
            }
            this.Dispose();
        }
Example #21
0
        private void textBoxSearchKey_KeyUp(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case Keys.Enter:
                string key    = textBoxSearchKey.Text.Trim();
                var    result = new List <ProductDetails>();

                if (radioButtonCode.Checked)
                {
                    // ถ้าหาด้วย code
                    var getFirst = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == key && w.Enable == true && w.Products.IsProcessingGoods == true);
                    if (getFirst != null)
                    {
                        result = SingletonProduct.Instance().ProductDetails.Where(w => w.FKProduct == getFirst.FKProduct && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList();
                    }
                    else
                    {
                        result = SingletonProduct.Instance().ProductDetails.Where(w => w.Code.Contains(key) && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList();
                    }
                }
                else
                {
                    string[] words = key.Split(' ');
                    // ถ้าหาด้วยชื่อ

                    //result = SingletonProduct.Instance().ProductDetails.Where(w => w.Products.ThaiName.Contains(key) && w.Enable == true).ToList();
                    switch (words.Count())
                    {
                    case 1:
                        result = SingletonProduct.Instance().ProductDetails
                                 .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Enable == true && w.Products.IsProcessingGoods == true).Take(MyConstant.SelectTopRow.Product).ToList();
                        break;

                    case 2:
                        result = SingletonProduct.Instance().ProductDetails
                                 .Where(w => w.Products.ThaiName.Contains(words[0]) && w.Products.ThaiName.Contains(words[1]) &&
                                        w.Enable == true && w.Products.IsProcessingGoods == true).ToList();
                        break;

                    case 3:
                        result = SingletonProduct.Instance().ProductDetails
                                 .Where(w => w.Products.ThaiName.Contains(words[0]) &&
                                        w.Products.ThaiName.Contains(words[1]) &&
                                        w.Products.ThaiName.Contains(words[2]) &&
                                        w.Enable == true && w.Products.IsProcessingGoods == true).ToList();
                        break;

                    case 4:
                        result = SingletonProduct.Instance().ProductDetails
                                 .Where(w => w.Products.ThaiName.Contains(words[0]) &&
                                        w.Products.ThaiName.Contains(words[1]) &&
                                        w.Products.ThaiName.Contains(words[2]) &&
                                        w.Products.ThaiName.Contains(words[3]) &&
                                        w.Enable == true && w.Products.IsProcessingGoods == true).ToList();
                        break;

                    case 5:
                        result = SingletonProduct.Instance().ProductDetails
                                 .Where(w => w.Products.ThaiName.Contains(words[0]) &&
                                        w.Products.ThaiName.Contains(words[1]) &&
                                        w.Products.ThaiName.Contains(words[2]) &&
                                        w.Products.ThaiName.Contains(words[3]) &&
                                        w.Products.ThaiName.Contains(words[4]) &&
                                        w.Enable == true && w.Products.IsProcessingGoods == true).ToList();
                        break;

                    default:
                        break;
                    }
                }

                dataGridView1.Rows.Clear();
                dataGridView1.Refresh();
                foreach (var item in result)
                {
                    dataGridView1.Rows.Add(item.Id, item.Code, item.Products.ThaiName, item.ProductUnit.Name, Library.ConvertDecimalToStringForm(item.PackSize), Library.ConvertDecimalToStringForm(item.SellPrice), item.Description);
                }

                break;

            default:
                break;
            }
        }
        /// <summary>
        /// เปลี่ยนแปลงค่าใน Grid1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                List<ProductDetails> products = new List<ProductDetails>();
                products = SingletonProduct.Instance().ProductDetails;
                decimal costCal = 0;
                if (e.ColumnIndex == 0 || e.ColumnIndex == 1 || e.ColumnIndex == 2)
                {

                }
                else if (e.ColumnIndex == colQty)
                {
                    var pNo = dataGridView1.Rows[e.RowIndex].Cells[colNo].Value.ToString();
                    var p = products.FirstOrDefault(w => w.Code == pNo);
                    decimal qty = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString());
                    //dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value = Library.ConvertDecimalToStringForm(p.CostOnly * qty); // ทุนเปล่า
                    //dataGridView1.Rows[e.RowIndex].Cells[colCostVatPerUnit].Value = Library.ConvertDecimalToStringForm(p.CostAndVat * qty); // ทุนรวมภาษี

                    costCal = 0;
                    if (_poCostType == MyConstant.POCostType.CostAndVat)
                    {
                        costCal = p.CostAndVat;
                    }
                    else if (_poCostType == MyConstant.POCostType.CostOnly)
                    {
                        costCal = p.CostOnly;
                    }
                    else
                    {
                        costCal = p.CostOnly;
                    }
                    dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value = "0.00";
                    dataGridView1.Rows[e.RowIndex].Cells[colDiscountBath].Value = "0.00"; // ส่วนลดเมื่อแปลงเป็นเงิน จาก บ หรือ %
                    dataGridView1.Rows[e.RowIndex].Cells[colTotalBalance].Value = Library.ConvertDecimalToStringForm(costCal * qty); // ราคาสุทธิ
                    RefreshConclude();
                }
                else if (e.ColumnIndex == colDiscount) // ถ้าคีย์ และะออกจากช่อง ส่วนลด
                {
                    string discountTxt = dataGridView1.Rows[e.RowIndex].Cells[colDiscount].Value.ToString();
                    string[] subString = Library.GetCheckBathOrPercent(discountTxt);
                    decimal discountBath = 0;
                    //decimal costOnly = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value.ToString());

                    var pNo = dataGridView1.Rows[e.RowIndex].Cells[colNo].Value.ToString();
                    var p = Singleton.SingletonProduct.Instance().ProductDetails.FirstOrDefault(w => w.Code == pNo);

                    if (_poCostType == MyConstant.POCostType.CostAndVat) // ทุนรวมภาษี
                    {
                        costCal = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostVatPerUnit].Value.ToString());
                    }
                    else if (_poCostType == MyConstant.POCostType.CostOnly) // ทุนเปล่า
                    {
                        costCal = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colCostPerUnit].Value.ToString());
                    }
                    //else
                    //{
                    //    costCal = p.CostOnly;
                    //}
                    /// คำนวนส่วนลด
                    decimal qty = decimal.Parse(dataGridView1.Rows[e.RowIndex].Cells[colQty].Value.ToString()); // จำนวน
                    if (subString[1] == "บ") // ต้องการลดเป็น บาท
                    {
                        discountBath = decimal.Parse(subString[0]);

                    }
                    else if (subString[1] == "") // ต้องการลด %
                    {
                        decimal percent = decimal.Parse(subString[0]);
                        if (percent > 99)
                            MessageBox.Show("ส่วนลด " + percent + " % คุณแน่ใจหรือไม่ ?");
                        discountBath = Library.CalPercentByValue(costCal * qty, decimal.Parse(subString[0]));
                    }
                    dataGridView1.Rows[e.RowIndex].Cells[colDiscountBath].Value = Library.ConvertDecimalToStringForm(discountBath); // ส่วนลดเมื่อแปลงเป็นเงิน จาก บ หรือ %
                    dataGridView1.Rows[e.RowIndex].Cells[colTotalBalance].Value = Library.ConvertDecimalToStringForm(qty * costCal - discountBath); // total balance
                    RefreshConclude();
                }
                else
                {
                    RefreshConclude();
                }
            }
            catch (Exception ex)
            {

            }
        }