mirror of
https://github.com/weizhiqiang1995/erp-pro.git
synced 2025-02-22 14:33:02 +08:00
零售出库完成
This commit is contained in:
parent
34d8f45c4b
commit
6ceb8320ba
24 changed files with 2065 additions and 9 deletions
|
@ -114,4 +114,17 @@ public class MemberController {
|
|||
public void queryMemberByIdAndInfo(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
memberService.queryMemberByIdAndInfo(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员列表信息展示为下拉框
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/MemberController/queryMemberListToSelect")
|
||||
@ResponseBody
|
||||
public void queryMemberListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
memberService.queryMemberListToSelect(inputObject, outputObject);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
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.RetailOutLetService;
|
||||
|
||||
/**
|
||||
* @Author 卫志强
|
||||
* @Description 零售出库
|
||||
* @Date 2019/10/16 15:32
|
||||
*/
|
||||
@Controller
|
||||
public class RetailOutLetController {
|
||||
|
||||
@Autowired
|
||||
private RetailOutLetService retailOutLetService;
|
||||
|
||||
/**
|
||||
* 获取零售出库列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/RetailOutLetController/queryRetailOutLetToList")
|
||||
@ResponseBody
|
||||
public void queryRetailOutLetToList(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
retailOutLetService.queryRetailOutLetToList(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增零售出库信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/RetailOutLetController/insertRetailOutLetMation")
|
||||
@ResponseBody
|
||||
public void insertRetailOutLetMation(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
retailOutLetService.insertRetailOutLetMation(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑零售出库信息时进行回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/RetailOutLetController/queryRetailOutLetMationToEditById")
|
||||
@ResponseBody
|
||||
public void queryRetailOutLetMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
retailOutLetService.queryRetailOutLetMationToEditById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑零售出库信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/RetailOutLetController/editRetailOutLetMationById")
|
||||
@ResponseBody
|
||||
public void editRetailOutLetMationById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
retailOutLetService.editRetailOutLetMationById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
}
|
|
@ -33,4 +33,6 @@ public interface MemberDao {
|
|||
public Map<String, Object> queryMemberByEnabled(Map<String, Object> params) throws Exception;
|
||||
|
||||
public Map<String, Object> queryMemberByIdAndInfo(Map<String, Object> params) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryMemberListToSelect(Map<String, Object> params) throws Exception;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package com.skyeye.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||
|
||||
public interface RetailOutLetDao {
|
||||
|
||||
public List<Map<String, Object>> queryRetailOutLetToList(Map<String, Object> params, PageBounds pageBounds) throws Exception;
|
||||
|
||||
public Map<String, Object> queryMaterialsById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int insertRetailOutLetMation(Map<String, Object> depothead) throws Exception;
|
||||
|
||||
public int insertRetailOutLetChildMation(List<Map<String, Object>> entitys) throws Exception;
|
||||
|
||||
public Map<String, Object> queryRetailOutLetMationToEditById(Map<String, Object> map) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> queryRetailOutLetItemMationToEditById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int deleteRetailOutLetChildMation(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int editRetailOutLetMationById(Map<String, Object> depothead) throws Exception;
|
||||
|
||||
}
|
|
@ -25,7 +25,7 @@ public class ErpConstants {
|
|||
OUT_IS_SALES_OUTLET("销售出库", "XSCK", "5"),
|
||||
OUT_IS_PURCHASE_RETURNS("采购退货", "CGTH", "6"),
|
||||
OUT_IS_ALLOCATION("调拨", "DBCK", "7"),
|
||||
OUT_IS_RETAIL("零售", "LSCK", "8"),
|
||||
OUT_IS_RETAIL("零售出库", "LSCK", "8"),
|
||||
OUT_IS_OTHERS("其他出库", "QTCK", "9"),
|
||||
//采购单
|
||||
PURCHASE_ORDER("采购订单", "CGDD", "10"),
|
||||
|
|
|
@ -24,4 +24,6 @@ public interface MemberService {
|
|||
public void editMemberByNotEnabled(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryMemberByIdAndInfo(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryMemberListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package com.skyeye.service;
|
||||
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
|
||||
public interface RetailOutLetService {
|
||||
|
||||
public void queryRetailOutLetToList(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void insertRetailOutLetMation(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void queryRetailOutLetMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void editRetailOutLetMationById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
}
|
|
@ -180,4 +180,19 @@ public class MemberServiceImpl implements MemberService {
|
|||
outputObject.setBean(bean);
|
||||
outputObject.settotal(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员列表信息展示为下拉框
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryMemberListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
List<Map<String, Object>> beans = memberDao.queryMemberListToSelect(params);
|
||||
outputObject.setBeans(beans);
|
||||
outputObject.settotal(beans.size());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,222 @@
|
|||
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.RetailOutLetDao;
|
||||
import com.skyeye.erp.util.ErpConstants;
|
||||
import com.skyeye.erp.util.ErpOrderNum;
|
||||
import com.skyeye.service.RetailOutLetService;
|
||||
|
||||
import net.sf.json.JSONArray;
|
||||
|
||||
@Service
|
||||
public class RetailOutLetServiceImpl implements RetailOutLetService{
|
||||
|
||||
@Autowired
|
||||
private RetailOutLetDao retailOutLetDao;
|
||||
|
||||
/**
|
||||
* 获取零售出库列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryRetailOutLetToList(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
List<Map<String, Object>> beans = retailOutLetDao.queryRetailOutLetToList(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 insertRetailOutLetMation(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> map = inputObject.getParams();
|
||||
String depotheadStr = map.get("depotheadStr").toString();//零售产品列表
|
||||
if(ToolUtil.isJson(depotheadStr)){
|
||||
String useId = ToolUtil.getSurFaceId();//单据主表id
|
||||
String userId = inputObject.getLogParams().get("id").toString();
|
||||
//处理数据
|
||||
JSONArray jArray = JSONArray.fromObject(depotheadStr);
|
||||
//产品中间转换对象,单据子表存储对象
|
||||
Map<String, Object> bean, entity;
|
||||
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);
|
||||
entity = retailOutLetDao.queryMaterialsById(bean);
|
||||
if(entity != null && !entity.isEmpty()){
|
||||
//获取单价
|
||||
itemAllPrice = new BigDecimal(bean.get("estimateSalePrice").toString());
|
||||
entity.put("id", ToolUtil.getSurFaceId());
|
||||
entity.put("headerId", useId);//单据主表id
|
||||
entity.put("operNumber", bean.get("rkNum"));//数量
|
||||
//计算子单总价:单价*数量
|
||||
itemAllPrice = itemAllPrice.multiply(new BigDecimal(bean.get("rkNum").toString()));
|
||||
entity.put("allPrice", itemAllPrice);//单据子表总价
|
||||
entity.put("estimateSalePrice", bean.get("estimateSalePrice"));//单价
|
||||
entity.put("remark", bean.get("remark"));//备注
|
||||
entity.put("depotId", bean.get("depotId"));//仓库
|
||||
entity.put("mType", 0);//商品类型 0.普通 1.组合件 2.普通子件
|
||||
entity.put("userId", userId);
|
||||
entity.put("deleteFlag", 0);//删除标记,0未删除,1删除
|
||||
entitys.add(entity);
|
||||
//计算主单总价
|
||||
allPrice = allPrice.add(itemAllPrice);
|
||||
}
|
||||
}
|
||||
if(entitys.size() == 0){
|
||||
outputObject.setreturnMessage("请选择产品");
|
||||
return;
|
||||
}
|
||||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_RETAIL.getNum());//零售出库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_RETAIL.getNum());
|
||||
depothead.put("defaultNumber", orderNum);//初始票据号
|
||||
depothead.put("number", orderNum);//票据号
|
||||
depothead.put("operPersonId", userId);//操作员id
|
||||
depothead.put("operPersonName", inputObject.getLogParams().get("userName"));//操作员名字
|
||||
depothead.put("createTime", ToolUtil.getTimeAndToString());//创建时间
|
||||
depothead.put("operTime", map.get("operTime"));//零售出库时间即单据日期
|
||||
depothead.put("organId", map.get("supplierId"));//会员Id
|
||||
depothead.put("accountId", map.get("accountId"));//账户Id
|
||||
depothead.put("remark", map.get("remark"));//备注
|
||||
depothead.put("payType", map.get("payType"));//付款类型
|
||||
depothead.put("changeAmount", map.get("changeAmount"));//本次付款金额
|
||||
depothead.put("totalPrice", allPrice);//合计金额
|
||||
depothead.put("giveChange", map.get("giveChange"));//找零金额
|
||||
depothead.put("status", "2");//状态,0未审核、1.审核中、2.审核通过、3.审核拒绝、4.已转采购|销售
|
||||
depothead.put("userId", userId);
|
||||
depothead.put("deleteFlag", 0);//删除标记,0未删除,1删除
|
||||
retailOutLetDao.insertRetailOutLetMation(depothead);
|
||||
retailOutLetDao.insertRetailOutLetChildMation(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑零售出库信息时进行回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void queryRetailOutLetMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> map = inputObject.getParams();
|
||||
map.put("userId", inputObject.getLogParams().get("id"));
|
||||
//获取主表信息
|
||||
Map<String, Object> bean = retailOutLetDao.queryRetailOutLetMationToEditById(map);
|
||||
if(bean != null && !bean.isEmpty()){
|
||||
//获取子表信息
|
||||
List<Map<String, Object>> norms = retailOutLetDao.queryRetailOutLetItemMationToEditById(bean);
|
||||
bean.put("items", norms);
|
||||
outputObject.setBean(bean);
|
||||
outputObject.settotal(1);
|
||||
}else{
|
||||
outputObject.setreturnMessage("该数据已不存在.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑零售出库信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
@Transactional(value="transactionManager")
|
||||
public void editRetailOutLetMationById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> map = inputObject.getParams();
|
||||
String depotheadStr = map.get("depotheadStr").toString();//零售产品列表
|
||||
if(ToolUtil.isJson(depotheadStr)){
|
||||
String useId = map.get("id").toString();//单据主表id
|
||||
String userId = inputObject.getLogParams().get("id").toString();
|
||||
//处理数据
|
||||
JSONArray jArray = JSONArray.fromObject(depotheadStr);
|
||||
//产品中间转换对象,单据子表存储对象
|
||||
Map<String, Object> bean, entity;
|
||||
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);
|
||||
entity = retailOutLetDao.queryMaterialsById(bean);
|
||||
if(entity != null && !entity.isEmpty()){
|
||||
//获取单价
|
||||
itemAllPrice = new BigDecimal(bean.get("estimateSalePrice").toString());
|
||||
entity.put("id", ToolUtil.getSurFaceId());
|
||||
entity.put("headerId", useId);//单据主表id
|
||||
entity.put("operNumber", bean.get("rkNum"));//数量
|
||||
//计算子单总价:单价*数量
|
||||
itemAllPrice = itemAllPrice.multiply(new BigDecimal(bean.get("rkNum").toString()));
|
||||
entity.put("allPrice", itemAllPrice);//单据子表总价
|
||||
entity.put("estimateSalePrice", bean.get("estimateSalePrice"));//单价
|
||||
entity.put("remark", bean.get("remark"));//备注
|
||||
entity.put("depotId", bean.get("depotId"));//仓库
|
||||
entity.put("mType", 0);//商品类型 0.普通 1.组合件 2.普通子件
|
||||
entity.put("userId", userId);
|
||||
entity.put("deleteFlag", 0);//删除标记,0未删除,1删除
|
||||
entitys.add(entity);
|
||||
//计算主单总价
|
||||
allPrice = allPrice.add(itemAllPrice);
|
||||
}
|
||||
}
|
||||
if(entitys.size() == 0){
|
||||
outputObject.setreturnMessage("请选择产品");
|
||||
return;
|
||||
}
|
||||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("operTime", map.get("operTime"));//零售出库时间即单据日期
|
||||
depothead.put("organId", map.get("supplierId"));//会员Id
|
||||
depothead.put("accountId", map.get("accountId"));//账户Id
|
||||
depothead.put("remark", map.get("remark"));//备注
|
||||
depothead.put("payType", map.get("payType"));//付款类型
|
||||
depothead.put("changeAmount", map.get("changeAmount"));//本次付款金额
|
||||
depothead.put("totalPrice", allPrice);//合计金额
|
||||
depothead.put("giveChange", map.get("giveChange"));//找零金额
|
||||
depothead.put("userId", userId);
|
||||
//删除之前绑定的产品
|
||||
retailOutLetDao.deleteRetailOutLetChildMation(map);
|
||||
//重新添加
|
||||
retailOutLetDao.editRetailOutLetMationById(depothead);
|
||||
retailOutLetDao.insertRetailOutLetChildMation(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -118,7 +118,7 @@ public class SalesOutLetServiceImpl implements SalesOutLetService{
|
|||
depothead.put("operPersonName", inputObject.getLogParams().get("userName"));//操作员名字
|
||||
depothead.put("createTime", ToolUtil.getTimeAndToString());//创建时间
|
||||
depothead.put("operTime", map.get("operTime"));//销售出库时间即单据日期
|
||||
depothead.put("organId", map.get("supplierId"));//供应商Id
|
||||
depothead.put("organId", map.get("supplierId"));//客户Id
|
||||
depothead.put("accountId", map.get("accountId"));//账户Id
|
||||
depothead.put("remark", map.get("remark"));//备注
|
||||
depothead.put("payType", map.get("payType"));//付款类型
|
||||
|
@ -238,7 +238,7 @@ public class SalesOutLetServiceImpl implements SalesOutLetService{
|
|||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("operTime", map.get("operTime"));//销售出库时间即单据日期
|
||||
depothead.put("organId", map.get("supplierId"));//供应商Id
|
||||
depothead.put("organId", map.get("supplierId"));//客户Id
|
||||
depothead.put("accountId", map.get("accountId"));//账户Id
|
||||
depothead.put("remark", map.get("remark"));//备注
|
||||
depothead.put("payType", map.get("payType"));//付款类型
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
a.status_content statusContent,
|
||||
a.link_number linkNumber,
|
||||
FORMAT(a.change_amount, 2) changeAmount,
|
||||
FORMAT(a.give_change, 2) giveChange,
|
||||
FORMAT(a.discount, 2) discount,
|
||||
FORMAT(a.discount_money, 2) discountMoney,
|
||||
FORMAT(a.discount_last_money, 2) discountLastMoney,
|
||||
|
|
|
@ -274,4 +274,17 @@
|
|||
AND s.type = 3
|
||||
ORDER BY s.id DESC LIMIT 0,1
|
||||
</select>
|
||||
|
||||
<select id="queryMemberListToSelect" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.supplier `name`
|
||||
FROM
|
||||
erp_supplier a
|
||||
WHERE
|
||||
a.tenant_id = #{userId}
|
||||
AND a.delete_flag = '0'
|
||||
AND a.type = '3'
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,159 @@
|
|||
<?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.RetailOutLetDao">
|
||||
|
||||
<select id="queryRetailOutLetToList" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.default_number defaultNumber,
|
||||
CONVERT (a.oper_time, char) operTime,
|
||||
a.oper_person_name operPersonName,
|
||||
b.supplier supplierName,
|
||||
FORMAT(a.total_price, 2) totalPrice,
|
||||
a.status,
|
||||
GROUP_CONCAT(DISTINCT CONCAT(c.material_name, c.material_model) SEPARATOR ',') materialNames,
|
||||
a.link_number linkNumber,
|
||||
FORMAT(a.change_amount, 2) changeAmount
|
||||
FROM
|
||||
erp_depothead a
|
||||
LEFT JOIN erp_supplier b ON a.organ_id = b.id
|
||||
LEFT JOIN erp_depotitem c ON c.header_id = a.id
|
||||
WHERE
|
||||
a.sub_type = '8'
|
||||
AND a.tenant_id = #{userId}
|
||||
AND a.delete_flag = '0'
|
||||
<if test="material != '' and material != null">
|
||||
AND c.material_name LIKE '%${material}%'
|
||||
</if>
|
||||
<if test="defaultNumber != '' and defaultNumber != null">
|
||||
AND a.default_number LIKE '%${defaultNumber}%'
|
||||
</if>
|
||||
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
|
||||
AND a.oper_time >= #{startTime} AND #{endTime} >= a.oper_time
|
||||
</if>
|
||||
GROUP BY a.id
|
||||
ORDER BY a.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="queryMaterialsById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id materialId,
|
||||
a.`name` materialName,
|
||||
a.model materialModel,
|
||||
b.id mUnitId,
|
||||
IFNULL(c.`name`, a.unit_name) unitName,
|
||||
IFNULL(c.number, '1') baseNumber,
|
||||
#{depotId} depotId
|
||||
FROM
|
||||
erp_material a,
|
||||
erp_material_norms b
|
||||
LEFT JOIN erp_unit c ON b.unit_id = c.id
|
||||
WHERE
|
||||
a.id = b.meterial_id
|
||||
AND b.id = #{mUnitId}
|
||||
AND a.id = b.meterial_id
|
||||
AND a.delete_flag = '0'
|
||||
AND b.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
<insert id="insertRetailOutLetMation" parameterType="java.util.Map">
|
||||
INSERT into erp_depothead
|
||||
(id, `type`, sub_type, default_number, number, oper_person_id, oper_person_name, create_time, oper_time, organ_id, account_id, total_price,
|
||||
pay_type, remark, status, tenant_id, delete_flag,
|
||||
change_amount, give_change)
|
||||
VALUES(#{id}, #{type}, #{subType}, #{defaultNumber}, #{number}, #{operPersonId}, #{operPersonName}, #{createTime}, #{operTime}, #{organId}, #{accountId}, #{totalPrice},
|
||||
#{payType}, #{remark}, #{status}, #{userId}, #{deleteFlag},
|
||||
#{changeAmount}, #{giveChange})
|
||||
</insert>
|
||||
|
||||
<insert id="insertRetailOutLetChildMation" parameterType="java.util.Map">
|
||||
INSERT INTO erp_depotitem
|
||||
(id, header_id, material_id, material_name, material_model, m_unit_id, oper_number, basic_number, unit_price, all_price, remark, depot_id,
|
||||
m_type, tenant_id, delete_flag)
|
||||
values
|
||||
<foreach collection="list" item="item" index="index" separator="," >
|
||||
(#{item.id}, #{item.headerId}, #{item.materialId}, #{item.materialName}, #{item.materialModel}, #{item.mUnitId}, #{item.operNumber}, #{item.baseNumber}, #{item.estimateSalePrice}, #{item.allPrice}, #{item.remark}, #{item.depotId},
|
||||
#{item.mType}, #{item.userId}, #{item.deleteFlag})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="queryRetailOutLetMationToEditById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.default_number defaultNumber,
|
||||
CONVERT (a.oper_time, CHAR) operTime,
|
||||
a.organ_id organId,
|
||||
a.account_id accountId,
|
||||
CONVERT(a.total_price, decimal(24, 2)) totalPrice,
|
||||
a.pay_type payType,
|
||||
a.remark,
|
||||
CONVERT(a.change_amount, decimal(24, 2)) changeAmount,
|
||||
a.link_number linkNumber,
|
||||
a.give_change giveChange
|
||||
FROM
|
||||
erp_depothead a
|
||||
WHERE a.id = #{id}
|
||||
AND a.tenant_id = #{userId}
|
||||
AND a.delete_flag = '0'
|
||||
AND a.sub_type = '8'
|
||||
</select>
|
||||
|
||||
<select id="queryRetailOutLetItemMationToEditById" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
SELECT
|
||||
a.id,
|
||||
a.material_id materialId,
|
||||
a.oper_number operNumber,
|
||||
a.m_unit_id mUnitId,
|
||||
CONVERT(a.unit_price, decimal(24, 2)) unitPrice,
|
||||
CONVERT(a.all_price, decimal(24, 2)) allPrice,
|
||||
a.remark,
|
||||
a.depot_id depotId,
|
||||
IFNULL(SUM(b.oper_number * (CASE c.sub_type
|
||||
WHEN 10 THEN 0
|
||||
WHEN 11 THEN 0
|
||||
ELSE CASE c.type WHEN 2 THEN 1 ELSE -1 END
|
||||
END)), 0) currentTock
|
||||
FROM
|
||||
erp_depotitem a
|
||||
LEFT JOIN erp_depotitem b ON b.depot_id = a.depot_id AND b.m_unit_id = a.m_unit_id AND b.header_id != a.header_id
|
||||
LEFT JOIN erp_depothead c ON c.id = b.header_id
|
||||
WHERE
|
||||
a.header_id = #{id}
|
||||
AND a.delete_flag = '0'
|
||||
GROUP BY a.id
|
||||
</select>
|
||||
|
||||
<delete id="deleteRetailOutLetChildMation" parameterType="java.util.Map">
|
||||
DELETE
|
||||
FROM
|
||||
erp_depotitem
|
||||
WHERE
|
||||
header_id = #{id}
|
||||
</delete>
|
||||
|
||||
<update id="editRetailOutLetMationById" parameterType="java.util.Map">
|
||||
UPDATE erp_depothead
|
||||
<set>
|
||||
<if test="operTime != '' and operTime != null">
|
||||
oper_time = #{operTime},
|
||||
</if>
|
||||
<if test="organId != '' and organId != null">
|
||||
organ_id = #{organId},
|
||||
</if>
|
||||
account_id = #{accountId},
|
||||
remark = #{remark},
|
||||
<if test="payType != '' and payType != null">
|
||||
pay_type = #{payType},
|
||||
</if>
|
||||
<if test="totalPrice != '' and totalPrice != null">
|
||||
total_price = #{totalPrice},
|
||||
</if>
|
||||
change_amount = #{changeAmount},
|
||||
give_change = #{giveChange},
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
AND tenant_id = #{userId}
|
||||
AND sub_type = '8'
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -491,6 +491,41 @@
|
|||
</url>
|
||||
<!-- 销售管理结束 -->
|
||||
|
||||
<!-- 零售管理开始 -->
|
||||
<url id="retailoutlet001" path="/post/RetailOutLetController/queryRetailOutLetToList" val="获取零售出库列表信息" allUse="2">
|
||||
<property id="defaultNumber" name="defaultNumber" ref="" var="票据单号" />
|
||||
<property id="material" name="material" 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="retailoutlet002" path="/post/RetailOutLetController/insertRetailOutLetMation" val="新增零售出库信息" allUse="2">
|
||||
<property id="supplierId" name="supplierId" ref="required" var="会员" />
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期" />
|
||||
<property id="accountId" name="accountId" ref="" var="账户" />
|
||||
<property id="payType" name="payType" ref="required,num" var="付款类型" />
|
||||
<property id="remark" name="remark" ref="" var="备注" />
|
||||
<property id="changeAmount" name="changeAmount" ref="required,double" var="本次付款,默认为0.00" />
|
||||
<property id="giveChange" name="giveChange" ref="required" var="找零金额" />
|
||||
<property id="depotheadStr" name="depotheadStr" ref="required" var="产品列表" />
|
||||
</url>
|
||||
<url id="retailoutlet003" path="/post/RetailOutLetController/queryRetailOutLetMationToEditById" val="编辑零售出库信息时进行回显" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="零售出库id" />
|
||||
</url>
|
||||
<url id="retailoutlet004" path="/post/RetailOutLetController/editRetailOutLetMationById" val="编辑零售出库信息" allUse="2">
|
||||
<property id="supplierId" name="supplierId" ref="required" var="会员" />
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期" />
|
||||
<property id="accountId" name="accountId" ref="" var="账户" />
|
||||
<property id="payType" name="payType" ref="required,num" var="付款类型" />
|
||||
<property id="remark" name="remark" ref="" var="备注" />
|
||||
<property id="changeAmount" name="changeAmount" ref="required,double" var="本次付款,默认为0.00" />
|
||||
<property id="giveChange" name="giveChange" ref="required" var="找零金额" />
|
||||
<property id="depotheadStr" name="depotheadStr" ref="required" var="产品列表" />
|
||||
<property id="rowId" name="id" ref="required" var="零售出库id" />
|
||||
</url>
|
||||
<!-- 零售管理结束 -->
|
||||
|
||||
<!-- 统计开始 -->
|
||||
<url id="statistics001" path="/post/StatisticsController/queryWarehousingDetails" val="入库明细" allUse="1">
|
||||
<property id="materialName" name="materialName" ref="" var="产品名称" />
|
||||
|
|
|
@ -245,6 +245,8 @@
|
|||
<url id="member008" path="/post/MemberController/queryMemberByIdAndInfo" val="查看会员详情" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="会员ID"></property>
|
||||
</url>
|
||||
<url id="member009" path="/post/MemberController/queryMemberListToSelect" val="获取会员列表信息展示为下拉框" allUse="2">
|
||||
</url>
|
||||
<!-- 会员信息管理结束 -->
|
||||
|
||||
<!-- 收支项目管理开始 -->
|
||||
|
|
|
@ -0,0 +1,405 @@
|
|||
var material = new Array(); //产品集合
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
|
||||
winui.renderColor();
|
||||
layui.use(['form'], function(form) {
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var $ = layui.$,
|
||||
laydate = layui.laydate;
|
||||
var enclosureInfo = ""; //附件id
|
||||
var rowNum = 1; //表格的序号
|
||||
var depotHtml = "", materialHtml = "";//仓库
|
||||
var tockObject = new Array();//根据仓库和规格id查询出来的对应库存信息
|
||||
|
||||
var usetableTemplate = $("#usetableTemplate").html();
|
||||
var selOption = getFileContent('tpl/template/select-option.tpl');
|
||||
|
||||
//单据时间
|
||||
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 + "member009", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载会员数据
|
||||
$("#supplierId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化仓库
|
||||
initDepotHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化仓库
|
||||
function initDepotHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载仓库数据
|
||||
depotHtml = getDataUseHandlebars(selOption, json);
|
||||
//初始化产品
|
||||
initMaterialHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化产品
|
||||
function initMaterialHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "material010", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
material = json.rows;
|
||||
//加载产品数据
|
||||
materialHtml = getDataUseHandlebars(selOption, json);
|
||||
//渲染
|
||||
form.render();
|
||||
//初始化一行数据
|
||||
addRow();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//仓库加载变化事件
|
||||
form.on('select(selectDepotProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("depotId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
});
|
||||
|
||||
//产品加载变化事件
|
||||
form.on('select(selectMaterialProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("materialId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
|
||||
$.each(material, function(i, item) {
|
||||
if(thisRowValue == item.id){
|
||||
$("#unitId" + thisRowNum).html(getDataUseHandlebars(selOption, {rows: item.unitList}));
|
||||
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
|
||||
//设置默认选中
|
||||
if(item.unit == 2){//多单位
|
||||
$.each(item.unitList, function(j, bean) {
|
||||
if(item.firstInUnit == bean.unitId){
|
||||
$("#unitId" + thisRowNum).val(bean.id);
|
||||
$("#unitPrice" + thisRowNum).val(bean.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}else{//不是多单位
|
||||
var firstItem = item.unitList[0];
|
||||
$("#unitId" + thisRowNum).val(firstItem.id);
|
||||
$("#unitPrice" + thisRowNum).val(firstItem.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(firstItem.estimatePurchasePrice)).toFixed(2));//金额
|
||||
}
|
||||
form.render('select');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#unitId" + thisRowNum).html(""); //重置规格为空
|
||||
form.render('select');
|
||||
}
|
||||
//加载库存
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//产品规格加载变化事件
|
||||
form.on('select(selectUnitProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("unitId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
//当前选中的产品id
|
||||
var chooseMaterialId = $("#materialId" + thisRowNum).val();
|
||||
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
|
||||
$.each(material, function(i, item) {
|
||||
if(chooseMaterialId == item.id){//获取产品
|
||||
$.each(item.unitList, function(j, bean) {
|
||||
if(thisRowValue == bean.id){//获取规格
|
||||
//获取当前行数量
|
||||
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
|
||||
$("#unitPrice" + thisRowNum).val(bean.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#unitPrice" + thisRowNum).val("0.00");//重置单价为空
|
||||
$("#amountOfMoney" + thisRowNum).val("0.00");//重置金额为空
|
||||
}
|
||||
//加载库存
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
/**
|
||||
* 根据仓库和规格加载库存
|
||||
* @param rowNum 表格行坐标
|
||||
*/
|
||||
function loadTockByDepotAndMUnit(rowNum){
|
||||
//获取当前选中的仓库
|
||||
var chooseDepotId = $("#depotId" + rowNum).val();
|
||||
//获取当前选中的规格
|
||||
var chooseUnitId = $("#unitId" + rowNum).val();
|
||||
//当两个都不为空时
|
||||
if(!isNull(chooseDepotId) && !isNull(chooseUnitId)){
|
||||
var inTockObject = -1;
|
||||
$.each(tockObject, function(i, item){
|
||||
if(item.depotId == chooseDepotId && item.unitId == chooseUnitId){
|
||||
inTockObject = i;
|
||||
$("#currentTock" + rowNum).html(item.currentTock);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
//如果数组中不包含对应的库存
|
||||
if(inTockObject < 0){
|
||||
//获取库存
|
||||
AjaxPostUtil.request({url: reqBasePath + "material011", params: {depotId: chooseDepotId, mUnitId: chooseUnitId}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
var currentTock = 0;
|
||||
if(!isNull(json.bean)){
|
||||
currentTock = json.bean.currentTock;
|
||||
}
|
||||
tockObject.push({
|
||||
depotId: chooseDepotId,
|
||||
unitId: chooseUnitId,
|
||||
currentTock: currentTock
|
||||
});
|
||||
$("#currentTock" + rowNum).html(currentTock);
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
}else{
|
||||
//否则重置库存为空
|
||||
$("#currentTock" + rowNum).html("");
|
||||
}
|
||||
}
|
||||
|
||||
var showTdByEdit = 'rkNum';//根据那一列的值进行变化,默认根据数量
|
||||
//数量变化
|
||||
$("body").on("input", ".rkNum, .unitPrice, .amountOfMoney", function() {
|
||||
if($(this).attr("class").replace("layui-input change-input ", "") != showTdByEdit){
|
||||
showTdByEdit = $(this).attr("class").replace("layui-input change-input ", "");
|
||||
$(".change-input").parent().removeAttr("style");
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", ".rkNum, .unitPrice, .amountOfMoney", function() {
|
||||
if($(this).attr("class").replace("layui-input change-input ", "") != showTdByEdit){
|
||||
showTdByEdit = $(this).attr("class").replace("layui-input change-input ", "");
|
||||
$(".change-input").parent().removeAttr("style");
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//收款金额变化
|
||||
$("body").on("input", "#changeAmount", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", "#changeAmount", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
function calculatedTotalPrice(){
|
||||
var rowTr = $("#useTable tr");
|
||||
var allPrice = 0;
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行坐标
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//获取数量
|
||||
var rkNum = parseInt(isNull($("#rkNum" + rowNum).val()) ? "0" : $("#rkNum" + rowNum).val());
|
||||
//获取单价
|
||||
var unitPrice = parseFloat(isNull($("#unitPrice" + rowNum).val()) ? "0" : $("#unitPrice" + rowNum).val());
|
||||
//获取单价
|
||||
var amountOfMoney = parseFloat(isNull($("#amountOfMoney" + rowNum).val()) ? "0" : $("#amountOfMoney" + rowNum).val());
|
||||
if("rkNum" === showTdByEdit){//数量
|
||||
//输出金额
|
||||
$("#amountOfMoney" + rowNum).val((rkNum * unitPrice).toFixed(2));
|
||||
}else if("unitPrice" === showTdByEdit){//单价
|
||||
//输出金额
|
||||
$("#amountOfMoney" + rowNum).val((rkNum * unitPrice).toFixed(2));
|
||||
}else if("amountOfMoney" === showTdByEdit){//金额
|
||||
//输出单价
|
||||
$("#unitPrice" + rowNum).val((amountOfMoney / rkNum).toFixed(2));
|
||||
}
|
||||
allPrice += parseFloat($("#amountOfMoney" + rowNum).val());
|
||||
});
|
||||
//获取收款金额
|
||||
var changeAmount = parseFloat(isNull($("#changeAmount").val()) ? "0" : $("#changeAmount").val());
|
||||
$("#allPrice").html(allPrice.toFixed(2));
|
||||
$("#giveChange").html((changeAmount - 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(parseInt($("#rkNum" + rowNum).val()) == 0) {
|
||||
$("#rkNum" + rowNum).addClass("layui-form-danger");
|
||||
$("#rkNum" + rowNum).focus();
|
||||
winui.window.msg('数量不能为0', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
if(parseInt($("#rkNum" + rowNum).val()) > parseInt($("#currentTock" + rowNum).html())){
|
||||
$("#rkNum" + rowNum).addClass("layui-form-danger");
|
||||
$("#rkNum" + rowNum).focus();
|
||||
winui.window.msg('超过库存数量.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
if(inTableDataArrayByAssetarId($("#materialId" + rowNum).val(), $("#depotId" + rowNum).val(), $("#unitId" + rowNum).val(), tableData)) {
|
||||
$("#depotId" + rowNum).addClass("layui-form-danger");
|
||||
$("#depotId" + rowNum).focus();
|
||||
winui.window.msg('一张单中不允许出现相同当库的产品信息,且单位不能重复.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
var row = {
|
||||
depotId: $("#depotId" + rowNum).val(),
|
||||
materialId: $("#materialId" + rowNum).val(),
|
||||
mUnitId: $("#unitId" + rowNum).val(),
|
||||
rkNum: $("#rkNum" + rowNum).val(),
|
||||
estimateSalePrice: $("#unitPrice" + rowNum).val(),
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
supplierId: $("#supplierId").val(),
|
||||
operTime: $("#operTime").val(),
|
||||
accountId: $("#accountId").val(),
|
||||
payType: $("#payType").val(),
|
||||
remark: $("#remark").val(),
|
||||
depotheadStr: JSON.stringify(tableData),
|
||||
changeAmount: $("#changeAmount").val(),
|
||||
giveChange: $("#giveChange").html()
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "retailoutlet002", 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(materialId, depotId, unitId, array) {
|
||||
var isIn = false;
|
||||
$.each(array, function(i, item) {
|
||||
if(item.depotId === depotId && item.mUnitId === unitId && item.materialId === materialId) {
|
||||
isIn = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return isIn;
|
||||
}
|
||||
|
||||
//新增行
|
||||
$("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
|
||||
depotId: "depotId" + rowNum.toString(), //仓库id
|
||||
materialId: "materialId" + rowNum.toString(), //产品id
|
||||
unitId: "unitId" + rowNum.toString(), //规格id
|
||||
currentTock: "currentTock" + rowNum.toString(), //库存id
|
||||
rkNum: "rkNum" + rowNum.toString(), //数量id
|
||||
unitPrice: "unitPrice" + rowNum.toString(), //单价id
|
||||
amountOfMoney: "amountOfMoney" + rowNum.toString(), //金额id
|
||||
remark: "remark" + rowNum.toString() //备注id
|
||||
};
|
||||
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
|
||||
//赋值给仓库
|
||||
$("#" + "depotId" + rowNum.toString()).html(depotHtml);
|
||||
//赋值给产品
|
||||
$("#" + "materialId" + rowNum.toString()).html(materialHtml);
|
||||
form.render('select');
|
||||
form.render('checkbox');
|
||||
rowNum++;
|
||||
//设置根据某列变化的颜色
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
|
||||
//删除行
|
||||
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,27 @@
|
|||
|
||||
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 + "erpcommon001",
|
||||
params: {rowId: parent.rowId},
|
||||
pagination: false,
|
||||
template: beanTemplate,
|
||||
ajaxSendAfter:function(json){
|
||||
form.render();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
|
@ -0,0 +1,446 @@
|
|||
var material = new Array(); //产品集合
|
||||
|
||||
layui.config({
|
||||
base: basePath,
|
||||
version: skyeyeVersion
|
||||
}).extend({ //指定js别名
|
||||
window: 'js/winui.window'
|
||||
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
|
||||
winui.renderColor();
|
||||
layui.use(['form'], function(form) {
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
var $ = layui.$,
|
||||
laydate = layui.laydate;
|
||||
var enclosureInfo = ""; //附件id
|
||||
var rowNum = 1; //表格的序号
|
||||
var depotHtml = "", materialHtml = "";//仓库
|
||||
var tockObject = new Array();//根据仓库和规格id查询出来的对应库存信息
|
||||
|
||||
var usetableTemplate = $("#usetableTemplate").html();
|
||||
var beanTemplate = $("#beanTemplate").html();
|
||||
var selOption = getFileContent('tpl/template/select-option.tpl');
|
||||
|
||||
//加载单据数据
|
||||
var orderObject = [];
|
||||
showGrid({
|
||||
id: "showForm",
|
||||
url: reqBasePath + "retailoutlet003",
|
||||
params: {rowId: parent.rowId},
|
||||
pagination: false,
|
||||
template: beanTemplate,
|
||||
ajaxSendAfter:function(json){
|
||||
//单据时间
|
||||
laydate.render({
|
||||
elem: '#operTime',
|
||||
type: 'datetime',
|
||||
trigger: 'click'
|
||||
});
|
||||
orderObject = json;
|
||||
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 + "member009", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载会员数据
|
||||
$("#supplierId").html(getDataUseHandlebars(selOption, json));
|
||||
//初始化仓库
|
||||
initDepotHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化仓库
|
||||
function initDepotHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
//加载仓库数据
|
||||
depotHtml = getDataUseHandlebars(selOption, json);
|
||||
//初始化产品
|
||||
initMaterialHtml();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//初始化产品
|
||||
function initMaterialHtml() {
|
||||
AjaxPostUtil.request({url: reqBasePath + "material010", params: {}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
material = json.rows;
|
||||
//加载产品数据
|
||||
materialHtml = getDataUseHandlebars(selOption, json);
|
||||
//渲染数据到页面
|
||||
initDataToShow();
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
|
||||
//渲染数据到页面
|
||||
function initDataToShow(){
|
||||
$("#supplierId").val(orderObject.bean.organId);//会员
|
||||
$("#accountId").val(orderObject.bean.accountId);//账户
|
||||
$("#payType").val(orderObject.bean.payType);//付款类型
|
||||
//渲染列表项
|
||||
$.each(orderObject.bean.items, function(i, item){
|
||||
addRow();
|
||||
$.each(material, function(j, bean) {
|
||||
if(item.materialId == bean.id){
|
||||
$("#unitId" + (rowNum - 1)).html(getDataUseHandlebars(selOption, {rows: bean.unitList}));
|
||||
$("#unitId" + (rowNum - 1)).val(item.mUnitId);//单位回显
|
||||
return false;
|
||||
}
|
||||
});
|
||||
$("#depotId" + (rowNum - 1)).val(item.depotId);//仓库回显
|
||||
$("#materialId" + (rowNum - 1)).val(item.materialId);//产品回显
|
||||
$("#currentTock" + (rowNum - 1)).html(item.currentTock);//库存回显
|
||||
$("#rkNum" + (rowNum - 1)).val(item.operNumber);//数量回显
|
||||
$("#unitPrice" + (rowNum - 1)).val(item.unitPrice.toFixed(2));//单价回显
|
||||
$("#amountOfMoney" + (rowNum - 1)).val(item.allPrice.toFixed(2));//金额回显
|
||||
$("#remark" + (rowNum - 1)).val(item.remark);//备注回显
|
||||
//设置标识
|
||||
$("tr[trcusid='tr" + (rowNum - 1) + "']").attr("thisid", item.id);
|
||||
});
|
||||
//渲染
|
||||
form.render();
|
||||
}
|
||||
|
||||
//仓库加载变化事件
|
||||
form.on('select(selectDepotProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("depotId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
});
|
||||
|
||||
//产品加载变化事件
|
||||
form.on('select(selectMaterialProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("materialId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
|
||||
$.each(material, function(i, item) {
|
||||
if(thisRowValue == item.id){
|
||||
$("#unitId" + thisRowNum).html(getDataUseHandlebars(selOption, {rows: item.unitList}));
|
||||
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
|
||||
//设置默认选中
|
||||
if(item.unit == 2){//多单位
|
||||
$.each(item.unitList, function(j, bean) {
|
||||
if(item.firstInUnit == bean.unitId){
|
||||
$("#unitId" + thisRowNum).val(bean.id);
|
||||
$("#unitPrice" + thisRowNum).val(bean.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}else{//不是多单位
|
||||
var firstItem = item.unitList[0];
|
||||
$("#unitId" + thisRowNum).val(firstItem.id);
|
||||
$("#unitPrice" + thisRowNum).val(firstItem.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(firstItem.estimatePurchasePrice)).toFixed(2));//金额
|
||||
}
|
||||
form.render('select');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#unitId" + thisRowNum).html(""); //重置规格为空
|
||||
form.render('select');
|
||||
}
|
||||
//加载库存
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//产品规格加载变化事件
|
||||
form.on('select(selectUnitProperty)', function(data) {
|
||||
var thisRowNum = data.elem.id.replace("unitId", "");//获取当前行
|
||||
var thisRowValue = data.value;
|
||||
//当前选中的产品id
|
||||
var chooseMaterialId = $("#materialId" + thisRowNum).val();
|
||||
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
|
||||
$.each(material, function(i, item) {
|
||||
if(chooseMaterialId == item.id){//获取产品
|
||||
$.each(item.unitList, function(j, bean) {
|
||||
if(thisRowValue == bean.id){//获取规格
|
||||
//获取当前行数量
|
||||
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
|
||||
$("#unitPrice" + thisRowNum).val(bean.estimatePurchasePrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#unitPrice" + thisRowNum).val("0.00");//重置单价为空
|
||||
$("#amountOfMoney" + thisRowNum).val("0.00");//重置金额为空
|
||||
}
|
||||
//加载库存
|
||||
loadTockByDepotAndMUnit(thisRowNum);
|
||||
//计算价格
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
/**
|
||||
* 根据仓库和规格加载库存
|
||||
* @param rowNum 表格行坐标
|
||||
*/
|
||||
function loadTockByDepotAndMUnit(rowNum){
|
||||
//获取当前选中的仓库
|
||||
var chooseDepotId = $("#depotId" + rowNum).val();
|
||||
//获取当前选中的规格
|
||||
var chooseUnitId = $("#unitId" + rowNum).val();
|
||||
//当两个都不为空时
|
||||
if(!isNull(chooseDepotId) && !isNull(chooseUnitId)){
|
||||
var inTockObject = -1;
|
||||
$.each(tockObject, function(i, item){
|
||||
if(item.depotId == chooseDepotId && item.unitId == chooseUnitId){
|
||||
inTockObject = i;
|
||||
$("#currentTock" + rowNum).html(item.currentTock);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
//如果数组中不包含对应的库存
|
||||
if(inTockObject < 0){
|
||||
//获取库存
|
||||
AjaxPostUtil.request({url: reqBasePath + "material011", params: {depotId: chooseDepotId, mUnitId: chooseUnitId}, type: 'json', callback: function(json) {
|
||||
if(json.returnCode == 0) {
|
||||
var currentTock = 0;
|
||||
if(!isNull(json.bean)){
|
||||
currentTock = json.bean.currentTock;
|
||||
}
|
||||
tockObject.push({
|
||||
depotId: chooseDepotId,
|
||||
unitId: chooseUnitId,
|
||||
currentTock: currentTock
|
||||
});
|
||||
$("#currentTock" + rowNum).html(currentTock);
|
||||
} else {
|
||||
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
|
||||
}
|
||||
}});
|
||||
}
|
||||
}else{
|
||||
//否则重置库存为空
|
||||
$("#currentTock" + rowNum).html("");
|
||||
}
|
||||
}
|
||||
|
||||
var showTdByEdit = 'rkNum';//根据那一列的值进行变化,默认根据数量
|
||||
//数量变化
|
||||
$("body").on("input", ".rkNum, .unitPrice, .amountOfMoney", function() {
|
||||
if($(this).attr("class").replace("layui-input change-input ", "") != showTdByEdit){
|
||||
showTdByEdit = $(this).attr("class").replace("layui-input change-input ", "");
|
||||
$(".change-input").parent().removeAttr("style");
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", ".rkNum, .unitPrice, .amountOfMoney", function() {
|
||||
if($(this).attr("class").replace("layui-input change-input ", "") != showTdByEdit){
|
||||
showTdByEdit = $(this).attr("class").replace("layui-input change-input ", "");
|
||||
$(".change-input").parent().removeAttr("style");
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//收款金额变化
|
||||
$("body").on("input", "#changeAmount", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
$("body").on("change", "#changeAmount", function() {
|
||||
calculatedTotalPrice();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
function calculatedTotalPrice(){
|
||||
var rowTr = $("#useTable tr");
|
||||
var allPrice = 0;
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行坐标
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//获取数量
|
||||
var rkNum = parseInt(isNull($("#rkNum" + rowNum).val()) ? "0" : $("#rkNum" + rowNum).val());
|
||||
//获取单价
|
||||
var unitPrice = parseFloat(isNull($("#unitPrice" + rowNum).val()) ? "0" : $("#unitPrice" + rowNum).val());
|
||||
//获取单价
|
||||
var amountOfMoney = parseFloat(isNull($("#amountOfMoney" + rowNum).val()) ? "0" : $("#amountOfMoney" + rowNum).val());
|
||||
if("rkNum" === showTdByEdit){//数量
|
||||
//输出金额
|
||||
$("#amountOfMoney" + rowNum).val((rkNum * unitPrice).toFixed(2));
|
||||
}else if("unitPrice" === showTdByEdit){//单价
|
||||
//输出金额
|
||||
$("#amountOfMoney" + rowNum).val((rkNum * unitPrice).toFixed(2));
|
||||
}else if("amountOfMoney" === showTdByEdit){//金额
|
||||
//输出单价
|
||||
$("#unitPrice" + rowNum).val((amountOfMoney / rkNum).toFixed(2));
|
||||
}
|
||||
allPrice += parseFloat($("#amountOfMoney" + rowNum).val());
|
||||
});
|
||||
//获取收款金额
|
||||
var changeAmount = parseFloat(isNull($("#changeAmount").val()) ? "0" : $("#changeAmount").val());
|
||||
$("#allPrice").html(allPrice.toFixed(2));
|
||||
$("#giveChange").html((changeAmount - allPrice).toFixed(2));
|
||||
}
|
||||
|
||||
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(parseInt($("#rkNum" + rowNum).val()) == 0) {
|
||||
$("#rkNum" + rowNum).addClass("layui-form-danger");
|
||||
$("#rkNum" + rowNum).focus();
|
||||
winui.window.msg('数量不能为0', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
if(parseInt($("#rkNum" + rowNum).val()) > parseInt($("#currentTock" + rowNum).html())){
|
||||
$("#rkNum" + rowNum).addClass("layui-form-danger");
|
||||
$("#rkNum" + rowNum).focus();
|
||||
winui.window.msg('超过库存数量.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
if(inTableDataArrayByAssetarId($("#materialId" + rowNum).val(), $("#depotId" + rowNum).val(), $("#unitId" + rowNum).val(), tableData)) {
|
||||
$("#depotId" + rowNum).addClass("layui-form-danger");
|
||||
$("#depotId" + rowNum).focus();
|
||||
winui.window.msg('一张单中不允许出现相同当库的产品信息,且单位不能重复.', {icon: 2, time: 2000});
|
||||
noError = true;
|
||||
return false;
|
||||
}
|
||||
var row = {
|
||||
depotId: $("#depotId" + rowNum).val(),
|
||||
materialId: $("#materialId" + rowNum).val(),
|
||||
mUnitId: $("#unitId" + rowNum).val(),
|
||||
rkNum: $("#rkNum" + rowNum).val(),
|
||||
estimateSalePrice: $("#unitPrice" + rowNum).val(),
|
||||
thisId: isNull($(item).attr("thisid")) ? "" : $(item).attr("thisid"),
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
supplierId: $("#supplierId").val(),
|
||||
operTime: $("#operTime").val(),
|
||||
accountId: $("#accountId").val(),
|
||||
payType: $("#payType").val(),
|
||||
remark: $("#remark").val(),
|
||||
depotheadStr: JSON.stringify(tableData),
|
||||
changeAmount: $("#changeAmount").val(),
|
||||
giveChange: $("#giveChange").html(),
|
||||
rowId: parent.rowId
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "retailoutlet004", 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(materialId, depotId, unitId, array) {
|
||||
var isIn = false;
|
||||
$.each(array, function(i, item) {
|
||||
if(item.depotId === depotId && item.mUnitId === unitId && item.materialId === materialId) {
|
||||
isIn = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return isIn;
|
||||
}
|
||||
|
||||
//新增行
|
||||
$("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
|
||||
depotId: "depotId" + rowNum.toString(), //仓库id
|
||||
materialId: "materialId" + rowNum.toString(), //产品id
|
||||
unitId: "unitId" + rowNum.toString(), //规格id
|
||||
currentTock: "currentTock" + rowNum.toString(), //库存id
|
||||
rkNum: "rkNum" + rowNum.toString(), //数量id
|
||||
unitPrice: "unitPrice" + rowNum.toString(), //单价id
|
||||
amountOfMoney: "amountOfMoney" + rowNum.toString(), //金额id
|
||||
remark: "remark" + rowNum.toString() //备注id
|
||||
};
|
||||
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
|
||||
//赋值给仓库
|
||||
$("#" + "depotId" + rowNum.toString()).html(depotHtml);
|
||||
//赋值给产品
|
||||
$("#" + "materialId" + rowNum.toString()).html(materialHtml);
|
||||
form.render('select');
|
||||
form.render('checkbox');
|
||||
rowNum++;
|
||||
//设置根据某列变化的颜色
|
||||
$("." + showTdByEdit).parent().css({'background-color': '#e6e6e6'});
|
||||
}
|
||||
|
||||
//删除行
|
||||
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,166 @@
|
|||
|
||||
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;
|
||||
|
||||
laydate.render({
|
||||
elem: '#operTime', //指定元素
|
||||
range: '~'
|
||||
});
|
||||
|
||||
//表格渲染
|
||||
table.render({
|
||||
id: 'messageTable',
|
||||
elem: '#messageTable',
|
||||
method: 'post',
|
||||
url: reqBasePath + 'retailoutlet001',
|
||||
where: {defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime},
|
||||
even: true, //隔行变色
|
||||
page: true,
|
||||
limits: [8, 16, 24, 32, 40, 48, 56],
|
||||
limit: 8,
|
||||
cols: [[
|
||||
{ title: '序号', type: 'numbers'},
|
||||
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 200, templet: function(d){
|
||||
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
|
||||
}},
|
||||
{ field: 'supplierName', title: '会员', align: 'left', width: 150},
|
||||
{ field: 'materialNames', title: '产品信息', align: 'left', width: 300},
|
||||
{ field: 'totalPrice', title: '合计金额', align: 'left', width: 120},
|
||||
{ field: 'changeAmount', title: '收款', align: 'left', width: 120 },
|
||||
{ field: 'operPersonName', title: '操作人', align: 'left', width: 100},
|
||||
{ field: 'operTime', 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') { //删除
|
||||
deletemember(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 deletemember(data){
|
||||
layer.confirm('确认要删除信息吗?', { icon: 3, title: '删除操作' }, function (index) {
|
||||
AjaxPostUtil.request({url:reqBasePath + "member004", 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 edit(data){
|
||||
rowId = data.id;
|
||||
_openNewWindows({
|
||||
url: "../../tpl/retailoutlet/retailoutletedit.html",
|
||||
title: "编辑",
|
||||
pageId: "retailoutletedit",
|
||||
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 details(data){
|
||||
rowId = data.id;
|
||||
_openNewWindows({
|
||||
url: "../../tpl/retailoutlet/retailoutletdetails.html",
|
||||
title: "详情",
|
||||
pageId: "retailoutletdetails",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
}});
|
||||
}
|
||||
|
||||
//添加
|
||||
$("body").on("click", "#addBean", function(){
|
||||
_openNewWindows({
|
||||
url: "../../tpl/retailoutlet/retailoutletadd.html",
|
||||
title: "新增",
|
||||
pageId: "retailoutletadd",
|
||||
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($("#operTime").val())){//一定要记得,当createTime为空时
|
||||
startTime = "";
|
||||
endTime = "";
|
||||
}else {
|
||||
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
|
||||
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
|
||||
}
|
||||
table.reload("messageTable", {where:{defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}});
|
||||
}
|
||||
|
||||
//搜索
|
||||
function refreshTable(){
|
||||
if(isNull($("#operTime").val())){//一定要记得,当createTime为空时
|
||||
startTime = "";
|
||||
endTime = "";
|
||||
}else {
|
||||
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
|
||||
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
|
||||
}
|
||||
table.reload("messageTable", {page: {curr: 1}, where:{defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}})
|
||||
}
|
||||
|
||||
exports('retailoutletlist', {});
|
||||
});
|
|
@ -0,0 +1,123 @@
|
|||
<!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-xs3">
|
||||
<label class="layui-form-label">会员<i class="red">*</i></label>
|
||||
<div class="layui-input-block">
|
||||
<select id="supplierId" lay-search win-verify="required"></select>
|
||||
</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="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input"/>
|
||||
</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">
|
||||
<select id="payType" lay-search>
|
||||
<option value="1">现金</option>
|
||||
<option value="2">记账</option>
|
||||
<option value="3">其他</option>
|
||||
</select>
|
||||
</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: 120px;">产品(型号)</th>
|
||||
<th style="width: 70px;">单位</th>
|
||||
<th style="width: 80px;">库存</th>
|
||||
<th style="width: 80px;">数量</th>
|
||||
<th style="width: 80px;">单价</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-xs4">
|
||||
<label class="layui-form-label">共计金额</label>
|
||||
<div class="layui-input-block ver-center" id="allPrice" style="min-height: 20px; border-bottom: 1px solid black; color: purple; font-weight: 700; font-size: 17px;">
|
||||
0.00
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">收款金额</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" class="layui-input" style="color: red; font-size: 17px;"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">找零金额</label>
|
||||
<div class="layui-input-block ver-center" id="giveChange" style="min-height: 20px; border-bottom: 1px solid black; color: green; font-weight: 700; font-size: 17px;">
|
||||
0.00
|
||||
</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="{{depotId}}" lay-filter="selectDepotProperty" lay-search win-verify="required"></select></td>
|
||||
<td><select id="{{materialId}}" lay-filter="selectMaterialProperty" lay-search win-verify="required"></select></td>
|
||||
<td><select id="{{unitId}}" lay-filter="selectUnitProperty" lay-search win-verify="required"></select></td>
|
||||
<td id="{{currentTock}}"></td>
|
||||
<td><input type="text" class="layui-input change-input rkNum" value="1" id="{{rkNum}}" win-verify="required|number"/></td>
|
||||
<td><input type="text" class="layui-input change-input unitPrice" id="{{unitPrice}}" win-verify="required|money"/></td>
|
||||
<td><input type="text" class="layui-input change-input amountOfMoney" id="{{amountOfMoney}}" 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/retailoutlet/'}).use('retailoutletadd');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,125 @@
|
|||
<!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-xs3">
|
||||
<label class="layui-form-label">会员:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{supplierName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs3">
|
||||
<label class="layui-form-label">单据日期:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{operTime}}
|
||||
</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">
|
||||
{{payType}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs12">
|
||||
<label class="layui-form-label">单据编号:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{defaultNumber}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">操作人:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{operPersonName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs6">
|
||||
<label class="layui-form-label">操作日期:</label>
|
||||
<div class="layui-input-block ver-center">
|
||||
{{createTime}}
|
||||
</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: 150px;">产品(型号)</th>
|
||||
<th style="width: 70px;">单位</th>
|
||||
<th style="width: 80px;">数量</th>
|
||||
<th style="width: 80px;">单价</th>
|
||||
<th style="width: 80px;">金额</th>
|
||||
<th style="min-width: 100px;">备注</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="useTable" class="insurance-table">
|
||||
{{#each items}}
|
||||
<tr>
|
||||
<td>{{deportName}}</td>
|
||||
<td>{{materialNames}}</td>
|
||||
<td>{{unitName}}</td>
|
||||
<td>{{operNumber}}</td>
|
||||
<td>{{unitPrice}}</td>
|
||||
<td>{{allPrice}}</td>
|
||||
<td>{{remark}}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">共计金额</label>
|
||||
<div class="layui-input-block ver-center" style="min-height: 20px; border-bottom: 1px solid black; color: purple; font-weight: 700; font-size: 17px;">
|
||||
{{totalPrice}}元
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">收款金额</label>
|
||||
<div class="layui-input-block ver-center" style="min-height: 20px; border-bottom: 1px solid black; color: red; font-weight: 700; font-size: 17px;">
|
||||
{{changeAmount}}元
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">找零金额</label>
|
||||
<div class="layui-input-block ver-center" style="min-height: 20px; border-bottom: 1px solid black; color: green; font-weight: 700; font-size: 17px;">
|
||||
{{giveChange}}元
|
||||
</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/retailoutlet/'}).use('retailoutletdetails');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,130 @@
|
|||
<!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">
|
||||
|
||||
</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="{{depotId}}" lay-filter="selectDepotProperty" lay-search win-verify="required"></select></td>
|
||||
<td><select id="{{materialId}}" lay-filter="selectMaterialProperty" lay-search win-verify="required"></select></td>
|
||||
<td><select id="{{unitId}}" lay-filter="selectUnitProperty" lay-search win-verify="required"></select></td>
|
||||
<td id="{{currentTock}}"></td>
|
||||
<td><input type="text" class="layui-input change-input rkNum" value="1" id="{{rkNum}}" win-verify="required|number"/></td>
|
||||
<td><input type="text" class="layui-input change-input unitPrice" id="{{unitPrice}}" win-verify="required|money"/></td>
|
||||
<td><input type="text" class="layui-input change-input amountOfMoney" id="{{amountOfMoney}}" win-verify="required|money"/></td>
|
||||
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
|
||||
</tr>
|
||||
</script>
|
||||
|
||||
<!-- beanTemplate -->
|
||||
<script type="text/x-handlebars-template" id="beanTemplate">
|
||||
{{#bean}}
|
||||
<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="supplierId" lay-search win-verify="required"></select>
|
||||
</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="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input" value="{{operTime}}"/>
|
||||
</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">
|
||||
<select id="payType" lay-search>
|
||||
<option value="1">现金</option>
|
||||
<option value="2">记账</option>
|
||||
<option value="3">其他</option>
|
||||
</select>
|
||||
</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: 120px;">产品(型号)</th>
|
||||
<th style="width: 70px;">单位</th>
|
||||
<th style="width: 80px;">库存</th>
|
||||
<th style="width: 80px;">数量</th>
|
||||
<th style="width: 80px;">单价</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-xs4">
|
||||
<label class="layui-form-label">共计金额</label>
|
||||
<div class="layui-input-block ver-center" id="allPrice" style="min-height: 20px; border-bottom: 1px solid black; color: purple; font-weight: 700; font-size: 17px;">
|
||||
{{totalPrice}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">收款金额</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="changeAmount" name="changeAmount" win-verify="required|money" value="{{changeAmount}}" class="layui-input" style="color: red; font-size: 17px;"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-col-xs4">
|
||||
<label class="layui-form-label">找零金额</label>
|
||||
<div class="layui-input-block ver-center" id="giveChange" style="min-height: 20px; border-bottom: 1px solid black; color: green; font-weight: 700; font-size: 17px;">
|
||||
{{giveChange}}
|
||||
</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>
|
||||
|
||||
<script src="../../assets/lib/layui/layui.js"></script>
|
||||
<script src="../../assets/lib/layui/custom.js"></script>
|
||||
<script type="text/javascript">
|
||||
layui.config({base: '../../js/retailoutlet/'}).use('retailoutletedit');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,57 @@
|
|||
<!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="defaultNumber" name="defaultNumber" placeholder="请输入单据编号" class="layui-input" />
|
||||
</div>
|
||||
<label class="layui-form-label">商品信息</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="material" name="material" placeholder="请输入名称或者型号" class="layui-input" />
|
||||
</div>
|
||||
<label class="layui-form-label">单据日期</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="operTime" name="operTime" 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"><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(2 == 2){ }}
|
||||
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
||||
{{# } }}
|
||||
{{# if(d.enabled == 2 && auth('1569133240001')){ }}
|
||||
<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/retailoutlet/'}).use('retailoutletlist');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -32,22 +32,22 @@ spring.servlet.multipart.max-file-size=10Mb
|
|||
spring.http.multipart.max-request-size=100Mb
|
||||
|
||||
#redis 1连接信息
|
||||
redis.ip1=192.168.0.140
|
||||
redis.ip1=192.168.1.140
|
||||
redis.host1=9000
|
||||
#redis 2连接信息
|
||||
redis.ip2=192.168.0.140
|
||||
redis.ip2=192.168.1.140
|
||||
redis.host2=9001
|
||||
#redis 3连接信息
|
||||
redis.ip3=192.168.0.140
|
||||
redis.ip3=192.168.1.140
|
||||
redis.host3=9002
|
||||
#redis 4连接信息
|
||||
redis.ip4=192.168.0.140
|
||||
redis.ip4=192.168.1.140
|
||||
redis.host4=9003
|
||||
#redis 5连接信息
|
||||
redis.ip5=192.168.0.140
|
||||
redis.ip5=192.168.1.140
|
||||
redis.host5=9004
|
||||
#redis 6连接信息
|
||||
redis.ip6=192.168.0.140
|
||||
redis.ip6=192.168.1.140
|
||||
redis.host6=9005
|
||||
redis.commandTimeout=1000
|
||||
|
||||
|
|
Loading…
Reference in a new issue