private void SetPriceTextBlock(int Takst = -1, int Beregning = -1) { List <int> pakkeId = GetPacketIndexs(_hiddenId.Text);//hent id PakkeControlItem pakkeItem = this.Items[pakkeId[0]]; if (!IsFaktura || this.TranssportId == c_TransportKurer || pakkeId[0] == -1 || pakkeId[1] == -1 || (this.TranssportId == c_TransportKurer && (pakkeItem.takstId[pakkeId[1]] == -1 || pakkeItem.beregningstypeId[pakkeId[1]] == -1))) { TextBlock_PacketPrice.Text = ""; return; } double price = 0; switch (this.TranssportId) { case c_TransportPakke: price = Models.FakturaPrisliste.pakkePriser.Prices[pakkeItem.transportTypeId][this.TranssportId2]; break; case c_TransportGods: Takst = Takst == -1 ? pakkeItem.takstId[pakkeId[1]] : Takst; Beregning = Beregning == -1 ? pakkeItem.beregningstypeId[pakkeId[1]] : Beregning; if (Takst == -1 || Beregning == -1) { TextBlock_PacketPrice.Text = ""; return; } var godsFunc = new Class.GodsFunction(); double kiloCal = godsFunc.GetCalKilo(Beregning, pakkeItem.volumeL, pakkeItem.volumeB, pakkeItem.volumeH); double kiloUse = kiloCal >= pakkeItem.weightD ? kiloCal : pakkeItem.weightD; price = godsFunc.GetPrice(Takst, kiloUse); break; } if (price != 0) { TextBlock_PacketPrice.Text = price.ToString("N2") + " kr."; } }
/// <summary> /// gå til næste faktura pakke /// </summary> private void _NextButton_click(object sender, RoutedEventArgs e) { List <int> pakkeId = GetPacketIndexs(_hiddenId.Text); //hent id PakkeControlItem pakkeItem = this.Items[pakkeId[0]]; //hent pakke data //hent faktura pakke data pakkeItem.takstId[pakkeId[1]] = Selector_Faktura_Takst.SelectId; pakkeItem.takstName[pakkeId[1]] = Selector_Faktura_Takst.SelectName; pakkeItem.beregningstypeId[pakkeId[1]] = Selector_Faktura_Beregn.SelectId; pakkeItem.beregningstypeName[pakkeId[1]] = Selector_Faktura_Beregn.SelectName; //tjek om pakken er færdig if (Selector_Faktura_Takst.SelectId != -1 && Selector_Faktura_Beregn.SelectId != -1) { pakkeItem.IsDoneFaktura[pakkeId[1]] = true; } else { pakkeItem.IsDoneFaktura[pakkeId[1]] = false; } //opdatere layout Update(); int ItemCount = this.Items.Count; int ItemfakturaCount = this.Items[pakkeId[0]].countI; if (ItemfakturaCount != (pakkeId[1] + 1)) { SetElementPacketData(pakkeId[0], (pakkeId[1] + 1)); } else if (ItemCount != (pakkeId[0] + 1)) { SetElementPacketData((pakkeId[0] + 1), 0); } else { _hiddenId.Text = "-1"; grid_faktura.Visibility = Visibility.Hidden; } HighLightSelected(); }
private bool PacketIsDoneFragt(PakkeControlItem packetItem) { int[] nullVolume; bool volumeStatus = CheckVolume(packetItem.volume, out nullVolume); if (packetItem.mrkNumb == "" || packetItem.contains == "" || packetItem.countI <= 0 || packetItem.weightD <= 0 || packetItem.artId == -1 || packetItem.transportTypeId == -1) { return(false); } else if (this.TranssportId == c_TransportGods && !volumeStatus || !volumeStatus && packetItem.volume != "") { return(false); } else { return(true); } }
/// <summary> /// tjek om det er en tom pakke /// </summary> private bool PacketIsEmpty(PakkeControlItem packetItem) { PakkeControlItem checkNewElement = new PakkeControlItem(); if ( packetItem.mrkNumb == checkNewElement.mrkNumb && packetItem.contains == checkNewElement.contains && packetItem.countI == checkNewElement.countI && packetItem.weightD == checkNewElement.weightD && packetItem.artId == checkNewElement.artId && packetItem.volume == checkNewElement.volume && packetItem.transportTypeId == checkNewElement.transportTypeId && packetItem.takstId == checkNewElement.takstId && packetItem.beregningstypeId == checkNewElement.beregningstypeId ) { return(true); } else { return(false); } }
/// <summary> /// henter pakke data og indæstter det i tekst bokse /// </summary> private bool SetElementPacketData(int pakkeId, int fakturaId) { grid_faktura.Visibility = Visibility.Hidden; _NextButton.Visibility = Visibility.Collapsed; int pakkeCount = this.Items.Count; int packIndex = GetPacketOneIndex(pakkeId, fakturaId); int packIndexMax = GetPacketMaxIndex(); _Button_Arrow_Next.Visibility = Visibility.Visible; _Button_Arrow_Back.Visibility = Visibility.Visible; if (packIndex == 0) { _Button_Arrow_Back.Visibility = Visibility.Collapsed; } if (packIndex == packIndexMax) { _Button_Arrow_Next.Visibility = Visibility.Collapsed; } //tjek om pakke findes if (packIndex == -1) { _hiddenId.Text = "-1";//sæt næste pakke id return(false); } //hent pakke data PakkeControlItem pakkeItem = this.Items[pakkeId]; //sæt fragtbrev data _mrkNumb.Text = pakkeItem.mrkNumb; _indhold.Text = pakkeItem.contains; _antal.Text = pakkeItem.countS; _weight.Text = pakkeItem.weightS; _artType.SelectId = pakkeItem.artId; _volume.Text = pakkeItem.volume; _transportType.SelectId = pakkeItem.transportTypeId; //check volume bool volumeStatus = true; if (pakkeItem.volume != "" || this.TranssportId == c_TransportGods) { int[] volumeValue; volumeStatus = CheckVolume(pakkeItem.volume, out volumeValue); } //sæt/fjern rød ramme _volume.RequireEnableRedBorder = !volumeStatus; this.VolumeHasUseRedBorder = !volumeStatus; _hiddenId.Text = "HiddenId_" + pakkeId + "_0";//sæt næste pakke id //sæt faktura data if (IsFaktura && fakturaId != -1) { _hiddenId.Text = "HiddenId_" + pakkeId + "_" + fakturaId; //sæt næste pakke id _antal.Text = "1"; //skal kun sige der er en Selector_Faktura_Takst.SelectId = pakkeItem.takstId[fakturaId]; Selector_Faktura_Beregn.SelectId = pakkeItem.beregningstypeId[fakturaId]; } if (IsFaktura && this.TranssportId == c_TransportGods) { grid_faktura.Visibility = Visibility.Visible; Selector_Faktura_Takst.Visibility = Visibility.Visible; Selector_Faktura_Beregn.Visibility = Visibility.Visible; } else if (IsFaktura && this.TranssportId == c_TransportPakke) { grid_faktura.Visibility = Visibility.Visible; Selector_Faktura_Takst.Visibility = Visibility.Collapsed; Selector_Faktura_Beregn.Visibility = Visibility.Collapsed; } SetPriceTextBlock(); ScrollToPacket(); return(true); }
/// <summary> /// tilføj pakke til list /// </summary> private void _AddButton_click(object sender, RoutedEventArgs e) { List <int> hiddenId = GetPacketIndexs(_hiddenId.Text); _hiddenId.Text = "-1"; //sæt id for næste pakke PakkeControlItem newItem = new PakkeControlItem(); int count = 0; double weight = 0; int.TryParse(_antal.Text, out count); double.TryParse(_weight.Text, out weight); //hent data newItem.IsDoneFragt = false; newItem.mrkNumb = _mrkNumb.Text; newItem.contains = _indhold.Text; newItem.countI = count; newItem.countS = _antal.Text; newItem.weightD = weight; newItem.weightS = _weight.Text; newItem.artId = _artType.SelectId; newItem.artName = _artType.SelectName; newItem.volume = _volume.Text; newItem.transportTypeId = _transportType.SelectId; newItem.transportTypeName = _transportType.SelectName; //check volume if (newItem.volume != "" || this.TranssportId == c_TransportGods) { int[] volumeValue; CheckVolume(newItem.volume, out volumeValue); newItem.volumeL = volumeValue[0]; newItem.volumeB = volumeValue[1]; newItem.volumeH = volumeValue[2]; } newItem.IsDoneFragt = PacketIsDoneFragt(newItem); //man må ikke kunne tilføje helt tomme pakker if (!PacketIsEmpty(newItem)) { //nulstil faktura delen newItem.IsDoneFaktura = new List <bool>(); newItem.takstId = new List <int>(); newItem.takstName = new List <string>(); newItem.beregningstypeId = new List <int>(); newItem.beregningstypeName = new List <string>(); //giv faktura delen en default værdi for (int i = 0; i < newItem.countI; i++) { newItem.IsDoneFaktura.Add(false); newItem.takstId.Add(-1); newItem.takstName.Add(""); newItem.beregningstypeId.Add(-1); newItem.beregningstypeName.Add(""); } // om det er en ny pakke if (hiddenId[0] == -1) { Items.Add(newItem); } else { Items[hiddenId[0]] = newItem; } Update(); //opdatere listview _CancelButton_click(sender, e); //nulstil tekstbokse } }