Example #1
0
        private void genData()
        {
            lsProd = new List <ProductsModel>();
            try
            {
                using (SqlConnection cnn = new SqlConnection(Utility.ConnectionDb.connectString))
                {
                    log.Debug("Connect Sqlserver Success.");
                    cnn.Open();
                    string sql = "SELECT * FROM V_PRODUCT_MONITOR_PROPERTIES a "
                                 + "INNER JOIN(SELECT c.* FROM "
                                 + "V_STOCK_MONITOR c "
                                 + "INNER JOIN(SELECT PRODUCT_CODE, MAX(FDDATE) FDDATE FROM V_STOCK_MONITOR "
                                 + "WHERE FDDATE <= '" + dateCond + "' "
                                 + "GROUP BY PRODUCT_CODE) d ON c.PRODUCT_CODE = d.PRODUCT_CODE AND c.FDDATE = d.FDDATE) b "
                                 + "ON LOWER(a.Product_Code) = LOWER(b.PRODUCT_CODE) COLLATE Thai_CI_AI "
                                 + "WHERE 1=1 " + cond + condRadio + " ORDER BY a.Product_Code ASC";
                    log.Debug("Sql Statement : " + sql);
                    using (SqlCommand cmd = new SqlCommand(sql, cnn))
                    {
                        using (SqlDataReader dataReader = cmd.ExecuteReader())
                        {
                            int i = 0;
                            while (dataReader.Read())
                            {
                                ProductsModel prod = new ProductsModel();
                                prod.RowNum     = ++i;
                                prod.HaveToOder = 0;
                                //log.Debug(dataReader["Product_Code"].ToString());
                                //Check เคลื่อนไหว
                                if (dataReader["FDDATE"].ToString().Trim().Equals(dateCond))
                                {
                                    double minStock  = Convert.ToDouble(dataReader["Min_Stock"].ToString().Trim());
                                    double total_qty = Convert.ToDouble(dataReader["TOTAL_QTY"].ToString().Trim());
                                    //double diffStock = Convert.ToDouble(dataReader["DIFF_TD_QTY"].ToString().Trim()) + Convert.ToDouble(dataReader["DIFF_LP_QTY"].ToString().Trim());
                                    double minStock10 = (minStock * 0.1) + minStock;
                                    if (minStock10 >= total_qty && (Convert.ToDouble(dataReader["DIFF_TD_QTY"].ToString().Trim()) != 0 || Convert.ToDouble(dataReader["DIFF_LP_QTY"].ToString().Trim()) != 0))
                                    {
                                        prod.HaveToOder = 1;
                                    }
                                    else if (minStock == 0 && total_qty == 0 && (Convert.ToDouble(dataReader["DIFF_TD_QTY"].ToString().Trim()) != 0 || Convert.ToDouble(dataReader["DIFF_LP_QTY"].ToString().Trim()) != 0))
                                    {
                                        prod.HaveToOder = 1;
                                    }
                                }



                                prod.Select_Product = false;

                                prod.FDDATE    = dataReader["FDDATE"].ToString().Trim();
                                prod.TD_QTY    = comm.convertShowNumber2Point(dataReader["TD_QTY"].ToString().Trim());
                                prod.LP_QTY    = comm.convertShowNumber2Point(dataReader["LP_QTY"].ToString().Trim());
                                prod.TOTAL_QTY = comm.convertShowNumber2Point(dataReader["TOTAL_QTY"].ToString().Trim());

                                prod.Product_Code    = dataReader["Product_Code"].ToString().Trim();
                                prod.Product_Name    = dataReader["Product_Name"].ToString().Trim();
                                prod.Use             = dataReader["Operation_Detail"].ToString().Trim();
                                prod.Order_to        = dataReader["Order_to"].ToString().Trim();
                                prod.Product_Type    = dataReader["Product_Type"].ToString().Trim();
                                prod.Stock_Unit_Code = dataReader["Stock_Unit"].ToString().Trim();
                                prod.SUnit_Name      = dataReader["SUnit_Name"].ToString().Trim();
                                prod.PUnit_Code      = dataReader["Purchase_Unit"].ToString().Trim();
                                prod.PUnit_Name      = dataReader["PUnit_Name"].ToString().Trim();
                                prod.Min_Stock       = comm.convertShowNumber2Point(dataReader["Min_Stock"].ToString().Trim());
                                prod.Suggest_Order   = comm.convertShowNumber2Point(dataReader["Suggest_Order"].ToString().Trim());
                                prod.Factor          = comm.convertShowNumber2Point(dataReader["FACTOR"].ToString().Trim());
                                prod.Check_LP        = dataReader["Check_LP"].ToString().Trim();
                                prod.Check_TD        = dataReader["Check_LP"].ToString().Trim();

                                double convertFac = Convert.ToDouble(dataReader["FACTOR"].ToString().Trim()) * Convert.ToDouble(dataReader["TOTAL_QTY"].ToString().Trim());
                                prod.Total_ConvertQTY  = comm.convertShowNumber2Point(convertFac.ToString().Trim());
                                prod.Note_Unit_Convert = dataReader["Note_Unit_Convert"].ToString().Trim();

                                prod.Note_Purchase      = dataReader["Note_Purchase"].ToString().Trim();
                                prod.Vendor             = dataReader["Vendor"].ToString().Trim();
                                prod.Note_Vendor        = dataReader["Note_Vendor"].ToString().Trim();
                                prod.Vendor_to_Purchase = dataReader["Vendor_to_Purchase"].ToString().Trim();
                                prod.P0             = dataReader["P0"].ToString().Trim();
                                prod.P1             = dataReader["P1"].ToString().Trim();
                                prod.P2             = dataReader["P2"].ToString().Trim();
                                prod.P3             = dataReader["P3"].ToString().Trim();
                                prod.P_Note         = dataReader["P_Note"].ToString().Trim();
                                prod.VAT            = dataReader["VAT"].ToString().Trim();
                                prod.S0             = dataReader["S0"].ToString().Trim();
                                prod.S1             = dataReader["S1"].ToString().Trim();
                                prod.S2             = dataReader["S2"].ToString().Trim();
                                prod.S3             = dataReader["S3"].ToString().Trim();
                                prod.S_Note         = dataReader["S_Note"].ToString().Trim();
                                prod.QC_Form        = dataReader["QC_Form"].ToString().Trim();
                                prod.Chang_Stock_TD = comm.convertShowNumber2Point(dataReader["DIFF_TD_QTY"].ToString().Trim());
                                prod.Chang_Stock_LP = comm.convertShowNumber2Point(dataReader["DIFF_LP_QTY"].ToString().Trim());

                                lsProd.Add(prod);
                            }
                        }
                    }
                }
                DataGridPrducts.ItemsSource = lsProd;
                //DataGridPrducts.ScrollIntoView(lsProd[lsProd.Count - 1]);
                log.Debug("Add List to Datagrid Success.");
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw ex;
            }
        }