private void toolBar_btnNew_Click(object sender) { sales_promotion sales_promotion = PromotionDB.New(); sales_promotion.IsSelected = true; PromotionDB.sales_promotion.Add(sales_promotion); sales_promotionViewSource.View.Refresh(); sales_promotionViewSource.View.MoveCurrentTo(sales_promotion); }
private void BuyThis_GetThat(sales_promotion Promo, Invoice Invoice, sales_invoice SalesInvoice) { if (Promo.types == sales_promotion.Type.BuyThis_GetThat) { if (Invoice.Details.Where(x => x.Item.id_item == Promo.reference && x.Quantity >= Promo.quantity_step).Count() > 0) { foreach (Detail _Detail in Invoice.Details.Where(x => x.Item.id_item == Promo.reference)) { if (Promo.quantity_step > 0) { Promo _Promo = new Promo(); _Promo.Type = sales_promotion.Type.BuyThis_GetThat; _Promo.Shared = true; _Detail.Promos.Add(_Promo); List <sales_invoice_detail> sid = SalesInvoice.sales_invoice_detail.Where(x => x.id_item == Promo.reference_bonus && x.IsPromo).ToList(); //Prevent double clicking button and adding extra bonus to sale. find better way to implement. Short term code. foreach (sales_invoice_detail _Detail_ in sid) { SalesInvoice.sales_invoice_detail.Remove(_Detail_); } sales_invoice_detail sales_invoice_detail = new sales_invoice_detail(); //Needed to calculate the discounts and unit prices further on. sales_invoice_detail.State = System.Data.Entity.EntityState.Added; using (db db = new db()) { item item = db.items.Where(x => x.id_item == Promo.reference_bonus).FirstOrDefault(); if (item != null) { sales_invoice_detail.id_vat_group = item.id_vat_group; sales_invoice_detail.id_item = item.id_item; sales_invoice_detail.item_description = item.name; //sales_invoice_detail.item = item; } item_price item_price = item.item_price.Where(x => x.item_price_list.is_default == true).FirstOrDefault(); if (item_price != null) { sales_invoice_detail.unit_price = item_price.value; sales_invoice_detail.discount = item_price.value; } } sales_invoice_detail.IsPromo = true; sales_invoice_detail.quantity = Math.Floor(_Detail.Quantity / Promo.quantity_step); SalesInvoice.sales_invoice_detail.Add(sales_invoice_detail); } } } } }
private void toolBar_btnCancel_Click(object sender) { sales_promotion sales_promotion = sales_promotionViewSource.View.CurrentItem as sales_promotion; if (sales_promotion != null) { sales_promotion.State = System.Data.Entity.EntityState.Unchanged; sales_promotionViewSource.View.Refresh(); sales_promotionViewSource.View.MoveCurrentTo(sales_promotion); } }
private void sbxBonusItem_Select(object sender, RoutedEventArgs e) { if (sbxBonusItem.ItemID > 0) { sales_promotion sales_promotion = sales_promotionViewSource.View.CurrentItem as sales_promotion; if (sales_promotion != null) { sales_promotion.reference_bonus = sbxBonusItem.ItemID; } } }
private void toolBar_btnEdit_Click(object sender) { sales_promotion sales_promotion = sales_promotionViewSource.View.CurrentItem as sales_promotion; if (sales_promotion != null) { sales_promotion.IsSelected = true; sales_promotion.State = System.Data.Entity.EntityState.Modified; sales_promotionViewSource.View.Refresh(); sales_promotionViewSource.View.MoveCurrentTo(sales_promotion); } }
private void cbxType_SelectionChanged(object sender, SelectionChangedEventArgs e) { sales_promotion sales_promotion = sales_promotionViewSource.View.CurrentItem as sales_promotion; // if (sales_promotion.types == entity.sales_promotion.Type.BuyThis_GetThat) { Tag_Parameter.Visibility = System.Windows.Visibility.Collapsed; Tag_Bonus.Visibility = System.Windows.Visibility.Collapsed; Item_Parameter.Visibility = System.Windows.Visibility.Visible; Item_Bonus.Visibility = System.Windows.Visibility.Visible; } //Buy Tag and get Bonus Item else if (sales_promotion.types == entity.sales_promotion.Type.BuyTag_GetThat) { Tag_Parameter.Visibility = System.Windows.Visibility.Visible; Tag_Bonus.Visibility = System.Windows.Visibility.Visible; Item_Parameter.Visibility = System.Windows.Visibility.Collapsed; Item_Bonus.Visibility = System.Windows.Visibility.Collapsed; } }
private void dgvPromotion_SelectionChanged(object sender, SelectionChangedEventArgs e) { sales_promotion sales_promotion = sales_promotionViewSource.View.CurrentItem as sales_promotion; if (sales_promotion != null) { //Buy Item and get Bonus Item if (sales_promotion.types == entity.sales_promotion.Type.BuyThis_GetThat || sales_promotion.types == entity.sales_promotion.Type.BuyTag_GetThat) { int BonusID = Convert.ToInt32(sales_promotion.reference_bonus); if (BonusID > 0) { sbxBonusItem.Text = PromotionDB.items.Where(x => x.id_item == BonusID).FirstOrDefault().name; int RefID = Convert.ToInt32(sales_promotion.reference); sbxRefItem.Text = PromotionDB.items.Where(x => x.id_item == RefID).FirstOrDefault().name; } cbxType_SelectionChanged(null, null); } } }
private void BuyTag_GetThat(sales_promotion Promo, Invoice Invoice, sales_invoice SalesInvoice) { if (Promo.types == sales_promotion.Type.BuyTag_GetThat) { decimal TotalQuantity = 0; List <Detail> DetailList = new List <Detail>(); List <DetailTag> DetailTagList = new List <DetailTag>(); using (db db = new db()) { DetailList = Invoice.Details.Where(x => x.Item.item_tag_detail.Any(y => y.id_tag == Promo.reference)).ToList(); if (DetailList.Count() > 0) { DetailTag DetailTag = new DetailTag(); DetailTag.Tag = Promo.reference; DetailTag.Quantity = DetailList.Sum(x => x.Quantity); DetailTagList.Add(DetailTag); } TotalQuantity = DetailList.Sum(x => x.Quantity); } if (DetailTagList.Count() > 0 && TotalQuantity >= Promo.quantity_step) { foreach (DetailTag _DetailTag in DetailTagList) { Promo _Promo = new Promo(); _Promo.Type = sales_promotion.Type.BuyTag_GetThat; _Promo.Shared = true; List <sales_invoice_detail> sid = SalesInvoice.sales_invoice_detail.Where(x => x.item.item_tag_detail.Any(y => y.id_tag == Promo.reference) && x.IsPromo).ToList(); //Prevent double clicking button and adding extra bonus to sale. find better way to implement. Short term code. foreach (sales_invoice_detail _Detail_ in sid) { SalesInvoice.sales_invoice_detail.Remove(_Detail_); } PromotionProduct window = new PromotionProduct() { Title = "Modal Dialog", ShowInTaskbar = false, // don't show the dialog on the taskbar Topmost = true, // ensure we're Always On Top ResizeMode = ResizeMode.NoResize, // remove excess caption bar buttons TagID = Promo.reference, TotalQuantity = Math.Floor(_DetailTag.Quantity / Promo.quantity_step), }; window.ShowDialog(); List <DetailProduct> DetailProduct = window.ProductList; if (DetailProduct != null) { foreach (DetailProduct _DetailProduct in DetailProduct) { sales_invoice_detail sales_invoice_detail = new sales_invoice_detail(); //Needed to calculate the discounts and unit prices further on. sales_invoice_detail.State = System.Data.Entity.EntityState.Added; using (db db = new db()) { item item = db.items.Where(x => x.id_item == _DetailProduct.ProductId).FirstOrDefault(); if (item != null) { sales_invoice_detail.id_vat_group = item.id_vat_group; sales_invoice_detail.id_item = item.id_item; sales_invoice_detail.item_description = item.name; } item_price item_price = item.item_price.Where(x => x.item_price_list.is_default == true).FirstOrDefault(); if (item_price != null) { sales_invoice_detail.unit_price = item_price.value; sales_invoice_detail.discount = item_price.value; } } sales_invoice_detail.IsPromo = true; sales_invoice_detail.quantity = _DetailProduct.Quantity; SalesInvoice.sales_invoice_detail.Add(sales_invoice_detail); } } } } } }