コード例 #1
0
        void bildingData(string Code_S, string Code_E)
        {
            //try
            //{
            var      dateRun = DateTime.Now;
            DateTime dateS   = dateTimePicker_S.Value;
            var      aaa     = comboBox_S.Text;

            Cursor.Current = Cursors.WaitCursor;
            int             i     = 0;
            List <LefClass> lssfs = new List <LefClass>();

            using (SSLsEntities db = new SSLsEntities())
            {
                int comBo_S = int.Parse(comboBox_S.SelectedValue.ToString());
                int comBo_E = int.Parse(comboBox_E.SelectedValue.ToString());
                //List<int> fkPro = Library.GetAllProDtlId(Code_S, Code_E);
                //IQueryable<fn_GetResultDate_Result4> getVal;
                if (checkBoxProduct.Checked == true)
                {
                    // เลือกทั้งหมด
                    //fkPro = db.StoreFrontStock.Where(w => w.Enable == true).Select(w => w.FKProduct).Distinct().ToList();
                    Code_S = "0";
                    Code_E = "999999999999999";
                }
                else
                {
                    Code_S = txt_p_S.Text.Trim();
                    Code_E = txt_p_E.Text.Trim();
                    //pid_S = getIdProduct_S(Code_S);
                    //pid_E = getIdProduct_E(Code_E);
                }
                //List<StoreFrontStock> sfs = new List<StoreFrontStock>();
                //sfs = db.StoreFrontStock.Where(w => w.Enable == true && fkPro.Contains(w.FKProduct)).ToList();

                //List<StoreFrontStock> sfs = db.StoreFrontStock.Where(w => w.Enable == true && fkPro.Contains(w.FKProduct) &&
                //(comBo_S <= comBo_E ?  // เงื่อนไขนี้เพื่อ บางครั้ง กลุ่มสินค้า ที่หามา id เริ่มต้นค้นหาน้อยกว่า ทำให้หาไม่เจอ เลยสับกัน
                //((comBo_S == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup >= comBo_S) && (comBo_E == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup <= comBo_E)) :
                //((comBo_E == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup >= comBo_E) && (comBo_S == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup <= comBo_S)))).ToList();
                var dateString = dateS.AddDays(1).ToString("yyyyMMdd");
                //var aa = db.fn_GetResultDate(dateString, Code_S, Code_E).ToList();
                var aa          = Library.GetQueryยอดยกมา(dateString, Code_S, Code_E).ToList();
                int countListpg = aa.Count();
                progressBar1.Minimum = 0;
                progressBar1.Maximum = countListpg;
                LefClass c;
                //List<fn_GetResultDate> getValueResult = new List<fn_GetResultDate>();
                var checkFront = db.View_CheckFront_01_11_17.ToList();
                //var getVal = ggr.Select(s => new { s.Id, s.ThaiName, s.qty, s.Cost }).ToList();
                foreach (var item in aa)
                {
                    i++;
                    c = new LefClass();
                    try
                    {
                        //var getFirst = item.Products.ProductDetails.OrderBy(od => od.PackSize).FirstOrDefault();
                        c.WareHouse      = "หน้าร้าน";
                        c.ProductBarCode = item.Code;
                        c.ProductCode    = item.Code;
                        c.ProductName    = item.Thainame;
                        //if (item.Cost == 0)
                        //{
                        //    //c.Price = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.FKProduct == item.Id).OrderBy(w => w.PackSize).FirstOrDefault().CostOnly;
                        //    c.Price = item.Cost;
                        //}
                        //else
                        //{
                        //    c.Price = (decimal)item.Cost;
                        //}
                        c.Price      = decimal.Parse(item.Cost);
                        c.CurrentQty = decimal.Parse(item.qty);
                        c.Unit       = item.Unit;

                        //c.Unit = Singleton.SingletonProduct.Instance().ProductDetails.Where(w => w.FKProduct == item.Id).OrderBy(w => w.PackSize).FirstOrDefault().ProductUnit.Name;
                        ////c.CurrentQty = Library.GetResult(item.FKProduct, dateS.AddDays(1));
                        //var getr = getVal.FirstOrDefault(w => w.Id == item.FKProduct);
                        //getVal.Remove(getr);
                        //decimal res = 0;
                        //if (getr == null)
                        //{
                        //    res = 0;
                        //    c.Price = getFirst.CostOnly;
                        //}
                        //else
                        //{
                        //    res = (decimal)getr.qty;
                        //    if (getr.Cost == 0)
                        //    {
                        //        c.Price = getFirst.CostOnly;
                        //    }
                        //    else
                        //    {
                        //        c.Price = getr.Cost;
                        //    }
                        //}
                        //c.CurrentQty = res;
                        //c.Unit = getFirst.ProductUnit.Name;
                        //c.CurrUnit = Library.ConvertDecimalToStringForm(c.CurrentQty) + " " + c.Unit;
                        c.CurrUnit = Library.ConvertDecimalToStringForm(c.CurrentQty) + " " + c.Unit;
                        ////c.Price = Library.GetAverage(item.FKProduct);

                        c.ResidualValue    = c.CurrentQty * c.Price;
                        c.FKProduct        = (int)item.FKProduct;
                        c.SellPricePerUnit = "0";
                        c.SellPriceTotal   = "0";
                        var    checkDoc = checkFront.Where(w => w.FKProduct == item.FKProduct).ToList();
                        string docStr   = "";
                        foreach (var doc in checkDoc)
                        {
                            docStr = doc.DocNo + " (" + doc.Number + ") " + docStr;
                        }
                        c.Description = docStr;
                        lssfs.Add(c);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("*************** Error ");
                    }
                    progressBar1.Value = i;
                    progressBar1.Refresh();
                    Console.WriteLine("*************** " + item.FKProduct);
                }
            }

            dataGridView1.DataSource = lssfs;
            dataGridView1.Refresh();

            var sumQty           = lssfs.Sum(w => w.CurrentQty);
            var sumPrice         = lssfs.Sum(w => w.Price);
            var sumResidualValue = lssfs.Sum(w => w.ResidualValue);
            var countList        = lssfs.Count();

            var bilding2Report = lssfs.Select(a =>
                                              new
            {
                WareHouse        = "หน้าร้าน",
                ProductCode      = a.ProductBarCode,
                ProductName      = a.ProductName,
                CurrentQty       = a.CurrentQty,
                CurrUnit         = a.CurrUnit,
                Unit             = a.Unit,
                Price            = a.Price,
                ResidualValue    = a.ResidualValue,
                sumQty           = sumQty,
                sumPrice         = sumPrice,
                sumResidualValue = sumResidualValue,
                SellPricePerUit  = 0,
                SellPriceTotal   = 0,
                countList        = countList,
                TimeNow          = Library.ConvertDateToThaiDate(dateS),
                Product_S        = Code_S == "" || Code_S == null ? "ทั้งหมด" : Code_S,
                Product_E        = Code_E == "" || Code_E == null ? "ทั้งหมด" : Code_E,
                ProductGroup_S   = comboBox_S.Text,
                ProductGroup_E   = comboBox_E.Text
            }).ToList();

            MessageBox.Show((DateTime.Now - dateRun).Minutes + " นาที");

            var           dt = Library.ConvertToDataTable(bilding2Report);
            frmMainReport mr = new frmMainReport(this, dt);

            mr.Show();

            lb_msg.Text = "ระบบประมวลผลสำเร็จ";
            this.Refresh();
            Cursor.Current = Cursors.Default;
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show(ex.Message, "แจ้งเตือนจากระบบ!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //    throw;
            //}
        }
コード例 #2
0
        void bildingDataCostAndSellPrice(string Code_S, string Code_E)
        {
            //try
            //{
            DateTime dateS = dateTimePicker_S.Value;
            var      aaa   = comboBox_S.Text;

            Cursor.Current = Cursors.WaitCursor;
            int             i     = 0;
            List <LefClass> lssfs = new List <LefClass>();

            using (SSLsEntities db = new SSLsEntities())
            {
                int        pid_S;
                int        pid_E;
                int        comBo_S = int.Parse(comboBox_S.SelectedValue.ToString());
                int        comBo_E = int.Parse(comboBox_E.SelectedValue.ToString());
                List <int> fkPro   = new List <int>();
                if (checkBoxProduct.Checked == true)
                {
                    // เลือกทั้งหมด
                    pid_S = 0;
                    pid_E = 0;
                    fkPro = db.StoreFrontStock.Where(w => w.Enable == true).Select(w => w.FKProduct).Distinct().ToList();
                }
                else
                {
                    pid_S = getIdProduct_S(Code_S);
                    pid_E = getIdProduct_E(Code_E);
                    fkPro = Library.GetAllProDtlId(Code_S, Code_E);
                }


                List <StoreFrontStock> sfs = db.StoreFrontStock.Where(w => w.Enable == true && fkPro.Contains(w.FKProduct) &&
                                                                      (comBo_S <= comBo_E ? // เงื่อนไขนี้เพื่อ บางครั้ง กลุ่มสินค้า ที่หามา id เริ่มต้นค้นหาน้อยกว่า ทำให้หาไม่เจอ เลยสับกัน
                                                                       ((comBo_S == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup >= comBo_S) && (comBo_E == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup <= comBo_E)) :
                                                                       ((comBo_E == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup >= comBo_E) && (comBo_S == 0 ? w.Products.FKProductGroup > 0 : w.Products.FKProductGroup <= comBo_S)))).ToList();
                int countListpg = sfs.Count();
                progressBar1.Minimum = 0;
                progressBar1.Maximum = countListpg;
                var dateString = dateS.AddDays(1).ToString("yyyyMMdd");
                //var aa = db.fn_GetResultDate(dateString, "0", "999999999999999").ToList();
                var aa = Library.GetQueryยอดยกมา(dateString, "0", "999999999999999");
                foreach (var item in sfs)
                {
                    i++;
                    LefClass c = new LefClass();
                    c.WareHouse = "หน้าร้าน";
                    if (item.Products.Enable == false)
                    {
                        progressBar1.Value = i;
                        progressBar1.Refresh();
                        continue;
                    }
                    if (item.Products.ProductDetails.OrderBy(od => od.PackSize).FirstOrDefault() == null)
                    {
                        progressBar1.Value = i;
                        progressBar1.Refresh();
                        continue;
                    }
                    c.ProductBarCode = item.Products.ProductDetails.OrderBy(od => od.PackSize).FirstOrDefault().Code;
                    c.ProductCode    = item.Products.Code;
                    c.ProductName    = item.Products.ThaiName;
                    //c.CurrentQty = Library.GetResult(item.FKProduct, dateS.AddDays(1));
                    var getProd = aa.SingleOrDefault(w => w.FKProduct == item.FKProduct);
                    if (getProd == null)
                    {
                        progressBar1.Value = i;
                        progressBar1.Refresh();
                        continue;
                    }
                    c.CurrentQty = decimal.Parse(getProd.qty);
                    c.Unit       = item.Products.ProductDetails.OrderBy(od => od.PackSize).Select(ss => (ss.ProductUnit.Name == null ? "ไม่มี" : ss.ProductUnit.Name)).FirstOrDefault();
                    c.CurrUnit   = Library.ConvertDecimalToStringForm(c.CurrentQty) + " " + c.Unit;
                    //c.Price = Library.GetAverage(item.FKProduct);
                    c.Price            = decimal.Parse(getProd.Cost);
                    c.ResidualValue    = c.CurrentQty * c.Price;
                    c.FKProduct        = item.Products.Id;
                    c.SellPricePerUnit = Library.ConvertDecimalToStringForm(Library.GetSellPriceOnly(item.FKProduct, dateS));
                    //c.SellPricePerUnit = "1";
                    c.SellPriceTotal = Library.ConvertDecimalToStringForm(decimal.Parse(c.SellPricePerUnit) * c.CurrentQty);
                    lssfs.Add(c);
                    progressBar1.Value = i;
                    progressBar1.Refresh();
                    //if (item.FKProduct == 60018)
                    //{
                    //    break;
                    //}
                }
            }

            var sumQty           = lssfs.Sum(w => w.CurrentQty);
            var sumPrice         = lssfs.Sum(w => w.Price);
            var sumResidualValue = lssfs.Sum(w => w.ResidualValue);
            var countList        = lssfs.Count();
            var sumTotal         = lssfs.Sum(w => decimal.Parse(w.SellPriceTotal));
            var bilding2Report   = lssfs.Select(a =>
                                                new
            {
                WareHouse         = "หน้าร้าน",
                ProductCode       = a.ProductBarCode,
                ProductName       = a.ProductName,
                CurrentQty        = a.CurrentQty,
                CurrUnit          = a.CurrUnit,
                Unit              = a.Unit,
                Price             = a.Price,
                ResidualValue     = a.ResidualValue,
                sumQty            = sumQty,
                sumPrice          = sumPrice,
                sumResidualValue  = sumResidualValue,
                SellPricePerUnit  = a.SellPricePerUnit,
                SellPriceTotal    = a.SellPriceTotal,
                countList         = countList,
                TimeNow           = Library.ConvertDateToThaiDate(dateS),
                Product_S         = Code_S == "" || Code_S == null ? "ทั้งหมด" : Code_S,
                Product_E         = Code_E == "" || Code_E == null ? "ทั้งหมด" : Code_E,
                ProductGroup_S    = comboBox_S.Text,
                ProductGroup_E    = comboBox_E.Text,
                sumSellPriceTotal = sumTotal
            }).ToList();

            var           dt = Library.ConvertToDataTable(bilding2Report);
            frmMainReport mr = new frmMainReport(this, dt, MyConstant.TypeReport.LeftInStockVat);

            mr.Show();

            lb_msg.Text = "ระบบประมวลผลสำเร็จ";
            this.Refresh();
            Cursor.Current = Cursors.Default;
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show(ex.Message, "แจ้งเตือนจากระบบ!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //    throw;
            //}
        }