Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                        }
                    }
                }
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
 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;
         }
     }
 }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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;
            }
        }
Exemple #7
0
        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);
                }
            }
        }
Exemple #8
0
        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);
                            }
                        }
                    }
                }
            }
        }