Example #1
0
        /// <summary>
        /// 搜索送货申请单据的底层方法
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        private IQueryable <CheckApplyListModel> SearchApplyListBase(SearchMyApplyParams p)
        {
            var result = from d in db.DRBills
                         join e in db.DRBillDetails on d.bill_id equals e.bill_id
                         where d.send_date >= p.beginDate &&
                         d.send_date <= p.endDate &&
                         d.account == p.account
                         select new CheckApplyListModel()
            {
                billId          = d.bill_id,
                billType        = d.bill_type,
                billNo          = d.bill_no,
                buyerName       = e.buyer_name,
                buyerNumber     = e.buyer_number,
                buyType         = d.buy_type,
                inStockBillDate = d.in_stock_bill_date,
                inStockBillNo   = d.in_stock_bill_number,
                itemModel       = e.item_model,
                itemName        = e.item_name,
                itemNumber      = e.item_number,
                matOrderNumber  = d.mat_order_number,
                matOrderName    = d.mat_order_name,
                poDate          = e.po_date,
                poEntryId       = e.po_entry_id,
                poNo            = e.po_number,
                poQty           = e.po_qty,
                prNo            = e.pr_number,
                pStatus         = d.p_status,
                sendDate        = d.send_date,
                sendQty         = e.send_qty,
                supplierName    = d.supplier_name,
                tradeTypeName   = d.trade_type_name,
                unitName        = e.unit_name,
                userId          = d.user_id,
                supplierNumber  = d.supplier_number,
                comment         = e.comment
            };

            if (!string.IsNullOrWhiteSpace(p.billNo))
            {
                result = result.Where(r => r.billNo.Contains(p.billNo) || r.supplierName.Contains(p.billNo));
            }
            if (!"所有".Equals(p.pStatus))
            {
                result = result.Where(r => r.pStatus == p.pStatus);
            }
            if (!"所有".Equals(p.billType))
            {
                result = result.Where(r => r.billType == p.billType);
            }
            if (!string.IsNullOrWhiteSpace(p.poNo))
            {
                result = result.Where(r => r.poNo.Contains(p.poNo));
            }
            if (!string.IsNullOrWhiteSpace(p.itemInfo))
            {
                result = result.Where(r => r.itemModel.Contains(p.itemInfo) || r.itemName.Contains(p.itemInfo));
            }
            return(result);
        }
Example #2
0
 /// <summary>
 /// 查看我的送货申请列表,供应商用
 /// </summary>
 /// <param name="p"></param>
 /// <param name="canCheckAll"></param>
 /// <returns></returns>
 public IQueryable <CheckApplyListModel> SearchMyApplyList(SearchMyApplyParams p, bool canCheckAll)
 {
     return(SearchApplyListBase(p)
            .Where(s => (canCheckAll ||
                         s.userId == p.userId ||
                         (s.supplierNumber + "A").Contains(p.userName))
                   )
            .OrderBy(s => s.sendDate));
 }
Example #3
0
        /// <summary>
        /// 查看我的审核申请,订料员和采购员用
        /// </summary>
        /// <param name="p"></param>
        /// <param name="canCheckAll"></param>
        /// <returns></returns>
        public IQueryable <CheckApplyListModel> SearchMyAuditList(SearchMyApplyParams p, bool canCheckAll)
        {
            var groupUserName = new UASv().GetAuditGroupUsers(p.userId).Select(u => u.user_name).ToList();

            return(SearchApplyListBase(p)
                   .Where(s => (canCheckAll ||
                                s.matOrderNumber == p.userName ||
                                s.buyerNumber == p.userName ||
                                groupUserName.Contains(s.matOrderNumber) ||
                                groupUserName.Contains(s.buyerName))
                          )
                   .OrderBy(s => s.sendDate));
        }
        public JsonResult SearchMyAuditingList(FormCollection fc)
        {
            SearchMyApplyParams p = new SearchMyApplyParams();

            MyUtils.SetFieldValueToModel(fc, p);

            p.account  = currentAccount;
            p.userId   = currentUser.userId;
            p.userName = currentUser.userName;

            var result = new DRSv().SearchMyAuditList(p, canCheckAll);

            return(Json(new { total = result.Count(), rows = result.Skip((p.page - 1) * p.rows).Take(p.rows).ToList() }));
        }
Example #5
0
        /// <summary>
        /// 搜索送货申请单据的底层方法
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        private IQueryable <CheckApplyListModel> SearchApplyListBase(SearchMyApplyParams p)
        {
            p.poNo     = p.poNo ?? "";
            p.billNo   = p.billNo ?? "";
            p.itemInfo = p.itemInfo ?? "";

            var result = from d in db.DRBills
                         join e in db.DRBillDetails on d.bill_id equals e.bill_id
                         where d.send_date >= p.beginDate &&
                         d.send_date <= p.endDate &&
                         (d.bill_no.Contains(p.billNo) || d.supplier_name.Contains(p.billNo)) &&
                         (p.pStatus == "所有" || d.p_status == p.pStatus) &&
                         d.account == p.account &&
                         (p.billType == "所有" || d.bill_type == p.billType) &&
                         e.po_number.Contains(p.poNo) &&
                         (e.item_model.Contains(p.itemInfo) || e.item_name.Contains(p.itemInfo))
                         select new CheckApplyListModel()
            {
                billId          = d.bill_id,
                billType        = d.bill_type,
                billNo          = d.bill_no,
                buyerName       = e.buyer_name,
                buyerNumber     = e.buyer_number,
                buyType         = d.buy_type,
                inStockBillDate = d.in_stock_bill_date,
                inStockBillNo   = d.in_stock_bill_number,
                itemModel       = e.item_model,
                itemName        = e.item_name,
                itemNumber      = e.item_number,
                matOrderNumber  = d.mat_order_number,
                matOrderName    = d.mat_order_name,
                poDate          = e.po_date,
                poEntryId       = e.po_entry_id,
                poNo            = e.po_number,
                poQty           = e.po_qty,
                prNo            = e.pr_number,
                pStatus         = d.p_status,
                sendDate        = d.send_date,
                sendQty         = e.send_qty,
                supplierName    = d.supplier_name,
                tradeTypeName   = d.trade_type_name,
                unitName        = e.unit_name,
                userId          = d.user_id,
                supplierNumber  = d.supplier_number,
                comment         = e.comment
            };

            return(result);
        }
        public JsonResult GetMyAppliesData(FormCollection fc)
        {
            SearchMyApplyParams p = new SearchMyApplyParams();

            MyUtils.SetFieldValueToModel(fc, p);

            p.account  = currentAccount;
            p.userId   = currentUser.userId;
            p.userName = currentUser.userName;

            try {
                var result = new DRSv().SearchMyApplyList(p, canCheckAll);
                return(Json(new { total = result.Count(), rows = result.OrderByDescending(r => r.sendDate).Skip((p.page - 1) * p.rows).Take(p.rows).ToList() }));
            }
            catch (Exception ex) {
                return(Json(new SRM(ex)));
            }
        }
Example #7
0
        /// <summary>
        /// 导出申请单excel,包括我的申请和我的审批
        /// </summary>
        /// <param name="fc"></param>
        public void ExporDRData(string queryJson, string pageType)
        {
            SearchMyApplyParams p = JsonConvert.DeserializeObject <SearchMyApplyParams>(queryJson);

            p.account  = currentAccount;
            p.userId   = currentUser.userId;
            p.userName = currentUser.userName;

            var    result   = new List <CheckApplyListModel>();
            string fileName = "";

            if (pageType.Equals("apply"))
            {
                fileName = "我的送货申请_";
                result   = new DRSv().SearchMyApplyList(p, canCheckAll).ToList();
            }
            else if (pageType.Equals("audit"))
            {
                fileName = "审核送货申请_";
                result   = new DRSv().SearchMyAuditList(p, canCheckAll).ToList();
            }

            ushort[] colWidth = new ushort[] { 16, 18, 12, 16, 10, 24,
                                               32, 16, 16, 12, 18, 18, 16,
                                               16, 16, 16, 16, 18, 16, 18, 16 };

            string[] colName = new string[] { "发货日期", "送货单号", "申请状态", "订单编号", "分录号", "物料名称",
                                              "规格型号", "订单数量", "申请数量", "单位", "物料编码", "备注", "订单类型",
                                              "采购方式", "订料员", "采购员", "贸易类型", "PR单号", "采购日期", "入库单号", "入库日期" };

            //設置excel文件名和sheet名
            XlsDocument xls = new XlsDocument();

            xls.FileName = fileName + DateTime.Now.ToString("MMddHHmmss");
            Worksheet sheet = xls.Workbook.Worksheets.Add("申请列表");

            //设置各种样式

            //标题样式
            XF boldXF = xls.NewXF();

            boldXF.HorizontalAlignment = HorizontalAlignments.Centered;
            boldXF.Font.Height         = 12 * 20;
            boldXF.Font.FontName       = "宋体";
            boldXF.Font.Bold           = true;

            //设置列宽
            ColumnInfo col;

            for (ushort i = 0; i < colWidth.Length; i++)
            {
                col = new ColumnInfo(xls, sheet);
                col.ColumnIndexStart = i;
                col.ColumnIndexEnd   = i;
                col.Width            = (ushort)(colWidth[i] * 256);
                sheet.AddColumnInfo(col);
            }

            Cells cells    = sheet.Cells;
            int   rowIndex = 1;
            int   colIndex = 1;

            //设置标题
            foreach (var name in colName)
            {
                cells.Add(rowIndex, colIndex++, name, boldXF);
            }

            foreach (var d in result)
            {
                colIndex = 1;

                //"发货日期", "送货单号", "申请状态", "订单编号", "分录号", "物料名称",
                //"规格型号", "订单数量", "申请数量", "单位", "物料编码","订单类型",
                //"采购方式","订料员","采购员","贸易类型","PR单号","采购日期","入库单号","入库日期"
                cells.Add(++rowIndex, colIndex, ((DateTime)d.sendDate).ToString("yyyy-MM-dd"));
                cells.Add(rowIndex, ++colIndex, d.billNo);
                cells.Add(rowIndex, ++colIndex, d.pStatus);
                cells.Add(rowIndex, ++colIndex, d.poNo);
                cells.Add(rowIndex, ++colIndex, d.poEntryId);
                cells.Add(rowIndex, ++colIndex, d.itemName);

                cells.Add(rowIndex, ++colIndex, d.itemModel);
                cells.Add(rowIndex, ++colIndex, string.Format("{0:0.####}", d.poQty));
                cells.Add(rowIndex, ++colIndex, string.Format("{0:0.####}", d.sendQty));
                cells.Add(rowIndex, ++colIndex, d.unitName);
                cells.Add(rowIndex, ++colIndex, d.itemNumber);
                cells.Add(rowIndex, ++colIndex, d.comment);
                cells.Add(rowIndex, ++colIndex, d.billType);

                cells.Add(rowIndex, ++colIndex, d.buyType);
                cells.Add(rowIndex, ++colIndex, d.matOrderName);
                cells.Add(rowIndex, ++colIndex, d.buyerName);
                cells.Add(rowIndex, ++colIndex, d.tradeTypeName);
                cells.Add(rowIndex, ++colIndex, d.prNo);
                cells.Add(rowIndex, ++colIndex, ((DateTime)d.poDate).ToString("yyyy-MM-dd"));
                cells.Add(rowIndex, ++colIndex, d.inStockBillNo);
                cells.Add(rowIndex, ++colIndex, d.inStockBillDate == null?"":((DateTime)d.inStockBillDate).ToString("yyyy-MM-dd"));
            }

            xls.Send();

            WLog("导出申请单Excel", fileName + ":" + queryJson);
        }