费用报销单

master
{jiaxudong3333@163.com} 2024-04-23 03:45:12 +08:00
parent 589310505e
commit d6604972a6
14 changed files with 569 additions and 174 deletions

View File

@ -1,7 +1,9 @@
package net.htjs.pt4.zzsxt.controller.xxgl.xmkpgl.fybx;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONArray;
@ -41,21 +43,26 @@ public class FybxController extends BaseController {
}
@RequestMapping(value = "index_add", method = RequestMethod.GET)
public String kpsqIndexAdd() {
public String indexAdd() {
return "zzsxt/xxgl/xmkpgl/fybx/index_add";
}
@RequestMapping(value = "index_edit", method = RequestMethod.GET)
public String kpsqIndexEdit() {
public String indexEdit() {
return "zzsxt/xxgl/xmkpgl/fybx/index_edit";
}
@RequestMapping(value = "index_open", method = RequestMethod.GET)
public String kpsqIndexOpen() {
public String indexOpen() {
return "zzsxt/xxgl/xmkpgl/fybx/index_open";
}
@RequestMapping(value = "index_fpxxSelector", method = RequestMethod.GET)
public String indexFpxxSelector() {
return "zzsxt/xxgl/xmkpgl/fybx/index_fpxxSelector";
}
@RequestMapping(value = "findAll", produces = "application/json;charset=UTF-8")
@ResponseBody
@ -117,6 +124,28 @@ public class FybxController extends BaseController {
return getResult(mapModel, code, msg, callback);
}
@RequestMapping(value = "selectZZSGL_JX_FPXX", produces = "application/json;charset=UTF-8")
@ResponseBody
public Object selectZZSGL_JX_FPXX(@RequestParam Map userMap, String callback) throws Exception {
int code;
String msg = "操作成功!";
if (userMap.get("limit") != null && !"".equals(userMap.get("limit"))) {
userMap.put("pageSize", userMap.get("limit"));
}
Map mapModel = new HashMap();
try {
List<Map> list = this.fybxService.selectZZSGL_JX_FPXX(userMap);
mapModel.put("data", getPageModel(list));
code = 0;
} catch (Exception e) {
log.error(e.getMessage());
e.printStackTrace();
code = -1;
msg = "查询发票信息失败!" + e.getMessage();
}
return getResult(mapModel, code, msg, callback);
}
@RequestMapping(value = "fqbx", produces = "application/json;charset=UTF-8")
@ResponseBody
public Object sendJxpz(@RequestParam Map<String, String> params, String callback) throws SaveException {
@ -142,20 +171,31 @@ public class FybxController extends BaseController {
String result = HttpClientUtil.postRequest(apiUrl, param, "json", "utf-8", 0, 0);
JSONObject resultJson = JSONUtil.parseObj(result);
log.info("返回结果:{}", JSONUtil.toJsonPrettyStr(resultJson));
Map updateMap = new HashMap();
updateMap.put("FYID", data.get("FYID"));
updateMap.put("BXZT", 2);
this.fybxService.updateBxztById(updateMap);
}
return getResult(mapModel, code, msg, callback);
}
private JSONObject packageRequestData(JSONObject data) throws SaveException {
JSONObject fydj = new JSONObject();
fydj.put("djbh", data.get("DJBH")); // 单据编号
fydj.put("djrq", data.get("DJRQ")); // 单据日期 格式yyyy-MM-dd
if (ObjectUtil.isNotEmpty(data.get("DJRQ"))) {
fydj.put("djrq", DateUtil.format(DateUtil.date(data.getLong("DJRQ")), "yyyy-MM-dd")); // 单据日期 格式yyyy-MM-dd
}
fydj.put("djlx", data.get("DJLX")); // 单据类型
fydj.put("djje", data.get("DJJE")); // 单据金额
fydj.put("djse", data.get("DJSE")); // 单据税额
fydj.put("bxr", data.get("BXR")); // 报销人
fydj.put("bxsj", data.get("BXSJ")); // 报销时间 yyyy-MM-dd HH:mm:ss
if (ObjectUtil.isNotEmpty(data.get("BXSJ"))) {
fydj.put("bxsj", DateUtil.format(DateUtil.date(data.getLong("BXSJ")), "yyyy-MM-dd HH:mm:ss")); // 报销时间 yyyy-MM-dd HH:mm:ss
}
fydj.put("bxsy", data.get("BXSY")); // 报销事由
fydj.put("bxzt", data.get("BXZT")); // 报销状态1.未报销 2.报销中 3.已报销
fydj.put("bz", data.get("BZ")); // 备注

View File

@ -20,4 +20,12 @@ public interface FybxMapper {
List<Map> selectZZSGL_JX_FYDJMX(Map userMap);
List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap);
List<Map> selectZZSGL_JX_FPXX(Map userMap);
Integer deleteZZSGL_JX_FYDJ_MX_FP(Map deleteMap);
void updateBxztById(Map updateMap);
int updateZZSGL_JX_FYDJ(Map userMap);
}

View File

@ -1,7 +1,7 @@
package net.htjs.pt4.zzsxt.service.impl.xxgl.xmkpgl.fybx;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
@ -13,7 +13,7 @@ import net.htjs.pt4.zzsxt.tools.CommonUtil;
import net.htjs.util.Get16BM;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -47,30 +47,53 @@ public class FybxServiceImpl implements IFybxService {
djbhMap.put("DJBH", djbh);
List<Map> mxArray = this.fybxMapper.selectZZSGL_JX_FYDJ(djbhMap);
if (!mxArray.isEmpty()) {
throw new RuntimeException("单据编号已经存在");
}
Map map = mxArray.get(0);
userMap.put("FYID", map.get("FYID"));
// 更新费用单据
result = this.fybxMapper.updateZZSGL_JX_FYDJ(userMap);
}else{
userMap.put("FYID", Get16BM.getUnquieID());
userMap.put("BXSJ", DateUtil.date());
// 保存费用单据
result = this.fybxMapper.insertZZSGL_JX_FYDJ(userMap);
}
// 保存费用单据明细
if (userMap.get("FYMX_list") != null) {
List<Map> list = CommonUtil.JsonStringToList(userMap.get("FYMX_list").toString());
if (list != null && !list.isEmpty()) {
for (Map map : list) {
List<Map> mxfplist = new ArrayList<>();
List<Map> fymxList = CommonUtil.JsonStringToList(userMap.get("FYMX_list").toString());
if (fymxList != null && !fymxList.isEmpty()) {
for (Map map : fymxList) {
Object fymxid = map.get("FYMXID");
if (StrUtil.isBlankIfStr(fymxid)) {
fymxid = Get16BM.getUnquieID();
}
map.put("FYMXID", fymxid);
map.put("FYID", userMap.get("FYID"));
Map deleteMap = new HashMap();
deleteMap.put("FYID", userMap.get("FYID"));
deleteMap.put("FYMXID", fymxid);
this.fybxMapper.deleteZZSGL_JX_FYDJ_MX_FP(deleteMap);//先删除数据中当前申请的所有明细信息,
String FPID = MapUtil.getStr(map, "FPID");
if (StrUtil.isNotBlank(FPID)) {
String[] fpids = FPID.split(",");
for (String fpid : fpids) {
Map mxfp = new HashMap();
mxfp.put("FPID", fpid);
mxfp.put("FYMXID", fymxid);
mxfp.put("FYID", userMap.get("FYID"));
mxfp.put("ID", Get16BM.getUnquieID());
mxfplist.add(mxfp);
}
}
}
Map deleteMap = new HashMap();
deleteMap.put("FYID", userMap.get("FYID"));
this.fybxMapper.deleteZZSGL_JX_FYDJMX(deleteMap);//先删除数据中当前申请的所有明细信息,
// 然后把界面上的显示的明细信息全部保存到表中。
this.fybxMapper.insertZZSGL_JX_FYDJMX(list);
this.fybxMapper.insertZZSGL_JX_FYDJMX(fymxList);
this.fybxMapper.insertZZSGL_JX_FYDJ_MX_FP(mxfplist);
}
}
@ -92,4 +115,15 @@ public class FybxServiceImpl implements IFybxService {
public List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap) {
return this.fybxMapper.selectZZSGL_JX_FYDJ_MX_FP(userMap);
}
@Override
public List<Map> selectZZSGL_JX_FPXX(Map userMap) {
return this.fybxMapper.selectZZSGL_JX_FPXX(userMap);
}
@Override
public void updateBxztById(Map updateMap) {
this.fybxMapper.updateBxztById(updateMap);
}
}

View File

@ -15,4 +15,8 @@ public interface IFybxService {
List<Map> selectZZSGL_JX_FYDJMX(Map userMap) throws SaveException;
List<Map> selectZZSGL_JX_FYDJ_MX_FP(Map userMap);
List<Map> selectZZSGL_JX_FPXX(Map userMap);
void updateBxztById(Map updateMap);
}

View File

@ -9,10 +9,10 @@
AND T.DJBH = #{DJBH}
</if>
<if test="DJRQ_Q!=null and DJRQ_Q!=''">
AND T.DJRQ_Q >= #{DJRQ_Q}
AND T.DJRQ >= #{DJRQ_Q}
</if>
<if test="DJRQ_Z!=null and DJRQ_Z!=''">
AND T.DJRQ_Z &lt;= #{DJRQ_Z}
AND T.DJRQ &lt;= #{DJRQ_Z}
</if>
<if test="DJLX!=null and DJLX!=''">
AND T.DJLX = #{DJLX}
@ -30,12 +30,40 @@
#{BXSJ}, #{BXZT}, #{BXSY}, #{KHSH}, #{KHMC}, #{SSBM}, #{ZW}, #{BZ}
)
</insert>
<insert id="updateZZSGL_JX_FYDJ" parameterType="map">
UPDATE ZZSGL_JX_FYDJ SET
DJBH = #{DJBH},
DJRQ = #{DJRQ},
DJLX = #{DJLX},
DJJE = #{DJJE},
DJSE = #{DJSE},
BXR = #{BXR},
BXSJ = #{BXSJ},
BXZT = #{BXZT},
BXSY = #{BXSY},
KHSH = #{KHSH},
KHMC = #{KHMC},
SSBM = #{SSBM},
ZW = #{ZW},
BZ = #{BZ}
WHERE FYID = #{FYID}
</insert>
<delete id="updateBxztById" parameterType="map">
UPDATE ZZSGL_JX_FYDJ SET BXZT = #{BXZT}
WHERE FYID = #{FYID}
</delete>
<delete id="deleteZZSGL_JX_FYDJMX" parameterType="map">
DELETE
FROM ZZSGL_JX_FYDJMX
WHERE FYID = #{FYID}
</delete>
<delete id="deleteZZSGL_JX_FYDJ_MX_FP" parameterType="map">
DELETE
FROM ZZSGL_JX_FYDJ_MX_FP
WHERE FYID = #{FYID} AND FYMXID = #{FYMXID}
</delete>
<insert id="insertZZSGL_JX_FYDJMX" parameterType="map">
<foreach collection="list" item="item" index="index" separator=";">
INSERT INTO ZZSGL_JX_FYDJMX(
@ -73,8 +101,8 @@
<select id="selectZZSGL_JX_FYDJ_MX_FP" resultType="map" parameterType="map">
select
FPID, FPDM, FPHM, KPRQ, JSHJ
from ZZSGL_JX_FYDJMX mx
fp.FPID, fp.FPDM, fp.FPHM, fp.KPRQ, fp.JSHJ
from ZZSGL_JX_FYDJ_MX_FP mx
inner join ZZSGL_JX_FPXX fp on mx.FPID = fp.FPID
<where>
<if test="FYMXID!=null and FYMXID!=''">
@ -85,4 +113,27 @@
</if>
</where>
</select>
<select id="selectZZSGL_JX_FPXX" resultType="map" parameterType="map">
select * from ZZSGL_JX_FPXX T
<where>
<if test="FPDM!=null and FPDM!=''">
AND T.FPDM = #{FPDM}
</if>
<if test="FPHM!=null and FPHM!=''">
AND T.FPHM = #{FPHM}
</if>
<if test="KPRQ_Q!=null and KPRQ_Q!=''">
AND T.KPRQ >= #{KPRQ_Q}
</if>
<if test="KPRQ_Z!=null and KPRQ_Z!=''">
AND T.KPRQ &lt;= #{KPRQ_Z}
</if>
<if test="XFMC!=null and XFMC!=''">
AND T.XFMC LIKE CONCAT('%', CONCAT(#{XFMC}, '%'))
</if>
<if test="FPLX!=null and FPLX!=''">
AND T.FPLX = #{FPLX}
</if>
</where>
</select>
</mapper>

View File

@ -256,6 +256,11 @@ var tablePublic = (function() {
// curSeg.onInsert($("#"+table_id),table_id);
// tr_=$("#"+table_id).find("tr:last");
// }
try{
callBackObj.onTableCallBack();
}catch (e){
}
}
},
/**
@ -337,6 +342,7 @@ var tablePublic = (function() {
tablePublic.onResetXh(now_table_id);
try{
//执行回调函数 新增行不再执行回调函数
callBackObj.onTableCallBack();
}catch (e){
}

View File

@ -143,6 +143,7 @@ var kpsq_list = (function () {
{field: 'BXR', title: '报销人', width: 160, align: 'left'}, {
field: 'BXSJ', title: '报销时间', width: 130,
templet: function (d) {
if(!!d.BXSJ){
var time = new Date(d.BXSJ);
var year = time.getFullYear();
var mon = time.getMonth() + 1;
@ -153,8 +154,11 @@ var kpsq_list = (function () {
if (day < 10) {
day = '0' + day;
}
return '<div style="text-align: center;">' + year + '-' + mon + '-' + day + '</div>';
}
return '';
}
},
{
field: 'BXZT', title: '报销状态', width: 120,
@ -174,11 +178,11 @@ var kpsq_list = (function () {
{field: 'KHMC', title: '客户名称', width: 160, align: 'left'},
{
title: '操作', fixed: 'right', width: 220,
title: '操作', fixed: 'right', width: 220, align: 'center',
templet: function (data) {
return '<a href="#" accesskey="v" class="layui-btn layui-btn-xs" lay-event="view">查看</a>'
+ '<a href="#" accesskey="e" class="layui-btn layui-btn-xs" lay-event="edit">修改</a>'
+ '<a href="#" accesskey="d" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" >删除</a>'
// + '<a href="#" accesskey="d" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" >删除</a>'
}
}
];

View File

@ -50,20 +50,7 @@ var kpsq_add =(function(){
initLayout();
curSeg.onSavePre();
},
//自动计算税额、价税合计
onAutoComputeSE:function (obj) {
var jebhs = $('#JEBHS').val();
jebhs = sctTools.onUnFormartMoney(jebhs);
jebhs = parseFloat(jebhs);
if(jebhs!=undefined){
var se = jebhs*parseFloat($(obj).val());
$('#SE').val(sctTools.onMoneyFormat(se,2));
var jshj = jebhs+se;
$('#JSHJ').val(sctTools.onMoneyFormat(jshj,2));
}
},
//在开票信息或分包发票扣除表格中插入或删除一行数据时的回调函数
//在表格中插入或删除一行数据时的回调函数
onTableCallBack : function(obj) {
if (obj) {
//删除回调
@ -75,6 +62,8 @@ var kpsq_add =(function(){
}
}else{
//插入回调
console.log("插入回调");
form.render('select'); // 重新渲染 select 组件
}
},
@ -157,7 +146,6 @@ var kpsq_add =(function(){
}*/
layer.confirm('是否删除这条开票信息?',{icon: 3},function (index) {
tablePublic.onDelete(obj);
curSeg.onComputeHj();
layer.closeAll('dialog');
});
},
@ -181,91 +169,9 @@ var kpsq_add =(function(){
trObj.find("input[name='"+i+"']").val(val);
});
}
curSeg.onComputeHj();
});
},
/**批量选择*/
onXqFpKcPl:function(){
if(recordfpfp.length==0){
layui.use('layer', function () {
var layer = layui.layer;
layer.ready(function () {
top.layer.alert("请先选择含有分包发票信息的分包合同!", {icon: 0,closeBtn:0});
})
})
return;
}
var _winParam = {
other: {
recordfpfp: recordfpfp,
callfun:curSeg.onXqFpKcPlDataFill
}
};
top.sctTools.openPage({
type: 2,
id: 'win_kpsq_onXqFpKcPl',
title: '<b>分包发票扣除信息批量选择</b>',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['800px', '380px'],
content: '/web/xxgl/xmkpgl/kpsq/onXqFpKcPl',
btn: ['选取', '关闭'],
btnAlign: 'c',
success: function(layero,index) {
var obj = layero.find("iframe")[0].contentWindow;
obj.onXqFpKcPL.onLoad(_winParam);
},
yes: function (index, layero) {
//top.window.iframeLayerData = {CZLX: "add"};
var body = top.layer.getChildFrame("body",index);
body.find("#kpsqAddFpkcplSubmit").click();
top.layer.close(index);
},
btn2: function (index, layero) {
//top.layer.closeAll();
}
});
},
//双击展示商品编码信息
onOpenSpbm:function () {
var _winParam = {
other: {
parentJs_obj:kpsq_add
}
};
top.sctTools.openPage({
type: 2,
id: 'win_zbhtwh_spbmSelector',
title: '<b>商品编码信息</b>',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['1095px', '570px'],
content: '/web/htgl/zbhtwh/index_spbmSelector',
btn: ['保存', '关闭'],
btnAlign: 'c',
success: function(layero,index) {
var obj = layero.find("iframe")[0].contentWindow;
obj.zbhtxx_spbmSelector.onload(_winParam);
},
yes: function (index, layero) {
//top.window.iframeLayerData = {CZLX: "add"};
var body = top.layer.getChildFrame("body",index);
body.find("#zbhtwhAddSpbmSubmit").click();
top.layer.close(index);
},
btn2: function (index, layero) {
//top.layer.closeAll();
}
});
},
//在合同明细中插入一条商品编码数据对应的各字段值 2019-6-27 19:31:17 细节需要优化
onInsertOneSpbm:function (spbmArray) {
tablePublic.onInsertData(spbmArray,'tbSave_kpmx');
var a = $("#HTZJE").val();
if(a=="0" || a=="" || a==undefined){
$("#HTZJE").val("0.00");
}
},
//回调父页面函数的方法 2019-7-9 14:41:52
calPareFuc : function () {
layui.use("layer", function () {
@ -282,7 +188,61 @@ var kpsq_add =(function(){
}
parent.layer.closeAll();
});
}
},
openFpxx: function (){
var _winParam = {
other: {
parentJs_obj:kpsq_add
}
};
top.sctTools.openPage({
type: 2,
id: 'win_zbhtwh_spbmSelector',
title: '<b>发票信息</b>',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['1095px', '570px'],
content: '/web/xxgl/xmkpgl/fybx/index_fpxxSelector',
btn: ['保存', '关闭'],
btnAlign: 'c',
success: function(layero,index) {
var obj = layero.find("iframe")[0].contentWindow;
obj.zbhtxx_spbmSelector.onload(_winParam);
},
yes: function (index, layero) {
var body = top.layer.getChildFrame("body",index);
body.find("#zbhtwhAddSpbmSubmit").click();
top.layer.close(index);
},
btn2: function (index, layero) {
//top.layer.closeAll();
}
});
},
//在合同明细中插入一条商品编码数据对应的各字段值 2019-6-27 19:31:17 细节需要优化
onInsertOneSpbm:function (spbmArray) {
console.log(spbmArray)
var fpids = [];
var JSHJ = 0, HJJE = 0, HJSE = 0, FPZS = 0;
for(var i = 0; i < spbmArray.length; i++){
var item = spbmArray[i];
FPZS++;
JSHJ += (item.JSHJ || 0);
HJJE += (item.JEBHS || 0);
HJSE += (item.SE || 0);
fpids.push(item.FPID);
}
var data = {
FYLX: '',
FYSY: '',
FPID: fpids.join(','),
FPZS: FPZS,
JSHJ: JSHJ,
HJJE: HJJE,
HJSE: HJSE
};
tablePublic.onInsertData([data],'tbSave_kpmx');
},
};
})();

View File

@ -67,40 +67,15 @@ var kpsq_edit =(function(){
if (trCount == 1) {//最少保留一行内容
tablePublic.onInsert(this, tableId);
}
if(tableId=='tbSave_kpmx'){
}else if(tableId=='tbSave_fbmx'){//删除分包扣除
curSeg.deleteZZSGL_HT_FBHT_FPXX_KC(obj);
}
}else{
//插入回调
form.render('select'); // 重新渲染 select 组件
}
},
//绑定数据
bindData : function(jsonObj, xhrArgs){
var a = 0;
SQZJE = jsonObj.data[0].SQZJE;
var GCJSD = jsonObj.data[0].GCJSD;
if (GCJSD != '' && GCJSD != null){
$("#GCJSD").val(GCJSD);
var fileFullUploadPath = GCJSD;
$("#a_GCJSD").click(function(){
sctTools.onViewImage(fileFullUploadPath);
}).show();
}
for(var h=0;h<jsonObj.data.length;h++){
a += jsonObj.data[h].HSJE;
}
SQZJE -= a;
tablePublic.onResetTable('tbSave_kpmx');
tablePublic.onInsertData(jsonObj.data,'tbSave_kpmx');
selectToAddHtmx = jsonObj.data;
inithjhsje = 0;
$.each(selectToAddHtmx,function (n,value) {
var hsje = value.HSJE+'';
hsje = sctTools.onUnFormartMoney(hsje);
inithjhsje += parseFloat(hsje);
});
},
onSavePre: function () {
@ -114,7 +89,7 @@ var kpsq_edit =(function(){
},
// 保存数据
onSave : function(field){
onSave : function(data){
var url = "/web/xxgl/xmkpgl/fybx/insert";// 新增费用报销,新增和修改页面保存操作调用的是同一个后台方法
var kpxxList = tablePublic.onSave('tbSave_kpmx');
data["FYMX_list"] = JSON.stringify(kpxxList);
@ -136,7 +111,7 @@ var kpsq_edit =(function(){
baseTools.xhrAjax({
url: url,
params: field,
params: data,
callback: [function (jsonObj,xhrArgs) {
if(jsonObj.code===1){
kpsq_edit.calPareFuc();
@ -177,12 +152,8 @@ var kpsq_edit =(function(){
})
return false;
}
/*if(!confirm('')){
return false;
}*/
layer.confirm('是否删除这条开票信息?',{icon: 3},function (index) {
tablePublic.onDelete(obj);
curSeg.onComputeHj();
layer.closeAll('dialog');
});
},
@ -274,6 +245,60 @@ var kpsq_edit =(function(){
});
}
})
},
openFpxx: function (){
var _winParam = {
other: {
parentJs_obj:kpsq_edit
}
};
top.sctTools.openPage({
type: 2,
id: 'win_zbhtwh_spbmSelector',
title: '<b>发票信息</b>',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['1095px', '570px'],
content: '/web/xxgl/xmkpgl/fybx/index_fpxxSelector',
btn: ['保存', '关闭'],
btnAlign: 'c',
success: function(layero,index) {
var obj = layero.find("iframe")[0].contentWindow;
obj.zbhtxx_spbmSelector.onload(_winParam);
},
yes: function (index, layero) {
var body = top.layer.getChildFrame("body",index);
body.find("#zbhtwhAddSpbmSubmit").click();
top.layer.close(index);
},
btn2: function (index, layero) {
//top.layer.closeAll();
}
});
},
//在合同明细中插入一条商品编码数据对应的各字段值 2019-6-27 19:31:17 细节需要优化
onInsertOneSpbm:function (spbmArray) {
console.log(spbmArray)
var fpids = [];
var JSHJ = 0, HJJE = 0, HJSE = 0, FPZS = 0;
for(var i = 0; i < spbmArray.length; i++){
var item = spbmArray[i];
FPZS++;
JSHJ += (item.JSHJ || 0);
HJJE += (item.JEBHS || 0);
HJSE += (item.SE || 0);
fpids.push(item.FPID);
}
var data = {
FYLX: '',
FYSY: '',
FPID: fpids.join(','),
FPZS: FPZS,
JSHJ: JSHJ,
HJJE: HJJE,
HJSE: HJSE
};
tablePublic.onInsertData([data],'tbSave_kpmx');
},
};
})();

View File

@ -0,0 +1,189 @@
//ie情况下重复执行onload造成获取对象丢失 360无此影响
//index_add.js对象传到此js使用zbhtxx_spbmSelector.onload()方法,因此避免可以将此处注掉
/*$(function(){
zbhtxx_spbmSelector.onload();
});*/
var zbhtxx_spbmSelector =(function(){
//私有属性
var curSeg=null;
var tspz = "00";
if(top.window.iframeLayerData !=undefined){
tspz = top.window.iframeLayerData;
}
//私有方法
var initLayout = function(){
layui.use('table', function () {
var table = layui.table;
var index = layer.load(0);
table.render({
elem: '#table_sb',
id:'table_sb',
/*height:'full-220',*/
url: "/web/xxgl/xmkpgl/fybx/selectZZSGL_JX_FPXX",
where: {
},
dataType: "json",
cols: [[
{type: 'checkbox'},
{field: 'FPID', title:"发票ID", hide:true},
{field: 'FPDM', title: '发票代码', width: 200, align:'center'},
{field: 'FPHM', title: '发票号码', width: 200, align:'center'},
{field: 'KPRQ', title: '开票日期', width: 200, align:'center'},
{field: 'XFMC', title: '销方名称', width: 120, align:'center'},
{field: 'XFSH', title: '销方税号', width: 110, align:'center'}
]],
parseData: function (res) {
var code = res.code;
if (code == 0) {
var resdata = res.data.total;
if (!!resdata && resdata != 0){
return {
"code": res.code,
"msg": res.msg,
"count": res.data.list[0].TOTAL,
"data": res.data.list
};
}else {
return {
"code": res.code,
"msg": res.msg,
"count": 0,
"data": res.data.list
};
}
} else {
return {
"code": res.code,
"msg": res.msg,
"count": 0,
"data": ''
};
}
},
skin: 'line',
loading: true,
even: true,
page: {
groups: 5 //只显示 5 个连续页码
},
limits: [10, 20, 30, 40, 50],
limit: 10,
done:function(){ //返回数据执行回调函数
layer.close(index); //返回数据关闭loading
//table.resize();
}
});
});
// 删除组件释放内存
$(window).unload(function () {
});
};
//共有方法
return {
//加载数据
onload : function(_winParam){
curSeg = zbhtxx_spbmSelector;
initLayout();
curSeg.onSavePre(_winParam);
},
onQuery: function () {
layui.use('table', function () {
var table = layui.table;
var index = layer.load(0);
table.render({
elem: '#table_sb',
id:'table_sb',
/*height:'full-220',*/
url: "/web/xxgl/xmkpgl/fybx/selectZZSGL_JX_FPXX",
where:
{
MC: $("#SPMC").val(),
GGXH: $("#GGXH").val(),
TSPZ: tspz
},
dataType: "json",
cols: [[
{type: 'checkbox'},
{field: 'FPID', title:"发票ID", hide:true},
{field: 'FPDM', title: '发票代码', width: 200, align:'center'},
{field: 'FPHM', title: '发票号码', width: 200, align:'center'},
{field: 'KPRQ', title: '开票日期', width: 200, align:'center'},
{field: 'XFMC', title: '销方名称', width: 120, align:'center'},
{field: 'XFSH', title: '销方税号', width: 110, align:'center'}
]],
parseData: function (res) {
var code = res.code;
if (code == 0) {
var resdata = res.data.total;
if (!!resdata && resdata != 0){
return {
"code": res.code,
"msg": res.msg,
"count": res.data.list[0].TOTAL,
"data": res.data.list
};
}else {
return {
"code": res.code,
"msg": res.msg,
"count": 0,
"data": res.data.list
};
}
} else {
return {
"code": res.code,
"msg": res.msg,
"count": 0,
"data": ''
};
}
},
skin: 'line',
loading: true,
even: true,
page: {
groups: 5 //只显示 5 个连续页码
},
limits: [10, 20, 30, 40, 50],
limit: 10,
done:function(){ //返回数据执行回调函数
layer.close(index); //返回数据关闭loading
//table.resize();
}
});
});
// 删除组件释放内存
$(window).unload(function () {
});
},
onSavePre: function (_winParam) {
//监听提交
layui.use(['form'], function() {
var form = layui.form;
var layer = layui.layer;
form.on('submit(formZbhtwhSaveSpbm)', function () {
layui.use('table', function () {
var table = layui.table;
var selectData = table.checkStatus('table_sb').data;
curSeg.onSave(selectData,_winParam);
});
});
});
},
onSave:function (selectData,_winParam) {
if(selectData.length === 0){
parent.layer.msg("请选择发票信息!", {
icon: 0,
time: 3000
});
return false;
}
var a = selectData;
var parentJs_obj = _winParam.other.parentJs_obj;
parentJs_obj.onInsertOneSpbm(a);
}
};
})();

View File

@ -53,8 +53,6 @@ var kpsq_open = (function () {
curSeg = kpsq_open;
initLayout();
curSeg.onQueryFydjmx();
curSeg.onSavePre();
},
//绑定数据
bindData: function (jsonObj, xhrArgs) {

View File

@ -42,8 +42,6 @@
基本信息
</div>
<div class="m_form layui-form f_cb">
<input type="hidden" id="SQZT" name="SQZT" value="0"/><!--不要删除新增项目开票申请默认申请状态为0代表未发起-->
<input type="hidden" id="XMKPBZ" name="XMKPBZ" value="0"/><!--不要删除新增项目开票申请默认项目开票标志为0代表项目开票-->
<input type="hidden" id="BXZT" name="BXZT" value="1"/><!-- 报销状态默认开票状态为1=未报销 -->
<div class="layui-inline">
@ -225,6 +223,7 @@
<td align="center">
<input type="hidden" name="FYMXID"/>
<input type="hidden" name="FYID"/>
<input type="hidden" name="FPID"/>
<span name="rowno_kpmx">1</span>
<input type="hidden" name="ROWTYPE" value="NEW" />
</td>
@ -250,11 +249,10 @@
</td>
<td>
<input type="text" name="HJSE" class="layui-input" lay-verify="" placeholder="合计税额" readonly="readonly"/>
<input type="hidden" name = "SPID" />
</td>
<td>
<div class="m_table_btn">
<!-- <span class="s_fc_blue" onclick="tablePublic.onInsert(this, 'tbSave_kpmx');">关联发票</span>-->
<span class="s_fc_blue" onclick="kpsq_add.openFpxx();">关联发票</span>
<span class="s_fc_blue" onclick="tablePublic.onInsert(this, 'tbSave_kpmx');">增加</span>
<span class="s_fc_red" onclick="kpsq_add.onDeleteKpmx(this);">删除</span>
</div>

View File

@ -42,6 +42,7 @@
基本信息
</div>
<div class="m_form layui-form f_cb">
<input type="hidden" id="BXZT" name="BXZT"/><!-- 报销状态默认开票状态为1=未报销 -->
<div class="layui-inline">
<label class="layui-form-label">单据编号:</label>
@ -222,6 +223,7 @@
<td align="center">
<input type="hidden" name="FYMXID"/>
<input type="hidden" name="FYID"/>
<input type="hidden" name="FPID"/>
<span name="rowno_kpmx">1</span>
<input type="hidden" name="ROWTYPE" value="NEW" />
</td>
@ -247,13 +249,12 @@
</td>
<td>
<input type="text" name="HJSE" class="layui-input" lay-verify="" placeholder="合计税额" readonly="readonly"/>
<input type="hidden" name = "SPID" />
</td>
<td>
<div class="m_table_btn">
<!-- <span class="s_fc_blue" onclick="tablePublic.onInsert(this, 'tbSave_kpmx');">关联发票</span>-->
<span class="s_fc_blue" onclick="kpsq_edit.openFpxx(this);">关联发票</span>
<span class="s_fc_blue" onclick="tablePublic.onInsert(this, 'tbSave_kpmx');">增加</span>
<span class="s_fc_red" onclick="kpsq_add.onDeleteKpmx(this);">删除</span>
<span class="s_fc_red" onclick="kpsq_edit.onDeleteKpmx(this);">删除</span>
</div>
</td>
</tr>

View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html class="hb100">
<head>
<title>商品编码选择</title>
<meta charset="utf-8" />
<meta name="renderer" content="webkit" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
/>
<script src="/commons/common/include_ui_pt.js?dm=50"></script>
<link rel="stylesheet" href="/commons/css/client.css" />
<link rel="stylesheet" href="/commons/css/public.css" />
<script type="text/javascript" src="/zzsxt/xxgl/xmkpgl/fybx/index_fpxxSelector.js"></script>
</head>
<body>
<form class="layui-form" name="form_search" id="form_search" method="get" action="" lay-filter="form_search">
<div class="layui-form select_search top_header">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label label">
发票代码:
</label>
<div class="layui-input-inline">
<input type="text" name="FPDM" id="FPDM" onblur="zbhtxx_spbmSelector.onQuery();" placeholder="发票代码" autocomplete="off" class="input_khxx" value="" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label label">
发票号码:
</label>
<div class="layui-input-inline">
<input type="text" name="FPHM" id="FPHM" onblur="zbhtxx_spbmSelector.onQuery();" placeholder="发票号码" autocomplete="off" class="input_khxx" value="" />
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<div
class="layui-btn save" style="background-color: #009688"
onclick="zbhtxx_spbmSelector.onQuery();"
id="search_id"
>
查询
</div>
</div>
</div>
</div>
</div>
</form>
<form class="layui-form" name="formSpbmSel" id="formSpbmSel" method="get" action="" lay-filter="formSpbmSel">
<div class="layui-fluid g_index">
<div class="layui-card">
<div class="table_h">
<table id="table_sb" lay-filter="demo" class="layui-table"></table>
</div>
<div class="m_btn f_tac" hidden="hidden">
<div class="layui-inline">
<div
class="layui-btn save"
lay-submit=""
lay-filter="formZbhtwhSaveSpbm"
id="zbhtwhAddSpbmSubmit"
>
保存
</div>
<div type="button" class="layui-btn layui-btn-primary" id="xmwhAddReset">
关闭
</div>
</div>
</div>
</div>
</div>
</form>
<!--<table id="tbList" class="tbClass" style="overflow: auto;"></table>-->
</body>
</html>