Browse Source

Merge remote-tracking branch 'origin/master'

Hu Jie 7 years ago
parent
commit
d5a6a15ff8

+ 83 - 39
src/main/java/com/uas/platform/b2b/controller/SaleApCheckController.java

@@ -70,7 +70,7 @@ public class SaleApCheckController {
 	/**
 	 * 打印权限判断
 	 *
-	 * @return
+	 * @return ModelMap
 	 */
 	@RequestMapping(value = "/printCount/permission", method = RequestMethod.POST)
 	public ModelMap printPermission() {
@@ -80,32 +80,35 @@ public class SaleApCheckController {
 	/**
 	 * 打印对账单,增加打印次数
 	 * 
-	 * @param id
-	 * @return
+	 * @param id 对账单id
+	 * @return ResponseEntity
 	 */
 	@RequestMapping(value = "/printCount/{id}", method = RequestMethod.POST)
 	public ResponseEntity<String> printCount(@PathVariable("id") Long id) {
 		purchaseApCheckService.print(id);
-		logger.log("应对账单", "打印应付对账单", id.toString());
-		return new ResponseEntity<String>(HttpStatus.OK);
+		logger.log("应对账单", "打印应付对账单", id.toString());
+		return new ResponseEntity<>(HttpStatus.OK);
 	}
 
 	/**
 	 * 作废应收对账单
-	 * 
+     *
+	 * @param id 对账单id
+     * @return ModelMap
 	 */
 	@RequestMapping("/operation/cancel")
-	public ModelMap cancelApcheck(Long id) {
+	public ModelMap cancelApCheck(Long id) {
 		boolean result = purchaseApCheckService.cancelApcheck(id);
+		logger.log("应收对账单", "作废应收对账单", result ? "成功" : "失败", "", id);
 		ModelMap map = new ModelMap();
 		map.put("result", result);
 		return map;
 	}
 
 	/**
-	 * 得到所有的供应商信息便于筛选
+	 * 得到所有的客户信息便于筛选
 	 * 
-	 * @return
+	 * @return Set<Object> Object 客户信息
 	 */
 	@RequestMapping(value = "/getAllCustomers", method = RequestMethod.GET)
 	public Set<Object> getAllApChecksCustomers() {
@@ -150,7 +153,8 @@ public class SaleApCheckController {
 				}
 			}
 		}
-		return set;
+        logger.log("应收对账单", "获取客户信息", "获取所有符合条件的客户");
+        return set;
 	}
 
 	/**
@@ -158,7 +162,7 @@ public class SaleApCheckController {
 	 * 
 	 * @param fromDate 开始时间
 	 * @param endDate 截止时间
-	 * @return
+	 * @return List<ErpProdIODetail>
 	 */
 	@RequestMapping(value = "/getAllByKeywords", method = RequestMethod.GET)
 	public List<ErpProdIODetail> getAllApchecksByDate(Long fromDate, Long endDate, ApcheckKeyWord searchKeyWord) {
@@ -177,8 +181,12 @@ public class SaleApCheckController {
 		}
 		return erpProdIODetailService.findXlsApChecks(distributes, searchKeyWord, fromDate, endDate);
 	}
+
 	/**
 	 * 保存生成的应收对账单主记录
+     *
+     * @param json 前台对账json
+     * @return ModelMap 封装成功信息以及异常信息
 	 */
 	@RequestMapping(value = "/operation/save", method = RequestMethod.POST)
 	public ModelMap saveApCheck(@RequestBody String json) {
@@ -211,19 +219,24 @@ public class SaleApCheckController {
 
 	/**
 	 * 生成应收对账单的同时更新明细行来源表中,物料已转数
-	 * 
+     *
+	 * @param json 对账数据
 	 */
 	@RequestMapping(value = "/update", method = RequestMethod.POST)
 	public void updateYCheckQty(@RequestBody String json) {
 		List<HashMap<String, Object>> list = FlexJsonUtils.fromJsonArray(json, HashMap.class);
 		purchaseApCheckService.updateYCheckQty(list);
-	}
+        logger.log("应收对账单", "生成应收对账单的同时更新明细行来源表中,物料已转数");
+    }
 
 	/**
 	 * 获得应收对账单,对应id
 	 * 
-	 * @param id
-	 * @return
+	 * @param id 对账单id
+	 * @return  PurchaseApCheck
+     * <pre>
+     *     @see PurchaseApCheck
+     * </pre>
 	 */
 	@RequestMapping(value = "/{id}/info", method = RequestMethod.GET)
 	public PurchaseApCheck getCreatedPurchaseApCheckById(@PathVariable("id") Long id) {
@@ -233,28 +246,33 @@ public class SaleApCheckController {
 
 	/**
 	 * 删除最新生成未提交的应收对账单
+     * @param id 对账单ID
 	 */
 	@RequestMapping(value = "/operation/deleteApCheck", method = RequestMethod.POST)
 	public void deleteApCheck(Long id) {
 		purchaseApCheckService.deleteApCheck(id);
-	}
+        logger.log("应收对账单", "删除最新生成未提交的应收对账单", null, null, id);
+    }
 
 	/**
 	 * 提交生成的应收对账单
+     * @param id 对账单id
+     * @return ModelMap result true
 	 */
 	@RequestMapping(value = "/operation/updateStatus", method = RequestMethod.POST)
 	public ModelMap updateApCheckStatus(Long id) {
 		ModelMap map = new ModelMap();
 		map.put("result", purchaseApCheckService.updateApCheckStatus(id));
-		return map;
+        logger.log("应收对账单", "提交生成的应收对账单", null, null, id);
+        return map;
 	}
 
 	/**
 	 * 作为卖家,获取应收对账单(全部)
 	 * 
-	 * @param params
-	 * @param searchFilter
-	 * @return
+	 * @param params 分页参数
+	 * @param searchFilter 搜索过滤条件
+	 * @return SPage<PurchaseApCheck>
 	 */
 	@RequestMapping(value = "/info/search", method = RequestMethod.GET)
 	public SPage<PurchaseApCheck> getPurchaseApChecks(PageParams params, String searchFilter) {
@@ -278,6 +296,10 @@ public class SaleApCheckController {
 
 	/**
 	 * 作为卖家,获取应收对账单(未对账)
+     *
+     * @param params 分页参数
+     * @param searchFilter 搜索过滤条件
+     * @return SPage<PurchaseApCheck>
 	 */
 	@RequestMapping(value = "/info/search", params = RequestState.TODO, method = RequestMethod.GET)
 	public SPage<PurchaseApCheck> getTodoApChecks(PageParams params, String searchFilter) {
@@ -303,6 +325,10 @@ public class SaleApCheckController {
 
     /**
 	 * 作为卖家,获取应收对账单(已确认)
+     *
+     * @param params 分页参数
+     * @param searchFilter 搜索过滤条件
+     * @return SPage<PurchaseApCheck>
 	 */
 	@RequestMapping(value = "/info/search", params = RequestState.DONE, method = RequestMethod.GET)
 	public SPage<PurchaseApCheck> getDoneApChecks(PageParams params, String searchFilter) {
@@ -328,6 +354,10 @@ public class SaleApCheckController {
 
 	/**
 	 * 作为卖家,获取应收对账单(不同意)
+     *
+     * @param params 分页参数
+     * @param searchFilter 搜索过滤条件
+     * @return SPage<PurchaseApCheck>
 	 */
 	@RequestMapping(value = "/info/search", params = RequestState.END, method = RequestMethod.GET)
 	public SPage<PurchaseApCheck> getEndApChecks(PageParams params, String searchFilter) {
@@ -363,7 +393,10 @@ public class SaleApCheckController {
      *
      * @param params 分页参数
      * @param filter 过滤条件
-     * @return
+     * @return pageParams
+     * <pre>
+     *     @see com.uas.search.b2b.model.PageParams
+     * </pre>
      */
     private com.uas.search.b2b.model.PageParams distribute(PageParams params, String filter) {
         com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, filter);
@@ -392,8 +425,8 @@ public class SaleApCheckController {
 	/**
 	 * 导出 - 全部
 	 * 
-	 * @param searchFilter
-	 * @return
+	 * @param searchFilter 过滤条件
+	 * @return ModelAndView
 	 */
 	@RequestMapping(value = "/xls/list", method = RequestMethod.GET)
 	public ModelAndView exportApCheck(String searchFilter) {
@@ -412,12 +445,11 @@ public class SaleApCheckController {
 	/**
 	 * 导出 - 已确认
 	 * 
-	 * @param searchFilter
-	 * @return
+	 * @param searchFilter 过滤条件
+	 * @return ModelAndView
 	 */
 	@RequestMapping(value = "/xls/list", params = RequestState.DONE, method = RequestMethod.GET)
 	public ModelAndView exportApCheckDone(String searchFilter) {
-		SearchFilter filter = FlexJsonUtils.fromJson(searchFilter, SearchFilter.class);
 		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
         PageParams params = new PageParams(pageInfo);
 		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
@@ -433,8 +465,8 @@ public class SaleApCheckController {
 	/**
 	 * 导出 - 未对账
 	 * 
-	 * @param searchFilter
-	 * @return
+	 * @param searchFilter 过滤条件
+	 * @return ModelAndView
 	 */
 	@RequestMapping(value = "/xls/list", params = RequestState.TODO, method = RequestMethod.GET)
 	public ModelAndView exportApCheckTodo(String searchFilter) {
@@ -453,8 +485,8 @@ public class SaleApCheckController {
 	/**
 	 * 导出 - 已做废
 	 * 
-	 * @param searchFilter
-	 * @return
+	 * @param searchFilter 过滤条件
+	 * @return ModelAndView
 	 */
 	@RequestMapping(value = "/xls/list", params = RequestState.END, method = RequestMethod.GET)
 	public ModelAndView exportApChecks(String searchFilter) {
@@ -473,7 +505,7 @@ public class SaleApCheckController {
 	/**
 	 * 导出权限判断
 	 *
-	 * @return
+	 * @return ModelMap success true : 有导出权限; 没有导出权限会被拦截
 	 */
 	@RequestMapping(value = "/xls/permission", method = RequestMethod.GET)
 	public ModelMap exportPermission() {
@@ -483,10 +515,11 @@ public class SaleApCheckController {
 	/**
 	 * 全部导出
 	 * 
-	 * @param keyword
-	 * @param fromDate
-	 * @param endDate
-	 * @return
+	 * @param keyword 关键字
+     *                @see    ApcheckKeyWord
+	 * @param fromDate 开始日期
+	 * @param endDate 截止日期
+	 * @return ModelAndView
 	 */
 	@RequestMapping(value = "/xls", method = RequestMethod.GET)
 	public ModelAndView export(ApcheckKeyWord keyword, Long fromDate, Long endDate) {
@@ -494,7 +527,7 @@ public class SaleApCheckController {
 		// 判断当前用户是否被客户分配
 		if (!SystemSession.getUser().isSys()) {
 			List<Vendor> vendors = userService.findChooseVendor(SystemSession.getUser().getUserUU());
-			distributes = new ArrayList<Long>();
+			distributes = new ArrayList<>();
 			if (!CollectionUtils.isEmpty(vendors)) {
 				for (Vendor v : vendors) {
 					distributes.add(v.getMyEnUU());
@@ -514,16 +547,20 @@ public class SaleApCheckController {
 
 	/**
 	 * 设置单据已读
+     *
 	 * @author wangmh
 	 */
 	@RequestMapping(value = "/setRead", method = RequestMethod.POST)
 	public void setReadByOrder(@RequestBody Long... sourceId) {
-		purchaseApCheckService.setReadByOrder("purc", sourceId);
+        logger.log("消息红点", "设置单据已读", "设置对账单已读: " + sourceId);
+        purchaseApCheckService.setReadByOrder("purc", sourceId);
 	}
 
 	/**
 	 * 获得未阅读单据id
+     *
 	 * @author wangmh
+     * @return ModelMap
 	 */
 	@RequestMapping(value = "/getUnreadIds", method = RequestMethod.GET)
 	public ModelMap getUnreadIds() {
@@ -534,7 +571,7 @@ public class SaleApCheckController {
 	/**
 	 * 统计未阅读单据各个状态数量
 	 *
-	 * @return
+	 * @return ModelMap
 	 * @author wangmh
 	 */
 	@RequestMapping(value = "/unread", method = RequestMethod.GET, headers = "Accept=application/json")
@@ -563,8 +600,15 @@ public class SaleApCheckController {
 		return modelMap;
 	}
 
+    /**
+     * 通过id获取已开票数
+     *
+     * @param id id
+     * @return Double
+     */
 	@RequestMapping(value = "/getBilled", method = RequestMethod.GET)
 	public Double getBilled(Long id) {
-		return purchaseApCheckService.getBilledByItemId(id);
+        logger.log("应付发票", "通过id获取已开票数", "", "", id);
+        return purchaseApCheckService.getBilledByItemId(id);
 	}
 }

+ 2 - 2
src/main/java/com/uas/platform/b2b/dao/PurchaseApCheckItemDao.java

@@ -24,8 +24,8 @@ public interface PurchaseApCheckItemDao
 
 	/**
 	 * 通过id获取已开票数
-	 * @param id
-	 * @return
+	 * @param id id
+	 * @return Double
 	 */
 	@Query("select p.billed from PurchaseApCheckItem p where p.id= :id")
 	Double getBilledById(@Param("id") Long id);

+ 5 - 3
src/main/java/com/uas/platform/b2b/listener/GlobalExceptionHandler.java

@@ -11,7 +11,7 @@ import com.uas.platform.b2b.temporary.model.ExceptionMsg;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.util.AgentUtils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
-import org.apache.http.protocol.HTTP;
+import org.apache.http.Consts;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
@@ -32,7 +32,9 @@ import java.util.List;
 /**
  * 全局异常监听
  *
- * Created by hejq on 2018-06-20.
+ *
+ * @author hejq
+ * @date 2018-06-20
  */
 @ControllerAdvice
 @Component
@@ -93,7 +95,7 @@ public class GlobalExceptionHandler {
         String errMsg = e.getCause() == null ? "" : e.getCause().getMessage();
         ErrorLog log = logDao.save(new ErrorLog(JSON.toJSONString(msgs), e.toString(), url, errMsg));
         if (!StringUtils.isEmpty(log.getId())) {
-            detailDao.save(new ErrorLogDetail(log.getId(), AgentUtils.getIp(request), needRead, StringUtils.isEmpty(data) ? "" : URLDecoder.decode(data, HTTP.UTF_8), access));
+            detailDao.save(new ErrorLogDetail(log.getId(), AgentUtils.getIp(request), needRead, StringUtils.isEmpty(data) ? "" : URLDecoder.decode(data, Consts.UTF_8.toString()), access));
         }
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Type", "application/text; charset=utf-8");

+ 6 - 13
src/main/java/com/uas/platform/b2b/model/PurchaseApCheck.java

@@ -1,26 +1,19 @@
 package com.uas.platform.b2b.model;
 
+import javax.persistence.*;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.OrderBy;
-import javax.persistence.SequenceGenerator;
-import javax.persistence.Table;
-
 /**
  * 买家应付(卖家应收)对账单
+ * @author hejq
  */
 @Entity
-@Table(name = "purc$apcheck")
+@Table(name = "purc$apcheck", indexes = {
+		@Index(name = "purc$apcheck_custuu_IDX", columnList = "pa_custuu"),
+        @Index(name = "purc$apcheck_apdate_IDX", columnList = "pa_apdate")
+})
 public class PurchaseApCheck implements Serializable {
 
 	/**

+ 4 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseApCheckItem.java

@@ -12,8 +12,11 @@ import java.util.Set;
 
 /**
  * 买家应付(卖家应收)对账单明细
+ * @author hejq
  */
-@Table(name = "purc$apcheckitem")
+@Table(name = "purc$apcheckitem", indexes = {
+		@Index(name = "purc$apcheckitem_sourcetable_IDX", columnList = "pai_sourcetable")
+})
 @Entity
 public class PurchaseApCheckItem implements Serializable {
 

+ 71 - 0
src/main/java/com/uas/platform/b2b/publicapi/controller/ApCheckApiController.java

@@ -0,0 +1,71 @@
+package com.uas.platform.b2b.publicapi.controller;
+
+import com.uas.platform.b2b.publicapi.service.ApCheckApiService;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 对账单 API
+ *
+ * @author hejq
+ * @date 2018-09-03 14:57
+ */
+@RequestMapping("/public/apcheck")
+@RestController("publicapi.ApcheckApiController")
+public class ApCheckApiController {
+
+    @Autowired
+    private ApCheckApiService apCheckApiService;
+
+    /**
+     * 日志
+     */
+    private static final Logger logger = Logger.getLogger(ApCheckApiController.class);
+
+    /**
+     * 查询个人对账金额
+     *
+     * @param userUU 用户UU(采购方)
+     * @param enUU 企业UU (采购方)
+     * @param startTime 开始时间
+     * @param endTime 截止时间
+     * @return ModelMap
+     *  <pre>
+     *      count: 对账金额
+     *  </pre>
+     */
+    @RequestMapping(value = "/user", method = RequestMethod.GET)
+    public ModelMap getUserApCheckAmount(@RequestParam(value = "useruu") Long userUU,
+                                          @RequestParam(value = "enuu", required = false) Long enUU,
+                                          @RequestParam(value = "starttime") Long startTime,
+                                          @RequestParam(value = "endtime") Long endTime) {
+        Double amount = apCheckApiService.getUserApCheckAmount(userUU, enUU, startTime, endTime);
+        logger.info("查询个人对账金额: " + userUU + ", " + enUU + ", " + startTime + ", " + endTime + ", amount: " + amount);
+        return new ModelMap("count", amount);
+    }
+
+    /**
+     * 查询企业对账金额统计
+     *
+     * @param enUU 企业UU (采购方)
+     * @param startTime 开始时间
+     * @param endTime 截止时间
+     * @return ModelMap
+     *  <pre>
+     *      count: 对账金额
+     *  </pre>
+     */
+    @RequestMapping(value = "/enterprise", method = RequestMethod.GET)
+    public ModelMap getEnterpriseApCheckAmount(@RequestParam(value = "enuu") Long enUU,
+                                                @RequestParam(value = "starttime") Long startTime,
+                                                @RequestParam(value = "endtime") Long endTime) {
+        Double amount = apCheckApiService.getEnterpriseApCheckAmount(enUU, startTime, endTime);
+        logger.info("查询企业对账金额: " + enUU + ", " + startTime + ", " + endTime + ", amount: " + amount);
+        return new ModelMap("count", amount);
+    }
+}

+ 20 - 0
src/main/java/com/uas/platform/b2b/publicapi/model/UsoftRate.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2b.publicapi.model;
+
+/**
+ * 优软定义的汇率
+ *
+ * @author hejq
+ * @date 2018-09-03 15:50
+ */
+public class UsoftRate {
+
+    /**
+     * 美元汇率
+     */
+    public static final Double USD_RATE = 6.4;
+
+    /**
+     * 港币汇率
+     */
+    public static final Double HKD_RATE = 0.811;
+}

+ 31 - 0
src/main/java/com/uas/platform/b2b/publicapi/service/ApCheckApiService.java

@@ -0,0 +1,31 @@
+package com.uas.platform.b2b.publicapi.service;
+
+/**
+ * 对账单 API
+ *
+ * @author hejq
+ * @date 2018-09-03 15:06
+ */
+public interface ApCheckApiService {
+
+    /**
+     * 通过传入参数获取个人对账金额
+     *
+     * @param userUU 用户UU(采购方)
+     * @param enUU 企业UU(采购方)
+     * @param startTime 开始时间
+     * @param endTime 截止时间
+     * @return 对账金额
+     */
+    Double getUserApCheckAmount(Long userUU, Long enUU, Long startTime, Long endTime);
+
+    /**
+     * 通过传入参数获取企业对账金额
+     *
+     * @param enUU 企业UU(采购方)
+     * @param startTime 开始时间
+     * @param endTime 截止时间
+     * @return 对账金额
+     */
+    Double getEnterpriseApCheckAmount(Long enUU, Long startTime, Long endTime);
+}

+ 255 - 0
src/main/java/com/uas/platform/b2b/publicapi/service/impl/ApCheckApiServiceImpl.java

@@ -0,0 +1,255 @@
+package com.uas.platform.b2b.publicapi.service.impl;
+
+import com.uas.platform.b2b.dao.CommonDao;
+import com.uas.platform.b2b.publicapi.model.UsoftRate;
+import com.uas.platform.b2b.publicapi.service.ApCheckApiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.Date;
+
+
+/**
+ * 对账单api
+ *
+ * @author hejq
+ * @date 2018-09-03 15:08
+ */
+@Service("publicapi.service.ApCheckApiService")
+public class ApCheckApiServiceImpl implements ApCheckApiService {
+
+    @Autowired
+    private CommonDao commonDao;
+
+
+    /**
+     * 通过传入参数获取对账金额
+     *
+     * @param userUU    用户UU(采购方)
+     * @param enUU      企业UU(采购方)
+     * @param startTime 开始时间
+     * @param endTime   截止时间
+     * @return 对账金额
+     */
+    @Override
+    public Double getUserApCheckAmount(Long userUU, Long enUU, Long startTime, Long endTime) {
+        Date fromDate = new java.sql.Date(startTime);
+        Date endDate = new java.sql.Date(endTime);
+        // 采购验收单
+        Double purchaseAccept = getPurchaseAcceptAmount(userUU, enUU, fromDate, endDate);
+        // 采购退单
+        Double purchaseReturn = getPurchaseReturnAmount(userUU, enUU, fromDate, endDate);
+        // 不良品入库单
+        Double badIn = getBadInAmount(userUU, enUU, fromDate, endDate);
+        // 不良品出库单
+        Double badOut = getBadOutAmount(userUU, enUU, fromDate, endDate);
+        // 委外验收单
+        Double makeAccept = getMakeAcceptAmount(userUU, enUU, fromDate, endDate);
+        // 委外验退单
+        Double makeReturn = getMakeReturnAmount(userUU, enUU, fromDate, endDate);
+        // 总金额
+        Double amount = purchaseAccept + purchaseReturn + badIn + badOut + makeAccept + makeReturn;
+        return amount;
+    }
+
+    /**
+     * 获取委外验退单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 委外验退单对账金额
+     */
+    private Double getMakeReturnAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                "left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                "left join make$returnitem r on c.pai_sourceid = r.mri_id " +
+                "left join make$orders m on r.mri_odid = m.ma_id " +
+                "where c.pai_sourcetable = 'make$returnitem' and m.ma_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                "and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and m.ma_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 获取委外验收单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 委外验收单对账金额
+     */
+    private Double getMakeAcceptAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                "left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                "left join make$acceptitem i on c.pai_sourceid = i.mai_id " +
+                "left join make$orders m on i.mai_odid = m.ma_id " +
+                "where c.pai_sourcetable = 'make$acceptitem' and m.ma_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                "and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and m.ma_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 获取不良品出库单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 不良品出库单对账金额
+     */
+    private Double getBadOutAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                "left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                "left join purc$badoutitem b on c.pai_sourceid = b.poi_id " +
+                "left join purc$orderitems i on b.poi_pdid = i.pd_id " +
+                "left join purc$orders o on i.pd_puid = o.pu_id " +
+                "where c.pai_sourcetable = 'purc$badoutitem' and o.pu_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                "and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and o.pu_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 获取不良品入库单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 不良品入库单对账金额
+     */
+    private Double getBadInAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                "left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                "left join purc$badinitem b on c.pai_sourceid = b.pbi_id " +
+                "left join purc$orderitems i on b.pbi_pdid = i.pd_id " +
+                "left join purc$orders o on i.pd_puid = o.pu_id " +
+                "where c.pai_sourcetable = 'purc$badinitem' and o.pu_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                "and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and o.pu_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 获取采购验退单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 采购验退单对账金额
+     */
+    private Double getPurchaseReturnAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                "left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                "left join purc$returnitem r on c.pai_sourceid = r.pri_id " +
+                "left join purc$orderitems i on r.pri_pdid = i.pd_id " +
+                "left join purc$orders o on i.pd_puid = o.pu_id " +
+                "where c.pai_sourcetable = 'purc$returnitem' and o.pu_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                "and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and o.pu_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 获取采购验收单对账金额
+     *
+     * @param userUU 用户UU
+     * @param enUU 企业UU
+     * @param fromDate 开始时间
+     * @param endDate 截止时间
+     * @return 采购验收单对账金额
+     */
+    private Double getPurchaseAcceptAmount(Long userUU, Long enUU, Date fromDate, Date endDate) {
+        StringBuffer stringBuffer = new StringBuffer("select coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                " select sum(e.pa_checkamount) amount,pa_currency currency from purc$apcheckitem c " +
+                " left join purc$apcheck e on c.pai_paid = e.pa_id " +
+                " left join purc$acceptitem a on c.pai_sourceid = a.pai_id " +
+                " left join purc$orderitems i on a.pai_pdid = i.pd_id " +
+                " left join purc$orders o on i.pd_puid = o.pu_id " +
+                " where c.pai_sourcetable = 'purc$acceptitem' and o.pu_useruu = " + userUU +
+                " and pa_apdate >= '" + fromDate + "' " +
+                " and pa_apdate <= '" + endDate + "' ");
+        if (null != enUU) {
+            stringBuffer.append("and o.pu_enuu = ").append(enUU);
+        }
+        stringBuffer.append(" group by pa_currency) a");
+        return commonDao.queryForObject(stringBuffer.toString(), Double.class);
+    }
+
+    /**
+     * 通过传入参数获取企业对账金额
+     *
+     * @param enUU      企业UU(采购方)
+     * @param startTime 开始时间
+     * @param endTime   截止时间
+     * @return 对账金额
+     */
+    @Override
+    public Double getEnterpriseApCheckAmount(Long enUU, Long startTime, Long endTime) {
+        String sql = "select " +
+                "coalesce(sum(case currency " +
+                "when 'RMB' then a.amount " +
+                "when 'USD' then a.amount * " + UsoftRate.USD_RATE +
+                " when 'HKD' then a.amount * " + UsoftRate.HKD_RATE +
+                " end), 0.00) amount from (" +
+                "select sum(pa_checkamount) amount,pa_currency currency from purc$apcheck " +
+                "where pa_custuu = " + enUU + " and pa_checkstatus = '已确认' and pa_apdate >= '" + new java.sql.Date(startTime) + "' " +
+                "and pa_apdate <= '" + new java.sql.Date(endTime) + "' " +
+                "group by pa_currency) a";
+        return commonDao.queryForObject(sql, Double.class);
+    }
+}

+ 10 - 16
src/main/java/com/uas/platform/b2b/publicapi/service/impl/TurnoverServiceImpl.java

@@ -2,16 +2,20 @@ package com.uas.platform.b2b.publicapi.service.impl;
 
 import com.uas.platform.b2b.dao.CommonDao;
 import com.uas.platform.b2b.publicapi.model.Turnover;
+import com.uas.platform.b2b.publicapi.model.UsoftRate;
 import com.uas.platform.b2b.publicapi.service.TurnoverService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+
 /**
  * ERP查询平台贸易数据接口
  *
- * Created by hejq on 2018-05-31.
+ *
+ * @author hejq
+ * @date 2018-05-31
  */
 @Service
 public class TurnoverServiceImpl implements TurnoverService {
@@ -19,16 +23,6 @@ public class TurnoverServiceImpl implements TurnoverService {
     @Autowired
     private CommonDao commonDao;
 
-    /**
-     * 美元汇率
-     */
-    final Double USD_RATE = 6.4;
-
-    /**
-     * 港币汇率
-     */
-    final Double HKD_RATE = 0.811;
-
     /**
      * 查询年度代采订单交易额
      *
@@ -50,7 +44,7 @@ public class TurnoverServiceImpl implements TurnoverService {
      */
     @Override
     public List<Turnover> findSubstituteByRMB() {
-        String sql = " select round(sum(dei_totalprice*case when  deo_currency='USD' then " + USD_RATE + " when deo_currency='HKD' then " + HKD_RATE + " \n" +
+        String sql = " select round(sum(dei_totalprice*case when  deo_currency='USD' then " + UsoftRate.USD_RATE + " when deo_currency='HKD' then " + UsoftRate.HKD_RATE + " \n" +
                 " when deo_currency='RMB' then 1 end)/10000 ,2) SUM \n" +
                 " from purc$deputyorderitems left join purc$deputyorders on dei_deoid=deo_id \n" +
                 " where date_format(deo_date,'%Y')=date_format(now(), '%Y')  and deo_downloadstatus = '已下载'\n" +
@@ -67,8 +61,8 @@ public class TurnoverServiceImpl implements TurnoverService {
     public List<Turnover> findRMBOrderAmount() {
         String sql = "select round((sum(a.orderAmount)/10000), 2) SUM from (" +
                 "select sum(case o.pu_currency " +
-                "when 'USD' then o.orderAmount * 6.4 " +
-                "when 'HKD' then o.orderAmount * 0.811 " +
+                "when 'USD' then o.orderAmount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then o.orderAmount * " + UsoftRate.HKD_RATE +
                 "else o.orderAmount end) as orderAmount " +
                 "from (select pu_currency,sum(pd_qty * pd_price) orderAmount from purc$orders " +
                 "left join purc$orderitems on pu_id = pd_puid " +
@@ -76,8 +70,8 @@ public class TurnoverServiceImpl implements TurnoverService {
                 "        group by pu_currency) o " +
                 "UNION " +
                 "select sum(case o.deo_currency " +
-                "when 'USD' then o.orderAmount * 6.4 " +
-                "when 'HKD' then o.orderAmount * 0.811 " +
+                "when 'USD' then o.orderAmount * " + UsoftRate.USD_RATE +
+                "when 'HKD' then o.orderAmount * " + UsoftRate.HKD_RATE +
                 "else o.orderAmount end)  as orderAmount " +
                 "from (" +
                 "select deo_currency, sum(dei_totalprice) orderAmount " +

+ 14 - 15
src/main/java/com/uas/platform/b2b/service/impl/ErpProdIODetailServiceImpl.java

@@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -105,10 +104,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and mr_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(mr_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(mr_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(mr_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(mr_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> makeReturns = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return makeReturns;
@@ -158,10 +157,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and make$accept.ma_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(make$accept.ma_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(make$accept.ma_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(make$accept.ma_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(make$accept.ma_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> makeAccepts = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return makeAccepts;
@@ -211,10 +210,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and po_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(po_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(po_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(po_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(po_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> badOuts = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return badOuts;
@@ -264,10 +263,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and pb_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(pb_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pb_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(pb_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pb_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> badIns = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return badIns;
@@ -317,10 +316,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and pr_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(pr_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pr_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(pr_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pr_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> saleReturns = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return saleReturns;
@@ -370,10 +369,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and pa_enuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(pa_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pa_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(pa_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(pa_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> saleAccepts = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return saleAccepts;
@@ -418,10 +417,10 @@ public class ErpProdIODetailServiceImpl implements ErpProdIODetailService {
             sql.append("and aa_custuu in (").append(distributes).append(") ");
         }
         if (fromDate != null) {
-            sql.append("and DAYFORMDATE(aa_date) >= '").append(new java.sql.Date(new Date(fromDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(aa_date) >= '").append(new java.sql.Date(fromDate)).append("' ");
         }
         if (endDate != null) {
-            sql.append("and DAYFORMDATE(aa_date) <= '").append(new java.sql.Date(new Date(endDate).getTime())).append("' ");
+            sql.append("and DAYFORMDATE(aa_date) <= '").append(new java.sql.Date(endDate)).append("' ");
         }
         List<ErpProdIODetail> adjustments = commonDao.query(sql.toString(), ErpProdIODetail.class);
         return adjustments;

+ 2 - 2
src/main/webapp/WEB-INF/views/normal/index.html

@@ -34,11 +34,11 @@
 					<li ng-if="!userInfo"><a ng-click="registerModal()" href="javascript:void(0)">注册</a></li>
 					<li ng-if="userInfo" class="dropdown">
 						<a class="dropdown-toggle" href="javascript:void(0)">欢迎您,
-							<span ng-bind="userInfo.userName"></span>
+							<span ng-bind="userInfo.userName" ui-sref="approvalflow.user"></span>
 							<span> | </span>
 
 							<span style="float:right;margin-left: 15px" href="javascript:void(0)" ng-click="logout()" class="logout">[退出]</span>
-							<span style="float:right;margin-left: 8px;max-width: 190px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;" ng-if="userInfo.enterprise" ng-bind="userInfo.enterprise.enName" ></span>
+							<span style="float:right;margin-left: 8px;max-width: 190px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;" ng-if="userInfo.enterprise" ng-bind="userInfo.enterprise.enName" ui-sref="approvalflow.enterprise"></span>
 							<span style="float:right;margin-left: 8px;max-width: 190px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;" ng-if="!userInfo.enterprise" ng-bind="'个人账户'" ></span>
 						</a>
 						<div class="dropdown-menu">

+ 4 - 544
src/main/webapp/resources/js/index/app.js

@@ -9169,538 +9169,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         }
     }]);
 
-    //客户航天开票
-    app.controller('PurchaseApBillOutCtrl',['$scope', 'FaApBillOut', 'BaseService', 'ngTableParams', 'toaster','ReportService', 'Symbol', function ($scope, FaApBillOut, BaseService, ngTableParams, toaster, ReportService , Symbol) {
-        BaseService.scrollBackToTop();
-        $scope.dateZoneText = '不限';
-        $scope.condition = {dateZone: 1};
-        $scope.currency = Symbol.currency;//将币别转化为对应的符号
-        $scope.active = 'all';
-
-        /* 时间筛选初始化*/
-        var fromDate = new Date();
-        var toDate = new Date();
-        fromDate.setMonth(fromDate.getMonth() - 1);
-        fromDate.setHours(0,0,0,0);
-        toDate.setHours(23,59,59,999);
-        $scope.condition.dateFrom = fromDate;
-        $scope.condition.dateTo = toDate;
-
-        //打印  开票单
-        $scope.print = function (billOut) {
-            FaApBillOut.printCount({id: billOut.id},function (data) {
-                if(!data.error) {
-                    toaster.pop('success', '提示', '打印成功');
-                    //$scope.tableParams.reload();
-                }else{
-                    toaster.pop('error', '提示', '打印失败');
-                }
-            });
-            //ReportService.print(billOut.custUu, 'PURCBILLOUT', 'where purc$apbillout.pabo_id =' + billOut.id);
-        };
-
-        //状态
-        $scope.setActive = function (state) {
-            if($scope.active != state) {
-                $scope.active = state;
-                if($scope.tableParams.page() == 1)
-                    $scope.tableParams.reload();
-                else
-                    $scope.tableParams.page(1);
-            }
-        };
-        $scope.changeDateZone = function (zone) {
-            $scope.condition.dateZone = zone;
-            $scope.dateZoneText = zone == 1? '最近一个月' : (zone == 3 ? '最近三个月' : (zone == 6 ? '最近六个月' : '自定义'));
-            $scope.condition.$dateZoneOpen = false;
-            getDateCondition(zone, $scope.condition);
-            $scope.tableParams.page(1);
-            $scope.tableParams.reload();
-        };
-
-        //获取全部已确定应收对账单
-        $scope.tableParams = new ngTableParams({
-            page: 1,
-            count: 20,
-            sorting: {
-                recordDate: 'desc'
-            }
-        }, {
-            total: 0,
-            counts: [5, 10, 25, 50],
-            getData: function ($defer, params) {
-                $scope.loading = true;
-                var pageParams = params.url();
-                pageParams.searchFilter = { // 筛选条件
-                    keyword: $scope.keyword,
-                    fromDate: getDateTime($scope.condition.dateFrom),
-                    endDate: getDateTime($scope.condition.dateTo)
-                };
-                FaApBillOut[getState($scope.active )](BaseService.parseParams(pageParams), function (page) {
-                    $scope.loading = false;
-                    if(page) {
-                        params.total(page.totalElement);
-                        $scope.data = $defer.resolve(page.content);
-                        $scope.searchFilterXls = angular.copy(pageParams.searchFilter);//保存当前取值的条件
-                    }
-                }, function (response) {
-                    $scope.loading = false;
-                    toaster.pop('error', '数据加载失败', response.data);
-                });
-            }
-        });
-
-        $scope.openDatePicker = function ($event, item, openParam) {
-            $event.preventDefault();
-            $event.stopPropagation();
-            item[openParam] = !item[openParam];
-            if($scope.condition.dateFrom && $scope.condition.dateTo && !item[openParam]){
-                $scope.tableParams.reload();
-            }
-        };
-
-        // 计算开票数量
-        $scope.getTotalProd = function (billOut) {
-            var total = 0;
-            if(billOut.items) {
-                angular.forEach(billOut.items, function (value) {
-                    total += value.NowQty;
-                });
-            }
-            return total;
-        };
-
-        // 搜索框回车
-        $scope.onSearch = function () {
-            $scope.tableParams.page(1);
-            $scope.tableParams.reload();
-        };
-
-        // 选择查找日期
-        $scope.onDateCondition = function () {
-            $scope.tableParams.page(1);
-            $scope.tableParams.reload();
-        };
-    }]);
-
-    //开票单详情
-    app.controller('PurchaseApBillOutDetailCtrl',['$scope', 'toaster', 'FaApBillOut', 'FaApCheck', '$stateParams', 'BaseService', function ($scope, toaster, FaApBillOut, FaApCheck, $stateParams, BaseService) {
-        BaseService.scrollBackToTop();
-        $scope.haveSelected = true;
-        $scope.data = {};
-        //控制提交和删除按钮的显示
-        $scope.ifShow = true;
-        var loadData = function () {
-            FaApBillOut.get({id:$stateParams.id},function (data) {
-                $scope.data = data;
-                if($scope.data.status){
-
-                }else{
-                    $scope.ifShow = true;
-                }
-            })
-        };
-
-        if($stateParams.id){
-            loadData();
-        }
-
-
-        $scope.haveSource = false;
-        //TODO 提交开票单
-        $scope.invoiceIssued = function (apBillOut) {
-            $scope.loading = true;
-            FaApBillOut.invoiceIssued({id:apBillOut.id},function (data) {
-                $scope.loading = false;
-                if(data.apBillOut) {
-                    $scope.haveSelected = false;
-                    window.location.href = '#/fa/apBillOut';
-                    toaster.pop('success', '提示', '提交成功');
-                } else {
-                    $scope.loading = false;
-                    toaster.pop('error', '提示', data.error);
-                }
-            })
-        }
-
-        //删除开票单(后台同时更新对账单明细表已开票数)
-        $scope.deleteApBillOut = function () {
-            FaApBillOut.deleteApBillOut({id:$stateParams.id},function (data) {
-                window.location.href = '#/fa/apBillOut';
-                toaster.pop('success','提示','删除成功');
-            },function () {
-                toaster.pop('error','提示','删除失败');
-            });
-            $scope.haveSelected = false;
-
-        }
-
-        //TODO 作废开票单
-        $scope.InvoiceCancel = function () {
-            $scope.loading = true;
-            FaApBillOut.InvoiceCancel({id:$stateParams.id},function (data) {
-                $scope.loading = false;
-                if(!data.error) {
-                    toaster.pop('success', '提示', '作废成功');
-                    window.location.href = '#/fa/apBillOut';
-                    $scope.tableParams.reload();
-                }else{
-                    toaster.pop('error', '提示', data.error);
-                }
-            },function (response) {
-                $scope.loading = false;
-                toaster.pop('error', '提示', response.data);
-            });
-
-        }
-
-    }]);
-
-    //航天开票单据列表
-    app.controller('PurchaseApBillOutListCtrl',['$scope', 'FaApCheck', 'FaApBillOut', 'toaster', '$state','$filter', '$modal', function ($scope, FaApCheck, FaApBillOut, toaster, $state, $filter, $modal) {
-        $scope.data = [];// 列表数据
-
-        $scope.condition = {
-            $fromOpened: false
-        }
-
-        $scope.openDatePicker = function ($event, item, openParam) {
-            $event.preventDefault();
-            $event.stopPropagation();
-            item[openParam] = !item[openParam];
-        }
-
-        //查找客户
-        $scope.searchCust = function (suuorname) {
-            var modalInstance = $modal.open({
-                animation: true,
-                templateUrl: 'static/tpl/index/fa/custInfo.html',
-                controller: 'SearchCustInfoCtrl',
-                resolve: {
-                    suuorname: function () {
-                        return suuorname;
-                    }
-                }
-            });
-            modalInstance.result.then(function (suuorname) {
-                $scope.suuorname = suuorname;
-            });
-
-        }
-
-        // 点击筛选根据条件选择数据
-        $scope.suuorname = '';
-        // 默认本月
-        $scope.sdateTo = new Date();
-        $scope.sdateFrom = new Date($scope.sdateTo.getFullYear(), $scope.sdateTo.getMonth(), 1);
-        $scope.vuuorname = '';
-        $scope.factory = '';
-        $scope.prodTitle = '';
-        $scope.prodSpec = '';
-        $scope.condition.uuorname = '';
-        $scope.condition.dateFrom = '';
-        $scope.condition.dateTo = '';
-        $scope.condition.venduuorname = '';
-        $scope.condition.factory = '';
-        $scope.condition.prodTitle = '';
-        $scope.condition.prodSpec = '';
-
-        $scope.searchOrder = function (check) {
-            $scope.data = [];
-            $scope.checkboxes.checked = false;
-            $scope.totalMoney = 0;
-            $scope.condition.uuorname = $scope.suuorname;
-            $scope.condition.factory = $scope.factory;
-            $scope.condition.prodTitle = $scope.prodTitle;
-            $scope.condition.prodSpec = $scope.prodSpec;
-            $scope.condition.dateFrom = ($scope.sdateFrom || 0);
-            $scope.thisdatato = ($scope.sdateTo || 0);
-            if($scope.thisdatato != 0) {
-                $scope.condition.dateTo = (new Date($scope.thisdatato.valueOf()) || 0);
-            } else {
-                $scope.condition.dateTo = ($scope.sdateTo || 0);
-            }
-            $scope.condition.venduuorname = $scope.vuuorname;
-            if($scope.condition.dateFrom != null || $scope.condition.dateTo != null || $scope.keywordXls != null) {
-
-                $scope.fromDate =$scope.condition.dateFrom ?  $scope.condition.dateFrom.getTime() : null;
-                $scope.endDate = $scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null;
-                $scope.keywordXls = angular.copy(($scope.condition.uuorname == null ? "" : $scope.condition.uuorname)
-                    + "|"+ ($scope.condition.venduuorname == null ? "" : $scope.condition.venduuorname)
-                    + "|"+ ($scope.condition.factory == null ? "" : $scope.condition.factory)
-                    + "|"+ ($scope.condition.prodTitle == null ? "" : $scope.condition.prodTitle)
-                    + "|"+ ($scope.condition.prodSpec == null ? "" : $scope.condition.prodSpec));//保存当前取值的关键词
-                $scope.fromDateXls = angular.copy($scope.condition.dateFrom ? $scope.condition.dateFrom.getTime() : null);//保存当前取值的起始日期
-                $scope.endDateXls = angular.copy($scope.condition.dateTo ? $scope.condition.dateTo.getTime() : null);//保存当前取值的截止日期
-                if(!$scope.suuorname) {
-                    toaster.pop('warning','提示', '请先选择客户');
-                    document.getElementById('suuorname').focus();//光标默认在客户
-                } else {
-                    $scope.loading = true;
-                    FaApBillOut.getDoneApCheckByKeywords({fromDate: $scope.fromDate, endDate: $scope.endDate, keyword:$scope.keywordXls}, function(data) {
-                        if(data.length > 0) {
-                            angular.forEach(data, function (checkItem) {
-                                checkItem.$selected = true;
-                                if(checkItem.billed) {
-                                    checkItem.thisBilledQty = checkItem.checkQty - checkItem.billed;
-                                    //$filter('number')(checkItem.thisBilledQty, 2);
-                                } else {
-                                    checkItem.billed = 0;
-                                    checkItem.thisBilledQty = checkItem.checkQty;
-                                }
-
-                                //最大最小开票数
-                                checkItem.maxThisBilledQty = checkItem.thisBilledQty;
-                                checkItem.minThisBilledQty = 0;
-
-                            });
-                            $scope.data = data;
-                            $scope.checkboxes.checked = true;
-                            $scope.getTotalMoney();
-                        } else {
-                            toaster.pop('info', '提示', '当前没有需要对账记录');
-                        }
-                        $scope.loading = false;
-                    }, function (response) {
-                        $scope.loading = false;
-                        toaster.pop('error', '提示', response.data);
-                    });
-                }
-            }
-
-        }
-
-        /**
-         * 点击勾选框,选中要转应收对账单的订单
-         * */
-        $scope.totalMoney = 0;
-        $scope.checkboxes = {
-            checked: false
-        };
-
-        // 点击勾选全部的复选框
-        $scope.checkAll = function () {
-            $scope.totalMoney = 0;
-            $scope.filteredData = $filter('filter')($scope.data, $scope.condition.prodTitle || $scope.condition.uuorname || $scope.condition.venduuorname ||  $scope.condition.prodSpec || $scope.condition.factory);
-            var uuorname = $scope.suuorname;
-            var venduuorname = $scope.venduuorname;
-            var dateFrom = $scope.condition.dateFrom;
-            var dateTo = $scope.condition.dateTo;
-            var prodTitle = $scope.condition.prodTitle;
-            var prodSpec = $scope.condition.prodSpec;
-            var factory = $scope.condition.factory;
-            angular.forEach($scope.filteredData, function (item) {
-                if((item.apCheck.apDate >= dateFrom  || dateFrom == '') && (item.apCheck.apDate < dateTo  || dateTo == '')){
-                    item.$selected = $scope.checkboxes.checked;
-                }
-            });
-            $scope.getTotalMoney();
-        };
-
-        //获取已选单据总金额
-        var total = true;
-        $scope.getTotalMoney = function () {
-            $scope.totalMoney = 0;
-            angular.forEach($scope.data, function (check) {
-                if(check.$selected){
-                    $scope.totalMoney += (check.CheckQty || 0)*(check.orderPrice || 0);
-                }else{
-                    $scope.totalMoney += 0;
-                }
-            });
-
-        }
-
-        // 点击其中一个明细的复选框
-        $scope.checkOne = function (check) {
-            var result = true;
-            angular.forEach($scope.data, function (item) {
-                if(item.$selected != true){
-                    result = false;
-                    return;
-                }
-            });
-            $scope.checkboxes.checked = result;
-        };
-
-        $scope.haveSelected = false;
-
-        //生成开票单
-        $scope.createApBillOut = function () {
-            //保存应收对账单主记录字段
-            $scope.apBillOut = {
-                custUu: '',
-                custName: '',
-                beginDate: '',
-                endDate: '',
-                enUu: '',
-                recordDate: '',
-                checkStatus: '未开票',
-                currency: '',
-                rate: '',
-                //billed:'',
-                //apBillOutItemId:'',
-                items: [],
-                sourceInfos: []
-            };
-            //保存来源单据相关信息
-            //var sourceInfos = [];
-
-
-            //所允许的本次对账最大最小数量
-            //$scope.data.maxThisCheckQty = 0;
-            //$scope.data.minThisCheckQty = 0;
-
-            $scope.sameCust = true;
-            $scope.validQty = true;
-            $scope.loading = true;
-            angular.forEach($scope.data, function (checkItem) {
-                //保存开票单明细行数据
-                $scope.item = {
-                    inoutno: '',
-                    inoutnodetno: '',
-                    orderCode: '',
-                    orderClass: '',
-                    orderDetno: '',
-
-                    price: '',
-                    NowQty: '',
-                    //amount: '',
-                    sourceId:'',
-                    sourceTable:'',
-                    //oldYCheckQty:'',
-                    status: 0,
-                    //receiveCode:'',
-                    //receiveName:'',
-                    prodCode:'',
-                    //prodSpec:'',
-                    taxrate: '',
-                    //sendcode: '',
-                    //whname: '',
-                };
-
-                //开票单明细行来源表信息(新的已开票数)
-                $scope.sourceInfo = {
-                    sourceId: '',
-                    sourceTable: '',
-                    newBilledQty: 0
-                };
-
-                //本次开票新的开票数
-                //$scope.thisBilledQty = 0;
-                if(checkItem.$selected == true) {
-                    $scope.apBillOut.custName = checkItem.apCheck.custName;
-                    $scope.apBillOut.enUu = checkItem.apCheck.enUu;
-
-                    $scope.item.inoutno = checkItem.inoutno;
-                    $scope.item.inoutnodetno = checkItem.inoutnodetno;
-                    $scope.item.orderCode = checkItem.orderCode;
-                    $scope.item.orderClass = checkItem.orderClass;
-                    $scope.item.orderDetno = checkItem.orderDetno;
-
-                    $scope.item.NowQty = checkItem.thisBilledQty;
-                    if (typeof(checkItem.billed) == "undefined") {
-                        checkItem.billed = 0;
-                        $scope.sourceInfo.newBilledQty =checkItem.thisBilledQty;
-
-                    } else {
-                        //TODO 变成了字符串相加?
-                        $scope.sourceInfo.newBilledQty = checkItem.thisBilledQty + checkItem.billed;
-                    }
-
-                    //$scope.apBillOut.apBillOutItemId = check.id;
-                    $scope.apBillOut.recordDate = checkItem.recordDate;
-                    $scope.apBillOut.rate = checkItem.apCheck.rate;
-
-                    //必须是同一家客户才能生成对账单,否则提示错误
-                    if($scope.apBillOut.custUu == ''){
-                        $scope.apBillOut.custUu = checkItem.apCheck.custUu;
-                    }else if($scope.apBillOut.custUu !== checkItem.apCheck.custUu){
-                        $scope.sameCust = false;
-                        $scope.loading = false;
-                        toaster.pop('error', '请选择同一家客户');
-                    }
-
-                    //必须是相同币别才能生成对账单,否则提示错误
-                    if ($scope.apBillOut.currency == '') {
-                        $scope.apBillOut.currency = checkItem.apCheck.currency;
-                    } else if ($scope.apBillOut.currency !== checkItem.apCheck.currency) {
-                        $scope.sameCust = false;
-                        $scope.loading = false;
-                        toaster.pop('error', '请选择同一种币别');
-                    }
-
-                    //本次对账数量必须小于总对账数量
-                    if (checkItem.checkQty > 0) {
-                        if (checkItem.minThisBilledQty >checkItem.thisBilledQty || checkItem.maxThisBilledQty <checkItem.thisBilledQty) {
-                            $scope.validQty = false;
-                            $scope.loading = false;
-                            toaster.pop('error','本次开票数量,填写有误!');
-                        }
-                    } else if (check.qty < 0) {
-                        $scope.data.maxCheckQty = 0;
-                        $scope.data.minCheckQty = check.qty;
-                        if(((-check.qty)-(-check.yCheckQty) < (-check.CheckQty)) || check.CheckQty > 0 || check.CheckQty == 0){
-                            $scope.validQty = false;
-                            $scope.loading = false;
-                            toaster.pop('error','本次开票数量,填写有误!');
-                        }
-                    }
-
-                    //TODO
-                    //获取最小时间作为对账区间的起始时间
-                    if($scope.apBillOut.beginDate == ''){
-                        $scope.apBillOut.beginDate = checkItem.apCheck.apDate;
-                    }else{
-                        $scope.apBillOut.beginDate = $scope.apBillOut.beginDate>checkItem.apCheck.apDate? checkItem.apCheck.apDate : checkItem.apCheck.beginDate;
-                    }
-
-                    //获取最大时间作为对账区间的截止时间
-                    if($scope.apBillOut.endDate == ''){
-                        $scope.apBillOut.endDate = checkItem.apCheck.apDate;
-                    }else{
-                        $scope.apBillOut.endDate = $scope.apBillOut.endDate<checkItem.apCheck.apDate? checkItem.apCheck.apDate : checkItem.apCheck.endDate;
-                    }
-
-                    //应收开票单明细行数据
-                    $scope.item.price = checkItem.price;
-                    $scope.item.sourceId = checkItem.id;
-                    $scope.item.sourceTable = 'PURC$APCHECKITEM';//瑕疵
-                    $scope.item.NowQty = checkItem.thisBilledQty;
-                    $scope.item.prodCode = checkItem.prodCode;
-                    $scope.item.taxrate = checkItem.taxrate;
-
-                    //来源表相关信息
-                    $scope.sourceInfo.sourceId = checkItem.id;
-                    $scope.sourceInfo.sourceTable = 'PURC$APCHECKITEM';//瑕疵
-                    $scope.sourceInfo.newBilledQty = ((checkItem.billed || 0) + checkItem.thisBilledQty);
-
-                    //sourceInfos.push($scope.sourceInfo);
-                    $scope.apBillOut.items.push($scope.item);
-                    $scope.apBillOut.sourceInfos.push($scope.sourceInfo);
-                    $scope.haveSelected = true;
-                }
-            });
-
-            //保存生成的开票单,后台同时更新对账单明细表中已开票数
-            $scope.saveApBillOut = function () {
-                FaApBillOut.saveApBillOut({}, $scope.apBillOut, function (data) {
-                    $scope.loading = false;
-                    toaster.pop('success', '成功', '生成开票单成功');
-                    $state.go('fa.apBillOut_detail', {id: data.id}, {reload:true});
-                }, function (response) {
-                    toaster.pop('error', '生成开票单失败', response.data);
-                });
-            };
-
-            //如果是同一家客户,生成对账单的同时,关闭模态框
-            if($scope.sameCust && $scope.validQty) {
-                $scope.saveApBillOut();
-            }
-
-        }
-    }]);
-
     /**
      * 客户应付发票
      */
@@ -10596,19 +10064,11 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                         }
                     }
 
-                    //获取最小时间作为对账区间的起始时间
-                    if ($scope.apCheck.beginDate == '') {
-                        $scope.apCheck.beginDate = check.pidate;
-                    } else {
-                        $scope.apCheck.beginDate = $scope.apCheck.beginDate > check.pidate ? check.pidate : $scope.apCheck.beginDate;
-                    }
+                    //获取筛选时间的开始时间为对账的开始时间
+                    $scope.apCheck.beginDate = $scope.fromDate;
 
-                    //获取最大时间作为对账区间的截止时间
-                    if ($scope.apCheck.endDate == '') {
-                        $scope.apCheck.endDate = check.pidate;
-                    } else {
-                        $scope.apCheck.endDate = $scope.apCheck.endDate < check.pidate ? check.pidate : $scope.apCheck.endDate;
-                    }
+                    //获取筛选的截止时间为对账的截止时间
+                    $scope.apCheck.endDate = $scope.endDate;
 
                     //应收对账单明细行数据
                     $scope.item.orderCode = check.ordercode;

+ 0 - 284
src/main/webapp/resources/tpl/index/fa/apBillOut.html

@@ -1,284 +0,0 @@
-<style>
-	body{
-		font-family: "Microsoft YaHei", "微软雅黑" !important;
-	}
-	.text-num{
-
-	}
-.append{
-	color: #5078cb;font-size:12px; margin-left: 10px
-}
-.order-table td {
-	padding-top: 10px;
-	margin-bottom: 20px;
-	border-bottom: solid 1px #ccc;
-	border-top: solid 1px #e8e8e8;
-}
-
-.order-table td.first {
-	padding-left: 20px;
-}
-
-.order-table td.last {
-	padding-right: 20px;
-}
-
-.order-table td.info {
-	padding-right: 30px;
-}
-
-.order-table td .static p {
-	display: inline-block;
-	line-height: 30px;
-	padding-top: 5px;
-	padding-left: 15px;
-	padding-bottom: 0px;
-	width: 180px;
-	font-size: 14px;
-	color: #666;
-	border-left: solid 1px #e8e8e8;
-}
-
-.order-table td .main {
-	margin-top: 5px;
-	margin-bottom: 20px;
-	color: #333;
-}
-
-.order-table td .main strong {
-	font-size: 14px;
-}
-
-.order-table td .static p strong {
-	font-size: 14px;
-	font-weight: bold;
-	color: #888;
-}
-
-.order-table td.status {
-	position: relative;
-	border-left: solid 1px #e8e8e8;
-	padding: 10px;
-	vertical-align: top;
-}
-
-.order-table td.status .operate {
-	position: absolute;
-	display: block;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	height: 0px;
-	color: #ffffff;
-	font-size: 14px;
-	font-weight: bold;
-	line-height: 40px;
-	opacity: 0.8;
-	transition: height ease-in-out 0.5s;
-	text-decoration: none;
-}
-
-.order-table td.status .operate-undo {
-	background: #428bca;
-}
-
-.order-table td.status .operate-done {
-	background: #cccccc;
-}
-
-.order-table td.status:hover  .operate {
-	height: 40px;
-}
-
-.unPrinted {
-    color: #56a022;
-}
-.order-table td .main strong{
-	font-weight: normal;
-}
-.order-table td{
-	font-size: 14px;
-}
-</style>
-<link rel="stylesheet" href="static/css/public.css">
-<div class="block" id="public">
- 	<div class="loading in" ng-class="{'in': loading}">
-		<!--<i></i>-->
-		<div class="wrap">
-			<div class="outer"></div>
-		</div>
-	</div>  
-
-	<div class="menu condition block">
-		<div class="row">
-			<div class="col-xs-7">
-				<div class="btn-group btn-group-sm btn-group-justified">
-					<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='all'}" ng-click="setActive('all')">全部</button>
-					</div>
-					<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-								ng-class="{'btn-info':active=='done'}"
-								ng-click="setActive('done')">已开票</button>
-					</div>
-					<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='todo'}"
-							ng-click="setActive('todo')">未开票</button>
-					</div>
-					<div class="btn-group btn-group-sm">
-						<button type="button" class="btn btn-default btn-line"
-							ng-class="{'btn-info':active=='end'}" ng-click="setActive('end')">已作废</button>
-					</div>
-				</div>
-			</div>
-			<div class="col-xs-4 f12" style="text-align: right;height: 40px;line-height: 40px; margin-right: 20px; float: right;">
-				<a class="text-simple append" ui-sref="fa.apBillOutList" title="新增开票单"><big><i class="fa fa-plus-square fa-fw"></i>新增开票单</big></a>&nbsp;&nbsp;&nbsp;
-<!--target="_self"--><a href="sale/apBillOut/allxls?_state={{active}}&searchFilter={{searchFilterXls}}"
-					target="_blank" title="导出Excel表格" class="blue f14"><i class="fa fa-file-text fa-fw"></i>导出</a>
-			</div>
-		</div>
-	</div>
-	<div class="height10">&nbsp;</div>
-	<div class="condition block">
-		<div class="search-bg condition block" style="padding: 10px 15px;">
-			<div class="row">
-				<div id="topSearch" style="float: left">
-					<a ng-click="changeDateZone(1);condition.$open=false" title="最近一个月" ng-class="{'active':condition.dateZone=='1'}">最近一个月</a>
-					<a ng-click="changeDateZone(3);condition.$open=false" title="最近三个月" ng-class="{'active':condition.dateZone=='3'}">最近三个月</a>
-					<a ng-click="changeDateZone(6);condition.$open=false" title="最近六个月" ng-class="{'active':condition.dateZone=='6'}">最近六个月</a>
-					<a ng-click="condition.$open=!condition.$open;changeDateZone(-1)" title="自定义" ng-class="{'active':condition.dateZone=='-1'}" >自定义</a>
-				</div>
-				<div class="col-xs-6" style="float: right;">
-					<div class="search">
-						<div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick"
-							 on-toggle="searchAdvance=open">
-							<input type="search" class="form-control input-sm" ng-model="keyword"
-								   ng-search="onSearch()" placeholder="输入单据编号、客户名称、物料名称搜索" style="width: 100%"/>
-							<a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
-						</div>
-					</div>
-				</div>
-			</div>
-			<div class="more-list more" ng-class="{'open': condition.$open}">
-				<form class="form-inline">
-					<div class="form-group ">
-						<label>日期:</label>
-						<div class="btn-group btn-menu" dropdown is-open="condition.$dateZoneOpen">
-							<ul class="dropdown-menu">
-								<li><a ng-click="changeDateZone(1)">一个月内</a></li>
-								<li><a ng-click="changeDateZone(6)">半年内</a></li>
-								<li><a ng-click="changeDateZone()">半年前</a></li>
-							</ul>
-						</div>
-						<div class="form-group input-group input-group-xs input-trigger">
-							<input type="text" ng-model="condition.dateFrom"
-								   class="form-control" placeholder="从"
-								   datepicker-popup="yyyy-MM-dd" is-open="condition.$fromOpened"
-								   ng-required="true" max-date = "condition.dateTo"
-								   current-text="今天" clear-text="清除" close-text="关闭"
-								   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-								   ng-focus="openDatePicker($event, condition, '$fromOpened')">
-							<span class="input-group-btn">
-							<button type="button" class="btn btn-default"
-									ng-click="openDatePicker($event, condition, '$fromOpened')">
-								<i class="fa fa-calendar"></i>
-							</button>
-						</span>
-						</div>
-						<div class="form-group input-group input-group-xs input-trigger">
-							<input type="text" ng-model="condition.dateTo"
-								   class="form-control" placeholder="到"
-								   datepicker-popup="yyyy-MM-dd" is-open="condition.$toOpened"
-								   ng-required="true" min-date = "condition.dateFrom"
-								   current-text="今天" clear-text="清除" close-text="关闭"
-								   datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-								   ng-focus="openDatePicker($event, condition, '$toOpened')">
-							<span class="input-group-btn">
-							<button type="button" class="btn btn-default"
-									ng-click="openDatePicker($event, condition, '$toOpened')">
-								<i class="fa fa-calendar"></i>
-							</button>
-						</span>
-						</div>
-					</div>
-				</form>
-			</div>
-		</div>
-	</div>
-	<div ng-if="active=='all' && tableParams.total() == 0" class="row">
-		<div class="col-xs-12" style="text-align: center;">
-			<h3 class="text-simple"><i class="fa fa-spinner"></i> &nbsp;您还未生成开票单,请立即新增开票</h3>
-		</div>
-		<div class="col-xs-12" style="margin-top:15px; text-align: center;">
-			<a class="text-simple append" ui-sref="fa.apBillOutList"><big><i class="fa fa-plus-square fa-fw"></i> 新增开票单</big></a>
-		</div>
-	</div>
-	<table class="order-table block" ng-table="tableParams">
-		<tbody ng-repeat="billOut in $data">
-			<tr>
-				<td class="first info" width="700px">
-					<div class="">
-						<span>单据编号:</span>
-						<span class="text-num"><a ui-sref="fa.apBillOut_detail({id:billOut.id})" title="点击查看详情">{{::billOut.code}}</a></span>
-						<span class="pull-right text-num" title="录单时间">{{::billOut.recordDate | date:'yyyy年MM月dd日 HH:mm'}} <i class="fa fa-clock-o"></i></span>
-					</div>
-					<div class="main">
-						<strong><i class="fa fa-star" ng-class="{'text-default':billOut.status==201}"></i> {{::billOut.custName}}</strong>
-						<!--<span class="">
-							  开票期间:<span class="f14 text-num">{{::billOut.beginDate | date:'yyyy/MM/dd'}} - {{::billOut.endDate | date:'yyyy/MM/dd'}}</span>
-						</span>-->
-					</div>
-					<div class="static">
-						<p>
-							<strong class="text-num">{{::billOut.amount | number : 2}}</strong> <i class="fa fa-cubes"></i><br>
-							总开票金额
-						</p>
-						<!--<p>
-							<span class="text-number">{{getTotalProd(billOut) | number}}</span><br>
-							总数量
-						</p>-->
-						<p>
-							<strong class="text-num">{{::billOut.items.length}}</strong> 条<br>
-							明细条目
-						</p>
-						<!--<p>
-							<strong class="text-num">{{::billOut.amount | number : 2}}</strong> <i class="fa fa-cubes"></i><br>
-							已开票金额
-						</p>-->
-					</div>
-				</td>
-				<td class="status">
-					<div class="">开票结果
-						<a ng-if="billOut.checkStatus == '已开票'" ng-click="print(billOut)" class="pull-right" title="打印{{billOut.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !billOut.print, 'text-muted': billOut.print}"><i
-						class="fa fa-print fa-lg"></i>&nbsp;打印</a> 
-					</div>
-					<div ng-if="billOut.checkStatus == '未开票'" class="text-center text-muted f14"><br>未开票</div>
-					<div></div>
-					<div ng-if="billOut.checkStatus == '已开票'" class="text-center text-muted f14">
-						<br> <i class="fa fa-check-square-o"></i> 已开票
-					</div>
-					<div ng-if="billOut.checkStatus == '开票中'" class="text-center text-muted f14">
-						<br> <i class="fa fa-check-square-o"></i> 开票中
-					</div>
-					<div ng-if="billOut.checkStatus == '部分开票'" class="text-center text-muted f14">
-						<br> <i class="fa fa-check-square-o"></i> 部分开票
-					</div>
-					<div ng-if="billOut.checkStatus == '已作废'" class="text-center text-muted f14">
-						<br> <i class="fa fa-check-square-o"></i> 已作废
-					</div>
-					<div ng-hide="billOut.status" class="block">
-						 <span class="text-trans error">未上传</span>
-					</div>
-					<div ng-show="billOut.status" class="block">
-						 <span class="text-trans success">已上传</span>
-					</div>
-					<!-- <a ui-sref="fa.apCheck_detail({id:check.id})" class="operate operate-undo text-center" 
-						 target="_blank">查看详情</a>	 -->		 
-				</td>
-			</tr>
-			<tr></tr>
-		</tbody>
-	</table>
-</div>

+ 0 - 287
src/main/webapp/resources/tpl/index/fa/apBillOutList.html

@@ -1,287 +0,0 @@
-<style>
-.add-apCheckList {
-	background: #fff
-}
-
-.add-apCheckList input[type="checkbox"] {
-	/*width: 16px;
-	height: 16px*/
-}
-
-.add-apCheckList .table-wrap {
-	overflow: hidden
-}
-
-.add-apCheckList .table-header-wrap {
-	background: #f9f9f9;
-	overflow-x: hidden;
-	overflow-y: scroll;
-}
-
-.add-apCheckList .table-header-wrap table,.add-apCheckList .table-body-wrap table
-	{
-	width: 100%;
-	table-layout: fixed;
-	border-collapse: collapse;
-	border-spacing: 0;
-	margin-bottom: 0
-}
-
-.add-apCheckList .table-header-wrap th {
-	text-align: center;
-}
-
-.add-apCheckList .table-body-wrap {
-	max-height: 600px;
-	overflow-x: auto;
-	overflow-y: scroll;
-}
-
-.add-apCheckList td {
-	word-break: break-all;
-	text-align: center;
-}
-
-.add-apCheckList tbody {
-	overflow: auto;
-}
-
-#order-detail-list .input-sm {
-	border: #ccc 1px solid;
-}
-
-.has-feedback input[type="search"] {
-	padding-right: 0 !important;
-}
-.table>tbody>tr>td{
-	vertical-align: middle;
-}
-.form-horizontal .form-group-sm .control-label{
-	font-size: 14px;
-}
-.form-group .form-control{
-	font-size: 14px;
-}
-</style>
-
-<div>
-	<div class="add-apCheckList">
-		<div class="pub-com_head">
-			<span>新增开票单</span>
-			<div class="p-right"></div>
-		</div>
-		<form class="form-horizontal"
-			style="padding-top: 10px; padding-bottom: 20px;">
-			<div class="loading" ng-class="{'in': loading}">
-				<!--<i></i>-->
-				<div class="wrap">
-					<div class="outer"></div>
-				</div>
-			</div>
-			<div class="form-group form-group-sm form-group-inline">
-				<label class="col-sm-2 control-label">客&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;户:</label>
-				<div class="col-sm-4">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="text" class="form-control input-sm" id="suuorname"
-							ng-model="suuorname" placeholder="选择对账客户"
-							ng-click="searchCust(suuorname)" autofocus /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-				<label class="col-sm-2 control-label">单据日期:</label>
-				<div class="col-sm-2" style="padding-right: 5px">
-					<div
-						class="form-group form-group-sm input-group input-group-sm input-trigger">
-						<input type="text" ng-model="sdateFrom" class="form-control"
-							placeholder="起始日期" datepicker-popup="yyyy-MM-dd"
-							is-open="condition.$fromOpened" max-date="condition.dateTo"
-							current-text="今天" clear-text="清除" close-text="关闭"
-							datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-							ng-click="openDatePicker($event, condition, '$fromOpened')"
-							ng-change="onDateCondition()"> <span
-							class="input-group-btn">
-							<button type="button" class="btn btn-default"
-								ng-click="openDatePicker($event, condition, '$fromOpened')">
-								<i class="fa fa-calendar"></i>
-							</button>
-						</span>
-					</div>
-				</div>
-				<div class="col-sm-2" style="padding-left: 5px">
-					<div
-						class="form-group form-group-sm input-group input-group-sm input-trigger">
-						<input type="text" ng-model="sdateTo" class="form-control"
-							placeholder="截止日期" datepicker-popup="yyyy-MM-dd"
-							is-open="condition.$toOpened" min-date="condition.dateFrom"
-							current-text="今天" clear-text="清除" close-text="关闭"
-							datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
-							ng-click="openDatePicker($event, condition, '$toOpened')"
-							ng-change="onDateCondition()"> <span
-							class="input-group-btn">
-							<button type="button" class="btn btn-default"
-								ng-click="openDatePicker($event, condition, '$toOpened')">
-								<i class="fa fa-calendar"></i>
-							</button>
-						</span>
-					</div>
-				</div>
-			</div>
-			<div class="form-group form-group-sm form-group-inline">
-				<div class="col-sm-12 text-right">
-					<a ng-click="condition.$open=!condition.$open" class="text-simple"><span
-						ng-bind="condition.$open ? '收起筛选条件' : '更多筛选条件'"></span><i
-						class="fa fa-fw"
-						ng-class="{'fa-angle-up': condition.$open, 'fa-angle-down': !condition.$open}"></i></a>
-					<div class="btn-group btn-group-sm">
-						<a class="btn btn-default" ng-click="searchOrder()"><i
-							class="fa fa-search fa-fw btn-icon-left"></i>筛选</a> <a
-							class="btn btn-default" ng-click="createApBillOut(check.$selected)"
-							ng-disabled="!data || data.length==0"><i
-							class="fa fa-check-circle-o fa-fw btn-icon-left"></i>开票</a> <a
-							class="btn btn-default"
-							href="sale/apCheck/xls?keyword={{keywordXls}}&fromDate={{fromDateXls}}&endDate={{endDateXls}}"
-							target="_self" title="导出Excel"
-							ng-disabled="!data || data.length==0"><i
-							class="fa fa-file-text fa-fw btn-icon-left"></i>导出</a>
-					</div>
-				</div>
-			</div>
-			<div class="form-group form-group-sm form-group-inline"
-				ng-show="condition.$open">
-				<label class="col-sm-2 control-label">应付供应商:</label>
-				<div class="col-sm-4">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="search" class="form-control input-sm"
-							ng-model="vuuorname" placeholder="可用应付供应商名称筛选" /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-				<label class="col-sm-2 control-label">送货工厂:</label>
-				<div class="col-sm-4">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="search" class="form-control input-sm"
-							ng-model="factory" placeholder="请输入送货工厂名称" /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-			</div>
-			<div class="form-group form-group-sm form-group-inline"
-				ng-show="condition.$open">
-				<label class="col-sm-2 control-label">物料名称:</label>
-				<div class="col-sm-4">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="search" class="form-control input-sm"
-							ng-model="prodTitle" placeholder="请输入物料名称" /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-				<label class="col-sm-2 control-label">规&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格:</label>
-				<div class="col-sm-4">
-					<div class="form-group form-group-sm has-feedback">
-						<input type="search" class="form-control input-sm"
-							ng-model="prodSpec" placeholder="请输入物料规格" /><span
-							class="form-control-feedback text-simple"><i
-							class="fa fa-search"></i></span>
-					</div>
-				</div>
-			</div>
-		</form>
-		<!-- 标签scroll-table用于表头滚动 -->
-		<div class="table-wrap" id="order-detail-list" scroll-table>
-			<div class="table-header-wrap">
-				<table class="table table-bordered">
-					<tr>
-						<th width="36" style="vertical-align: middle;"><input type="checkbox" name="checkbox"
-							ng-model="checkboxes.checked" ng-click="checkAll()"></th>
-						<th width="100">本次<br>开票数
-						</th>
-						<th width="70">客户<br>名称
-						</th>
-						<th width="60">单据<br>编号
-						</th>
-						<th width="35">序号</th>
-						<th width="60">类型</th>
-						<th width="60">单据<br>日期
-						</th>
-						<th width="90">应付<br>供应商
-						</th>
-						<th width="70">客户<br>采购单
-						</th>
-						<th width="65">客户<br>料号
-						</th>
-						<th width="70">客户物<br>料名称
-						</th>
-						<th width="70">客户规<br>格型号
-						</th>
-						<th width="65">送货<br>工厂
-						</th>
-						<th width="55">数量</th>
-						<th width="40">单价</th>
-						<th width="30">币别</th>
-						<th width="40">税率</th>
-						<th width="60">金额</th>
-						<th width="70">本次对<br>账金额
-						</th>
-					</tr>
-				</table>
-			</div>
-			<div class="table-body-wrap">
-				<table class="table table-bordered">
-					<tr
-							ng-repeat="check in data "
-							class="thAlign" style="height: 40px;">
-						<td width="36" style="text-align: center;vertical-align: middle;"><input
-								ng-model="check.$selected" name="checkbox"
-								ng-click="checkOne(check)" ng-change="getTotalMoney()"
-								type="checkbox"></td>
-						<td width="100"><input ng-model="check.thisBilledQty"
-											   type="number" max="check.maxThisCheckQty"
-											   min="check.minThisCheckQty" ng-change="getTotalMoney()"
-											   style="width: 75px;" class=" input-sm text-center"></td>
-						<td width="70" title="{{check.apCheck.custName}}"><div
-								style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.apCheck.custName}}</div></td>
-						<td width="60">{{::check.inoutno}}</td>
-						<td width="35" align="center">{{::check.orderDetno}}</td>
-						<td width="60">{{::check.orderClass}}</td>
-						<td width="60">{{::check.apCheck.apDate | date:'yyyy-MM-dd' }}</td>
-						<td width="90" title="{{check.receiveName}}">
-							<div
-									style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.receiveName}}</div>
-						</td>
-						<td width="70">{{::check.orderCode}}</td>
-						<td width="65">{{::check.prodCode}}</td>
-						<td width="70" title="{{check.prodTitle}}">
-							<div
-									style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodTitle}}</div>
-						</td>
-						<td width="70" title="{{check.prodSpec}}"><div
-								style="display: -webkit-box; text-overflow: ellipsis; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; -webkit-box-orient: vertical;">{{::check.prodSpec}}</div></td>
-						<td width="65">{{::check.factory}}</td>
-						<td width="55">{{::check.billed}}</td>
-						<td width="40">{{::check.orderPrice}}</td>
-						<td width="30">{{::check.currency}}</td>
-						<td width="40" align="center">{{::check.taxrate}}</td>
-						<td width="60">{{::(check.qty || 0)*(check.orderPrice || 0) |
-							number:2}}</td>
-						<td width="60">{{::(check.orderPrice ||
-							0)*(check.thisCheckQty || 0) | number:2}}</td>
-					</tr>
-					<tr ng-if="!data || data.length==0">
-						<td colspan="19">
-							<div class="empty-block">
-								<i class="fa fa-exclamation-circle"></i>
-								<p class="text-muted">没有对账数据,请先筛选</p>
-							</div>
-						</td>
-					</tr>
-				</table>
-			</div>
-			<div style="padding: 10px 20px" ng-show="totalMoney!=0">总金额合计:{{totalMoney
-				| number:2}}</div>
-		</div>
-	</div>
-</div>

+ 0 - 206
src/main/webapp/resources/tpl/index/fa/apBillOut_detail.html

@@ -1,206 +0,0 @@
-<style>
-.pane {
-	font-size: 14px;
-}
-.icon-purc {
-	display: inline-block;
-	background: url(static/img/icon/purc.ico);
-	height: 26px;
-	width: 26px;
-}
-.badge-success {
-	background: #5cb85c;
-	color: #ffffff;
-}
-.badge-warning {
-	background: #f0ad4e;
-	color: #ffffff;
-}
-.badge-info {
-	background: #5bc0de;
-	color: #ffffff;
-}
-.badge-primary {
-	background: #337ab7;
-	color: #ffffff;
-}
-.badge-danger {
-	background: #d9534f;
-	color: #ffffff;
-}
-.table>tbody+tbody{
-	border-top: 0;
-}
-#order-detail-list .table-default>tbody td {
-	border-top: #ddd 1px solid;
-}
-</style>
-
-<div class="loading" ng-class="{'in': loading}">
-	<!--<i></i>-->
-	<div class="wrap">
-		<div class="outer"></div>
-	</div>
-</div>
-<div class="pane base-info" ng-if="haveSelected" id="order-detail-list">
-	<div class="pub-com_head">
-		<span>开票单</span>
-		<div class="p-right">
-			<!-- <a ng-click="print(order)" class="pull-right text-simple"><i
-			class="fa fa-print fa-fw"></i>打印</a> -->
-		</div>
-	</div>
-	<div class="pane-body">
-		<div class="title-div" style="border-bottom: 1px dashed #3f84f6;">
-			<span class="f14">单据资料</span>&nbsp;
-		</div>
-		<div class="row row-sm item">
-			<div class="col-xs-6">
-				<span class="title">客户名称</span>
-				<div class="content" ng-bind="::data.custName"></div>
-			</div>
-			<div class="col-xs-6">
-				<span class="title">对账期间</span>
-				<div class="content text-num">{{::data.beginDate | date:'yyyy/MM/dd'}} - {{::data.endDate | date:'yyyy/MM/dd'}}</div>
-			</div>
-		</div>
-		<div class="row row-sm item">
-			<div class="col-xs-3">
-				<span class="title">单据编号</span>
-				<div class="content text-num" ng-bind="::data.code"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title">录单日期</span>
-				<div class="content" ng-bind="::data.recordDate | date:'yyyy年MM月dd日 HH:mm'"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title">录单人</span>
-				<div class="content" ng-bind="::data.recorder"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title">开票状态</span>
-				<div class="content" ng-bind="::data.checkStatus"></div>
-			</div>
-		</div>
-		<!--<div class="row row-sm item">
-			<div ng-if="data.custreply"class="col-xs-12">
-				<span class="title">不同意原因</span>
-				<div class="content" ng-bind="data.custreply"></div>
-			</div>		
-		</div>
-		<div class="row row-sm item" ng-if="data.remark">
-			<div class="col-xs-9">
-				<span class="title">备注</span>
-				<div class="content" ng-bind="::data.remark"></div>
-			</div>
-		</div>-->
-		<div class="title-div" style="border-bottom: 1px dashed #3f84f6;">
-			<span class="f14">财务信息</span>&nbsp;
-		</div>
-		<div class="row row-sm item">
-			<div class="col-xs-3">
-				<span class="title">开票总额</span>
-				<div class="content text-num" ng-bind="::data.amount | number:2"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title">币别</span>
-				<div class="content" ng-bind="::data.currency"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title">汇率</span>
-				<div class="content text-num" ng-bind="::data.rate"></div>
-			</div>
-		</div>
-		<div class="row row-sm item">
-			<div class="col-xs-3">
-				<span class="title">税金合计</span>
-				<div class="content text-num" ng-bind="::data.taxSum | number:2"></div>
-			</div>
-			<div class="col-xs-3">
-				<span class="title" ng-if="data.checkStatus == '已开票'">开票日期</span>
-				<span class="title" ng-if="data.checkStatus == '已作废'">作废日期</span>
-				<span class="title" ng-if="data.checkStatus == '已上传'">上传日期</span>
-				<div class="content" ng-bind="data.apDate | date:'yyyy/MM/dd'"></div>
-			</div>
-		</div>
-		<div class="title-div" style="border-bottom: 1px dashed #3f84f6;">
-			<span class="f14">明细清单</span>&nbsp;
-		</div>
-		<div class="block">
-			<table class="block table table-default table-striped table-hover">
-				<thead>
-					<tr class="header">
-						<th width="30" style="padding:8px 0;">行号</th>
-						<th>商品</th>
-						<th width="120">产品编号</th>
-						<th width="100">客户单据编号</th>
-						<th width="80">单据类型</th>
-						<th>序号</th>
-						<th>税率</th>
-						<th>开票单价</th>
-						<th>开票数量</th>
-						<th>开票金额</th>
-						<th>发票单价</th>
-						<th>发票数量</th>
-						<th>发票金额</th>
-						<th width="40">采购单号</th>
-						<th>采购序号</th>
-						<th>应付供应商名称</th>
-					</tr>
-				</thead>
-				<tbody ng-repeat="item in data.items" style="text-align: center;">
-					<tr>
-						<td ng-bind="item.number" style="padding:8px 0;"></td>
-						<td ng-bind="item.product.title"></td>
-						<td ng-bind="item.product.code"></td>  <!--style="max-width: 150px;"-->
-						<td ng-bind="item.inoutno"></td>
-						<td ng-bind="item.orderClass"></td>
-						<td ng-bind="item.inoutnodetno"></td>
-						<td ng-bind="item.taxrate"></td>
-						<td ng-bind="item.nowPrice | number:2"></td>
-						<td ng-bind="item.nowQty | number:2"></td>
-						<td >{{::item.nowPrice * item.nowQty | number:2}}</td>
-						<td ng-bind="item.price | number:2"></td>
-						<td ng-bind="item.qty | number:2"></td>
-						<td >{{::item.price * item.qty | number:2}}</td>
-						<td ng-bind="item.orderCode"></td>
-						<td ng-bind="item.orderDetno"></td>
-						<td ng-bind="data.apBillOutInfo.enName"></td>
-					</tr>
-				</tbody>
-			</table>
-		</div>	
- 		<div class="row">
-			<div ng-if="data.checkStatus == '未开票'" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-success" ng-click="invoiceIssued(data)">开票</button>
-			</div>
-			<div ng-if="data.checkStatus == '未开票'"  class="col-xs-1"><!--ui-sref="fa.apBillOut"-->
-				<button class="btn btn-info"  ng-click="deleteApBillOut(data.id)">删除</button>
-			</div>
-			<div ng-if="data.checkStatus == '已开票'" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-success" ng-click="invoiceUpload(data.id)">上传</button>
-			</div>
-			<!--<div ng-if="data.checkStatus == '已开票'" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-success" ng-click="submitApBillOut(data)">开票</button>
-			</div>-->
-			<div ng-if="data.checkStatus == '已开票'"  class="col-xs-1"><!--ui-sref="fa.apBillOut"-->
-				<button class="btn btn-info"  ng-click="InvoiceCancel(data.id)">作废</button>
-			</div>
-			<!--<div ng-hide="data.status" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-success" ng-click="submitApBillOut(data)">开票</button>
-			</div>
-			<div ng-hide="data.status"  class="col-xs-1">
-				<button class="btn btn-info" ui-sref="fa.apBillOut" ng-click="deleteApBillOut(data.id)">删除</button>
-			</div>
-			<div ng-if="data.checkStatus == '不同意'" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-warning" ui-sref="fa.apBillOut" ng-click="cancelApBillOut(data)">作废</button>
-			</div>
-			<div ng-show="data.status == 314 && data.checkStatus != '已作废'" class="col-xs-1 col-xs-offset-5">
-				<button class="btn btn-warning" ui-sref="fa.apBillOut" ng-click="cancelApBillOut(data)">作废</button>
-			</div>
-			<div class="col-xs-7 col-xs-offset-2" ng-show="data.status == 314" style="margin-top:5px">
-					<span class="text-muted">对账单的来源表,已被客户ERP反过账(删除失效),因此本对账单只能作废</span>
-			</div>-->
-		</div>
-	</div>
-</div>

+ 11 - 32
src/main/webapp/resources/tpl/index/fa/apCheck_detail.html

@@ -2,32 +2,6 @@
 .pane {
 	font-size: 14px;
 }
-.icon-purc {
-	display: inline-block;
-	background: url(static/img/icon/purc.ico);
-	height: 26px;
-	width: 26px;
-}
-.badge-success {
-	background: #5cb85c;
-	color: #ffffff;
-}
-.badge-warning {
-	background: #f0ad4e;
-	color: #ffffff;
-}
-.badge-info {
-	background: #5bc0de;
-	color: #ffffff;
-}
-.badge-primary {
-	background: #337ab7;
-	color: #ffffff;
-}
-.badge-danger {
-	background: #d9534f;
-	color: #ffffff;
-}
 .table>tbody+tbody{
 	border-top: 0;
 }
@@ -55,11 +29,15 @@
 			<span class="f14">单据资料</span>&nbsp;
 		</div>
 		<div class="row row-sm item">
-			<div class="col-xs-6">
+			<div class="col-xs-4">
 				<span class="title">客户名称</span>
 				<div class="content" ng-bind="::data.custName"></div>
 			</div>
-			<div class="col-xs-6">
+            <div class="col-xs-4">
+                <span class="title">应付供应商</span>
+                <div class="content" ng-bind="::data.items[0].receiveName"></div>
+            </div>
+			<div class="col-xs-4">
 				<span class="title">对账期间</span>
 				<div class="content text-num">{{::data.beginDate | date:'yyyy/MM/dd'}} - {{::data.endDate | date:'yyyy/MM/dd'}}</div>
 			</div>
@@ -124,7 +102,7 @@
 					<tr class="header">
 						<th width="30" style="padding:8px 0;">行号</th>
 						<th width="120">商品</th>
-						<th width="100">客户单据编号</th>
+						<th width="100">单据编号</th>
 						<th width="80">单据类型</th>
 						<th>序号</th>
 						<th>单价</th>
@@ -133,13 +111,15 @@
 						<th>对账金额</th>
 						<th width="40">采购单号</th>
 						<th>采购序号</th>
-						<th>应付供应商名称</th>
 					</tr>
 				</thead>
 				<tbody ng-repeat="item in data.items" style="text-align: center;">
 					<tr>
 						<td ng-bind="item.number" style="padding:8px 0;"></td>
-						<td style="max-width: 150px;" ng-bind="item.prodCode"></td>
+						<td style="max-width: 250px;" class="text-left">
+                            <div>编号: <span ng-bind="item.prodCode"></span></div>
+                            <div>规格: <span ng-bind="item.prodSpec"></span></div>
+                        </td>
 						<td ng-bind="item.inoutno"></td>
 						<td ng-bind="item.orderClass"></td>
 						<td ng-bind="item.inoutnodetno"></td>
@@ -149,7 +129,6 @@
 						<td ng-bind="isUser?'-':(item.amount | number:2)"></td>
 						<td ng-bind="item.orderCode"></td>
 						<td ng-bind="item.orderDetno"></td>
-						<td ng-bind="item.receiveName"></td>
 					</tr>
 				</tbody>
 			</table>

+ 0 - 2
src/main/webapp/resources/tpl/index/fa/left.html

@@ -5,8 +5,6 @@
 	<ul class="list-unstyled">
 		<li ui-sref-active="active"><a ui-sref="fa.apBill"><em class="new-dot" ng-if="false"></em>发票</a></li>
 		<li ui-sref-active="active"><a ui-sref="fa.apCheck"><em class="new-dot" ng-if="unread.apCheck > 0"></em>应收对账单</a></li>
-		<!--<li ui-sref-active="active"><a ui-sref="fa.apBillOut">开票明细</a></li>-->
-		<!-- <li ui-sref-active="active"><a ui-sref="fa.adjustList">货款调账</a></li> -->
 	</ul>
 </div>
 <div class="left-nav">

+ 1 - 28
src/main/webapp/resources/tpl/index/sale/notice.html

@@ -158,33 +158,6 @@
         margin-top: -10px;
     }
 
-    .padding-20 {
-        padding: 20px;
-    }
-
-    /* 动画 */
-    .repeat.ng-enter,
-    .repeat.ng-leave {
-        -webkit-transition: 0.5s linear all;
-        transition: 0.5s linear all;
-    }
-
-    .repeat.ng-enter,
-    .repeat.ng-leave.ng-leave-active {
-        opacity: 0;
-    }
-
-    .repeat.ng-leave,
-    .repeat.ng-enter.ng-enter-active {
-        opacity: 1;
-    }
-
-    /* 固定表头 */
-    .fixedHeader {
-        background-color: #f5f5f5;
-        position: relative;
-    }
-
     .menu .new-dot {
         width: 20px;
         height: 20px;
@@ -544,7 +517,7 @@
                         </div>
                     </div>
                 </div>
-                <div ng-if="(!notice.endQty || notice.endQty<notice.qty) && !notice.end && notice.waiting"
+                <div ng-if="(!notice.endQty || notice.endQty<notice.qty) && (!notice.end || notice.end == 0) && notice.waiting == 1"
                      class="text-muted">
                     <div title="暂时不可发货"><i class="fa fa-cog fa-lg"></i><br>备料中</div>
                 </div>