コード例 #1
0
ファイル: OrderServiceImpl.cs プロジェクト: zaieda/RetailPOS
        /// <summary>
        /// Save Order details in database
        /// </summary>
        /// <param name="orderDetails">ordermaster object to be saved</param>
        /// <returns>returns boolean value indicating if the records are saved in database</returns>
        bool IOrderService.SaveOrderDetail(OrderMasterDTO orderDetail)
        {
            ordermaster orderEntity = new ordermaster();

            ObjectMapper.Map(orderDetail, orderEntity);
            return(OrderMasterRepository.Save(orderEntity));
        }
コード例 #2
0
ファイル: OrderServiceImpl.cs プロジェクト: zaieda/RetailPOS
        /// <summary>
        /// Update Order details in database
        /// </summary>
        /// <param name="orderDetails">ordermaster object to be updated</param>
        /// <returns>returns boolean value indicating if the records are updated in database</returns>
        bool IOrderService.UpdateOrderDetail(OrderMasterDTO orderDetail)
        {
            bool        isRecordUpdated = false;
            ordermaster orderEntity     = new ordermaster();

            ObjectMapper.Map(orderDetail, orderEntity);

            isRecordUpdated = OrderMasterRepository.Update(orderEntity);

            foreach (orderchild item in orderEntity.orderchilds)
            {
                if (item.order_id == 0)
                {
                    item.order_id   = orderEntity.id;
                    isRecordUpdated = OrderChildRepository.Save(item);
                }
                else
                {
                    isRecordUpdated = OrderChildRepository.Update(item);
                }
            }
            return(OrderMasterRepository.Update(orderEntity));
        }
コード例 #3
0
        public OrderModel CreateOrder(OrderModel model)
        {
            OrderModel data = new OrderModel();

            using (shamsweets_mobileappEntities context = new shamsweets_mobileappEntities())
            {
                var maxseq = 0;
                var first  = context.ordermasters.Where(x => x.StoreId == model.StoreId).Select(s => s.OrderId).FirstOrDefault();
                if (first == 0)
                {
                    strSequnceNumber = "SHAM00001";
                }
                else
                {
                    maxseq = context.ordermasters.Where(x => x.StoreId == model.StoreId).Max(s => s.OrderId);
                }

                if (maxseq != null && maxseq > 0)
                {
                    strSequnceNumber = MakeIntoSequence(maxseq + 1, 9, "SHAM");
                }
                else
                {
                    strSequnceNumber = "SHAM00001";
                }

                string  strOrderNumber    = strSequnceNumber;
                decimal grandtotal        = 0;
                decimal deliverycharge    = 0;
                decimal promocodediscount = 0;
                decimal specialdiscount   = 0;
                decimal productprice      = 0;
                decimal GSTvalue          = 0;
                decimal productvalue      = 0;
                decimal taxabale_value    = 0;
                decimal gstvalue          = 0;
                decimal productnetvalue   = 0;
                decimal Itotal            = 0;

                decimal Total               = 0;
                decimal TotalDiscount       = 0;
                decimal TotalGST            = 0;
                decimal TotalSubTotal       = 0;
                decimal TotalGrandTotal     = 0;
                decimal NetPrice            = 0;
                decimal TotalDeliveryCharge = 0;

                foreach (var pro in model.OrderDetails)
                {
                    var product = (from p in context.productmasters
                                   where p.ProductId == pro.ProductId
                                   select p).FirstOrDefault();
                    if (product.TaxType != null && product.TaxType == "I")
                    {
                        productvalue    = pro.Quantity * (decimal)product.UnitPrice;
                        specialdiscount = (productvalue * (decimal)product.Discount / 100);
                        taxabale_value  = productvalue - specialdiscount;
                        GSTvalue        = taxabale_value * (decimal)product.GST / (100 + (decimal)product.GST);
                        Itotal          = taxabale_value - GSTvalue;
                        productprice    = (decimal)pro.Quantity * Itotal + GSTvalue;
                    }
                    else
                    {
                        productvalue    = pro.Quantity * (decimal)product.UnitPrice;
                        specialdiscount = (productvalue * (decimal)product.Discount / 100);
                        taxabale_value  = productvalue - specialdiscount;
                        GSTvalue        = taxabale_value * (decimal)product.GST / 100;
                        productprice    = taxabale_value + GSTvalue;
                    }
                    TotalDeliveryCharge += (decimal)product.DeliveryCharge;
                    Total           += productvalue;
                    TotalDiscount   += specialdiscount;
                    TotalSubTotal   += taxabale_value;
                    TotalGST        += GSTvalue;
                    TotalGrandTotal += productprice;
                }
                if (model.PromoCodeId > 0)
                {
                    promocodediscount = (decimal)(from p in context.promocodemasters
                                                  where p.PromoCodeId == model.PromoCodeId && p.LoginId == model.LoginId
                                                  select p.Discount).FirstOrDefault();
                }
                else
                {
                    promocodediscount = 0;
                }

                NetPrice = TotalGrandTotal + TotalDeliveryCharge - promocodediscount;
                ordermaster o = new ordermaster();
                o.OrderNumber         = strOrderNumber;
                o.StoreId             = model.StoreId;
                o.AddressId           = model.AddressId;
                o.LoginId             = model.LoginId;
                o.TotalPrice          = Total;
                o.GrandTotal          = TotalGrandTotal;
                o.SpecialDiscount     = TotalDiscount;
                o.Discount            = promocodediscount;
                o.NetAmount           = NetPrice;
                o.TotalGST            = TotalGST;
                o.SubTotal            = TotalSubTotal;
                o.TotalDeliveryCharge = TotalDeliveryCharge;
                o.OrderStatusId       = 1;
                foreach (var product in model.OrderDetails)
                {
                    orderdetail x = new orderdetail();
                    x.OrderNumber = strOrderNumber;
                    x.ProductId   = product.ProductId;
                    x.Quantity    = product.Quantity;
                    context.orderdetails.Add(x);
                }
                context.ordermasters.Add(o);

                var result = context.SaveChanges();

                var order = (from x in context.ordermasters
                             join s in context.orderstatusmasters on x.OrderStatusId equals s.OrderStatusId
                             join p in context.promocodemasters on x.LoginId equals p.LoginId into j1
                             from j2 in j1.DefaultIfEmpty()
                             join c in context.registrationmasters on x.LoginId equals c.LoginID into j3
                             from j4 in j3.DefaultIfEmpty()
                             join st in context.storemasters on x.StoreId equals st.StoreId into j5
                             from j6 in j5.DefaultIfEmpty()
                             //join m in context.orderdetails on x.OrderNumber equals m.OrderNumber
                             where x.LoginId == model.LoginId
                             orderby x.OrderId descending
                             select new OrderModel()
                {
                    OrderId = x.OrderId,
                    CustomerName = j4.Name,
                    PhoneNumber = j4.PhoneNumber,
                    EmailId = j4.EmailID,
                    DeviceId = j4.DeviceId,
                    OrderNumber = x.OrderNumber,
                    StoreId = (int)x.StoreId,
                    StoreName = j6.StoreName,
                    StorePhoneNumber = j6.StorePhoneNumber,
                    AddressId = (int)x.AddressId,
                    LoginId = (int)x.LoginId,
                    PromoCode = j2.PromoCode,
                    TotalPrice = (decimal)x.TotalPrice,
                    GrandTotal = (decimal)x.GrandTotal,
                    SpecialDiscount = (decimal)x.SpecialDiscount,
                    PromoDiscount = (decimal)x.Discount,
                    NetPrice = (decimal)x.NetAmount,
                    SubTotal = (decimal)x.SubTotal,
                    TotalGST = (decimal)x.TotalGST,
                    OrderTime = (DateTime)x.CreatedOn,
                    OrderStatus = s.OrderStatus,
                    DeliveryCharge = (decimal)x.TotalDeliveryCharge,
                }).First();

                var orderdetails = (from z in context.ordermasters
                                    join r in context.orderdetails on z.OrderNumber equals r.OrderNumber
                                    join p in context.productmasters on r.ProductId equals p.ProductId
                                    where r.OrderNumber == order.OrderNumber
                                    orderby r.OrderDetailsId descending
                                    select new OrderDetailsModel()
                {
                    ProductName = p.ProductName,
                    UnitPrice = (decimal)p.UnitPrice,
                    ProductId = (int)r.ProductId,
                    Quantity = (decimal)r.Quantity,
                    UOM = p.UOM,
                    //ProductPicturesUrl = path + r.ProductId + "ProductPictures.jpg"
                }).ToList();
                order.OrderDetails = orderdetails;
                return(order);
            }
        }