示例#1
0
        private MemoryStream stmPurchase(Api.PurchaseController.queryParam q)
        {
            MemoryStream outputStream = new MemoryStream();

            try
            {
                db0 = getDB0();

                XLWorkbook   excel    = new XLWorkbook();
                IXLWorksheet getSheet = excel.Worksheets.Add("訂單資料維護");

                #region 取得資料
                var items = getPurchaseData(q);
                #endregion


                #region Excel Handle
                makePurchase(items, getSheet);
                //getSheet.Cell(1, 1).Value = "Hello world";
                #endregion

                excel.SaveAs(outputStream);
                outputStream.Position = 0;
                excel.Dispose();
                return(outputStream);
            }
            catch (Exception ex)
            {
                //logger.Error(ex);
                return(null);
            }
        }
示例#2
0
        public FileResult Excel_Purchase(Api.PurchaseController.queryParam q)
        {
            var    outputStream = stmPurchase(q);
            string setFileName  = "訂單資料維護-" + Guid.NewGuid().ToString() + ".xlsx";

            return(File(outputStream, "application/vnd.ms-excel", setFileName));
        }
示例#3
0
        private List <m_Purchase> getPurchaseData(Api.PurchaseController.queryParam q)
        {
            List <m_Purchase> res = new List <m_Purchase>();

            using (var db0 = getDB0())
            {
                #region getdata
                var predicate = PredicateBuilder.True <Purchase>();
                if (q.keyword != null)
                {
                    predicate = predicate.And(x => x.purchase_no.Contains(q.keyword) ||
                                              x.receive_name.Contains(q.keyword));
                }

                if (q.order_date != null)
                {
                    DateTime start = (DateTime)q.order_date;
                    DateTime end   = ((DateTime)q.order_date).AddDays(1);

                    predicate = predicate.And(x => x.order_date >= start & x.order_date < end);
                }

                if (q.pay_date != null)
                {
                    DateTime start = (DateTime)q.pay_date;
                    DateTime end   = ((DateTime)q.pay_date).AddDays(1);

                    predicate = predicate.And(x => x.remit_date >= start & x.remit_date < end);
                }

                if (q.type != null)
                {
                    if (q.type == 1)
                    {//pay_state
                        predicate = predicate.And(x => x.pay_state == q.type_val);
                    }
                    else if (q.type == 2)
                    {//ship_state
                        predicate = predicate.And(x => x.ship_state == q.type_val);
                    }
                }
                res = db0.Purchase.AsExpandable().Where(predicate)
                      .Select(x => new m_Purchase
                {
                    purchase_no     = x.purchase_no,
                    customer_id     = x.customer_id,
                    customer_name   = x.Customer.c_name,
                    pay_type        = x.pay_type,
                    pay_state       = x.pay_state,
                    ship_state      = x.ship_state,
                    order_date      = x.order_date,
                    ship_fee        = x.ship_fee,
                    bank_charges    = x.bank_charges,
                    total           = x.total,
                    receive_name    = x.receive_name,
                    receive_tel     = x.receive_tel,
                    receive_mobile  = x.receive_mobile,
                    receive_zip     = x.receive_zip,
                    receive_address = x.receive_address,
                    receive_memo    = x.receive_memo,
                    Deatil          = x.PurchaseDetail.ToList()
                }).ToList();
                #endregion
            }
            return(res);
        }