mirror of
https://github.com/weizhiqiang1995/erp-pro.git
synced 2024-09-20 15:06:00 +08:00
拆分单完成
This commit is contained in:
parent
82874d15c8
commit
8722a0816b
|
@ -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.SplitListService;
|
||||
|
||||
/**
|
||||
* @Author 卫志强
|
||||
* @Description 拆分单
|
||||
* @Date 2019/10/16 15:32
|
||||
*/
|
||||
@Controller
|
||||
public class SplitListController {
|
||||
|
||||
@Autowired
|
||||
private SplitListService splitListService;
|
||||
|
||||
/**
|
||||
* 获取拆分单列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/SplitListController/querySplitListToList")
|
||||
@ResponseBody
|
||||
public void querySplitListToList(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
splitListService.querySplitListToList(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增拆分单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/SplitListController/insertSplitListMation")
|
||||
@ResponseBody
|
||||
public void insertSplitListMation(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
splitListService.insertSplitListMation(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑拆分单信息时进行回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/SplitListController/querySplitListMationToEditById")
|
||||
@ResponseBody
|
||||
public void querySplitListMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
splitListService.querySplitListMationToEditById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑拆分单信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/post/SplitListController/editSplitListMationById")
|
||||
@ResponseBody
|
||||
public void editSplitListMationById(InputObject inputObject, OutputObject outputObject) throws Exception{
|
||||
splitListService.editSplitListMationById(inputObject, outputObject);
|
||||
}
|
||||
|
||||
}
|
26
erp-modular/src/main/java/com/skyeye/dao/SplitListDao.java
Normal file
26
erp-modular/src/main/java/com/skyeye/dao/SplitListDao.java
Normal file
|
@ -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 SplitListDao {
|
||||
|
||||
public List<Map<String, Object>> querySplitListToList(Map<String, Object> params, PageBounds pageBounds) throws Exception;
|
||||
|
||||
public Map<String, Object> queryMaterialsById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int insertSplitListMation(Map<String, Object> depothead) throws Exception;
|
||||
|
||||
public int insertSplitListChildMation(List<Map<String, Object>> entitys) throws Exception;
|
||||
|
||||
public Map<String, Object> querySplitListMationToEditById(Map<String, Object> map) throws Exception;
|
||||
|
||||
public List<Map<String, Object>> querySplitListItemMationToEditById(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int deleteSplitListChildMation(Map<String, Object> bean) throws Exception;
|
||||
|
||||
public int editSplitListMationById(Map<String, Object> depothead) throws Exception;
|
||||
|
||||
}
|
|
@ -30,7 +30,13 @@ public class ErpConstants {
|
|||
//采购单
|
||||
PURCHASE_ORDER("采购订单", "CGDD", "10"),
|
||||
//销售单
|
||||
OUTCHASE_ORDER("销售订单", "XSDD", "11");
|
||||
OUTCHASE_ORDER("销售订单", "XSDD", "11"),
|
||||
//拆分单
|
||||
SPLIT_LIST_ORDER("拆分订单", "CFDD", "12"),
|
||||
//组装单
|
||||
ASSEMBLY_SHEET_ORDER("组装订单", "ZZDD", "13"),
|
||||
//调拨单
|
||||
ALLOCATION_FORM_ORDER("调拨订单", "DBDD", "14");
|
||||
|
||||
private String nameCode;
|
||||
private String code;
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package com.skyeye.service;
|
||||
|
||||
import com.skyeye.common.object.InputObject;
|
||||
import com.skyeye.common.object.OutputObject;
|
||||
|
||||
public interface SplitListService {
|
||||
|
||||
public void querySplitListToList(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void insertSplitListMation(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void querySplitListMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
public void editSplitListMationById(InputObject inputObject, OutputObject outputObject) throws Exception;
|
||||
|
||||
}
|
|
@ -98,7 +98,7 @@ public class OtherOutLetsServiceImpl implements OtherOutLetsService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_OTHERS.getNum());//其他出库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_OTHERS.getNum());
|
||||
|
|
|
@ -98,7 +98,7 @@ public class OtherWareHousServiceImpl implements OtherWareHousService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_OTHERS.getNum());//其他入库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_OTHERS.getNum());
|
||||
|
|
|
@ -98,7 +98,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PURCHASE_ORDER.getNum());//采购单
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PURCHASE_ORDER.getNum());
|
||||
|
@ -399,7 +399,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_PURCHASE.getNum());//采购入库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_PURCHASE.getNum());
|
||||
|
|
|
@ -108,7 +108,7 @@ public class PurchasePutServiceImpl implements PurchasePutService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_PURCHASE.getNum());//采购入库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_PURCHASE.getNum());
|
||||
|
|
|
@ -108,7 +108,7 @@ public class PurchaseReturnsServiceImpl implements PurchaseReturnsService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_PURCHASE_RETURNS.getNum());//采购退货
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_PURCHASE_RETURNS.getNum());
|
||||
|
|
|
@ -98,7 +98,7 @@ public class RetailOutLetServiceImpl implements RetailOutLetService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_RETAIL.getNum());//零售出库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_RETAIL.getNum());
|
||||
|
|
|
@ -98,7 +98,7 @@ public class RetailReturnsServiceImpl implements RetailReturnsService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_RETAIL_RETURNS.getNum());//零售退货
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_RETAIL_RETURNS.getNum());
|
||||
|
|
|
@ -98,7 +98,7 @@ public class SalesOrderServiceImpl implements SalesOrderService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUTCHASE_ORDER.getNum());//销售单
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUTCHASE_ORDER.getNum());
|
||||
|
@ -399,7 +399,7 @@ public class SalesOrderServiceImpl implements SalesOrderService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_SALES_OUTLET.getNum());//销售出库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_SALES_OUTLET.getNum());
|
||||
|
|
|
@ -108,7 +108,7 @@ public class SalesOutLetServiceImpl implements SalesOutLetService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 1);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.OUT_IS_SALES_OUTLET.getNum());//销售出库
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.OUT_IS_SALES_OUTLET.getNum());
|
||||
|
|
|
@ -108,7 +108,7 @@ public class SalesReturnsServiceImpl implements SalesReturnsService{
|
|||
//单据主表对象
|
||||
Map<String, Object> depothead = new HashMap<>();
|
||||
depothead.put("id", useId);
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库)
|
||||
depothead.put("type", 2);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_SALES_RETURNS.getNum());//销售退货
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_SALES_RETURNS.getNum());
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
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.SplitListDao;
|
||||
import com.skyeye.erp.util.ErpConstants;
|
||||
import com.skyeye.erp.util.ErpOrderNum;
|
||||
import com.skyeye.service.SplitListService;
|
||||
|
||||
import net.sf.json.JSONArray;
|
||||
|
||||
@Service
|
||||
public class SplitListServiceImpl implements SplitListService{
|
||||
|
||||
@Autowired
|
||||
private SplitListDao splitListDao;
|
||||
|
||||
/**
|
||||
* 获取拆分单列表信息
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void querySplitListToList(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> params = inputObject.getParams();
|
||||
params.put("userId", inputObject.getLogParams().get("id"));
|
||||
List<Map<String, Object>> beans = splitListDao.querySplitListToList(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 insertSplitListMation(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 = splitListDao.queryMaterialsById(bean);
|
||||
if(entity != null && !entity.isEmpty()){
|
||||
//获取单价
|
||||
itemAllPrice = new BigDecimal(bean.get("estimatePurchasePrice").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("estimatePurchasePrice", bean.get("estimatePurchasePrice"));//单价
|
||||
entity.put("remark", bean.get("remark"));//备注
|
||||
entity.put("depotId", bean.get("depotId"));//仓库
|
||||
if("1".equals(bean.get("materialType").toString())){
|
||||
entity.put("mType", 1);//商品类型 0.普通 1.组合件 2.普通子件
|
||||
}else{
|
||||
entity.put("mType", 2);//商品类型 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", 3);//类型(1.出库/2.入库3.其他)
|
||||
depothead.put("subType", ErpConstants.DepoTheadSubType.SPLIT_LIST_ORDER.getNum());//拆分单
|
||||
ErpOrderNum erpOrderNum = new ErpOrderNum();
|
||||
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.SPLIT_LIST_ORDER.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("remark", map.get("remark"));//备注
|
||||
depothead.put("totalPrice", allPrice);//合计金额
|
||||
depothead.put("status", "2");//状态,0未审核、1.审核中、2.审核通过、3.审核拒绝、4.已转采购|销售
|
||||
depothead.put("userId", userId);
|
||||
depothead.put("deleteFlag", 0);//删除标记,0未删除,1删除
|
||||
splitListDao.insertSplitListMation(depothead);
|
||||
splitListDao.insertSplitListChildMation(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑拆分单信息时进行回显
|
||||
* @param inputObject
|
||||
* @param outputObject
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public void querySplitListMationToEditById(InputObject inputObject, OutputObject outputObject) throws Exception {
|
||||
Map<String, Object> map = inputObject.getParams();
|
||||
map.put("userId", inputObject.getLogParams().get("id"));
|
||||
//获取主表信息
|
||||
Map<String, Object> bean = splitListDao.querySplitListMationToEditById(map);
|
||||
if(bean != null && !bean.isEmpty()){
|
||||
//获取子表信息
|
||||
List<Map<String, Object>> norms = splitListDao.querySplitListItemMationToEditById(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 editSplitListMationById(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 = splitListDao.queryMaterialsById(bean);
|
||||
if(entity != null && !entity.isEmpty()){
|
||||
//获取单价
|
||||
itemAllPrice = new BigDecimal(bean.get("estimatePurchasePrice").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("estimatePurchasePrice", bean.get("estimatePurchasePrice"));//单价
|
||||
entity.put("remark", bean.get("remark"));//备注
|
||||
entity.put("depotId", bean.get("depotId"));//仓库
|
||||
if("1".equals(bean.get("materialType").toString())){
|
||||
entity.put("mType", 1);//商品类型 0.普通 1.组合件 2.普通子件
|
||||
}else{
|
||||
entity.put("mType", 2);//商品类型 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("remark", map.get("remark"));//备注
|
||||
depothead.put("totalPrice", allPrice);//合计金额
|
||||
depothead.put("userId", userId);
|
||||
//删除之前绑定的产品
|
||||
splitListDao.deleteSplitListChildMation(map);
|
||||
//重新添加
|
||||
splitListDao.editSplitListMationById(depothead);
|
||||
splitListDao.insertSplitListChildMation(entitys);
|
||||
}else{
|
||||
outputObject.setreturnMessage("数据格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -51,7 +51,8 @@
|
|||
FORMAT(a.tax_unit_price, 2) taxUnitPrice,
|
||||
FORMAT(a.tax_rate, 2) taxRate,
|
||||
FORMAT(a.tax_money, 2) taxMoney,
|
||||
FORMAT(a.tax_last_money, 2) taxLastMoney
|
||||
FORMAT(a.tax_last_money, 2) taxLastMoney,
|
||||
CASE a.m_type WHEN 0 THEN '普通' WHEN 1 THEN '组合件' WHEN 2 THEN '普通子件' ELSE '' END mTypeName
|
||||
FROM
|
||||
erp_depotitem a
|
||||
LEFT JOIN erp_depot b ON a.depot_id = b.id,
|
||||
|
@ -63,6 +64,7 @@
|
|||
AND a.delete_flag = '0'
|
||||
AND a.material_id = c.id
|
||||
AND a.m_unit_id = d.id
|
||||
ORDER BY a.m_type ASC
|
||||
</select>
|
||||
|
||||
<select id="queryOddNumberBySubType" parameterType="java.util.Map" resultType="java.util.Map">
|
||||
|
|
159
erp-modular/src/main/resources/dbmapper/erp/SplitListMapper.xml
Normal file
159
erp-modular/src/main/resources/dbmapper/erp/SplitListMapper.xml
Normal file
|
@ -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.SplitListDao">
|
||||
|
||||
<select id="querySplitListToList" 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 = '12'
|
||||
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="insertSplitListMation" 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)
|
||||
VALUES(#{id}, #{type}, #{subType}, #{defaultNumber}, #{number}, #{operPersonId}, #{operPersonName}, #{createTime}, #{operTime}, #{organId}, #{accountId}, #{totalPrice},
|
||||
'1', #{remark}, #{status}, #{userId}, #{deleteFlag})
|
||||
</insert>
|
||||
|
||||
<insert id="insertSplitListChildMation" 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.estimatePurchasePrice}, #{item.allPrice}, #{item.remark}, #{item.depotId},
|
||||
#{item.mType}, #{item.userId}, #{item.deleteFlag})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="querySplitListMationToEditById" 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 = '12'
|
||||
</select>
|
||||
|
||||
<select id="querySplitListItemMationToEditById" 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,
|
||||
a.m_type mType
|
||||
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
|
||||
ORDER BY a.m_type ASC
|
||||
</select>
|
||||
|
||||
<delete id="deleteSplitListChildMation" parameterType="java.util.Map">
|
||||
DELETE
|
||||
FROM
|
||||
erp_depotitem
|
||||
WHERE
|
||||
header_id = #{id}
|
||||
</delete>
|
||||
|
||||
<update id="editSplitListMationById" 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 = '12'
|
||||
</update>
|
||||
|
||||
</mapper>
|
|
@ -560,6 +560,31 @@
|
|||
</url>
|
||||
<!-- 零售管理结束 -->
|
||||
|
||||
<!-- 拆分单开始 -->
|
||||
<url id="splitlist001" path="/post/SplitListController/querySplitListToList" 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="splitlist002" path="/post/SplitListController/insertSplitListMation" val="新增拆分单信息" allUse="2">
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期" />
|
||||
<property id="remark" name="remark" ref="" var="备注" />
|
||||
<property id="depotheadStr" name="depotheadStr" ref="required" var="产品列表" />
|
||||
</url>
|
||||
<url id="splitlist003" path="/post/SplitListController/querySplitListMationToEditById" val="编辑拆分单信息时进行回显" allUse="2">
|
||||
<property id="rowId" name="id" ref="required" var="拆分单id" />
|
||||
</url>
|
||||
<url id="splitlist004" path="/post/SplitListController/editSplitListMationById" val="编辑拆分单信息" allUse="2">
|
||||
<property id="operTime" name="operTime" ref="required" var="单据日期" />
|
||||
<property id="remark" name="remark" ref="" 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="产品名称" />
|
||||
|
|
|
@ -0,0 +1,383 @@
|
|||
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'
|
||||
});
|
||||
|
||||
initDepotHtml();
|
||||
|
||||
//初始化仓库
|
||||
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.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.retailPrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}else{//不是多单位
|
||||
var firstItem = item.unitList[0];
|
||||
$("#unitId" + thisRowNum).val(firstItem.id);
|
||||
$("#unitPrice" + thisRowNum).val(firstItem.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(firstItem.retailPrice)).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.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.retailPrice)).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();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
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());
|
||||
});
|
||||
$("#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; //循环遍历表格数据时,是否有其他错误信息
|
||||
var hasAssembly = false;//判断是否有组合件
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行编号
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//商品类型
|
||||
var materialTypeId = $("#materialTypeId" + rowNum).val();
|
||||
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(materialTypeId === "1"){
|
||||
if(!hasAssembly){
|
||||
//当前没有组合件
|
||||
hasAssembly = true;
|
||||
}else{
|
||||
$("#materialTypeId" + rowNum).addClass("layui-form-danger");
|
||||
$("#materialTypeId" + rowNum).focus();
|
||||
winui.window.msg('拆分单中只能存在一个组合件.', {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(),
|
||||
estimatePurchasePrice: $("#unitPrice" + rowNum).val(),
|
||||
materialType: materialTypeId,
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
if(!hasAssembly){
|
||||
winui.window.msg('请选择组合件.', {icon: 2, time: 2000});
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
operTime: $("#operTime").val(),
|
||||
remark: $("#remark").val(),
|
||||
depotheadStr: JSON.stringify(tableData)
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "splitlist002", 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
|
||||
materialTypeId: "materialTypeId" + 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,417 @@
|
|||
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 + "splitlist003",
|
||||
params: {rowId: parent.rowId},
|
||||
pagination: false,
|
||||
template: beanTemplate,
|
||||
ajaxSendAfter:function(json){
|
||||
//单据时间
|
||||
laydate.render({
|
||||
elem: '#operTime',
|
||||
type: 'datetime',
|
||||
trigger: 'click'
|
||||
});
|
||||
orderObject = json;
|
||||
initDepotHtml();
|
||||
}
|
||||
});
|
||||
|
||||
//初始化仓库
|
||||
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(){
|
||||
//渲染列表项
|
||||
$.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;
|
||||
}
|
||||
});
|
||||
$("#materialTypeId" + (rowNum - 1)).val(item.mType);//产品类型回显
|
||||
$("#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.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.retailPrice)).toFixed(2));//金额
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}else{//不是多单位
|
||||
var firstItem = item.unitList[0];
|
||||
$("#unitId" + thisRowNum).val(firstItem.id);
|
||||
$("#unitPrice" + thisRowNum).val(firstItem.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(firstItem.retailPrice)).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.retailPrice.toFixed(2));//单价
|
||||
$("#amountOfMoney" + thisRowNum).val((rkNum * parseFloat(bean.retailPrice)).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();
|
||||
});
|
||||
|
||||
//计算总价
|
||||
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());
|
||||
});
|
||||
$("#allPrice").html(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; //循环遍历表格数据时,是否有其他错误信息
|
||||
var hasAssembly = false;//判断是否有组合件
|
||||
$.each(rowTr, function(i, item) {
|
||||
//获取行编号
|
||||
var rowNum = $(item).attr("trcusid").replace("tr", "");
|
||||
//商品类型
|
||||
var materialTypeId = $("#materialTypeId" + rowNum).val();
|
||||
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(materialTypeId === "1"){
|
||||
if(!hasAssembly){
|
||||
//当前没有组合件
|
||||
hasAssembly = true;
|
||||
}else{
|
||||
$("#materialTypeId" + rowNum).addClass("layui-form-danger");
|
||||
$("#materialTypeId" + rowNum).focus();
|
||||
winui.window.msg('拆分单中只能存在一个组合件.', {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(),
|
||||
estimatePurchasePrice: $("#unitPrice" + rowNum).val(),
|
||||
materialType: materialTypeId,
|
||||
thisId: isNull($(item).attr("thisid")) ? "" : $(item).attr("thisid"),
|
||||
remark: $("#remark" + rowNum).val()
|
||||
};
|
||||
tableData.push(row);
|
||||
});
|
||||
if(noError) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {
|
||||
operTime: $("#operTime").val(),
|
||||
remark: $("#remark").val(),
|
||||
depotheadStr: JSON.stringify(tableData),
|
||||
rowId: parent.rowId
|
||||
};
|
||||
AjaxPostUtil.request({url: reqBasePath + "splitlist004", 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
|
||||
materialTypeId: "materialTypeId" + 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,164 @@
|
|||
|
||||
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 + 'splitlist001',
|
||||
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: 'materialNames', title: '产品信息', align: 'left', width: 300},
|
||||
{ field: 'totalPrice', 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/splitlist/splitlistedit.html",
|
||||
title: "编辑",
|
||||
pageId: "splitlistedit",
|
||||
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/splitlist/splitlistdetails.html",
|
||||
title: "详情",
|
||||
pageId: "splitlistdetails",
|
||||
area: ['90vw', '90vh'],
|
||||
callBack: function(refreshCode){
|
||||
}});
|
||||
}
|
||||
|
||||
//添加
|
||||
$("body").on("click", "#addBean", function(){
|
||||
_openNewWindows({
|
||||
url: "../../tpl/splitlist/splitlistadd.html",
|
||||
title: "新增",
|
||||
pageId: "splitlistadd",
|
||||
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('splitlistlist', {});
|
||||
});
|
|
@ -0,0 +1,91 @@
|
|||
<!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-xs12">
|
||||
<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: 100px;">商品类型</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">
|
||||
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="{{materialTypeId}}" lay-search win-verify="required"><option value="1">组合件</option><option value="2">普通子件</option></select></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/splitlist/'}).use('splitlistadd');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,97 @@
|
|||
<!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-xs12">
|
||||
<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">
|
||||
{{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: 100px;">商品类型</th>
|
||||
<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>{{mTypeName}}</td>
|
||||
<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">
|
||||
{{totalPrice}}元
|
||||
</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/splitlist/'}).use('splitlistdetails');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,98 @@
|
|||
<!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="{{materialTypeId}}" lay-search win-verify="required"><option value="1">组合件</option><option value="2">普通子件</option></select></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-xs12">
|
||||
<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-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: 100px;">商品类型</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">
|
||||
{{totalPrice}}
|
||||
</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/splitlist/'}).use('splitlistedit');
|
||||
</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/splitlist/'}).use('splitlistlist');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue