示例#1
0
        public static List <OrderDiscount> Search(OrderDiscountParam param, Pagination paging)
        {
            var sql = Sql.Builder;

            if (!Equals(param.Term, string.Empty))
            {
                sql.Where(string.Format("SearchMeta like '%{0}%'", param.Term.RemoveUnicode()));
            }
            if (param.IDCustomer > 0)
            {
                sql.Where("IDCustomer =@0", param.IDCustomer);
            }
            if (param.Year > 0)
            {
                sql.Where("Year =@0", param.Year);
            }
            if (param.Quater > 0)
            {
                sql.Where("Quater =@0", param.Quater);
            }
            if (param.Type > 0)
            {
                sql.Where("Type =@0", param.Type);
            }
            return(UseInstance.GetListOrDefault(sql, paging));
        }
        public ActionResult Index()
        {
            var searchParam    = new OrderDiscountParam().BindData(DATA);
            var orderDiscounts = OrderDiscountRepository.Search(searchParam, Paging);
            var idOrderString  = Utils.GetStringJoin(",", orderDiscounts.Select(t => t.IDOrders));
            var idOrders       = idOrderString.ToLongSplit(',').Distinct().ToArray();
            var quaters        = Utils.EnumToDictionary <Quater>();
            var years          = Enumerable.Range(2000, 100).ToList();
            var orders         = OrderRepository.UseInstance.GetByIdsOrDefault(idOrders);
            var customers      = CustomerRepository.UseInstance.GetListOrDefault();
            var orderTypes     = Utils.EnumToDictionary <OrderType>();

            SetTitle("Danh sách chiết khấu");
            return(GetCustResultOrView(new ViewParam
            {
                Data = new OrderDiscountModel
                {
                    OrderDiscounts = orderDiscounts,
                    Quaters = quaters,
                    Years = years,
                    Customers = customers,
                    Orders = orders,
                    OrderTypes = orderTypes,
                    SearchParam = searchParam,
                },
                ViewName = "Index",
                ViewNameAjax = "OrderDiscounts"
            }));
        }
示例#3
0
        public ActionResult OrderDiscountExportPDF()
        {
            var path      = "";
            var temp      = "OrderDiscount.pdf";
            var fileName  = "Danh sách chiết khấu.pdf";
            var dataTable = new DataTable();

            dataTable.TableName = string.Format("Danh sách chiết khấu");
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "STT",
                Caption    = "Num"
            }
                                  );
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Thông tin đơn chiết khấu",
                Caption    = "OrderInfo"
            }
                                  );
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Chi tiết đơn hàng",
                Caption    = "DetailOrders"
            });
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Chiết khấu(%)",
                Caption    = "Discount"
            });
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Hỗ trợ Event(VNĐ)",
                Caption    = "Event"
            });
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Tổng tiền(VNĐ)",
                Caption    = "Total"
            });

            var searchParm     = new OrderDiscountParam().BindData(DATA);
            var orderDiscounts = OrderDiscountRepository.Search(searchParm, null);
            var idOrderString  = Utils.GetStringJoin(",", orderDiscounts.Select(t => t.IDOrders));
            var idOrders       = idOrderString.ToLongSplit(',').Distinct().ToArray();
            var quaters        = Utils.EnumToDictionary <Quater>();
            var years          = Enumerable.Range(2000, 100).ToList();
            var orders         = OrderRepository.UseInstance.GetByIdsOrDefault(idOrders);
            var customers      = CustomerRepository.UseInstance.GetListOrDefault();
            var orderTypes     = Utils.EnumToDictionary <OrderType>();

            var i = 0;

            orderDiscounts.ForEach(t =>
            {
                var customer    = customers.FirstOrDefault(c => c.ID == t.IDCustomer) ?? new Customer();
                var idOrderFors = t.IDOrders.ToIntSplit(',');
                var orderFors   = orders.Where(o => idOrderFors.Contains(o.ID)).ToList();
                var time        = t.Quater != (int)(Quater.All)
                         ? string.Format("{0} - {1}", Utils.GetDescription <Quater>(t.Quater), t.Year)
                         : string.Format("Năm {0}", t.Year);
                var orderDetails = "";
                orderFors.ForEach(o =>
                {
                    orderDetails += string.Format("{0}: {1}", o.PONo, o.RealValue > 0 ? string.Format("{0:0,0}", o.RealValue) : "0") + Environment.NewLine;
                });
                var sumOrderDetails = orderFors.Sum(o => o.RealValue);
                orderDetails       += string.Format("Tổng :{0}", sumOrderDetails > 0 ? string.Format("{0:0,0}", sumOrderDetails) : "0");
                i++;
                dataTable.Rows.Add(
                    i,
                    string.Format("Mã CK: {0}", t.Code) + Environment.NewLine
                    + string.Format("Khách hàng: {0}", customer.Name) + Environment.NewLine
                    + string.Format("Thời điểm: {0}", time) + Environment.NewLine
                    + string.Format("Loại đơn: {0}", Utils.GetDescription <OrderType>(t.Type)),
                    orderDetails,
                    t.Percent,
                    t.Event > 0 ? string.Format("{0:0,0}", t.Event) : "0",
                    t.RealTotal > 0 ? string.Format("{0:0,0}", t.RealTotal) : "0"
                    );
            });
            var widths = new float[] { 30f, 150f, 150f, 50f, 90f, 90f };
            var header = string.Format("Danh sách chiết khấu");
            var footer = string.Format("Có tất cả {0} đơn chiết khấu", orderDiscounts.Count);

            CUtils.ExportToPdf(dataTable, temp, out path, header, footer, widths);
            return(FileResult(path, fileName));
        }