mirror of
https://github.com/weizhiqiang1995/erp-pro.git
synced 2024-09-20 15:06:00 +08:00
支出单功能完成
This commit is contained in:
parent
e9232a44f5
commit
48e603108f
|
@ -0,0 +1,94 @@
|
|||
package com.skyeye.controller;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
import com.skyeye.service.ExpenditureService;
|
||||
|
||||
/**
|
||||
* @Author 卫志强
|
||||
* @Description 支出单
|
||||
* @Date 2019/10/20 10:22
|
||||
*/
|
||||
@Controller
|
||||
public class ExpenditureController {
|
||||
|
||||
@Autowired
|
||||
private ExpenditureService expenditureService;
|
||||
|
||||
/**
|
||||
* 查询支出单列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/queryExpenditureByList")
|
||||
@ResponseBody
|
||||
public void queryExpenditureByList(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.queryExpenditureByList(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加支出单
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/insertExpenditure")
|
||||
@ResponseBody
|
||||
public void insertExpenditure(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.insertExpenditure(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询支出单用于数据回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/queryExpenditureToEditById")
|
||||
@ResponseBody
|
||||
public void queryExpenditureToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.queryExpenditureToEditById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑支出单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/editExpenditureById")
|
||||
@ResponseBody
|
||||
public void editExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.editExpenditureById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除支出单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/deleteExpenditureById")
|
||||
@ResponseBody
|
||||
public void deleteExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.deleteExpenditureById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看支出单详情
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/ExpenditureController/queryExpenditureByDetail")
|
||||
@ResponseBody
|
||||
public void queryExpenditureByDetail(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
expenditureService.queryExpenditureByDetail(inputObject, outputObject);
|
||||
}
|
||||
}
|
39
erp-modular/src/main/java/com/skyeye/dao/ExpenditureDao.java
Normal file
39
erp-modular/src/main/java/com/skyeye/dao/ExpenditureDao.java
Normal file
|
@ -0,0 +1,39 @@
|
|||
package com.skyeye.dao;
|
||||
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author: 卫志强
|
||||
* @Description: TODO
|
||||
* @Date: 2019/10/20 10:23
|
||||
*/
|
||||
public interface ExpenditureDao {
|
||||
|
||||
public List<Map<String, Object>> queryExpenditureByList(Map<String, Object> params, PageBounds pageBounds) throws Exception;
|
||||
|
||||
public int insertExpenditure(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int insertExpenditureItem(List<Map<String, Object>> entitys) throws Exception;
|
||||
|
||||
public Map<String, Object> queryExpenditureToEditById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editExpenditureById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editExpenditureByDeleteFlag(Map<String, Object> params) throws Exception;
|
||||
|
||||
public Map<String, Object> queryExpenditureDetailById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryExpenditureItemsDetailById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryExpenditureItemsToEditById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editExpenditureItemsByDeleteFlag(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int deleteExpenditureItemById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryUserInfoById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
}
|
|
@ -19,7 +19,7 @@ public interface IncomeDao {
|
|||
|
||||
public Map<String, Object> queryIncomeToEditById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editIncomById(Map<String, Object> params) throws Exception;
|
||||
public int editIncomeById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editIncomeByDeleteFlag(Map<String, Object> params) throws Exception;
|
||||
|
||||
|
@ -31,9 +31,7 @@ public interface IncomeDao {
|
|||
|
||||
public int editIncomeItemsByDeleteFlag(Map<String, Object> params) throws Exception;
|
||||
|
||||
public int editIncomItemById(List<Map<String, Object>> entitys) throws Exception;
|
||||
|
||||
public int deleteIncomItemById(Map<String, Object> params) throws Exception;
|
||||
public int deleteIncomeItemById(Map<String, Object> params) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryUserInfoById(Map<String, Object> bean) throws Exception;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.skyeye.service;
|
||||
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
|
||||
/**
|
||||
* @Author: 卫志强
|
||||
* @Description: TODO
|
||||
* @Date: 2019/10/20 10:22
|
||||
*/
|
||||
public interface ExpenditureService {
|
||||
|
||||
public void queryExpenditureByList(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void insertExpenditure(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryExpenditureToEditById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void editExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void deleteExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryExpenditureByDetail(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
}
|
|
@ -4,7 +4,7 @@ import com.skyeye.common.object.InputObject;
|
|||
import com.skyeye.common.object.OutputObject;
|
||||
|
||||
/**
|
||||
* @Author: 奈何繁华如云烟
|
||||
* @Author: 卫志强
|
||||
* @Description: TODO
|
||||
* @Date: 2019/10/20 10:22
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,244 @@
|
|||
package com.skyeye.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageList;
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
import com.skyeye.common.util.ToolUtil;
|
||||
import com.skyeye.dao.ExpenditureDao;
|
||||
import com.skyeye.erp.util.ErpConstants;
|
||||
import com.skyeye.erp.util.ErpOrderNum;
|
||||
import com.skyeye.service.ExpenditureService;
|
||||
|
||||
import net.sf.json.JSONArray;
|
||||
|
||||
/**
|
||||
* @Author 卫志强
|
||||
* @Description TODO
|
||||
* @Date 2019/10/20 10:23
|
||||
*/
|
||||
@Service
|
||||
public class ExpenditureServiceImpl implements ExpenditureService {
|
||||
|
||||
@Autowired
|
||||
private ExpenditureDao expenditureDao;
|
||||
|
||||
/**
|
||||
* 查询支出单列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryExpenditureByList(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
List<Map<String, Object>> beans = expenditureDao.queryExpenditureByList(params,
|
||||
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
|
||||
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>) beans;
|
||||
int total = beansPageList.getPaginator().getTotalCount();
|
||||
outputObject.setBeans(beans);
|
||||
outputObject.settotal(total);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加支出单
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
@Transactional(value="transactionManager")
|
||||
public void insertExpenditure(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
String initemStr = params.get("initemStr").toString();
|
||||
if(ToolUtil.isJson(initemStr)) {
|
||||
//财务主表ID
|
||||
String useId = ToolUtil.getSurFaceId();
|
||||
String userId = inputObject.getLogParams().get("id").toString();
|
||||
//处理数据
|
||||
JSONArray jArray = JSONArray.fromObject(initemStr);
|
||||
//支出单中间转换对象,财务子表存储对象
|
||||
Map<String, Object> bean;
|
||||
List<Map<String, Object>> entitys = new ArrayList<>();//财务子表实体集合信息
|
||||
BigDecimal allPrice = new BigDecimal("0");//主单总价
|
||||
BigDecimal itemAllPrice = null;//子单对象
|
||||
for(int i = 0; i < jArray.size(); i++){
|
||||
bean = jArray.getJSONObject(i);
|
||||
Map<String, Object> entity = new HashMap<>();
|
||||
//获取子项金额
|
||||
itemAllPrice = new BigDecimal(bean.get("initemMoney").toString());
|
||||
entity.put("id", ToolUtil.getSurFaceId());
|
||||
entity.put("headerId", useId);
|
||||
entity.put("accountId", params.get("accountId"));
|
||||
entity.put("inOutItemId", bean.get("initemId"));
|
||||
entity.put("eachAmount", bean.get("initemMoney"));
|
||||
entity.put("remark", bean.get("remark"));
|
||||
entity.put("userId", userId);
|
||||
entity.put("deleteFlag", 0);
|
||||
entitys.add(entity);
|
||||
//计算总金额
|
||||
allPrice = allPrice.add(itemAllPrice);
|
||||
}
|
||||
if(entitys.size() == 0){
|
||||
outputObject.setreturnMessage("请选择收入项目");
|
||||
return;
|
||||
}
|
||||
Map<String, Object> accountHead = new HashMap<>();
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getAccountOrderNumBySubType(userId, ErpConstants.AccountTheadSubType.EXPENDITURE_ORDER.getNum());
|
||||
accountHead.put("id", useId);
|
||||
accountHead.put("type", ErpConstants.AccountTheadSubType.EXPENDITURE_ORDER.getNum());//支出单
|
||||
accountHead.put("billNo", orderNum);
|
||||
accountHead.put("totalPrice", allPrice);
|
||||
accountHead.put("userId", userId);
|
||||
accountHead.put("organId", params.get("organId"));
|
||||
accountHead.put("operTime", params.get("operTime"));
|
||||
accountHead.put("accountId", params.get("accountId"));
|
||||
accountHead.put("handsPersonId", params.get("handsPersonId"));
|
||||
accountHead.put("remark", params.get("remark"));
|
||||
accountHead.put("changeAmount", params.get("changeAmount"));
|
||||
accountHead.put("deleteFlag", 0);
|
||||
expenditureDao.insertExpenditure(accountHead);
|
||||
expenditureDao.insertExpenditureItem(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询支出单用于数据回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryExpenditureToEditById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
Map<String, Object> bean = expenditureDao.queryExpenditureToEditById(params);
|
||||
if(bean != null && !bean.isEmpty()){
|
||||
List<Map<String, Object>> beans = expenditureDao.queryExpenditureItemsToEditById(params);
|
||||
bean.put("items", beans);
|
||||
//获取经手人员
|
||||
List<Map<String, Object>> userInfo = expenditureDao.queryUserInfoById(bean);
|
||||
bean.put("userInfo", userInfo);
|
||||
outputObject.setBean(bean);
|
||||
outputObject.settotal(1);
|
||||
}else{
|
||||
outputObject.setreturnMessage("未查询到信息!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑支出单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
@Transactional(value="transactionManager")
|
||||
public void editExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
String initemStr = params.get("initemStr").toString();
|
||||
if(ToolUtil.isJson(initemStr)) {
|
||||
String useId = params.get("id").toString();
|
||||
String userId = inputObject.getLogParams().get("id").toString();
|
||||
//处理数据
|
||||
JSONArray jArray = JSONArray.fromObject(initemStr);
|
||||
//支出单中间转换对象,财务子表存储对象
|
||||
Map<String, Object> bean;
|
||||
List<Map<String, Object>> entitys = new ArrayList<>();//财务子表实体集合信息
|
||||
BigDecimal allPrice = new BigDecimal("0");//主单总价
|
||||
BigDecimal itemAllPrice = null;//子单对象
|
||||
for(int i = 0; i < jArray.size(); i++){
|
||||
bean = jArray.getJSONObject(i);
|
||||
Map<String, Object> entity = new HashMap<>();
|
||||
//获取子项金额
|
||||
itemAllPrice = new BigDecimal(bean.get("initemMoney").toString());
|
||||
entity.put("id", ToolUtil.getSurFaceId());
|
||||
entity.put("headerId", useId);
|
||||
entity.put("accountId", params.get("accountId"));
|
||||
entity.put("inOutItemId", bean.get("initemId"));
|
||||
entity.put("eachAmount", bean.get("initemMoney"));
|
||||
entity.put("remark", bean.get("remark"));
|
||||
entity.put("userId", userId);
|
||||
entity.put("deleteFlag", "0");
|
||||
entitys.add(entity);
|
||||
//计算总金额
|
||||
allPrice = allPrice.add(itemAllPrice);
|
||||
}
|
||||
if(entitys.size() == 0){
|
||||
outputObject.setreturnMessage("请选择收入项目");
|
||||
return;
|
||||
}
|
||||
Map<String, Object> accountHead = new HashMap<>();
|
||||
accountHead.put("id", useId);
|
||||
accountHead.put("userId", userId);
|
||||
accountHead.put("totalPrice", allPrice);
|
||||
accountHead.put("organId", params.get("organId"));
|
||||
accountHead.put("operTime", params.get("operTime"));
|
||||
accountHead.put("accountId", params.get("accountId"));
|
||||
accountHead.put("handsPersonId", params.get("handsPersonId"));
|
||||
accountHead.put("remark", params.get("remark"));
|
||||
accountHead.put("changeAmount", params.get("changeAmount"));
|
||||
expenditureDao.editExpenditureById(accountHead);
|
||||
//删除之前的绑定信息
|
||||
expenditureDao.deleteExpenditureItemById(params);
|
||||
expenditureDao.insertExpenditureItem(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除支出单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@Transactional(value="transactionManager")
|
||||
public void deleteExpenditureById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
params.put("deleteFlag", 1);
|
||||
expenditureDao.editExpenditureByDeleteFlag(params);
|
||||
expenditureDao.editExpenditureItemsByDeleteFlag(params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看支出单详情
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryExpenditureByDetail(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
//获取财务主表信息
|
||||
Map<String, Object> bean = expenditureDao.queryExpenditureDetailById(params);
|
||||
if(bean != null && !bean.isEmpty()){
|
||||
//获取子表信息
|
||||
List<Map<String, Object>> beans = expenditureDao.queryExpenditureItemsDetailById(bean);
|
||||
bean.put("items", beans);
|
||||
outputObject.setBean(bean);
|
||||
outputObject.settotal(1);
|
||||
}else{
|
||||
outputObject.setreturnMessage("该数据已不存在.");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -192,9 +192,9 @@ public class IncomeServiceImpl implements IncomeService {
|
|||
accountHead.put("handsPersonId", params.get("handsPersonId"));
|
||||
accountHead.put("remark", params.get("remark"));
|
||||
accountHead.put("changeAmount", params.get("changeAmount"));
|
||||
incomeDao.editIncomById(accountHead);
|
||||
incomeDao.editIncomeById(accountHead);
|
||||
//删除之前的绑定信息
|
||||
incomeDao.deleteIncomItemById(params);
|
||||
incomeDao.deleteIncomeItemById(params);
|
||||
incomeDao.insertIncomeItem(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
|
|
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.skyeye.dao.ExpenditureDao">
|
||||
|
||||
<select id="queryExpenditureByList" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.change_amount changeAmount,
|
||||
FORMAT(a.total_price, 2) totalPrice,
|
||||
a.bill_no billNo,
|
||||
CONVERT (a.bill_time, CHAR) billTime,
|
||||
(SELECT group_concat(distinct m.user_name) FROM sys_eve_user_staff m WHERE INSTR(CONCAT(',', a.hands_person_id, ','), CONCAT(',', m.user_id, ','))) hansPersonName,
|
||||
a.remark,
|
||||
s.supplier supplierName
|
||||
FROM
|
||||
erp_accounthead a
|
||||
LEFT JOIN erp_supplier s ON a.organ_id = s.id
|
||||
WHERE
|
||||
a.delete_flag = '0'
|
||||
AND a.tenant_id = #{userId}
|
||||
AND a.type = '1'
|
||||
<if test="billNo != '' and billNo != null">
|
||||
AND a.bill_no LIKE '%${billNo}%'
|
||||
</if>
|
||||
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
|
||||
AND a.bill_time >= #{startTime} AND #{endTime} >= a.bill_time
|
||||
</if>
|
||||
ORDER BY a.bill_time DESC, a.id ASC
|
||||
</select>
|
||||
|
||||
<insert id="insertExpenditure" parameterType="java.util.Map">
|
||||
INSERT INTO erp_accounthead(
|
||||
id, type, organ_id, hands_person_id, change_amount, total_price, account_id, bill_no, bill_time, remark, tenant_id, delete_flag
|
||||
) VALUES
|
||||
(#{id}, #{type}, #{organId}, #{handsPersonId}, #{changeAmount}, #{totalPrice}, #{accountId}, #{billNo}, #{operTime}, #{remark}, #{userId}, #{deleteFlag})
|
||||
</insert>
|
||||
|
||||
<insert id="insertExpenditureItem" parameterType="java.util.Map">
|
||||
INSERT INTO erp_accountitem(
|
||||
id, header_id, account_id, in_out_item_id, each_amount, remark, tenant_id, delete_flag
|
||||
) VALUES
|
||||
<foreach collection="list" item="item" index="index" separator="," >
|
||||
(#{item.id}, #{item.headerId}, #{item.accountId}, #{item.inOutItemId}, #{item.eachAmount}, #{item.remark}, #{item.userId}, #{item.deleteFlag})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="queryExpenditureToEditById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.type payType,
|
||||
a.organ_id organId,
|
||||
a.hands_person_id handsPersonId,
|
||||
CONVERT(a.change_amount, decimal(24, 2)) changeAmount,
|
||||
CONVERT(a.total_price, decimal(24, 2)) totalPrice,
|
||||
a.account_id accountId,
|
||||
a.bill_no billNo,
|
||||
CONVERT (a.bill_time, char) billTime,
|
||||
a.remark
|
||||
FROM
|
||||
erp_accounthead a
|
||||
WHERE
|
||||
a.id = #{id}
|
||||
AND a.type = '1'
|
||||
AND a.delete_flag = '0'
|
||||
ORDER BY a.bill_time DESC
|
||||
</select>
|
||||
|
||||
<select id="queryExpenditureItemsToEditById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.in_out_item_id initemId,
|
||||
CONVERT(a.each_amount , decimal(24, 2)) initemMoney,
|
||||
a.remark
|
||||
FROM
|
||||
erp_accountitem a
|
||||
WHERE
|
||||
a.header_id = #{id}
|
||||
</select>
|
||||
|
||||
<update id="editExpenditureById" parameterType="java.util.Map">
|
||||
UPDATE erp_accounthead
|
||||
<set>
|
||||
organ_id = #{organId},
|
||||
hands_person_id = #{handsPersonId},
|
||||
change_amount = #{changeAmount},
|
||||
total_price = #{totalPrice},
|
||||
account_id = #{accountId},
|
||||
bill_time = #{operTime},
|
||||
remark = #{remark}
|
||||
</set>
|
||||
WHERE
|
||||
id = #{id}
|
||||
AND tenant_id = #{userId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteExpenditureItemById" parameterType="java.util.Map">
|
||||
DELETE
|
||||
FROM
|
||||
erp_accountitem
|
||||
WHERE
|
||||
header_id = #{id}
|
||||
</delete>
|
||||
|
||||
<update id="editExpenditureByDeleteFlag" parameterType="java.util.Map">
|
||||
UPDATE erp_accounthead
|
||||
<set>
|
||||
delete_flag = #{deleteFlag}
|
||||
</set>
|
||||
WHERE
|
||||
id = #{id}
|
||||
AND tenant_id = #{userId}
|
||||
</update>
|
||||
|
||||
<update id="editExpenditureItemsByDeleteFlag" parameterType="java.util.Map">
|
||||
UPDATE erp_accountitem
|
||||
<set>
|
||||
delete_flag = #{deleteFlag}
|
||||
</set>
|
||||
WHERE
|
||||
header_id = #{id}
|
||||
AND tenant_id = #{userId}
|
||||
</update>
|
||||
|
||||
<select id="queryExpenditureDetailById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
FORMAT(a.change_amount, 2) changeAmount,
|
||||
FORMAT(a.total_price, 2) totalPrice,
|
||||
a.bill_no billNo,
|
||||
CONVERT (a.bill_time, CHAR) operTime,
|
||||
a.remark,
|
||||
s.supplier supplierName,
|
||||
group_concat(distinct b.user_name) hansPersonName,
|
||||
t.`name` accountName
|
||||
FROM
|
||||
erp_accounthead a
|
||||
LEFT JOIN erp_supplier s ON a.organ_id = s.id
|
||||
LEFT JOIN erp_account t ON a.account_id = t.id
|
||||
LEFT JOIN sys_eve_user_staff b ON INSTR(CONCAT(',', a.hands_person_id, ','), CONCAT(',', b.user_id, ','))
|
||||
WHERE
|
||||
a.delete_flag = '0'
|
||||
AND a.tenant_id = #{userId}
|
||||
AND a.id = #{id}
|
||||
AND a.type = '1'
|
||||
ORDER BY a.bill_time DESC
|
||||
</select>
|
||||
|
||||
<select id="queryExpenditureItemsDetailById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
FORMAT(a.each_amount, 2) eachAmount,
|
||||
a.remark,
|
||||
c.`name` inoutitemName
|
||||
FROM
|
||||
erp_accountitem a
|
||||
LEFT JOIN erp_inoutitem c ON a.in_out_item_id = c.id
|
||||
WHERE
|
||||
a.header_id = #{id}
|
||||
AND a.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="queryUserInfoById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.user_id id,
|
||||
a.user_name `name`,
|
||||
a.email
|
||||
FROM
|
||||
sys_eve_user_staff a
|
||||
WHERE
|
||||
INSTR(CONCAT(',', #{handsPersonId}, ','), CONCAT(',', a.user_id, ','))
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -77,7 +77,7 @@
|
|||
a.header_id = #{id}
|
||||
</select>
|
||||
|
||||
<update id="editIncomById" parameterType="java.util.Map">
|
||||
<update id="editIncomeById" parameterType="java.util.Map">
|
||||
UPDATE erp_accounthead
|
||||
<set>
|
||||
organ_id = #{organId},
|
||||
|
@ -93,7 +93,7 @@
|
|||
AND tenant_id = #{userId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteIncomItemById" parameterType="java.util.Map">
|
||||
<delete id="deleteIncomeItemById" parameterType="java.util.Map">
|
||||
DELETE
|
||||
FROM
|
||||
erp_accountitem
|
||||
|
|
|
@ -329,7 +329,7 @@
|
|||
</url>
|
||||
<!-- 结算账户管理结束 -->
|
||||
|
||||
<!--收入单管理开始-->
|
||||
<!-- 收入单管理开始 -->
|
||||
<url id="income001" path="/post/IncomeController/queryIncomeByList" val="查询收入单列表信息" allUse="1">
|
||||
<property id="billNo" name="billNo" ref="" var="单据编号" />
|
||||
<property id="startTime" name="startTime" ref="" var="开始日期" />
|
||||
|
@ -365,5 +365,44 @@
|
|||
<url id="income006" path="/post/IncomeController/queryIncomeByDetail" val="查询收入单详情" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="收入单Id"></property>
|
||||
</url>
|
||||
<!--收入单管理结束-->
|
||||
<!-- 收入单管理结束 -->
|
||||
|
||||
<!-- 支出单管理开始 -->
|
||||
<url id="expenditure001" path="/post/ExpenditureController/queryExpenditureByList" val="查询支出单列表信息" allUse="2">
|
||||
<property id="billNo" name="billNo" ref="" var="单据编号" />
|
||||
<property id="startTime" name="startTime" ref="" var="开始日期" />
|
||||
<property id="endTime" name="endTime" ref="" var="结束日期" />
|
||||
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
|
||||
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
|
||||
</url>
|
||||
<url id="expenditure002" path="/post/ExpenditureController/insertExpenditure" val="添加支出单" allUse="2">
|
||||
<property id="organId" name="organId" ref="required" var="单位Id"></property>
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期"></property>
|
||||
<property id="accountId" name="accountId" ref="required" var="账户Id"></property>
|
||||
<property id="handsPersonId" name="handsPersonId" ref="required" var="经手人Id"></property>
|
||||
<property id="remark" name="remark" ref="" var="备注"></property>
|
||||
<property id="changeAmount" name="changeAmount" ref="required,double" var="实收金额"></property>
|
||||
<property id="initemStr" name="initemStr" ref="required" var="收入项目列表" />
|
||||
</url>
|
||||
<url id="expenditure003" path="/post/ExpenditureController/queryExpenditureToEditById" val="查询支出单用于数据回显" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="支出单Id"></property>
|
||||
</url>
|
||||
<url id="expenditure004" path="/post/ExpenditureController/editExpenditureById" val="编辑支出单信息" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="支出单Id"></property>
|
||||
<property id="organId" name="organId" ref="required" var="单位Id"></property>
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期"></property>
|
||||
<property id="accountId" name="accountId" ref="required" var="账户Id"></property>
|
||||
<property id="handsPersonId" name="handsPersonId" ref="required" var="账户Id"></property>
|
||||
<property id="remark" name="remark" ref="" var="备注"></property>
|
||||
<property id="changeAmount" name="changeAmount" ref="required,double" var="实收金额"></property>
|
||||
<property id="initemStr" name="initemStr" ref="required" var="收入项目列表" />
|
||||
</url>
|
||||
<url id="expenditure005" path="/post/ExpenditureController/deleteExpenditureById" val="删除支出单信息" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="支出单Id"></property>
|
||||
</url>
|
||||
<url id="expenditure006" path="/post/ExpenditureController/queryExpenditureByDetail" val="查询支出单详情" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="支出单Id"></property>
|
||||
</url>
|
||||
<!-- 支出单管理结束 -->
|
||||
|
||||
</controller>
|
|
@ -0,0 +1,263 @@
|
|||
|
||||
var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合
|
||||
var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含
|
||||
var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
|
||||
var checkType = "2";//人员选择类型,1.多选;其他。单选
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
|
||||
winui.renderColor();
|
||||
layui.use(['form', 'tagEditor'], function(form) {
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var $ = layui.$,
|
||||
laydate = layui.laydate;
|
||||
var rowNum = 1; //表格的序号
|
||||
var initemHtml = "";//收支项目
|
||||
|
||||
var usetableTemplate = $("#usetableTemplate").html();
|
||||
var selOption = getFileContent('tpl/template/select-option.tpl');
|
||||
var handsPersonList = new Array();//经手人员
|
||||
|
||||
//单据时间
|
||||
laydate.render({
|
||||
elem: '#operTime',
|
||||
type: 'datetime',
|
||||
value: getFormatDate(),
|
||||
trigger: 'click'
|
||||
});
|
||||
|
||||
initAccountHtml();
|
||||
//初始化账户
|
||||
function initAccountHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载账户数据
|
||||
$("#accountId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化往来单位
|
||||
initSupplierHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化往来单位
|
||||
function initSupplierHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "supplier010", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载往来单位数据
|
||||
$("#organId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化支出项目
|
||||
initItemHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化支出项目
|
||||
function initItemHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "inoutitem007", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载支出项目数据
|
||||
initemHtml = getDataUseHandlebars(selOption, json);
|
||||
//渲染
|
||||
form.render();
|
||||
//初始化一行数据
|
||||
addRow();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//数量变化
|
||||
$("body").on("input", ".rkMoney", function() {
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", ".rkMoney", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
function calculatedTotalPrice(){
|
||||
var rowTr = $("#useTable tr");
|
||||
var allPrice = 0;
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行坐标
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//获取金额
|
||||
var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val());
|
||||
//输出金额
|
||||
$("#initemMoney" + rowNum).html((initemMoney).toFixed(2));
|
||||
allPrice += initemMoney;
|
||||
});
|
||||
$("#allPrice").html(allPrice.toFixed(2));
|
||||
}
|
||||
|
||||
form.on('submit(formAddBean)', function(data) {
|
||||
//表单验证
|
||||
if(winui.verifyForm(data.elem)) {
|
||||
//获取数据
|
||||
var rowTr = $("#useTable tr");
|
||||
if(rowTr.length == 0) {
|
||||
winui.window.msg('请选择收入项目.', {icon: 2, time: 2000});
|
||||
return false;
|
||||
}
|
||||
var tableData = new Array();
|
||||
var noError = false; //循环遍历表格数据时,是否有其他错误信息
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行编号
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
if(inTableDataArrayByAssetarId($("#initemId" + rowNum).val(), tableData)) {
|
||||
$("#initemId" + rowNum).addClass("layui-form-danger");
|
||||
$("#initemId" + rowNum).focus();
|
||||
winui.window.msg('一张单中不允许出现相同收支项目信息.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
var row = {
|
||||
initemId: $("#initemId" + rowNum).val(),
|
||||
initemMoney: $("#initemMoney" +rowNum).val(),
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var handsPersonId = "";
|
||||
$.each(handsPersonList, function (i, item) {
|
||||
handsPersonId = item.id;
|
||||
});
|
||||
if(isNull(handsPersonId)){
|
||||
winui.window.msg('请选择经手人.', {icon: 2, time: 2000});
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
organId: $("#organId").val(),
|
||||
handsPersonId: handsPersonId,
|
||||
operTime: $("#operTime").val(),
|
||||
accountId: $("#accountId").val(),
|
||||
remark: $("#remark").val(),
|
||||
changeAmount: $("#changeAmount").val(),
|
||||
initemStr: JSON.stringify(tableData)
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "expenditure002", params: params, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
parent.layer.close(index);
|
||||
parent.refreshCode = '0';
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
//判断选中的收支项目是否也在数组中
|
||||
function inTableDataArrayByAssetarId(initemId, array) {
|
||||
var isIn = false;
|
||||
$.each(array, function(i, item) {
|
||||
if(item.initemId === initemId) {
|
||||
isIn = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return isIn;
|
||||
}
|
||||
|
||||
$('#handsPersonId').tagEditor({
|
||||
initialTags: [],
|
||||
placeholder: '请选择经手人员',
|
||||
beforeTagDelete: function(field, editor, tags, val) {
|
||||
var inArray = -1;
|
||||
$.each(handsPersonList, function(i, item) {
|
||||
if(val === item.name) {
|
||||
inArray = i;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(inArray != -1) { //如果该元素在集合中存在
|
||||
handsPersonList.splice(inArray, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//人员选择
|
||||
$("body").on("click", "#toHandsPersonSelPeople", function(e){
|
||||
userReturnList = [].concat(handsPersonList);
|
||||
_openNewWindows({
|
||||
url: "../../tpl/common/sysusersel.html",
|
||||
title: "人员选择",
|
||||
pageId: "sysuserselpage",
|
||||
area: ['80vw', '80vh'],
|
||||
callBack: function(refreshCode){
|
||||
if (refreshCode == '0') {
|
||||
//移除所有tag
|
||||
var tags = $('#handsPersonId').tagEditor('getTags')[0].tags;
|
||||
for (i = 0; i < tags.length; i++) {
|
||||
$('#handsPersonId').tagEditor('removeTag', tags[i]);
|
||||
}
|
||||
handsPersonList = [].concat(userReturnList);
|
||||
//添加新的tag
|
||||
$.each(handsPersonList, function(i, item){
|
||||
$('#handsPersonId').tagEditor('addTag', item.name);
|
||||
});
|
||||
} else if (refreshCode == '-9999') {
|
||||
winui.window.msg("操作失败", {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
});
|
||||
|
||||
//新增行
|
||||
$("body").on("click", "#addRow", function() {
|
||||
addRow();
|
||||
});
|
||||
|
||||
//删除行
|
||||
$("body").on("click", "#deleteRow", function() {
|
||||
deleteRow();
|
||||
});
|
||||
|
||||
//新增行
|
||||
function addRow() {
|
||||
var par = {
|
||||
id: "row" + rowNum.toString(), //checkbox的id
|
||||
trId: "tr" + rowNum.toString(), //行的id
|
||||
initemId: "initemId" + rowNum.toString(), //收入项目id
|
||||
initemMoney: "initemMoney" + rowNum.toString(), //金额id
|
||||
remark: "remark" + rowNum.toString() //备注id
|
||||
};
|
||||
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
|
||||
//赋值给收支项目
|
||||
$("#" + "initemId" + rowNum.toString()).html(initemHtml);
|
||||
form.render('select');
|
||||
form.render('checkbox');
|
||||
rowNum++;
|
||||
}
|
||||
|
||||
//删除行
|
||||
function deleteRow() {
|
||||
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
|
||||
if(checkRow.length > 0) {
|
||||
$.each(checkRow, function(i, item) {
|
||||
$(item).parent().parent().remove();
|
||||
});
|
||||
} else {
|
||||
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
|
||||
}
|
||||
}
|
||||
|
||||
$("body").on("click", "#cancle", function() {
|
||||
parent.layer.close(index);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,298 @@
|
|||
|
||||
var userReturnList = new Array();//选择用户返回的集合或者进行回显的集合
|
||||
var chooseOrNotMy = "1";//人员列表中是否包含自己--1.包含;其他参数不包含
|
||||
var chooseOrNotEmail = "2";//人员列表中是否必须绑定邮箱--1.必须;其他参数没必要
|
||||
var checkType = "2";//人员选择类型,1.多选;其他。单选
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
|
||||
winui.renderColor();
|
||||
layui.use(['form', 'tagEditor'], function(form) {
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var $ = layui.$,
|
||||
laydate = layui.laydate;
|
||||
var rowNum = 1; //表格的序号
|
||||
var initemHtml = "";//收支项目
|
||||
|
||||
var beanTemplate = $("#beanTemplate").html();
|
||||
var usetableTemplate = $("#usetableTemplate").html();
|
||||
var selOption = getFileContent('tpl/template/select-option.tpl');
|
||||
var handsPersonList = new Array();//经手人员
|
||||
|
||||
//加载单据数据
|
||||
var orderObject = [];
|
||||
showGrid({
|
||||
id: "showForm",
|
||||
url: reqBasePath + "expenditure003",
|
||||
params: {rowId: parent.rowId},
|
||||
pagination: false,
|
||||
template: beanTemplate,
|
||||
ajaxSendAfter:function(json){
|
||||
//单据时间
|
||||
laydate.render({
|
||||
elem: '#operTime',
|
||||
type: 'datetime',
|
||||
trigger: 'click'
|
||||
});
|
||||
orderObject = json;
|
||||
initAccountHtml();
|
||||
|
||||
var userNames = "";
|
||||
handsPersonList = json.bean.userInfo;
|
||||
$.each(handsPersonList, function (i, item) {
|
||||
userNames += item.name + ',';
|
||||
});
|
||||
//人员选择
|
||||
$('#handsPersonId').tagEditor({
|
||||
initialTags: userNames.split(','),
|
||||
placeholder: '请选择经手人员',
|
||||
beforeTagDelete: function(field, editor, tags, val) {
|
||||
var inArray = -1;
|
||||
$.each(handsPersonList, function(i, item) {
|
||||
if(val === item.name) {
|
||||
inArray = i;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(inArray != -1) { //如果该元素在集合中存在
|
||||
handsPersonList.splice(inArray, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//初始化账户
|
||||
function initAccountHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载账户数据
|
||||
$("#accountId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化往来单位
|
||||
initSupplierHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化往来单位
|
||||
function initSupplierHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "supplier010", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载往来单位数据
|
||||
$("#organId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化支出项目
|
||||
initItemHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化支出项目
|
||||
function initItemHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "inoutitem007", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载支出项目数据
|
||||
initemHtml = getDataUseHandlebars(selOption, json);
|
||||
//渲染数据到页面
|
||||
initDataToShow();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//渲染数据到页面
|
||||
function initDataToShow(){
|
||||
$("#organId").val(orderObject.bean.organId);//来往单位
|
||||
$("#accountId").val(orderObject.bean.accountId);//账户
|
||||
$("#payType").val(orderObject.bean.payType);//收款类型
|
||||
|
||||
//渲染列表项
|
||||
$.each(orderObject.bean.items, function(i, item){
|
||||
addRow();
|
||||
$("#initemId" + (rowNum - 1)).val(item.initemId);//支出项目回显
|
||||
$("#initemMoney" + (rowNum - 1)).val(item.initemMoney.toFixed(2));//金额回显
|
||||
$("#remark" + (rowNum - 1)).val(item.remark);//备注回显
|
||||
//设置标识
|
||||
$("tr[trcusid='tr" + (rowNum - 1) + "']").attr("thisid", item.id);
|
||||
});
|
||||
//渲染
|
||||
form.render();
|
||||
}
|
||||
|
||||
form.on('submit(formEditBean)', function(data) {
|
||||
//表单验证
|
||||
if(winui.verifyForm(data.elem)) {
|
||||
var rowTr = $("#useTable tr");
|
||||
if(rowTr.length == 0) {
|
||||
winui.window.msg('请选择收入项目.', {icon: 2, time: 2000});
|
||||
return false;
|
||||
}
|
||||
var tableData = new Array();
|
||||
var noError = false; //循环遍历表格数据时,是否有其他错误信息
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行编号
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
if(inTableDataArrayByAssetarId($("#initemId" + rowNum).val(), tableData)) {
|
||||
$("#initemId" + rowNum).addClass("layui-form-danger");
|
||||
$("#initemId" + rowNum).focus();
|
||||
winui.window.msg('一张单中不允许出现相同收支项目信息.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
var row = {
|
||||
initemId: $("#initemId" + rowNum).val(),
|
||||
initemMoney: $("#initemMoney" +rowNum).val(),
|
||||
rkNum: $("#rkNum" + rowNum).val(),
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var handsPersonId = "";
|
||||
$.each(handsPersonList, function (i, item) {
|
||||
handsPersonId = item.id;
|
||||
});
|
||||
if(isNull(handsPersonId)){
|
||||
winui.window.msg('请选择经手人.', {icon: 2, time: 2000});
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
rowId: parent.rowId,
|
||||
organId: $("#organId").val(),
|
||||
handsPersonId: handsPersonId,
|
||||
operTime: $("#operTime").val(),
|
||||
accountId: $("#accountId").val(),
|
||||
remark: $("#remark").val(),
|
||||
changeAmount: $("#changeAmount").val(),
|
||||
initemStr: JSON.stringify(tableData)
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "expenditure004", params: params, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
parent.layer.close(index);
|
||||
parent.refreshCode = '0';
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$("body").on("input", ".rkMoney", function() {
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", ".rkMoney", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
function calculatedTotalPrice(){
|
||||
var rowTr = $("#useTable tr");
|
||||
var allPrice = 0;
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行坐标
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//获取金额
|
||||
var initemMoney = parseFloat(isNull($("#initemMoney" + rowNum).val()) ? "0" : $("#initemMoney" + rowNum).val());
|
||||
//输出金额
|
||||
$("#initemMoney" + rowNum).html((initemMoney).toFixed(2));
|
||||
allPrice += initemMoney;
|
||||
});
|
||||
$("#allPrice").html(allPrice.toFixed(2));
|
||||
}
|
||||
|
||||
//判断选中的收支项目是否也在数组中
|
||||
function inTableDataArrayByAssetarId(initemId, array) {
|
||||
var isIn = false;
|
||||
$.each(array, function(i, item) {
|
||||
if(item.initemId === initemId) {
|
||||
isIn = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return isIn;
|
||||
}
|
||||
|
||||
//人员选择
|
||||
$("body").on("click", "#toHandsPersonSelPeople", function(e){
|
||||
userReturnList = [].concat(handsPersonList);
|
||||
_openNewWindows({
|
||||
url: "../../tpl/common/sysusersel.html",
|
||||
title: "人员选择",
|
||||
pageId: "sysuserselpage",
|
||||
area: ['80vw', '80vh'],
|
||||
callBack: function(refreshCode){
|
||||
if (refreshCode == '0') {
|
||||
//移除所有tag
|
||||
var tags = $('#handsPersonId').tagEditor('getTags')[0].tags;
|
||||
for (i = 0; i < tags.length; i++) {
|
||||
$('#handsPersonId').tagEditor('removeTag', tags[i]);
|
||||
}
|
||||
handsPersonList = [].concat(userReturnList);
|
||||
//添加新的tag
|
||||
$.each(handsPersonList, function(i, item){
|
||||
$('#handsPersonId').tagEditor('addTag', item.name);
|
||||
});
|
||||
} else if (refreshCode == '-9999') {
|
||||
winui.window.msg("操作失败", {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
});
|
||||
|
||||
//新增行
|
||||
$("body").on("click", "#addRow", function() {
|
||||
addRow();
|
||||
});
|
||||
|
||||
//删除行
|
||||
$("body").on("click", "#deleteRow", function() {
|
||||
deleteRow();
|
||||
});
|
||||
|
||||
//新增行
|
||||
function addRow() {
|
||||
var par = {
|
||||
id: "row" + rowNum.toString(), //checkbox的id
|
||||
trId: "tr" + rowNum.toString(), //行的id
|
||||
initemId: "initemId" + rowNum.toString(), //收入项目id
|
||||
initemMoney: "initemMoney" + rowNum.toString(), //金额id
|
||||
remark: "remark" + rowNum.toString() //备注id
|
||||
};
|
||||
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
|
||||
//赋值给收支项目
|
||||
$("#" + "initemId" + rowNum.toString()).html(initemHtml);
|
||||
form.render('select');
|
||||
form.render('checkbox');
|
||||
rowNum++;
|
||||
}
|
||||
|
||||
//删除行
|
||||
function deleteRow() {
|
||||
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
|
||||
if(checkRow.length > 0) {
|
||||
$.each(checkRow, function(i, item) {
|
||||
$(item).parent().parent().remove();
|
||||
});
|
||||
} else {
|
||||
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
|
||||
}
|
||||
}
|
||||
|
||||
$("body").on("click", "#cancle", function() {
|
||||
parent.layer.close(index);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'table', 'jquery', 'winui'], function (exports) {
|
||||
winui.renderColor();
|
||||
layui.use(['form'], function (form) {
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var $ = layui.$;
|
||||
|
||||
var beanTemplate = $("#beanTemplate").html();
|
||||
|
||||
showGrid({
|
||||
id: "showForm",
|
||||
url: reqBasePath + "expenditure006",
|
||||
params: {rowId: parent.rowId},
|
||||
pagination: false,
|
||||
template: beanTemplate,
|
||||
ajaxSendAfter:function(json){
|
||||
|
||||
form.render();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
|
@ -0,0 +1,172 @@
|
|||
|
||||
var rowId = "";
|
||||
|
||||
//单据的开始时间、结束时间
|
||||
var startTime = "", endTime = "";
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) {
|
||||
winui.renderColor();
|
||||
var $ = layui.$,
|
||||
form = layui.form,
|
||||
laydate = layui.laydate,
|
||||
table = layui.table;
|
||||
authBtn('1571638020191');
|
||||
|
||||
laydate.render({
|
||||
elem: '#billTime', //指定元素
|
||||
range: '~'
|
||||
});
|
||||
|
||||
//表格渲染
|
||||
table.render({
|
||||
id: 'messageTable',
|
||||
elem: '#messageTable',
|
||||
method: 'post',
|
||||
url: reqBasePath + 'expenditure001',
|
||||
where: {billNo: $("#billNo").val(), startTime: startTime, endTime: endTime},
|
||||
even: true, //隔行变色
|
||||
page: true,
|
||||
limits: [8, 16, 24, 32, 40, 48, 56],
|
||||
limit: 8,
|
||||
cols: [[
|
||||
{ title: '序号', type: 'numbers'},
|
||||
{ field: 'billNo', title: '单据编号', align: 'left', width: 200, templet: function(d){
|
||||
return '<a lay-event="details" class="notice-title-click">' + d.billNo + '</a>';
|
||||
}},
|
||||
{ field: 'supplierName', title: '往来单位', align: 'left', width: 150},
|
||||
{ field: 'totalPrice', title: '合计金额', align: 'left', width: 120},
|
||||
{ field: 'hansPersonName', title: '经手人', align: 'left', width: 100},
|
||||
{ field: 'billTime', title: '单据日期', align: 'center', width: 140 },
|
||||
{ field: 'remark', title: '备注', align: 'center', width: 140 },
|
||||
{ title: '操作', fixed: 'right', align: 'center', width: 200, toolbar: '#tableBar'}
|
||||
]]
|
||||
});
|
||||
|
||||
table.on('tool(messageTable)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
|
||||
var data = obj.data; //获得当前行数据
|
||||
var layEvent = obj.event; //获得 lay-event 对应的值
|
||||
if (layEvent === 'delete') { //删除
|
||||
deleteexpenditure(data);
|
||||
}else if (layEvent === 'details') { //详情
|
||||
details(data);
|
||||
}else if (layEvent === 'edit') { //编辑
|
||||
edit(data);
|
||||
}
|
||||
});
|
||||
|
||||
//搜索表单
|
||||
form.render();
|
||||
form.on('submit(formSearch)', function (data) {
|
||||
//表单验证
|
||||
if (winui.verifyForm(data.elem)) {
|
||||
loadTable();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
//编辑
|
||||
function edit(data){
|
||||
rowId = data.id;
|
||||
_openNewWindows({
|
||||
url: "../../tpl/expenditure/expenditureedit.html",
|
||||
title: "编辑",
|
||||
pageId: "expenditureedit",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
if (refreshCode == '0') {
|
||||
winui.window.msg("操作成功", {icon: 1,time: 2000});
|
||||
loadTable();
|
||||
} else if (refreshCode == '-9999') {
|
||||
winui.window.msg("操作失败", {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//删除
|
||||
function deleteexpenditure(data){
|
||||
layer.confirm('确认要删除信息吗?', { icon: 3, title: '删除操作' }, function (index) {
|
||||
AjaxPostUtil.request({url:reqBasePath + "expenditure005", params: {rowId: data.id}, type:'json', callback:function(json){
|
||||
if(json.returnCode == 0){
|
||||
winui.window.msg("删除成功。", {icon: 1,time: 2000});
|
||||
loadTable();
|
||||
}else{
|
||||
winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
});
|
||||
}
|
||||
|
||||
//详情
|
||||
function details(data){
|
||||
rowId = data.id;
|
||||
_openNewWindows({
|
||||
url: "../../tpl/expenditure/expenditureinfo.html",
|
||||
title: "详情",
|
||||
pageId: "expenditureinfo",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
if (refreshCode == '0') {
|
||||
winui.window.msg("操作成功", {icon: 1,time: 2000});
|
||||
loadTable();
|
||||
} else if (refreshCode == '-9999') {
|
||||
winui.window.msg("操作失败", {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//添加
|
||||
$("body").on("click", "#addBean", function(){
|
||||
_openNewWindows({
|
||||
url: "../../tpl/expenditure/expenditureadd.html",
|
||||
title: "新增",
|
||||
pageId: "expenditureadd",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
if (refreshCode == '0') {
|
||||
winui.window.msg("操作成功", {icon: 1,time: 2000});
|
||||
loadTable();
|
||||
} else if (refreshCode == '-9999') {
|
||||
winui.window.msg("操作失败", {icon: 2,time: 2000});
|
||||
}
|
||||
}});
|
||||
});
|
||||
|
||||
$("body").on("click", "#reloadTable", function() {
|
||||
loadTable();
|
||||
});
|
||||
|
||||
$("body").on("click", "#formSearch", function () {
|
||||
refreshTable();
|
||||
})
|
||||
|
||||
//刷新
|
||||
function loadTable(){
|
||||
if(isNull($("#billTime").val())){//一定要记得,当createTime为空时
|
||||
startTime = "";
|
||||
endTime = "";
|
||||
}else {
|
||||
startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00';
|
||||
endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59';
|
||||
}
|
||||
table.reload("messageTable", {where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}});
|
||||
}
|
||||
|
||||
//搜索
|
||||
function refreshTable(){
|
||||
if(isNull($("#billTime").val())){//一定要记得,当createTime为空时
|
||||
startTime = "";
|
||||
endTime = "";
|
||||
}else {
|
||||
startTime = $("#billTime").val().split('~')[0].trim() + ' 00:00:00';
|
||||
endTime = $("#billTime").val().split('~')[1].trim() + ' 23:59:59';
|
||||
}
|
||||
table.reload("messageTable", {page: {curr: 1}, where:{billNo: $("#billNo").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}})
|
||||
}
|
||||
|
||||
exports('expenditurelist', {});
|
||||
});
|
|
@ -127,7 +127,6 @@ layui.config({
|
|||
form.render();
|
||||
}
|
||||
|
||||
|
||||
form.on('submit(formEditBean)', function(data) {
|
||||
//表单验证
|
||||
if(winui.verifyForm(data.elem)) {
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin: 0 auto; padding: 20px;">
|
||||
<form class="layui-form" action="" id="showForm">
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">往来单位<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<select id="organId" lay-search win-verify="required"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">单据日期<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">列表项<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<div class="winui-toolbar">
|
||||
<div class="winui-tool" style="text-align: left;">
|
||||
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
|
||||
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
|
||||
</div>
|
||||
</div>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 30px;"></th>
|
||||
<th style="width: 120px;">支出项目</th>
|
||||
<th style="width: 80px;">金额</th>
|
||||
<th style="min-width: 100px;">备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="useTable" class="insurance-table">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款账户<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<select id="accountId" lay-search win-verify="required"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">共计金额</label>
|
||||
<div class="layui-input-block ver-center" id="allPrice">
|
||||
0.00
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款金额<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入付款金额" class="layui-input" value="0.00"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">经手人<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="handsPersonId" name="handsPersonId" placeholder="请选择经手人员" class="layui-input" style="padding-right: 30px;"/>
|
||||
<i class="fa fa-user-plus input-icon" id="toHandsPersonSelPeople"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<div class="layui-input-block">
|
||||
<button class="winui-btn" id="cancle">取消</button>
|
||||
<button class="winui-btn" lay-submit lay-filter="formAddBean">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- usetableTemplate -->
|
||||
<script type="text/x-handlebars-template" id="usetableTemplate">
|
||||
<tr trcusid="{{trId}}">
|
||||
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
|
||||
<td><select id="{{initemId}}" lay-search win-verify="required"></select></td>
|
||||
<td><input type="text" class="layui-input rkMoney" id="{{initemMoney}}" win-verify="required|money"/></td>
|
||||
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
|
||||
</tr>
|
||||
</script>
|
||||
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/expenditure/'}).use('expenditureadd');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,111 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin: 0 auto; padding: 20px;">
|
||||
<!-- beanTemplate -->
|
||||
<script type="text/x-handlebars-template" id="beanTemplate">
|
||||
{{#bean}}
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">往来单位<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<select id="organId" lay-search win-verify="required"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">单据日期<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input" value="{{billTime}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">列表项<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<div class="winui-toolbar">
|
||||
<div class="winui-tool" style="text-align: left;">
|
||||
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
|
||||
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
|
||||
</div>
|
||||
</div>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 30px;"></th>
|
||||
<th style="width: 120px;">支出项目</th>
|
||||
<th style="width: 80px;">金额</th>
|
||||
<th style="min-width: 100px;">备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="useTable" class="insurance-table">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款账户</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="accountId" lay-search></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">共计金额</label>
|
||||
<div class="layui-input-block ver-center" id="allPrice">
|
||||
{{totalPrice}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款金额</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入付款金额" class="layui-input" value="{{changeAmount}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">经手人<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="handsPersonId" name="handsPersonId" placeholder="请选择经手人员" class="layui-input" style="padding-right: 30px;"/>
|
||||
<i class="fa fa-user-plus input-icon" id="toHandsPersonSelPeople"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200">{{remark}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<div class="layui-input-block">
|
||||
<button class="winui-btn" id="cancle">取消</button>
|
||||
<button class="winui-btn" lay-submit lay-filter="formEditBean">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/bean}}
|
||||
</script>
|
||||
|
||||
<form class="layui-form" action="" id="showForm">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- usetableTemplate -->
|
||||
<script type="text/x-handlebars-template" id="usetableTemplate">
|
||||
<tr trcusid="{{trId}}">
|
||||
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
|
||||
<td><select id="{{initemId}}" lay-search win-verify="required"></select></td>
|
||||
<td><input type="text" class="layui-input rkMoney" id="{{initemMoney}}" win-verify="required|money"/></td>
|
||||
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
|
||||
</tr>
|
||||
</script>
|
||||
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/expenditure/'}).use('expenditureedit');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,99 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="padding:20px; margin:0 auto;">
|
||||
<form class="layui-form" action="" id="showForm">
|
||||
|
||||
</form>
|
||||
|
||||
<script type="text/x-handlebars-template" id="beanTemplate">
|
||||
{{#bean}}
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">来往单位:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{supplierName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">单据日期:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{operTime}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">单据编号:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{billNo}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">列表项:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 120px;">支出项目</th>
|
||||
<th style="width: 80px;">金额</th>
|
||||
<th style="min-width: 100px;">备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="useTable" class="insurance-table">
|
||||
{{#each items}}
|
||||
<tr>
|
||||
<td>{{inoutitemName}}</td>
|
||||
<td>{{eachAmount}}</td>
|
||||
<td>{{remark}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款账户:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{accountName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">共计金额:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{totalPrice}}元
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">付款金额:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{changeAmount}}元
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">经手人:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{hansPersonName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">备注:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{remark}}
|
||||
</div>
|
||||
</div>
|
||||
{{/bean}}
|
||||
</script>
|
||||
|
||||
</div>
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/expenditure/'}).use('expenditureinfo');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title></title>
|
||||
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
|
||||
<form class="layui-form layui-form-pane" action="" autocomplete="off">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">单据编号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="billNo" name="billNo" placeholder="请输入单据编号" class="layui-input" />
|
||||
</div>
|
||||
<label class="layui-form-label">单据日期</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="billTime" name="billTime" placeholder="请选择单据日期" class="layui-input" />
|
||||
</div>
|
||||
<button type="reset" class="layui-btn layui-btn-primary list-form-search">重置</button>
|
||||
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="winui-toolbar">
|
||||
<div class="winui-tool">
|
||||
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
|
||||
<button id="addBean" class="winui-toolbtn" auth="1571638020191"><i class="fa fa-plus" aria-hidden="true"></i>新增</button>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin:auto 10px;">
|
||||
<table id="messageTable" lay-filter="messageTable"></table>
|
||||
|
||||
<script type="text/html" id="tableBar">
|
||||
{{# if(auth('1571638030608')){ }}
|
||||
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
||||
{{# } }}
|
||||
{{# if(auth('1571638039187')){ }}
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/expenditure/'}).use('expenditurelist');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -58,9 +58,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">实收金额<i class="red">*</i></label>
|
||||
<label class="layui-form-label">收款金额<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入实收金额" class="layui-input" value="0.00"/>
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入收款金额" class="layui-input" value="0.00"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
|
|
|
@ -60,9 +60,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">实收金额</label>
|
||||
<label class="layui-form-label">收款金额</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入实收金额" class="layui-input" value="{{changeAmount}}"/>
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" placeholder="请输入收款金额" class="layui-input" value="{{changeAmount}}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">实收金额:</label>
|
||||
<label class="layui-form-label">收款金额:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{changeAmount}}元
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue