// 执行控制线程事项 public static void runMethod() { while (!Form1.closing) { // 什么都不做 if (curState == ctrlItem.DoNothing) { // do nothing } // 沿地图行进 else if (curState == ctrlItem.GoMap) { ProcessRoute.routing(); curState = ctrlItem.DoNothing; } // 沿通道创建地图 else if (curState == ctrlItem.ExpMap) { // 沿通道行进倒退 new Forward().Start(new KeyPoint(), 0, PortManager.conPort, PortManager.urgPort, PortManager.drPort); // 重设关键点(仅双路径时重设) if (Form_Path.wayBack) { PortManager.drPort.setPosition(DataArea.mapModel.Points[DataArea.mapModel.Points.Count - 2]); ProcessNewMap.markKeyPoint(0); } curState = ctrlItem.DoNothing; } } System.Threading.Thread.Sleep(refreshTime); }
private void frmAddItems_Load(object sender, EventArgs e) { dbItems = DB.GetItemsForInvoice(Inv.idInvoice); ScanPDFs = DB.GetScanPDFs(ActiveOrder.idOrder, Inv.idInvoice, -1); lblInvoice.Text = Inv.MyNumber + ". " + Inv.FirmName + " " + Inv.FirmIc; txtNrItemsExpected.Text = Inv.NrItems.ToString(); txtPriceExpected.Text = Helper.DoubleToMoney(Inv.Price); panel1.AutoScroll = false; panel1.HorizontalScroll.Enabled = false; panel1.HorizontalScroll.Visible = false; panel1.HorizontalScroll.Maximum = 0; panel1.AutoScroll = true; int LastPosition = 0; int PocetVyplnenych = 0; double PriceDone = 0; for (int i = 0; i < Inv.NrItems; i++) { wItems AktItem = dbItems.Find(x => x.InvoiceOrder == (i + 1)); ctrlItem I = new ctrlItem(); if (AktItem == null) { I.Mode = 1; I.NrScan = ScanPDFs.Select(x => x.ScanIncrement).ToList <int?>(); I.InvoiceOrder = i + 1; I.NrInvoice = Inv.MyNumber ?? 0; I.Nazev = ""; I.idUnit = 1; I.idSazbaDPH = 1; I.idInvoiceItem = -1; I.BasePriceNoDPH = 0; I.PriceNoDPH = 0; } else { I.Mode = 2; I.ScanIncrement = AktItem.ScanIncrement ?? 0; I.NrScan = ScanPDFs.Select(x => x.ScanIncrement).ToList <int?>(); I.InvoiceOrder = AktItem.InvoiceOrder ?? 0; I.Nazev = AktItem.ItemName; I.idUnit = AktItem.idUnit ?? 0; I.idSazbaDPH = AktItem.idSazbaDPH ?? 0; I.idInvoiceItem = AktItem.idInvoiceItem; I.BasePrice = AktItem.BasePrice ?? 0; I.Price = AktItem.Price ?? 0; I.Quantity = AktItem.Quantity ?? 0; I.BasePriceNoDPH = AktItem.BasePriceBezDPH ?? 0; I.PriceNoDPH = AktItem.PriceBezDPH ?? 0; PriceDone += I.PriceNoDPH; PocetVyplnenych++; } I.ctrlItemLeave += I_ctrlItemLeave; I.PriceNoVatChanged += PriceNoVatChanged; I.Top = 20 + (I.Height + 2) * i; I.myControlChanged += I_myControlChanged; panel1.Controls.Add(I); LastPosition = 20 + ((I.Height + 2) * i) + I.Height; ctrlOneItem.Add(I); } panel1.Height = (LastPosition + 30) > 400 ? 400 : (LastPosition + 30); this.Height = 60 + panel1.Top + panel1.Height + 40; txtNrItemsDone.Text = PocetVyplnenych.ToString(); txtPriceDone.Text = Helper.DoubleToMoney(PriceDone); btnSave.Top = this.ClientSize.Height - 40; }
private void btnSave_Click(object sender, EventArgs e) { if (DialogResult.Yes != MessageBox.Show("Opravdu uložit???", "Ukládání Položek", MessageBoxButtons.YesNo)) { return; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < ctrlOneItem.Count; i++) { ctrlItem AktItem = ctrlOneItem[i]; if (AktItem.Mode == 1) { if (AktItem.Nazev.Length < MINLENGTNAZEV && (AktItem.BasePrice > 0 || AktItem.Price > 0)) { sb.Append((AktItem.InvoiceOrder).ToString() + ". položka => Není vyplněn název\r\n"); } if (AktItem.BasePrice == 0 && (AktItem.Nazev.Length > MINLENGTNAZEV || AktItem.Price > 0)) { sb.Append(AktItem.InvoiceOrder.ToString() + ". položka => Není vyplněna jednotková cena\r\n"); } if (AktItem.Price == 0 && (AktItem.Nazev.Length > MINLENGTNAZEV || AktItem.BasePrice > 0)) { sb.Append(AktItem.InvoiceOrder.ToString() + ". položka => Není vyplněna celková cena\r\n"); } } } string Err = sb.ToString(); if (Err.Length > 0) { MessageBox.Show(Err); return; } for (int i = 0; i < ctrlOneItem.Count; i++) { ctrlItem AktItem = ctrlOneItem[i]; InvoiceItems I2 = new InvoiceItems(); I2.BasePrice = AktItem.BasePrice; I2.idInvoice = Inv.idInvoice; I2.idInvoiceItem = AktItem.idInvoiceItem; I2.idUnit = AktItem.idUnit; I2.idSazbaDPH = AktItem.idSazbaDPH; I2.ItemName = AktItem.Nazev; I2.Price = AktItem.Price; I2.Quantity = AktItem.Quantity; I2.ScanIncrement = AktItem.ScanIncrement; I2.InvoiceOrder = AktItem.InvoiceOrder; I2.PriceBezDPH = AktItem.PriceNoDPH; I2.BasePriceBezDPH = AktItem.BasePriceNoDPH; if (AktItem.Mode == 1 && I2.idInvoiceItem == -1 && AktItem.Nazev.Length >= MINLENGTNAZEV && AktItem.BasePrice > 0 && AktItem.Price > 0) { DB.InvoiceItemAddOrUpdate(I2, AktItem.Mode); } else if (AktItem.Mode == 2 && I2.idInvoiceItem > 0 && AktItem.Nazev.Length >= MINLENGTNAZEV && AktItem.BasePrice > 0 && AktItem.Price > 0) { DB.InvoiceItemAddOrUpdate(I2, AktItem.Mode); } else if (AktItem.Mode == 2 && I2.idInvoiceItem > 0 && AktItem.Nazev.Length < MINLENGTNAZEV && AktItem.BasePrice == 0 && AktItem.Price == 0) { DB.InvoiceItemDelete(AktItem.idInvoiceItem); } else if (AktItem.Mode == 1 && I2.idInvoiceItem == -1 && AktItem.Nazev.Length < MINLENGTNAZEV && AktItem.BasePrice == 0 && AktItem.Price == 0) { // Prazdny novy radek - no tak ho nech } else { MessageBox.Show("Nevím co dělat s Item " + i.ToString()); } } if (ActiveOrder.MaxStateValue <= (int)CDatabase.eOrderState.F2_Caption) { if (txtNrItemsDone.Text == txtNrItemsExpected.Text && (txtPriceDone.Text == txtPriceExpected.Text)) { if (Inv.StateValue == null || (Inv.StateValue == (int)CDatabase.eInvoiceState.I1_New)) { DB.InvoiceStateNew(Inv.idInvoice, (int)CDatabase.eInvoiceState.I2_Items); } } else { if (Inv.StateValue == (int)CDatabase.eInvoiceState.I2_Items) { DB.InvoiceStateNew(Inv.idInvoice, (int)CDatabase.eInvoiceState.I1_New); } } } this.DialogResult = System.Windows.Forms.DialogResult.Yes; }