예제 #1
0
 public Session(string sessionDate, Space.RouteType route)
 {
     this.sessionDate = sessionDate;
     this.route = route;
     customerOrder = new List<CustomerOrder>();
     _customerOrder = null;
 }
예제 #2
0
        public ProductInfoForm(Space.InfoType type, ref List<Product> productList, Product product)
        {
            //// EDIT PRODUCT
            InitializeComponent();
            this.Text = "เดชาพาณิชย์ - ข้อมูลสินค้า";
            this.productList = productList;
            this.infoType = type;
            isEditMode = true;
            cbOperative.Items.AddRange(Space.GetOperativeType());
            cbLocation.Items.AddRange(Space.GetStoredLocationType());

            txtProdName.Text = product.Name;
            txtProdUnit.Text = product.Unit;
            txtProdPrice.Text = product.Price.ToString();

            if(product.Operative == Space.OperativeType.Male)
                cbOperative.SelectedIndex = 0;
            else if (product.Operative == Space.OperativeType.Female)
                cbOperative.SelectedIndex = 1;
            else
                throw new Exception("Improper Reached");

            if (product.Location == 1)
                cbLocation.SelectedIndex = 0;
            else if (product.Location == 2)
                cbLocation.SelectedIndex = 1;
            else if (product.Location == 3)
                cbLocation.SelectedIndex = 2;
            else if (product.Location == 3.1)
                cbLocation.SelectedIndex = 3;
            else
                throw new Exception("Improper Reached");

            this.DialogResult = System.Windows.Forms.DialogResult.No;
        }
예제 #3
0
 public Product(string name, double price, string unit, double storedLoc, Space.OperativeType operative)
 {
     this.productName = name.Trim();
     this.price = price;
     this.unit = unit.Trim();
     this.storedLocation = storedLoc;
     this.operative = operative;
 }
예제 #4
0
        public static List<CustomerInfo> GetCustomersByRoute(Space.RouteType route)
        {
            string fileName = "";
            switch (route)
            {
                case RouteType.NgaoPhayao:
                    fileName = "NgaoPhayao.customer.json";
                    break;
                case RouteType.Wanghnua:
                    fileName = "WangHnua.customer.json";
                    break;
                case RouteType.SobprabThoen:
                    fileName = "SobprabThoen.customer.json";
                    break;
                case RouteType.Jaehom:
                    fileName = "Jaehom.customer.json";
                    break;
                case RouteType.Local:
                    fileName = "Local.customer.json";
                    break;
                case RouteType.BanFon:
                    fileName = "BanFon.customer.json";
                    break;
            }

            StreamReader reader = new StreamReader(fileName);
            string jsonData = reader.ReadToEnd();
            reader.Close();

            // Extract data
            var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
            dynamic data = jss.Deserialize<dynamic>(jsonData);

            // Create a list for return
            List<CustomerInfo> customersList = new List<CustomerInfo>();

            foreach (Dictionary<string, object> item in data)
            {
                // 0 is name
                // 1 is phone number
                // 2 is type
                // 3 is order
                string[] tmps = new string[4];
                int i = 0;
                foreach (string val in item.Values)
                {
                    tmps[i++] = val;
                }
                customersList.Add(new CustomerInfo(tmps[0], tmps[1], tmps[2], int.Parse(tmps[3])));
            }

            return customersList;
        }
예제 #5
0
        public ProductInfoForm(Space.InfoType type, ref List<Product> productList)
        {
            ///// NEW PRODUCT
            InitializeComponent();
            this.Text = "เดชาพาณิชย์ - ข้อมูลสินค้า";
            this.infoType = type;
            this.productList = productList;
            isEditMode = false;
            cbOperative.Items.AddRange(Space.GetOperativeType());
            cbLocation.Items.AddRange(Space.GetStoredLocationType());

            this.DialogResult = System.Windows.Forms.DialogResult.No;
        }
예제 #6
0
        public CustomerEditorForm(Space.RouteType routeType)
        {
            InitializeComponent();

            dgvMinHeight = dgvGeneral.Height;
            dgvMinWidth = dgvGeneral.Width;
            txtMinWidth = txtInput.Width;
            btnAddHeighLoc = btnNewProduct.Location.Y;

            this.Text = "เดชาพาณิชย์ - ข้อมูลลูกค้า";
            this.routeType = routeType;

            DataGridViewImageColumn editColumn = new DataGridViewImageColumn();
            editColumn.Image = Image.FromFile("edit-icon.png");
            editColumn.HeaderText = "";
            editColumn.Name = "Edit";
            dgvGeneral.Columns.Add(editColumn);

            DataGridViewImageColumn deleteColumn = new DataGridViewImageColumn();
            deleteColumn.Image = Image.FromFile("delete-icon.png");
            deleteColumn.HeaderText = "";
            deleteColumn.Name = "Delete";
            dgvGeneral.Columns.Add(deleteColumn);

            DataGridViewImageColumn orderUpColumn = new DataGridViewImageColumn();
            orderUpColumn.Image = Image.FromFile("arrow_up.png");
            orderUpColumn.HeaderText = "";
            orderUpColumn.Name = "Up";
            dgvGeneral.Columns.Add(orderUpColumn);

            DataGridViewImageColumn orderDownColumn = new DataGridViewImageColumn();
            orderDownColumn.Image = Image.FromFile("arrow_down.png");
            orderDownColumn.HeaderText = "";
            orderDownColumn.Name = "Down";
            dgvGeneral.Columns.Add(orderDownColumn);

            dgvGeneral.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvGeneral.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[7].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.RowTemplate.Height = 30;
            dgvGeneral.RowHeadersVisible = false;

            customerList = Space.GetCustomersByRoute(routeType);
            ListAllCustomers();
        }
예제 #7
0
 public SerialObject(Space.RouteType route, 
     List<CustomerInfo> customersList,
     List<Product> productsList,
     List<Product> productsListAmr,
     Session session,
     int defaultTab,
     string date)
 {
     this.route = route;
     this.customersList = customersList;
     this.productsList = productsList;
     this.productsListAmr = productsListAmr;
     this.session = session;
     this.defaultTab = defaultTab;
     this.date = date;
 }
예제 #8
0
        public ProductEditorForm(Space.InfoType infoType)
        {
            InitializeComponent();

            dgvMinHeight = dgvGeneral.Height;
            dgvMinWidth = dgvGeneral.Width;
            txtMinWidth = txtInput.Width;
            btnAddHeighLoc = btnNewProduct.Location.Y;

            this.infoType = infoType;

            if (infoType == Space.InfoType.DCP)
                productList = Space.GetProductList();
            else if (infoType == Space.InfoType.AMR)
                productList = Space.GetProductListAmr();

            DataGridViewImageColumn editColumn = new DataGridViewImageColumn();
            editColumn.Image = Image.FromFile("edit-icon.png");
            editColumn.HeaderText = "";
            editColumn.Name = "Edit";
            dgvGeneral.Columns.Add(editColumn);

            DataGridViewImageColumn deleteColumn = new DataGridViewImageColumn();
            deleteColumn.Image = Image.FromFile("delete-icon.png");
            deleteColumn.HeaderText = "";
            deleteColumn.Name = "Delete";
            dgvGeneral.Columns.Add(deleteColumn);

            dgvGeneral.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvGeneral.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.Columns[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvGeneral.RowTemplate.Height = 30;
            dgvGeneral.RowHeadersVisible = false;

            ListAllProduct();
        }
예제 #9
0
        public OrderMakerForm(Space.RouteType route, Space.SessionCommand command, string note)
        {
            InitializeComponent();

            this.Text = "เดชาพาณิชย์";

            ImageList imageList = new ImageList();
            imageList.Images.Add(Bitmap.FromFile("shopping-cart-empty-icon.png"));
            imageList.Images.Add(Bitmap.FromFile("shopping-cart-icon.png"));
            imageList.Images.Add(Bitmap.FromFile("shopping-cart-skip-icon.png"));

            lvCustomerList.StateImageList = imageList;

            // lvCustomerList.FullRowSelect = true;
            // lvCustomerList.GridLines = true;
            lvCustomerList.Sorting = SortOrder.Ascending;
            lvCustomerList.MultiSelect = false;

            lvCustomerList.Items[0].StateImageIndex = 0;
            lvCustomerList.Items[1].StateImageIndex = 1;

            orderMakerFormMinHeight = this.Size.Height;
            orderMakerFormMinWidth = this.Size.Width;
            gbCustomerListMinHeight = gbCustomerList.Height;
            tbContainerMinHeight = tbContainer.Size.Height;
            tbContainerMinWidth = tbContainer.Size.Width;

            tpMinHeight = tpDcp.Size.Height;
            tpMinWidth = tpDcp.Size.Width;

            lbSuggestItemsMinHeight = this.lbMatchedItems.Height;
            lbSuggestItemsMinWidth = this.lbMatchedItems.Width;

            btnClearXLocation = btnClear.Location.X;

            tsDefaultMerchant.Items.Add("เรา");
            tsDefaultMerchant.Items.Add("อาม่า");
            tsDefaultMerchant.SelectedIndex = 0;
            defaultTab = 0;

            this.route = route;

            lbMatchedItems.SelectionMode = SelectionMode.One;

            ///// DCP
            dgvDcp.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvDcp.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvDcp.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvDcp.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            DataGridViewColumn dgvcPrice = new DataGridViewTextBoxColumn();
            dgvcPrice.Visible = false;
            dgvcPrice.Name = "Price";
            dgvcPrice.HeaderText = "Price";

            DataGridViewColumn dgvcMultiplier = new DataGridViewTextBoxColumn();
            dgvcMultiplier.Visible = false;
            dgvcMultiplier.Name = "Multiplier";
            dgvcMultiplier.HeaderText = "Multiplier";

            dgvDcp.Columns.Add(dgvcPrice);
            dgvDcp.Columns.Add(dgvcMultiplier);

            dgvDcp.RowTemplate.MinimumHeight = 30;

            ///// AMR
            dgvAmr.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvAmr.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvAmr.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
            dgvAmr.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            DataGridViewColumn dgvcPricedgvAmr = new DataGridViewTextBoxColumn();
            dgvcPricedgvAmr.Visible = false;
            dgvcPricedgvAmr.Name = "Price";
            dgvcPricedgvAmr.HeaderText = "Price";

            DataGridViewColumn dgvcMultiplierdgvAmr = new DataGridViewTextBoxColumn();
            dgvcMultiplierdgvAmr.Visible = false;
            dgvcMultiplierdgvAmr.Name = "Multiplier";
            dgvcMultiplierdgvAmr.HeaderText = "Multiplier";

            dgvAmr.Columns.Add(dgvcPricedgvAmr);
            dgvAmr.Columns.Add(dgvcMultiplierdgvAmr);

            dgvAmr.RowTemplate.MinimumHeight = 30;

            if (command == Space.SessionCommand.EditSession)
            {
                // Load data from session
                IFormatter formatter = new BinaryFormatter();
                Stream stream = new FileStream(note, FileMode.Open, FileAccess.Read, FileShare.Read);
                SerialObject serialObj = (SerialObject)formatter.Deserialize(stream);
                stream.Close();

                this.customersList = serialObj.CustomerList;
                this.productsList = serialObj.ProductList;
                this.productsListAmr = serialObj.ProductListAmr;
                this.session = serialObj.Session;
                this.defaultTab = serialObj.DefaultTab;
                this.route = serialObj.Route;

                ///// Set Topline information
                string[] routeName = Space.GetRouteOption();
                this.labelRouteName.Text = "สาย " + routeName[(int)this.route - 1];
                this.labelSessionDate.Text = serialObj.Date;

                ///// Restored Customer List
                lvCustomerList.Items.Clear();

                for (int i = 0; i < customersList.Count; i++)
                {
                    lvCustomerList.Items.Add(customersList[i].CustomerName, customersList[i].CustomerName, 0);
                    lvCustomerList.Items[i].StateImageIndex = 0;
                }
                gbCustomerList.Text = "รายชื่อ ลูกค้า " + string.Format("({0}/{1})", session.GetNumberOfCustomerWhoHaveOrdered(), customersList.Count);

                lvCustomerList.Items[0].Selected = true;

                UpdateEveryCustomerIcon();
            }
            else
            {
                setTopLineInfo();
                InitializeCustomerList();
                InitializeProductList();
                // Create a new seesion
                session = new Session(labelSessionDate.Text, route);
            }
        }
예제 #10
0
        private bool isSessionAlreadyExist(Space.RouteType route)
        {
            string nDate = string.Format("{0}_{1}_{2}", DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year + 543);

            string serialName = string.Format("{0}.{1}.data", route.ToString(), nDate);

            if (File.Exists(serialName))
                return true;

            return false;
        }
예제 #11
0
 public List<ItemIdentity> GetItemsByUnitLocationAndOperative(string unit, double storedLoc, Space.OperativeType operative)
 {
     return identityList.Where(e =>      e.Unit == unit &&
                                         e.StoredLocation == storedLoc &&
                                         e.Operative == operative).OrderBy(e => e.Name).ToList<ItemIdentity>();
 }
예제 #12
0
 public List<ItemIdentity> GetItemsByUnitException(List<string> units, double storedLoc, Space.OperativeType operative)
 {
     return identityList.Where(e =>      e.StoredLocation == storedLoc &&
                                         e.Operative == operative &&
                                         !units.Contains(e.Unit)).OrderBy(e => e.Unit).ThenBy(e => e.Name).ToList<ItemIdentity>();
 }
예제 #13
0
 private string OperativeRephraseing(Space.OperativeType operative)
 {
     string[] tmp = Space.GetOperativeType();
     if (operative == Space.OperativeType.Male)
         return tmp[0];
     else if (operative == Space.OperativeType.Female)
         return tmp[1];
     else
         throw new Exception("Code should not be reached at this region");
 }