예제 #1
0
        void LoadData(int year, int month, int from, int to, bool Use12)
        {
            string sql;

            try
            {
                if (Use12)
                {
                    TimeSpan oneDay = new TimeSpan(24, 0, 0);
                    DateTime prev   = new DateTime(year, month, from).Subtract(oneDay);
                    DateTime next   = new DateTime(year, month, to);
                    sql = "Where (INT(ID/10000)>=" + DateStr(prev)
                          + " And INT(ID/10000)<=" + DateStr(next) + ")";
                    BasicDataSet.OrderDataTable temp = new BasicDataSet.OrderDataTable();
                    m_OrderAdapter.FillBySelectStr(temp, "Select * From [Order] " + sql + " Order by ID");
                    int nextID = IDTagHead(next.Year, next.Month, next.Day);
                    int prevID = IDTagHead(prev.Year, prev.Month, prev.Day);
                    basicDataSet.Order.Clear();

                    foreach (BasicDataSet.OrderRow r in temp)
                    {
                        int idHead = r.ID / 10000;
                        if (idHead == nextID)
                        {
                            if (r.PrintTime.Hour < 7)
                            {
                                continue;
                            }
                        }
                        else if (idHead == prevID)
                        {
                            if (r.PrintTime.Hour >= 7)
                            {
                                continue;
                            }
                        }
                        BasicDataSet.OrderRow oRow = basicDataSet.Order.NewOrderRow();
                        oRow.ItemArray = r.ItemArray;
                        basicDataSet.Order.AddOrderRow(oRow);
                    }
                }
                else
                {
                    sql = "Where (INT(ID/10000)>=" + DateStr(year, month, from)
                          + " And INT(ID/10000)<=" + DateStr(year, month, to) + ")";
                    m_OrderAdapter.FillBySelectStr(basicDataSet.Order, "Select * From [Order] " + sql + " Order by ID");
                }
                m_OrderItemAdapter.FillBySelectStr(basicDataSet.OrderItem, "Select * From [OrderItem] " + sql);
            }
            catch (Exception ex)
            {
                string str = ex.Message;
                MessageBox.Show("訂菜單資料庫讀取錯誤!");
            }
        }
예제 #2
0
        public bool LoadData(DamaiDataSet orderSet, int month, int day)
        {
            int count = orderSet.Header.Rows.Count;

            if (count == 0)
            {
                return(false);
            }
            if (month < 1 || month > 12)
            {
                return(false);
            }
            if (day < 1 || day > 31)
            {
                return(false);
            }
            DamaiDataSet.HeaderRow row;
            foreach (var r in orderSet.Header)
            {
                if (r.DataDate.Year != MyFunction.IntHeaderYear)
                {
                    continue;
                }
                if (r.DataDate.Month != month)
                {
                    continue;
                }
                if (r.DataDate.Day == day)
                {
                    row = r;
                    goto Yes;
                }
            }
            return(false);

Yes:
            string sql = CreateSql(row.DataDate.Month, row.DataDate.Day);

            try
            {
                m_OrderAdapter.FillBySelectStr(orderSet.Order, "Select * From [Order] " + sql + " Order by ID");
                m_WorkingDay.Set(row.DataDate);
                return(true);
            }
            catch (Exception ex)
            {
                LastErrorString = ex.Message;
                if (MessageBox.Show(LastErrorString, "", MessageBoxButtons.RetryCancel) == DialogResult.Cancel)
                {
                    throw ex;
                }
            }
            return(false);
        }
예제 #3
0
        int LoadData(int m, int d)
        {
            string sql   = "Where " + FloorStr + "(ID/1000000)=" + m.ToString("d2") + d.ToString("d2");
            int    MaxID = 0;

            try
            {
                m_OrderSet.OrderItem.Rows.Clear();
                m_OrderSet.Order.Rows.Clear();
                m_OrderTableAdapter.FillBySelectStr(m_OrderSet.Order, "Select * From [Order] " + sql + " Order by ID");
                m_OrderItemTableAdapter.FillBySelectStr(m_OrderSet.OrderItem, "Select * From [OrderItem] " + sql);
                foreach (var R in m_OrderSet.Order)
                {
                    int id = PureID(R.ID);       // 資料定義為 MMDDNN9999  N POS机号,店長收資料時,再自動填上
                    if (id > MaxID)
                    {
                        MaxID = id;
                    }
                }
                return(MaxID);
            }
            catch (Exception ex)
            {
                string str = ex.Message;
                MessageBox.Show("Order OrderItem讀取錯誤!" + str);
                return(-1);
            }
        }
예제 #4
0
        //int IDTagHead(int y, int m, int d)
        //{
        //    int tag = y % 100;
        //    tag = tag * 10000 + m * 100 + d;
        //    return tag;
        //}

        // BakeryOrder的ID格式是 MMDDNN9999
        void LoadData(int month, int from, int to)
        {
            string sql;

            sql = "Where (Floor(ID/1000000)>=" + DateStr(month, from)
                  + " And Floor(ID/1000000)<=" + DateStr(month, to) + ")";
            try
            {
                m_OrderAdapter.FillBySelectStr(m_OrderSet.Order, "Select * From [Order] " + sql + " Order by ID");
                m_OrderItemAdapter.FillBySelectStr(m_OrderSet.OrderItem, "Select * From [OrderItem] " + sql);
            }
            catch (Exception ex)
            {
                string str = ex.Message;
                MessageBox.Show("訂菜單資料庫讀取錯誤!");
            }
        }
예제 #5
0
        // BakeryOrderSet.Order.ID ==> MMDDNN9999
        void LoadData(int year, int month, int from, int to)
        {
            string sql;
            string sqlShipment;

            try
            {
                sql = "Where (Floor(ID/1000000)>=" + DateStr(month, from)
                      + " And Floor(ID/1000000)<=" + DateStr(month, to) + ")";
                DateTime t = new DateTime(year, month, to).AddDays(1);
                sqlShipment = "where a.ShipTime>= '" + year + DateStr(month, from) + "' and a.ShipTime< '" + t.Year.ToString() + DateStr(t.Month, t.Day) + "'";

                m_OrderSet.OrderItem.Rows.Clear();
                m_OrderSet.Order.Rows.Clear();
                m_OrderSet.ShipmentDetail.Rows.Clear();
                m_OrderSet.Shipment.Rows.Clear();
                IsSold     = cBSold.Checked;
                IsShipment = cBShipment.Checked;
                if (IsSold)
                {
                    m_OrderAdapter.FillBySelectStr(m_OrderSet.Order, "Select * From [Order] " + sql + " Order by ID");
                    m_OrderItemAdapter.FillBySelectStr(m_OrderSet.OrderItem, "Select * From [OrderItem] " + sql);
                }
                if (IsShipment)
                {
                    sqlShipment = sqlShipment + " and (a.customer=0 ";
                    for (int i = 0; i < checkedListBox1.Items.Count; i++)
                    {
                        if (checkedListBox1.GetItemChecked(i))
                        {
                            MyCustomer mc = checkedListBox1.Items[i] as MyCustomer;
                            sqlShipment = sqlShipment + "or a.customer=" + mc.GetID() + " ";
                        }
                    }
                    sqlShipment = sqlShipment + " )";
                    m_ShipmentAdapter.FillBySelectStr(m_OrderSet.Shipment, "Select * From [Shipment] a " + sqlShipment);
                    m_ShipmentItemAdapter.FillBySelectStr(m_OrderSet.ShipmentDetail, "Select b.* From [Shipment] a,[ShipmentDetail] b " + sqlShipment + " and b.ShipmentID=a.ID and b.cost is not null");
                }
            }
            catch (Exception ex)
            {
                string str = ex.Message;
                MessageBox.Show("訂菜單資料庫讀取錯誤!");
            }
        }
예제 #6
0
        decimal selectData(DateTime time1, DateTime time2)
        {
            if (m_ProductDic.Count == 0)
            {
                Message("載入產品估算成本...");
                foreach (var pd in Product)
                {
                    if (pd.Code > 0)
                    {
                        m_ProductDic.Add(pd.ProductID, pd.IsEvaluatedCostNull()? 0 : pd.EvaluatedCost);
                    }
                }
            }
            TimeData timedata = new TimeData();
            decimal  costtemp = 0;
            string   sT1      = time1.ToString("MMdd");
            string   sT2      = time2.ToString("MMdd");
            string   duration = "<" + sT1 + "-" + sT2 + ">";

#if (UseSQLServer)
            string sqlstr = "Where Floor(ID/1000000)>" + sT1 + " and Floor(ID/1000000)<=" + sT2;
#else
            string sqlstr = "Where INT(ID/1000000)>" + sT1 + " and INT(ID/1000000)<=" + sT2;
#endif
            MyOrderSet.OrderDataTable     Order     = new MyOrderSet.OrderDataTable();
            MyOrderSet.OrderItemDataTable OrderItem = new MyOrderSet.OrderItemDataTable();
            //m_OrderAdapter.FillBySelectStr(Order, "Select * From [Order] " + sqlstr + " and oldid=0 And deleted=false Order by ID");
            //m_OrderItemAdapter.FillBySelectStr(OrderItem, "Select * From [OrderItem] " + sqlstr + " Order by ID");
            m_OrderSet.OrderItem.Clear();
            m_OrderSet.Order.Clear();
            //try  // 讓上一級處理
            {
                Message("載入" + duration + "售出單...");
                m_OrderAdapter.FillBySelectStr(m_OrderSet.Order, "Select * From [Order] " + sqlstr + " Order by ID");
                Message("載入" + duration + "售出明細...");
                m_OrderItemAdapter.FillBySelectStr(m_OrderSet.OrderItem, "Select * From [OrderItem] " + sqlstr + " Order by ID");
            }
            //catch (Exception ex) { MessageBox.Show(ex.Message); }
            Message("開始計算" + duration + "銷售品總成本...");
            progressBar1.Visible = true;
            progressBar1.Maximum = m_OrderSet.Order.Count + 1;
            int i = 0;
            foreach (var item in m_OrderSet.Order)
            {
                progressBar1.Value = i++;
                Application.DoEvents();
                if (item.Deleted)
                {
                    continue;
                }
                if (item.OldID != 0)
                {
                    continue;
                }
                //var orderItem = from row in OrderItem where (row.ID == item.ID) select row;
                //foreach (var item1 in orderItem)
                var rows = item.GetOrderItemRows();
                foreach (MyOrderSet.OrderItemRow item1 in rows)
                {
                    decimal cost = 0;
                    if (m_ProductDic.TryGetValue(item1.ProductID, out cost))
                    {
                        costtemp += cost * item1.No;
                    }
                }
            }
            progressBar1.Visible = false;
            Application.DoEvents();
            return(costtemp);
        }
예제 #7
0
        void LoadData(int year, int month, int day)
        {
            string sql   = "80101";
            int    count = basicDataSet1.Header.Rows.Count;

            if (count != 0)
            {
                BasicDataSet.HeaderRow row = (BasicDataSet.HeaderRow)basicDataSet1.Header.Rows[count - 1]; // 沒指定用最後一個
                if (month != 0 && day > 0)                                                                 // 有指定找到那天
                {
                    foreach (BasicDataSet.HeaderRow r in basicDataSet1.Header.Rows)
                    {
                        if (r.DataDate.Month != month)
                        {
                            continue;
                        }
                        if (r.DataDate.Year != year)
                        {
                            continue;
                        }
                        if (r.DataDate.Day == day)
                        {
                            row = r;
                            break;
                        }
                    }
                }
                else
                {
                    SetupSelectCombo(row.DataDate.Month);
                }
                sql = CreateSql(row.DataDate.Year, row.DataDate.Month, row.DataDate.Day);
                //    "Where INT(ID/10000)=" + (row.DataDate.Year % 100).ToString() + row.DataDate.Month.ToString("d2") + row.DataDate.Day.ToString("d2");
                SetTitle(row.DataDate, row.Closed);
            }
            else
            {
                sql = CreateSql(2000, 1, 1);
                SetTitle(new DateTime(2000, 1, 1), false);
            }
            MaxID = 0;
            try
            {
//                orderTableAdapter1.Fill(basicDataSet1.Order);
//                orderItemTableAdapter1.Fill(basicDataSet1.OrderItem);
                if (checkBoxUse12.Checked)
                {
                    BasicDataSet.OrderDataTable temp = new BasicDataSet.OrderDataTable();
                    m_OrderAdapter.FillBySelectStr(temp, "Select * From [Order] " + sql + " Order by ID");
                    int      todayID = WorkingDay.IDTagHead(year, month, day);
                    DateTime d       = new DateTime(year, month, day);
                    d = d.Subtract(new TimeSpan(24, 0, 0));
                    int prevID = WorkingDay.IDTagHead(d.Year, d.Month, d.Day);
                    basicDataSet1.Order.Clear();
                    foreach (BasicDataSet.OrderRow r in temp)
                    {
                        int idHead = r.ID / 10000;
                        if (idHead == todayID)
                        {
                            if (r.PrintTime.Hour < 7)
                            {
                                continue;
                            }
                        }
                        else if (idHead == prevID)
                        {
                            if (r.PrintTime.Hour >= 7)
                            {
                                continue;
                            }
                        }
                        BasicDataSet.OrderRow oRow = basicDataSet1.Order.NewOrderRow();
                        oRow.ItemArray = r.ItemArray;
                        basicDataSet1.Order.AddOrderRow(oRow);
                    }
                }
                else
                {
                    m_OrderAdapter.FillBySelectStr(basicDataSet1.Order, "Select * From [Order] " + sql + " Order by ID");
                }
                m_OrderItemAdapter.FillBySelectStr(basicDataSet1.OrderItem, "Select * From [OrderItem] " + sql);
                foreach (BasicDataSet.OrderRow R in basicDataSet1.Order.Rows)
                {
                    int id = R.ID % 10000;
                    if (id > MaxID)
                    {
                        MaxID = id;
                    }
                }
            }
            catch (Exception ex)
            {
                string str = ex.Message;
                MessageBox.Show("訂菜單資料庫讀取錯誤!");
            }
            Table2ListView();
        }
예제 #8
0
        public bool LoadData(BasicDataSet basicDataSet1, int year, int month, int day, bool Use12)
        {
            int count = basicDataSet1.Header.Rows.Count;

            if (count == 0)
            {
                return(false);
            }
            if (month < 1 || month > 12)
            {
                return(false);
            }
            if (day < 1 || day > 31)
            {
                return(false);
            }
            if (year < 2008 || year > 2020)
            {
                return(false);
            }
            BasicDataSet.HeaderRow row;
            foreach (BasicDataSet.HeaderRow r in basicDataSet1.Header.Rows)
            {
                if (r.DataDate.Month != month)
                {
                    continue;
                }
                if (r.DataDate.Year != year)
                {
                    continue;
                }
                if (r.DataDate.Day == day)
                {
                    row = r;
                    goto Yes;
                }
            }
            return(false);

Yes:
            string sql = CreateSql(row.DataDate.Year, row.DataDate.Month, row.DataDate.Day, Use12);

            try
            {
                if (Use12)
                {
                    BasicDataSet.OrderDataTable temp = new BasicDataSet.OrderDataTable();
                    m_OrderAdapter.FillBySelectStr(temp, "Select * From [Order] " + sql + " Order by ID");
                    int      todayID = WorkingDay.IDTagHead(year, month, day);
                    DateTime d       = new DateTime(year, month, day);
                    d = d.Subtract(new TimeSpan(24, 0, 0));
                    int prevID = WorkingDay.IDTagHead(d.Year, d.Month, d.Day);
                    basicDataSet1.Order.Clear();
                    foreach (BasicDataSet.OrderRow r in temp)
                    {
                        int idHead = r.ID / 10000;
                        if (idHead == todayID)
                        {
                            if (r.PrintTime.Hour < 7)
                            {
                                continue;
                            }
                        }
                        else if (idHead == prevID)
                        {
                            if (r.PrintTime.Hour >= 7)
                            {
                                continue;
                            }
                        }
                        BasicDataSet.OrderRow oRow = basicDataSet1.Order.NewOrderRow();
                        oRow.ItemArray = r.ItemArray;
                        basicDataSet1.Order.AddOrderRow(oRow);
                    }
                }
                else
                {
                    m_OrderAdapter.FillBySelectStr(basicDataSet1.Order, "Select * From [Order] " + sql + " Order by ID");
                }
                //                m_OrderItemAdapter.FillBySelectStr(basicDataSet1.OrderItem, "Select * From [OrderItem] " + sql);
                m_WorkingDay.Set(row.DataDate);
                return(true);
            }
            catch (Exception ex)
            {
                LastErrorString = ex.Message;
            }
            return(false);
        }