public static void FillKasirListItem(MaterialListView list, bool isSearching)
        {
            MySqlDataAdapter mysqlDataAdapter;

            if (isSearching)
            {
                mysqlDataAdapter = ExecuteRead("SELECT kode_barang, nama_barang, harga_satuan FROM tb_gudang WHERE CONCAT(kode_barang, ' ',nama_barang) LIKE '%" + KasirInputForm.strSearch + "%' GROUP BY kode_barang;");
            }
            else
            {
                mysqlDataAdapter = ExecuteRead("SELECT kode_barang, nama_barang, harga_satuan FROM tb_gudang GROUP BY kode_barang;");
            }

            DataTable dt = new DataTable();

            mysqlDataAdapter.Fill(dt);
            int i = 1;

            foreach (DataRow dr in dt.Rows)
            {
                listitem = new ListViewItem((i).ToString());
                listitem.SubItems.Add(dr["kode_barang"].ToString());
                listitem.SubItems.Add(dr["nama_barang"].ToString());
                listitem.SubItems.Add(dr["harga_satuan"].ToString());
                listitem.SubItems.Add(getSisaStok(dr["kode_barang"].ToString()));
                list.Items.Add(listitem);
                i++;
            }
        }
Exemple #2
0
 private void ResizeListViewColumns(MaterialListView lv)
 {
     foreach (ColumnHeader column in lv.Columns)
     {
         column.Width = -2;
     }
 }
Exemple #3
0
        private void ResizeListViewColumns(MaterialListView lv)
        {
            int[] headerWidths = listViewHeaderWidths.ContainsKey(lv.Name) ? listViewHeaderWidths[lv.Name] : null;

            lv.BeginUpdate();

            if (headerWidths == null)
            {
                lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);

                headerWidths = new int[lv.Columns.Count];

                for (int i = 0; i < lv.Columns.Count; i++)
                {
                    headerWidths[i] = lv.Columns[i].Width;
                }

                listViewHeaderWidths.Add(lv.Name, headerWidths);
            }

            lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);

            for (int j = 0; j < lv.Columns.Count; j++)
            {
                lv.Columns[j].Width = Math.Max(lv.Columns[j].Width, headerWidths[j]);
            }

            lv.EndUpdate();
        }
Exemple #4
0
 private void impressorasListView_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
 {
     if (e.Item.Selected)
     {
         MaterialListView list = new MaterialListView();
         ListViewItem     item = new ListViewItem();
         list = (MaterialListView)sender;
         if (!portaSerial.isOpen())
         {
             conectaImpressora(e.Item.Text);
             materialTabControl1.SelectTab(0);
         }
         else
         {
             if (portaSerial.getPort().PortName == e.Item.Text)
             {
                 portaSerial.getPort().Close();
             }
             else
             {
                 portaSerial.getPort().Close();
                 conectaImpressora(e.Item.Text);
                 materialTabControl1.SelectTab(0);
             }
         }
         e.Item.Selected = false;
     }
 }
Exemple #5
0
 /*!
  * @brief fill list function
  *
  * @param MaterialListView list
  * @param string[][] data
  */
 private void fillList(ref MaterialListView list, string[][] data)
 {
     foreach (string[] version in data)
     {
         var item = new ListViewItem(version);
         list.Items.Add(item);
     }
 }
 static void CheckDuplicates(MaterialListView listView)
 {
     foreach (ListViewItem lvi in listView.Items)
     {
         if (lvi.SubItems[2].Text == strValue[0])
         {
             strValue[2] = (Convert.ToInt32(lvi.SubItems[4].Text) + Convert.ToInt32(strValue[2])).ToString();
             listView.Items.Remove(lvi);
         }
     }
 }
Exemple #7
0
        /// <summary>
        /// 双击控件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void materialListView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            MaterialListView m = (MaterialListView)sender;

            if (m.FocusedItem.Text.ToString() != "")
            {
                pMemo.editClick(m.FocusedItem.Text.ToString());         //更新click
                Clipboard.SetDataObject(m.FocusedItem.Text.ToString()); //复制到剪切板
                this.Close();                                           //隐藏界面
            }
        }
 static int CheckDuplicates(MaterialListView listView, string strkode)
 {
     foreach (ListViewItem lvi in listView.Items)
     {
         if (lvi.SubItems[2].Text == strkode)
         {
             listView.Items.Remove(lvi);
             return(Convert.ToInt32(lvi.SubItems[4].Text) + 1);
         }
     }
     return(1);
 }
Exemple #9
0
 public static void autoResizeColumns(MaterialListView lv)
 {
     lv.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
     MaterialListView.ColumnHeaderCollection cc = lv.Columns;
     for (int i = 0; i < cc.Count; i++)
     {
         int colWidth = TextRenderer.MeasureText(cc[i].Text, lv.Font).Width + 5;
         if (colWidth > cc[i].Width)
         {
             cc[i].Width = colWidth;
         }
     }
     lv.View = View.Details;
 }
 public static void InsertData(MaterialListView listView)
 {
     if (isInputing)
     {
         CheckDuplicates(listView);
         ListViewItem lvi = new ListViewItem((i).ToString());
         lvi.SubItems.Add(DateTime.Now.ToString("yyyy-MM-dd"));
         lvi.SubItems.Add(strValue[0]); //kode Barang
         lvi.SubItems.Add(strValue[1]); //nama Barang
         lvi.SubItems.Add(strValue[2]); //Harga Satuan
         lvi.SubItems.Add(strValue[3]); //Volume
         int total = Convert.ToInt32(strValue[3]) * Convert.ToInt32(strValue[2]);
         lvi.SubItems.Add(total.ToString());
         listView.Items.Add(lvi);
         isInputing = false;
     }
 }
        public static void FillListItem(string query, MaterialListView list, int skip)
        {
            MySqlDataAdapter mysqlDataAdapter = ExecuteRead(query);
            DataTable        dt = new DataTable();

            mysqlDataAdapter.Fill(dt);
            int i = 1;

            foreach (DataRow dr in dt.Rows)
            {
                listitem = new ListViewItem((i).ToString());
                foreach (var item in dr.ItemArray.Skip(skip))
                {
                    listitem.SubItems.Add(item.ToString());
                }
                list.Items.Add(listitem);
                i++;
            }
        }
 public static void Fix(this MaterialListView v)
 {
     if (v.Columns.Count > 0)
     {
         bool scrollbarVisible = false;
         for (int i = 0; i < v.Items.Count; i++)
         {
             if (v.Items[i].Bounds.Bottom > v.Height)
             {
                 scrollbarVisible = true;
             }
         }
         int widthSum = 0;
         for (int i = 0; i < v.Columns.Count - 1; i++)
         {
             widthSum += v.Columns[i].Width;
         }
         v.Columns[v.Columns.Count - 1].Width = v.Width - widthSum - (scrollbarVisible ? 17 : 0); // Scrollbar width is 16 px
     }
 }
        public static void FillListViewBarcode(MaterialListView list, string barcodeValue)
        {
            MySqlDataAdapter mysqlDataAdapter;

            mysqlDataAdapter = ExecuteRead("SELECT kode_barang, nama_barang, harga_satuan FROM tb_gudang WHERE CONCAT(kode_barang) LIKE '%" + barcodeValue + "%' GROUP BY kode_barang;");
            DataTable dt = new DataTable();

            mysqlDataAdapter.Fill(dt);
            int i = 1;

            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                listitem = new ListViewItem((i).ToString());
                listitem.SubItems.Add(DateTime.Now.ToString("yyyy-MM-dd"));
                listitem.SubItems.Add(dr["kode_barang"].ToString());
                listitem.SubItems.Add(dr["nama_barang"].ToString());

                int volume = CheckDuplicates(list, dr["kode_barang"].ToString());
                int total  = Convert.ToInt32(dr["harga_satuan"]) * volume;

                listitem.SubItems.Add(volume.ToString());
                listitem.SubItems.Add(dr["harga_satuan"].ToString());
                listitem.SubItems.Add(total.ToString());
                list.Items.Add(listitem);
            }
            else
            {
                MySqlDataAdapter mysqlDataAdapter2 = ExecuteRead("SELECT * FROM tb_barang WHERE kode_barang LIKE '" + barcodeValue + "'");
                DataTable        dt2 = new DataTable();
                mysqlDataAdapter2.Fill(dt2);
                if (dt2.Rows.Count > 0)
                {
                    MessageBox.Show("Barang Dengan Barcode '" + barcodeValue + "' Terdaftar Tetapi Tak Ada Di Gudang");
                }
                else
                {
                    MessageBox.Show("Kode Barcode '" + barcodeValue + "' Tidak Terdaftar !", "Warning !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
Exemple #14
0
        private void BagSelection_SelectedIndexChanged(object sender, EventArgs e)
        {
            MaterialListView listView = sender as MaterialListView;

            BagSelection.Items.Cast <ListViewItem>().ToList().ForEach(item =>
            {
                item.BackColor = SystemColors.Window;
                item.ForeColor = SystemColors.WindowText;
            });
            BagSelection.SelectedItems.Cast <ListViewItem>().ToList().ForEach(item =>
            {
                item.BackColor = SystemColors.Highlight;
                item.ForeColor = SystemColors.HighlightText;
            });

            if (listView != null && listView.SelectedIndices.Count == 1)
            {
                _bagPrice = int.Parse(listView.SelectedItems[0].Tag.ToString());
                BagTypeErrorLabel.Visible = false;
            }
            ProcessOrderButton_Status();
        }
        public static async Task DownloadItem(string fileTitle, string format, string quality, long bitrate, string savePath, MaterialListView downloadQueueMaterialListView, bool isAudio, MaterialCheckBox deleteDoneCheckBox)
        {
            ListViewItem _file = new DownloadItem(fileTitle, format, savePath, isAudio).NewItem();

            ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items.Add(_file));

            int _listViewItems = downloadQueueMaterialListView.Items.Count - 1;

            var _mediaStreamInfoSet = await _client.GetVideoMediaStreamInfosAsync(_id);

            if (isAudio == false)
            {
                DownloadVideo(_mediaStreamInfoSet, fileTitle, downloadQueueMaterialListView, format, quality, _listViewItems, savePath, deleteDoneCheckBox);
            }
            else
            {
                DownloadAudio(_mediaStreamInfoSet, fileTitle, downloadQueueMaterialListView, format, bitrate, _listViewItems, savePath, deleteDoneCheckBox);
            }
        }
Exemple #16
0
        public Ingredientes(ProdutoParcial p)
        {
            InitializeComponent();
            pictureBox1.LoadAsync("https://localhost:44323/api/ProdutoFoto/" + p.ID);
            pedido = new PedidoProduto(1, p.ID, new PedidoProdutoIngrediente[0]);
            string     URL           = $"https://localhost:44323/api/Produtos/{p.ID}";
            string     urlParameters = "";
            HttpClient client        = new HttpClient();

            client.BaseAddress = new Uri(URL);

            // Add an Accept header for JSON format.
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            // List data response.
            HttpResponseMessage  response   = client.GetAsync(urlParameters).Result; // Blocking call! Program will wait here until a response is received or a timeout occurs.
            JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            Produto resultado = serializer.Deserialize <Produto>(response.Content.ReadAsStringAsync().Result);

            if (response.IsSuccessStatusCode)
            {
                produto             = resultado;
                materialLabel4.Text = "Descrição: " + produto.Desc;
                List <int> categorias = new List <int> {
                };
                bool hasPages         = false;
                foreach (ProdutoIngrediente pI in produto.ingredientes)
                {
                    if (categorias.Contains(pI.CategoriaIngredienteID))
                    {
                        string[]     rowStrings = { pI.Name, "R$ " + pI.Price, pI.DefaultQuantity.ToString(), pI.Desc };
                        ListViewItem row        = new ListViewItem(rowStrings);
                        ((MaterialListView)materialTabControl1.Controls[categorias.IndexOf(pI.CategoriaIngredienteID)].Controls[0]).Items.Add(row);
                        if (pI.DefaultQuantity != 0)
                        {
                            List <PedidoProdutoIngrediente> ppis = new List <PedidoProdutoIngrediente>(pedido.ingredientes);
                            ppis.Add(new PedidoProdutoIngrediente(pI.IngredientID, pI.DefaultQuantity));
                            pedido.ingredientes = ppis.ToArray();
                        }
                    }
                    else
                    {
                        categorias.Add(pI.CategoriaIngredienteID);
                        MaterialListView l = new MaterialListView();
                        l.Dock = DockStyle.Fill;
                        ColumnHeader nameHeader = new ColumnHeader();
                        nameHeader.Text  = "Ingrediente";
                        nameHeader.Width = 300;
                        ColumnHeader costHeader = new ColumnHeader();
                        costHeader.Text  = "Custo";
                        costHeader.Width = 140;
                        ColumnHeader descHeader = new ColumnHeader();
                        descHeader.Text  = "Descrição";
                        descHeader.Width = 400;
                        ColumnHeader qHeader = new ColumnHeader();
                        qHeader.Text  = "Quantidade";
                        qHeader.Width = 100;
                        l.Columns.AddRange(new ColumnHeader[] { nameHeader, costHeader, qHeader, descHeader });
                        l.HeaderStyle = ColumnHeaderStyle.Nonclickable;
                        TabPage categoriaPage = new TabPage();
                        categoriaPage.Text = getCategoriaNome(pI.CategoriaIngredienteID); //transformar issso em uma chamada de API pra pegar o nome dps
                        categoriaPage.Controls.Add(l);
                        if (pI.DefaultQuantity != 0)
                        {
                            List <PedidoProdutoIngrediente> ppis = new List <PedidoProdutoIngrediente>(pedido.ingredientes);
                            ppis.Add(new PedidoProdutoIngrediente(pI.IngredientID, pI.DefaultQuantity));
                            pedido.ingredientes = ppis.ToArray();
                        }
                        string[]     rowStrings = { pI.Name, "R$ " + pI.Price, pI.DefaultQuantity.ToString(), pI.Desc };
                        ListViewItem row        = new ListViewItem(rowStrings);
                        l.Items.Add(row);
                        materialTabControl1.TabPages.Add(categoriaPage);
                        l.SelectedIndexChanged += new System.EventHandler((object o, EventArgs e) => {
                            if (l.SelectedIndices.Count == 0)
                            {
                                return;
                            }
                            ProdutoIngrediente[] ingredientes     = (from ingrediente in produto.ingredientes where ingrediente.CategoriaIngredienteID == categorias[materialTabControl1.SelectedIndex] select ingrediente).ToArray();
                            ProdutoIngrediente selectedIngredient = ingredientes[l.SelectedIndices[0]];
                            int index = Array.FindIndex(pedido.ingredientes, ing => ing.ProdutoIngredienteID == selectedIngredient.PIngredientID);
                            if (index != -1)
                            {
                                AddIngrediente query = new AddIngrediente(pedido.ingredientes[index].Quantidade);
                                query.ShowDialog();
                                pedido.ingredientes[index].Quantidade = query.Quantidade;
                                ComputePrice();
                                l.Items[l.SelectedIndices[0]].SubItems[2].Text = query.Quantidade.ToString();
                            }
                            else
                            {
                                List <PedidoProdutoIngrediente> ppis = new List <PedidoProdutoIngrediente>(pedido.ingredientes);
                                ppis.Add(new PedidoProdutoIngrediente(selectedIngredient.IngredientID, selectedIngredient.DefaultQuantity));
                                pedido.ingredientes  = ppis.ToArray();
                                AddIngrediente query = new AddIngrediente(pedido.ingredientes[pedido.ingredientes.Length - 1].Quantidade);
                                query.ShowDialog();
                                pedido.ingredientes[pedido.ingredientes.Length - 1].Quantidade = query.Quantidade;
                                ComputePrice();
                                l.Items[l.SelectedIndices[0]].SubItems[2].Text = pedido.ingredientes[pedido.ingredientes.Length - 1].Quantidade.ToString();
                            }
                        });
                        hasPages = true;
                    }
                    if (hasPages)
                    {
                        materialTabSelector1.BaseTabControl = materialTabControl1;
                        materialTabSelector1.Invalidate();
                        materialTabSelector1.Update();
                    }
                }
                ComputePrice();
            }
            else
            {
                MessageBox.Show("Erro em obter os detalhes do produto da API. Contate um funcionário.");
                Close();
            }

            client.Dispose();
        }
        static async void DownloadVideo(MediaStreamInfoSet mediaStreamInfoSet, string title, MaterialListView downloadQueueMaterialListView, string format, string quality, int _listViewItems, string savePath, MaterialCheckBox deleteDoneCheckBox)
        {
            var _audioStreamInfo  = mediaStreamInfoSet.Audio.OrderByDescending(a => a.Bitrate).First();
            var _videoStreamInfo  = mediaStreamInfoSet.Video.Where(v => v.Container.ToString() == format && v.VideoQualityLabel == quality).First();
            var _mediaStreamInfos = new MediaStreamInfo[] { _audioStreamInfo, _videoStreamInfo };

            IProgress <double> progress = new Progress <double>(p =>
            {
                ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].SubItems[4].Text = (p * 100).ToString("0.00") + "%");
                if (p * 100 == 100)
                {
                    ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].SubItems[4].Text = "Done!");
                    DatabaseOperations.AddNewRecord(Settings.Default.Guid, title, format, savePath);

                    if (deleteDoneCheckBox.Checked == true)
                    {
                        Thread.Sleep(2000);
                        ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].Remove());
                    }
                }
            });

            await Task.Run(() => _converter.DownloadAndProcessMediaStreamsAsync(_mediaStreamInfos, savePath + "." + format, format, progress));
        }
        static async void DownloadAudio(MediaStreamInfoSet mediaStreamInfoSet, string title, MaterialListView downloadQueueMaterialListView, string format, long bitrate, int _listViewItems, string savePath, MaterialCheckBox deleteDoneCheckBox)
        {
            var _audioStreamInfo = mediaStreamInfoSet.Audio.OrderByDescending(a => a.Bitrate / 1024 == bitrate).First();

            IProgress <double> progress = new Progress <double>(p =>
            {
                ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].SubItems[4].Text = (p * 100).ToString("0.00") + "%");

                if (p * 100 == 100)
                {
                    ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].SubItems[4].Text = "Done!");
                    DatabaseOperations.AddNewRecord(Settings.Default.Guid, title, format, savePath);

                    if (deleteDoneCheckBox.Checked == true)
                    {
                        Thread.Sleep(2000);
                        ExtensionMethods.SynchronizedInvoke(downloadQueueMaterialListView, () => downloadQueueMaterialListView.Items[_listViewItems].Remove());
                    }
                }
            });

            await Task.Run(() => _client.DownloadMediaStreamAsync(_audioStreamInfo, savePath + ".mp3", progress));
        }
        public static void SetListUtama(string Query, string tanggal, MaterialListView listView)
        {
            MessageBox.Show(Query);
            MySqlDataAdapter mda = ExecuteRead(Query);
            DataTable        dt  = new DataTable();

            mda.Fill(dt);
            int i = 1;

            foreach (DataRow dr in dt.Rows)
            {
                listitem = new ListViewItem(i.ToString());
                string kode_brg       = dr["kode_barang"].ToString();
                string nama_brg       = getNamaBarang(kode_brg);
                string jumlah_brg_klr = getJumlahBarangKeluar(kode_brg, tanggal);

                if (jumlah_brg_klr == "")
                {
                    jumlah_brg_klr = "0";
                }

                int    jumlah_brg = Convert.ToInt32(getJumlahBarang(kode_brg, tanggal));
                string barang_klr = getBarangKeluar(kode_brg, tanggal);
                string barang_msk = getBarangMasuk(kode_brg, tanggal);
                MessageBox.Show("asd " + barang_msk);
                if (barang_msk == "")
                {
                    barang_msk = "0";
                }

                if (barang_klr == "")
                {
                    barang_klr = "0";
                }

                int    sisa_brg     = Convert.ToInt32(jumlah_brg) - Convert.ToInt32(jumlah_brg_klr);
                string harga_satuan = getHargaSatuan(kode_brg);
                int    jumlah_harga = Convert.ToInt32(harga_satuan) * Convert.ToInt32(jumlah_brg);
                int    uang_masuk   = Convert.ToInt32(harga_satuan) * Convert.ToInt32(barang_klr);
                int    selisih      = jumlah_harga - uang_masuk;
                string supplier     = getSupplier(kode_brg);
                string keterangan   = getKeterangan(kode_brg);

                MessageBox.Show(Query, kode_brg);

                listitem.SubItems.Add(tanggal);
                listitem.SubItems.Add(kode_brg);
                listitem.SubItems.Add(nama_brg);                //Nama Barang
                listitem.SubItems.Add(jumlah_brg.ToString());   //Jumlah Barang
                listitem.SubItems.Add(barang_msk);              //Barang Masuk
                listitem.SubItems.Add(barang_klr);              //Barang Keluar
                listitem.SubItems.Add(sisa_brg.ToString());     //Sisa Barang
                listitem.SubItems.Add(harga_satuan.ToString()); //Harga Satuan
                listitem.SubItems.Add(jumlah_harga.ToString()); //Jumlah Harga
                listitem.SubItems.Add(uang_masuk.ToString());   //Uang Masuk
                listitem.SubItems.Add(selisih.ToString());      //Selisih
                listitem.SubItems.Add(supplier);
                listitem.SubItems.Add(keterangan);

                listView.Items.Add(listitem);
                i++;
            }
        }
Exemple #20
0
        // GET: Materialcs
        public async Task <IActionResult> Index(MaterialListView model = null, int page = 1, string order = null)
        {
            string Material = null;

            if (model != null)
            {
                Material = model.CurrentMaterial;
            }

            var material = _context.Materialcs
                           .Where(p => Material == null || p.Nome.Contains(Material));

            int numProducts = await material.CountAsync();

            if (page > (numProducts / PAGE_SIZE) + 1)
            {
                page = 1;
            }
            IEnumerable <Materialcs> TipoList;

            if (order == "ID")
            {
                TipoList = await material
                           .OrderBy(p => p.MaterialcsId)
                           .Skip(PAGE_SIZE * (page - 1))
                           .Take(PAGE_SIZE)
                           .ToListAsync();
            }
            else if (order == "Nome")
            {
                TipoList = await material
                           .OrderBy(p => p.Nome)
                           .Skip(PAGE_SIZE * (page - 1))
                           .Take(PAGE_SIZE)
                           .ToListAsync();
            }
            else if (order == "Quantidade")
            {
                TipoList = await material
                           .OrderBy(p => p.Quantidade)
                           .Skip(PAGE_SIZE * (page - 1))
                           .Take(PAGE_SIZE)
                           .ToListAsync();
            }
            else
            {
                TipoList = await material
                           .OrderBy(p => p.MaterialcsId)
                           .Skip(PAGE_SIZE * (page - 1))
                           .Take(PAGE_SIZE)
                           .ToListAsync();
            }


            return(View(
                       new MaterialListView
            {
                Materialcs = TipoList,
                Pagination = new PagingViewModel
                {
                    CurrentPage = page,
                    PageSize = PAGE_SIZE,
                    Totaltems = numProducts,
                    Order = order
                },
                CurrentMaterial = Material
            }
                       ));
        }
        // Startup
        public MainForm()
        {
            InitializeComponent();

            #region Tabs
            Tabs.Add(FissureData);
            TabLabels.Add(label1);
            TabLabels.Add(label2);
            TabLabels.Add(label3);
            TabLabels.Add(label4);
            while (TabLabels.Count > Tabs.Count)
            {
                MaterialListView view = new MaterialListView();
                for (int i = 0; i < FissureData.Columns.Count; i++)
                {
                    view.Columns.Add((ColumnHeader)FissureData.Columns[i].Clone());
                }
                view.SetBounds(FissureData.Location.X, FissureData.Location.Y, FissureData.Width, FissureData.Height);

                Controls.Add(view);
                Tabs.Add(view);
            }
            FissureData.BringToFront();
            for (int i = 0; i < TabLabels.Count; i++)
            {
                TabLabels[i].Click += (object sender, EventArgs e) => {
                    this.InvokeIfRequired(() => {
                        try {
                            Tabs[TabLabels.IndexOf((Label)sender)].BringToFront();

                            foreach (Label x in TabLabels)
                            {
                                if (x == sender)
                                {
                                    x.ForeColor = Color.White;
                                }
                                else
                                {
                                    x.ForeColor = Color.DarkGray;
                                }
                            }
                        } catch { }
                    });
                }
            }
            ;
            #endregion

            var views = Controls.OfType <MaterialListView>();
            foreach (MaterialListView view in views)
            {
                view.ShowItemToolTips = true;
            }

            var skinManager = MaterialSkinManager.Instance;
            skinManager.AddFormToManage(this);
            skinManager.Theme       = MaterialSkinManager.Themes.DARK;
            FormBorderStyle         = FormBorderStyle.None;
            skinManager.ColorScheme = new ColorScheme((Primary)0x01C2F8, (Primary)0x039AC5, (Primary)0x4CD6FD, (Accent)0x039AC5, TextShade.WHITE);

            CBStartM.Checked = config.Data.startMinimized;
            CBNoti.Checked   = config.Data.desktopNotifications;
        }
        private async void OrderView_Load(object sender, EventArgs e)
        {
            LoadView?.Invoke(sender, e);
            await Task.Run(() => { while (pictureBox_loading.Enabled)
                                   {
                                       ;
                                   }
                           });

            Create.Binder(presenter.OrderVM)
            .Control(chkbx_sendMail).Property(chk => chk.Checked).Bind(vm => vm.SendEmail);
            // Customer Tab
            Create.Binder(presenter.CustomerTabVM)
            .Control(txtBx_customers).Property(txtbx => txtbx.AutoCompleteCustomSource).Get(vm => vm.Customers)
            .Control(cmbBx_stores).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Stores)
            .Control(cmbBx_stores).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Store)
            .Control(cmbBx_currencies).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Currencies)
            .Control(cmbBx_currencies).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Currency)
            .Control(cmbBx_customerGroups).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.CustomerGroups)
            .Control(cmbBx_customerGroups).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CustomerGroupID)
            .Control(txtBx_cFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname)
            .Control(txtBx_cLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname)
            .Control(txtBx_cEmail).Property(txtbx => txtbx.Text).Bind(vm => vm.Email)
            .Control(txtBx_cPhone).Property(txtbx => txtbx.Text).Bind(vm => vm.Telephone)
            .Control(btn_addCustomer).OnClick(presenter.CustomerTabVM.AddCustomer);
            cmbBx_stores.DisplayMember         = nameof(Store.Name);
            cmbBx_currencies.DisplayMember     = nameof(Currency.Title);
            cmbBx_customerGroups.ValueMember   = nameof(CustomerGroup.ID);
            cmbBx_customerGroups.DisplayMember = nameof(CustomerGroup.Name);
            // Products Tab
            Create.Binder(presenter.ProductsTabVM)
            .Control(cmbBx_products).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Products)
            .Control(txtBx_quantity).Property(txtbx => txtbx.Text).Bind(vm => vm.Quantity)
            .Control(lstVw_products).Property(lstvw => lstvw.DataSource).Get(vm => vm.OrderProducts)
            .Control(btn_addProduct).OnClick(presenter.ProductsTabVM.AddProduct, () => cmbBx_products.SelectedValue)
            .Target(tsmi_delete).OnEvent("Click").Execute(presenter.ProductsTabVM.RmProduct, () =>
            {
                var menu = tsmi_delete.Owner as MaterialContextMenuStrip;
                MaterialListView listView = menu.SourceControl as MaterialListView;
                if (listView.SelectedIndices.Count > 0)
                {
                    return(listView.SelectedItems[0].Tag);
                }

                return(null);
            });
            // Payment Address Tab
            Create.Binder(presenter.PaymentTabVM)
            .Control(cmbBx_paymentMethods).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.PaymentMethods)
            .Control(cmbBx_paymentMethods).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.PaymentMethod)
            .Control(cmbBx_paAddresses).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Addresses)
            .Control(cmbBx_paAddresses).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Address)
            .Control(cmbBx_paCountries).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Countries)
            .Control(cmbBx_paCountries).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CountryID)
            .Control(cmbBx_paZones).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Zones)
            .Control(cmbBx_paZones).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ZoneID)
            .Control(txtBx_paFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname)
            .Control(txtBx_paLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname)
            .Control(txtBx_paCompany).Property(txtbx => txtbx.Text).Bind(vm => vm.Company)
            .Control(txtBx_paAddress1).Property(txtbx => txtbx.Text).Bind(vm => vm.Address1)
            .Control(txtBx_paAddress2).Property(txtbx => txtbx.Text).Bind(vm => vm.Address2)
            .Control(txtBx_paCity).Property(txtbx => txtbx.Text).Bind(vm => vm.City)
            .Control(txtBx_paPostcode).Property(txtbx => txtbx.Text).Bind(vm => vm.Postcode);
            cmbBx_paCountries.ValueMember   = nameof(Country.ID);
            cmbBx_paCountries.DisplayMember = nameof(Country.Name);
            cmbBx_paZones.ValueMember       = nameof(Zone.ID);
            cmbBx_paZones.DisplayMember     = nameof(Zone.Name);
            // Shipping Address Tab
            Create.Binder(presenter.ShippingTabVM)
            .Control(cmbBx_shippingMethods).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.ShippingMethods)
            .Control(cmbBx_shippingMethods).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ShippingMethod)
            .Control(cmbBx_saAddresses).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Addresses)
            .Control(cmbBx_saAddresses).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Address)
            .Control(cmbBx_saCountries).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Countries)
            .Control(cmbBx_saCountries).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CountryID)
            .Control(cmbBx_saZones).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Zones)
            .Control(cmbBx_saZones).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ZoneID)
            .Control(txtBx_saFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname)
            .Control(txtBx_saLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname)
            .Control(txtBx_saCompany).Property(txtbx => txtbx.Text).Bind(vm => vm.Company)
            .Control(txtBx_saAddress1).Property(txtbx => txtbx.Text).Bind(vm => vm.Address1)
            .Control(txtBx_saAddress2).Property(txtbx => txtbx.Text).Bind(vm => vm.Address2)
            .Control(txtBx_saCity).Property(txtbx => txtbx.Text).Bind(vm => vm.City)
            .Control(txtBx_saPostcode).Property(txtbx => txtbx.Text).Bind(vm => vm.Postcode);
            cmbBx_saCountries.ValueMember   = nameof(Country.ID);
            cmbBx_saCountries.DisplayMember = nameof(Country.Name);
            cmbBx_saZones.ValueMember       = nameof(Zone.ID);
            cmbBx_saZones.DisplayMember     = nameof(Zone.Name);
            // Total Tab
            Create.Binder(presenter.TotalTabVM)
            .Control(cmbBx_orderStatus).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.OrderStatuses)
            .Control(cmbBx_orderStatus).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Status)
            .Control(lstVw_totalProducts).Property(lst => lst.DataSource).Get(vm => vm.Products)
            .Control(lbl_totals).Property(lbl => lbl.Text).Get(vm => vm.Totals);
            cmbBx_orderStatus.ValueMember   = nameof(OrderStatus.ID);
            cmbBx_orderStatus.DisplayMember = nameof(OrderStatus.Name);
        }