Esempio n. 1
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));
        }
Esempio n. 2
0
        public ActionResult OrderExportPDF()
        {
            var path        = "";
            var temp        = "Order.pdf";
            var fileName    = "Danh sách đơn hàng.pdf";
            var searchParam = new SearchParam().BindData(DATA);

            searchParam.Type = Utils.GetInt(DATA, "Type");
            var allStatusParams = Utils.GetInts(DATA, "ListStatus", IsAjax);
            var orders          = OrderRepository.Search(searchParam, null) ?? new List <Order>();
            var listStatus      = Utils.EnumToDictionary <OrderStatus>();
            var viewName        = Utils.GetString(DATA, "ViewName").ToLower();
            var adOrders        = new List <int>();

            if (Equals(viewName, "Payed".ToLower()))
            {
                adOrders = AccountingDeptRepository.UseInstance.GetListByFieldsOrDefault(new List <CondParam> {
                    new CondParam
                    {
                        Field = "Status", Value = (int)AccountingDeptStatus.Confirm, TypeSQL = (int)TypeSQl.Number, CompareType = (int)CompareTypes.Equal
                    }
                }).Select(t => t.IDOrder).ToList();
            }
            else if (Equals("CollectVouchers".ToLower(), viewName))
            {
                adOrders = AccountingDeptRepository.UseInstance.GetListByFieldsOrDefault(new List <CondParam> {
                    new CondParam
                    {
                        Field = "Status", Value = (int)AccountingDeptStatus.Reject, TypeSQL = (int)TypeSQl.Number, CompareType = (int)CompareTypes.Equal
                    }
                }).Select(t => t.IDOrder).ToList();
            }
            var dataTable = new DataTable();

            dataTable.TableName = string.Format("Danh sách đơn hàng");
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "STT",
                Caption    = "Num"
            }
                                  );
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Tên đơn hàng",
                Caption    = "Name"
            }
                                  );
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Thông tin đặt hàng",
                Caption    = "OrderInfo"
            });
            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Người đặt hàng",
                Caption    = "Discount"
            });

            dataTable.Columns.Add(new DataColumn
            {
                ColumnName = "Trạng thái",
                Caption    = "Status"
            });
            var widths = new float[] { 30f, 70f, 150f, 150f, 100f };
            var header = string.Format("Danh sách đơn hàng");
            var footer = string.Format("Có tất cả {0} đơn hàng", orders.Count);
            var i      = 0;

            orders.ForEach(item =>
            {
                i++;
                var poDate       = "";
                var deliveryDate = "";
                if (!Equals(item.PODate.Value, null))
                {
                    poDate = string.Format("{0} {1}", item.PODate.Value.ToString("dd-MM-yyyy"), item.PODate.Value.ToString("HH:mm"));
                }
                if (!Equals(item.DeliveryDate.Value, null))
                {
                    deliveryDate = string.Format("{0} {1}", item.DeliveryDate.Value.ToString("dd-MM-yyyy"), item.DeliveryDate.Value.ToString("HH:mm"));
                }

                dataTable.Rows.Add(
                    i,
                    item.PONo,
                    string.Format("Ngày đặt hàng: {0}", poDate) + Environment.NewLine
                    + string.Format("Ngày giao hàng: {0}", deliveryDate) + Environment.NewLine
                    + string.Format("Địa chỉ giao hàng: {0}", item.Address),
                    string.Format("Tên: {0}", item.Purchaser) + Environment.NewLine
                    + string.Format("SĐT: {0}", item.Tel) + Environment.NewLine
                    + string.Format("Email: {0}", item.Email),
                    Utils.GetDescription <OrderStatus>(item.Status)
                    );
            });

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