示例#1
0
        //Value && AND && Single_SKU
        private void Value_and_Single_SKU(tblt_Order_line orederLineitem, int promoId)
        {
            var tpSingleSkuDefinitionOrderLine = _db.tblt_TradePromotionDefinition.FirstOrDefault(x => x.condition_sku_id == orederLineitem.sku_id && x.promo_line_type == 3 && x.promo_id == promoId); //Get Full Line

            if (tpSingleSkuDefinitionOrderLine != null)
            {
                int discountAmount = ((orederLineitem.quantity_delivered - (orederLineitem.quantity_delivered % tpSingleSkuDefinitionOrderLine.condition_sku_amount)) / tpSingleSkuDefinitionOrderLine.condition_sku_amount) * tpSingleSkuDefinitionOrderLine.offer_sku_amount;


                _db.tblt_Order.Where(x => x.Orderid == orederLineitem.Orderid).ToList().ForEach(x =>
                {
                    x.total_delivered = x.total_delivered - discountAmount;
                }); //Update TP Order By discount Update



                _db.tblt_Order_line.Where(x => x.id == orederLineitem.id).ToList().ForEach(x =>
                {
                    x.total_discount_amount = discountAmount;

                    x.total_billed_amount = (x.unit_sale_price * x.quantity_delivered) - discountAmount;
                    x.promotion_id        = tpSingleSkuDefinitionOrderLine.promo_id;
                }); //Update TP Order Line By Promo_id Update

                _db.SaveChanges();
            }
        }
示例#2
0
        //Quentity && AND && Single_SKU
        private void Quentity_and_Single_SKU(tblt_Order_line orederLineitem, int promoId)
        {
            var tpSingleSkuDefinitionOrderLine = _db.tblt_TradePromotionDefinition.FirstOrDefault(x => x.condition_sku_id == orederLineitem.sku_id && x.promo_line_type == 1 && x.promo_id == promoId);           //Get Full Line
            var tpSingleSkuDefinitionFreeLine  = _db.tblt_TradePromotionDefinition.FirstOrDefault(x => x.promo_id == tpSingleSkuDefinitionOrderLine.promo_id && x.promo_line_type == 2 && x.promo_id == promoId); //Get Free Line

            if (tpSingleSkuDefinitionFreeLine != null && tpSingleSkuDefinitionOrderLine != null)
            {
                int getfreequantityOrder =
                    (orederLineitem.quantity_ordered - (orederLineitem.quantity_ordered %
                                                        tpSingleSkuDefinitionOrderLine.condition_sku_amount)) /
                    tpSingleSkuDefinitionOrderLine.condition_sku_amount * tpSingleSkuDefinitionFreeLine.offer_sku_amount;
                int getfreequantityDelivered =
                    (orederLineitem.quantity_delivered - (orederLineitem.quantity_delivered %
                                                          tpSingleSkuDefinitionOrderLine.condition_sku_amount)) /
                    tpSingleSkuDefinitionOrderLine.condition_sku_amount * tpSingleSkuDefinitionFreeLine.offer_sku_amount;
                int getfreequantityconfirmed =
                    (orederLineitem.quantity_confirmed - (orederLineitem.quantity_confirmed %
                                                          tpSingleSkuDefinitionOrderLine.condition_sku_amount)) /
                    tpSingleSkuDefinitionOrderLine.condition_sku_amount * tpSingleSkuDefinitionFreeLine.offer_sku_amount;

                if (getfreequantityOrder > 0 || getfreequantityDelivered > 0 || getfreequantityconfirmed > 0)
                {
                    tblt_Order_line freeOrderLine = new tblt_Order_line
                    {
                        Orderid           = orederLineitem.Orderid,
                        Bundelitmeid      = 0,
                        sku_id            = tpSingleSkuDefinitionFreeLine.offer_sku_id,
                        Betch_id          = tpSingleSkuDefinitionFreeLine.offer_sku_Batch,
                        Pack_size         = tpSingleSkuDefinitionFreeLine.offer_sku_pack_size,
                        unit_sale_price   = 0,
                        sku_order_type_id = 2,
                        promotion_id      = tpSingleSkuDefinitionOrderLine.promo_id,
                        lpec                  = 0,
                        quantity_ordered      = getfreequantityOrder,
                        quantity_confirmed    = getfreequantityconfirmed,
                        quantity_delivered    = getfreequantityDelivered,
                        total_sale_price      = 0,
                        total_discount_amount = 0,
                        total_billed_amount   = 0,
                    };

                    TradepromotatonFreeOrderLine(freeOrderLine);
                }

                _db.tblt_Order_line.Where(x => x.id == orederLineitem.id).ToList().ForEach(x =>
                {
                    x.promotion_id = tpSingleSkuDefinitionOrderLine.promo_id;
                }); //Update TP Order Line By Promo_id Update

                _db.SaveChanges();
            }
        }
示例#3
0
 private void TradepromotatonFreeOrderLine(tblt_Order_line freeOrderLine)
 {
     _db.tblt_Order_line.Add(freeOrderLine);
     _db.SaveChanges();
 }
示例#4
0
        //Quentity && OR && Multi_Slub
        private void Quentity_OR_Multi_Slab(List <int> tpAffactedPromoid, List <tblt_Order_line> orederLine, int orderid)
        {
            foreach (var promoid in tpAffactedPromoid)
            {
                List <Tpvm> slabCount = new List <Tpvm>();

                var tradePromotionDefinitionLine = _db.tblt_TradePromotionDefinition.Where(x => x.promo_id == promoid && x.promo_line_type == 1);
                var tradePromotionFreeLine       = _db.tblt_TradePromotionDefinition.SingleOrDefault(x => x.promo_id == promoid && x.promo_line_type == 2);

                foreach (var item in tradePromotionDefinitionLine)
                {
                    var dataLine = (from a in orederLine
                                    where a.sku_id == item.condition_sku_id && a.Betch_id == item.condition_sku_Batch
                                    select new Tpvm
                    {
                        PromoId = promoid,
                        SkuId = a.sku_id,
                        BatchId = a.Betch_id,
                        QuantityOrdered = a.quantity_ordered >= item.condition_sku_amount?a.quantity_ordered / item.condition_sku_pack_size:0,
                        QuantityConfirmed = a.quantity_confirmed >= item.condition_sku_amount ? a.quantity_confirmed / item.condition_sku_pack_size : 0,
                        QuantityDelivered = a.quantity_delivered >= item.condition_sku_amount ? a.quantity_delivered / item.condition_sku_pack_size : 0,
                    }).SingleOrDefault();
                    if (dataLine != null)
                    {
                        slabCount.Add(dataLine);
                    }
                }

                if (tradePromotionFreeLine != null)
                {
                    var quantityOrderedslabCount   = slabCount.Where(x => x.PromoId == promoid).Select(x => x.QuantityOrdered).Sum() / tradePromotionFreeLine.condition_bundle_qty_CS;
                    var quantityConfirmedslabCount = slabCount.Where(x => x.PromoId == promoid).Select(x => x.QuantityConfirmed).Sum() / tradePromotionFreeLine.condition_bundle_qty_CS;
                    var quantityDeliveredslabCount = slabCount.Where(x => x.PromoId == promoid).Select(x => x.QuantityDelivered).Sum() / tradePromotionFreeLine.condition_bundle_qty_CS;


                    var orederLineids = (from a in orederLine
                                         join b in slabCount on new { A = a.sku_id, B = a.Betch_id } equals new { A = b.SkuId, B = b.BatchId }
                                         select a.id).ToList();


                    int getfreequantityOrder     = tradePromotionFreeLine.offer_sku_amount * quantityOrderedslabCount;
                    int getfreequantityDelivered = tradePromotionFreeLine.offer_sku_amount * quantityConfirmedslabCount;
                    int getfreequantityconfirmed = tradePromotionFreeLine.offer_sku_amount * quantityDeliveredslabCount;


                    if (getfreequantityOrder > 0 || getfreequantityDelivered > 0 || getfreequantityconfirmed > 0)
                    {
                        tblt_Order_line freeOrderLine = new tblt_Order_line
                        {
                            Orderid           = orderid,
                            Bundelitmeid      = 0,
                            sku_id            = tradePromotionFreeLine.offer_sku_id,
                            Betch_id          = tradePromotionFreeLine.offer_sku_Batch,
                            Pack_size         = tradePromotionFreeLine.offer_sku_pack_size,
                            unit_sale_price   = 0,
                            sku_order_type_id = 2,
                            promotion_id      = tradePromotionFreeLine.promo_id,
                            lpec                  = 0,
                            quantity_ordered      = getfreequantityOrder,
                            quantity_confirmed    = getfreequantityconfirmed,
                            quantity_delivered    = getfreequantityDelivered,
                            total_sale_price      = 0,
                            total_discount_amount = 0,
                            total_billed_amount   = 0,
                        };

                        TradepromotatonFreeOrderLine(freeOrderLine);
                    }
                    _db.tblt_Order_line.Where(x => orederLineids.Contains(x.id)).ToList().ForEach(x =>
                    {
                        x.promotion_id = promoid;
                    }); //Update TP Order Line By Promo_id Update

                    _db.SaveChanges();
                }
            }
        }