Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-bpm
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
鲁鑫
topsun-bpm
Commits
f590bf98
Commit
f590bf98
authored
Mar 31, 2024
by
鲁鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
采购申请优化
parent
8ddb1e20
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
578 additions
and
266 deletions
+578
-266
choosePurchaseDetail.jsp
...n/webapp/biz/topsun/sap/purchase/choosePurchaseDetail.jsp
+20
-0
sapPurchaseDetail.js
.../main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.js
+102
-245
sapPurchaseDetail.jsp
...main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.jsp
+1
-1
sapPurchaseList.js
...rc/main/webapp/biz/topsun/sap/purchase/sapPurchaseList.js
+16
-18
sapZNE1PurchaseDetail.js
...n/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js
+377
-0
sapZNE1PurchaseDetail.jsp
.../webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.jsp
+38
-0
SapPurchaseController.java
...topsun/sap/purchase/controller/SapPurchaseController.java
+24
-2
No files found.
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/choosePurchaseDetail.jsp
0 → 100644
View file @
f590bf98
<%--采购申请--%>
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"请选择采购申请PR类型"
needStatus=
"true"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
labelCol=
"4"
fieldCol=
"8"
required=
"true"
/>
</div>
</div>
</form>
</div>
</body>
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.js
View file @
f590bf98
var
itemGridManager
=
null
,
pstyp
=
" "
,
fillinDate
=
""
,
bsart
=
""
;
$
(
function
()
{
init
ItemGrid
();
init
ializeCommonUI
();
bindEvent
();
bsart
=
$
(
"#bsart"
).
val
();
initItemGrid
();
});
function
initializeCommonUI
()
{
bsart
=
$
(
"#bsart"
).
val
();
if
(
"ZFW"
==
bsart
)
{
pstyp
=
"D"
;
}
else
{
pstyp
=
""
;
}
}
function
bindEvent
()
{
$
(
"#bsart"
).
combox
({
onChange
:
function
(
data
)
{
if
(
"ZFW"
==
data
.
value
)
{
pstyp
=
"D"
;
}
else
{
pstyp
=
""
;
}
bsart
=
data
.
value
;
}
})
fillinDate
=
$
(
"#fillinDate"
).
val
();
}
function
initItemGrid
()
{
var
toolbar
Options
=
UICtrl
.
getDefaultToolbarOptions
({
var
toolbar
=
UICtrl
.
getDefaultToolbarOptions
({
addHandler
:
function
()
{
UICtrl
.
addGridRow
(
itemGridManager
,
{
bnfpo
:
(
itemGridManager
.
getData
().
length
+
1
)
*
10
,
...
...
@@ -43,7 +39,7 @@ function initItemGrid() {
}
});
},
})
;
})
itemGridManager
=
UICtrl
.
grid
(
'#maingrid'
,
{
columns
:
getGridColumns
(),
dataAction
:
'server'
,
...
...
@@ -60,38 +56,38 @@ function initItemGrid() {
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
autoApplyNextEditor
:
false
,
toolbar
:
toolbar
Options
,
toolbar
:
toolbar
,
onBeforeEdit
:
function
(
editParm
)
{
var
c
=
editParm
.
column
,
data
=
editParm
.
record
;
//非资产类消耗性采购申请类型当“科目分配类型”选择K后“物料编号”字段调整为非必须输入项;“成本中心”、“总账科目”字段调整为必须输入项。订单号不可编辑。
if
(
"ZNE2"
==
bsart
&&
(
data
.
knttp
==
"K"
||
data
.
knttp
==
"F"
)
&&
c
.
name
===
'kostl'
)
{
return
true
;
}
else
{
return
false
;
}
//仅适用于KNTTP=F时
if
((
"ZFW"
==
bsart
||
"ZNE2"
==
bsart
)
&&
data
.
knttp
==
"F"
&&
c
.
name
===
'aufnr'
)
{
return
true
;
}
else
{
return
false
;
}
//仅适用于KNTTP=A时
if
(
data
.
knttp
==
'A'
&&
c
.
name
===
'anln1'
)
{
return
true
;
}
else
{
return
false
;
}
//
var c = editParm.column, data = editParm.record;
//
//
非资产类消耗性采购申请类型当“科目分配类型”选择K后“物料编号”字段调整为非必须输入项;“成本中心”、“总账科目”字段调整为必须输入项。订单号不可编辑。
//
if ("ZNE2" == bsart && (data.knttp == "K"|| data.knttp == "F" ) && c.name === 'kostl') {
//
return true;
//
}else {
//
return false;
//
}
//
//
仅适用于KNTTP=F时
//
if (("ZFW" == bsart || "ZNE2" == bsart) && data.knttp == "F" && c.name === 'aufnr') {
//
return true;
//
}else {
//
return false;
//
}
//
//
仅适用于KNTTP=A时
//
if (data.knttp == 'A' && c.name === 'anln1') {
//
return true;
//
}else {
//
return false;
//
}
},
onAfterEdit
:
function
(
editParm
)
{
if
(
editParm
.
record
.
knttp
===
"K"
)
{
var
colums
=
itemGridManager
.
columns
;
colums
.
forEach
(
colum
=>
{
if
(
colum
.
name
==
"matnr"
)
{
colum
.
editor
.
required
=
false
;
itemGridManager
.
columns
=
colums
}
})
}
//
if (editParm.record.knttp === "K") {
//
var colums = itemGridManager.columns;
//
colums.forEach(colum => {
//
if (colum.name == "matnr") {
//
colum.editor.required = false;
//
itemGridManager.columns = colums
//
}
//
})
//
}
}
}
);
...
...
@@ -100,13 +96,12 @@ function initItemGrid() {
function
getGridColumns
()
{
var
columns
=
[];
columns
=
[
{
columns
.
push
({
display
:
"申购项次号"
,
name
:
"bnfpo"
,
width
:
"80"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'spinner'
,
min
:
10
,
max
:
200
,
mask
:
'nnn'
}
},
{
display
:
"项次类别"
,
name
:
"pstyp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
hide
:
true
},
{
},
);
columns
.
push
({
display
:
"项次类别"
,
name
:
"pstyp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
hide
:
true
},);
columns
.
push
(
{
display
:
"科目分配类别"
,
name
:
"knttp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
...
...
@@ -121,8 +116,8 @@ function getGridColumns() {
}
},
}
},
{
},
);
columns
.
push
(
{
display
:
"工厂"
,
name
:
"werks"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
...
...
@@ -139,40 +134,12 @@ function getGridColumns() {
},
}
},
{
},
);
columns
.
push
(
{
display
:
"工厂名称"
,
name
:
"name1"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"物料编号"
,
name
:
"matnr"
,
width
:
"300"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"sapMaterialSelect"
,
getParam
:
function
(
item
)
{
return
{
filterValue
:
item
.
werks
}
},
back
:
{
MATNR
:
"matnr"
,
MAKTX
:
"txz01"
,
MATKL
:
"matkl"
,
WGBEZ
:
"matklName"
,
EKGRP
:
"ekgrp"
,
EKNAM
:
"ekgrpName"
,
PEINH
:
"peinh"
,
MEINS
:
"meins"
,
MSEHL
:
"meinsName"
,
LGFSB
:
"lgort"
,
LGOBE
:
"lgobe"
}
},
}
},
{
});
columns
.
push
({
display
:
"库存地点"
,
name
:
"lgort"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"select"
,
...
...
@@ -188,16 +155,16 @@ function getGridColumns() {
}
},
}
},
{
},
);
columns
.
push
(
{
display
:
"库存地点名称"
,
name
:
"lgobe"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "text"}
},
{
},
);
columns
.
push
(
{
display
:
"短文本"
,
name
:
"txz01"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"text"
}
},
{
},
);
columns
.
push
(
{
display
:
"物料组"
,
name
:
"matkl"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
...
...
@@ -212,12 +179,12 @@ function getGridColumns() {
}
},
}
},
{
},
);
columns
.
push
(
{
display
:
"申购数量"
,
name
:
"menge"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
true
,
type
:
"text"
,
mask
:
'9999999.999'
}
},
{
},
);
columns
.
push
(
{
display
:
"申购数量单位"
,
name
:
"meins"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
/*editor: {
required: false, type: "select",
...
...
@@ -233,8 +200,8 @@ function getGridColumns() {
},
}*/
editor
:
{
required
:
true
,
type
:
"text"
}
},
{
},
);
columns
.
push
(
{
display
:
"采购组"
,
name
:
"ekgrp"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
true
,
type
:
"select"
,
...
...
@@ -249,62 +216,32 @@ function getGridColumns() {
}
},
}
},
{
},
);
columns
.
push
(
{
display
:
"批准日期"
,
name
:
"frgdt"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "date"}
},
{
},
);
columns
.
push
(
{
display
:
"要求交货日期"
,
name
:
"lfdat"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"date"
}
},
// {display: "服务主数据编号", name: "srvpos", width: "80", align: "left", type: "string",
// editor: {type: 'text', required: false},
// },
// {display: "服务短文本", name: "ktext1", width: "100", align: "left", type: "string"},
// {display: "服务条目数量", name: "esllMenge", width: "80", align: "left", type: "string",
// //editor: {type: 'text', mask: '9999999.999'},
// render:function(item){
// return item.esllMenge=item.menge;
// }
// },
// {display: "服务计量单位", name: "esllMeins", width: "100", align: "left", type: "string",
// editor: {type: "text", required: false,}
// },
// {display: '定价基数', name: "peinh", width: "100", align: "left", type: "string",
// //editor: {required: true, type: "select"}
// render:function(item){
// return item.peinh=item.preis;
// }
// },
// {display: "服务预估单价", name: "brtwr", width: "100", align: "left", type: "string",
// editor: {type: 'text', mask: '9999999.99'}
// },
// {display: "服务预估金额", name: "netwr", width: "100", align: "left", type: "string",
// render:function(item){
// if (item.brtwr == '' || item.brtwr == null || item.peinh == '' || item.peinh == null){
// return item.netwr=0;
// }
// return item.netwr=(item.brtwr*item.esllMenge/item.peinh).toFixed(2);
// }
// },
{
display
:
"创建者"
,
name
:
"ernam"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
},
{
},);
columns
.
push
({
display
:
"创建者"
,
name
:
"ernam"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
},);
columns
.
push
({
display
:
"申请人"
,
name
:
"afnam"
,
width
:
"90"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
required
:
false
},
},
{
},
);
columns
.
push
(
{
display
:
"预估单价"
,
name
:
"preis"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
mask
:
'9999999.99'
,
required
:
true
}
},
{
},
);
columns
.
push
(
{
display
:
"价格基数"
,
name
:
"ebanPeinh"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {type: 'text', mask: '9999999',required: false}
render
:
function
(
item
)
{
return
item
.
ebanPeinh
=
1
;
}
},
{
},
);
columns
.
push
(
{
display
:
"币种"
,
name
:
"waers"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"text"
,
...
...
@@ -319,8 +256,8 @@ function getGridColumns() {
}
},*/
}
},
{
},
);
columns
.
push
(
{
display
:
"评估金额"
,
name
:
"ebanNetwr"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
render
:
function
(
item
)
{
if
(
item
.
ebanPeinh
==
''
)
{
...
...
@@ -329,8 +266,8 @@ function getGridColumns() {
return
item
.
ebanNetwr
=
(
item
.
preis
*
item
.
menge
/
item
.
ebanPeinh
).
toFixed
(
2
);
}
//editor: {type: 'text'}
},
{
},
);
columns
.
push
(
{
display
:
"会计分配序号"
,
name
:
"zebkn"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
},
render
:
function
(
item
)
{
...
...
@@ -340,8 +277,8 @@ function getGridColumns() {
// }
return
item
.
zebkn
=
item
.
menge
;
}
},
{
},
);
columns
.
push
(
{
display
:
"多重科目分配"
,
name
:
"vrtkz"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {type: 'text'},
render
:
function
(
item
)
{
...
...
@@ -350,8 +287,8 @@ function getGridColumns() {
return
item
.
vrtkz
=
1
;
}
}
},
{
},
);
columns
.
push
(
{
display
:
"部分发票"
,
name
:
"twrkz"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
},
render
:
function
(
item
)
{
...
...
@@ -360,19 +297,19 @@ function getGridColumns() {
return
item
.
twrkz
=
1
;
}
}
},
{
},
);
columns
.
push
(
{
display
:
"PR分解数量"
,
name
:
"ekbnMenge"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
}
},
{
},
);
columns
.
push
(
{
display
:
"总账科目"
,
name
:
"sakto"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
required
:
true
}
},
{
},
);
columns
.
push
(
{
display
:
"成本中心"
,
name
:
"kostl"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
fals
e
,
type
:
"select"
,
required
:
tru
e
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
...
...
@@ -384,8 +321,8 @@ function getGridColumns() {
}
},
}
},
{
},
);
columns
.
push
(
{
display
:
"订单号"
,
name
:
"aufnr"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
//editor: {type: 'text'}
editor
:
{
...
...
@@ -404,43 +341,19 @@ function getGridColumns() {
}
},
}
},
{
display
:
"资产编号"
,
name
:
"anln1"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"ANLN1"
,
filterValue
:
'1000'
}
},
back
:
{
ANLN1
:
"anln1"
}
},
}
},
// {
// display: "子资产号", name: "anln2", width: "100", align: "left", type: "string",
// editor: {type: 'text'}
// },
{
});
columns
.
push
({
display
:
"审批处理状态"
,
name
:
"banpr"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
}
},
{
},
);
columns
.
push
(
{
display
:
"申请日期"
,
name
:
"badat"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"date"
}
},
{
},
);
columns
.
push
(
{
display
:
"创建日期"
,
name
:
"erdat"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "date"}
},
]
},);
return
columns
;
}
...
...
@@ -463,62 +376,12 @@ function getExtendedData(processAction) {
if
(
!
datas
)
{
return
false
;
}
var
checked1
=
false
;
var
checked2
=
false
;
var
checked3
=
false
;
var
checked4
=
false
;
var
checked5
=
false
;
var
checked6
=
false
;
datas
.
forEach
(
data
=>
{
if
(
data
.
pstyp
===
"D"
&&
Public
.
isBlank
(
data
.
srvpos
))
{
Public
.
tip
(
"项次类别等于D时,服务主数据编号必须输入"
)
return
false
;
}
//选择固定资产采购申请类型时,“科目分配类别”、“申请人”、“币种”、“资产编号” 调整为必须输入项
if
(
"ZNE1"
===
bsart
)
{
if
(
Public
.
isBlank
(
data
.
afnam
))
{
checked1
=
true
;
}
if
(
Public
.
isBlank
(
data
.
waers
))
{
checked2
=
true
;
}
if
(
Public
.
isBlank
(
data
.
anln1
))
{
checked3
=
true
;
}
}
if
((
"ZFW"
==
bsart
||
"ZNE2"
==
bsart
)
){
if
(
Public
.
isBlank
(
data
.
sakto
)){
checked4
=
true
;
}
if
(
Public
.
isBlank
(
data
.
kostl
)){
checked5
=
true
;
}
if
(
"F"
==
data
.
knttp
&&
Public
.
isBlank
(
data
.
aufnr
)){
checked6
=
true
;
}
if
(
"F"
==
data
.
knttp
&&
Public
.
isBlank
(
data
.
aufnr
)){
checked6
=
true
;
}
})
if
(
checked1
)
{
Public
.
tip
(
"申请人不能为空"
)
return
false
;
}
if
(
checked2
)
{
Public
.
tip
(
"币种不能为空"
)
return
false
;
}
if
(
checked3
)
{
Public
.
tip
(
"资产编号不能为空"
)
return
false
;
}
if
(
checked4
)
{
Public
.
tip
(
"总账科目不能为空"
)
return
false
;
}
if
(
checked5
)
{
Public
.
tip
(
"成本中心不能为空"
)
return
false
;
}
if
(
checked6
)
{
Public
.
tip
(
"订单号不能为空"
)
return
false
;
...
...
@@ -551,10 +414,4 @@ function getGridData() {
return
datas
;
}
function
getBsartNum
()
{
var
datas
=
this
.
getGridData
();
datas
.
forEach
(
data
=>
{
})
}
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseDetail.jsp
View file @
f590bf98
...
...
@@ -28,7 +28,7 @@
<x:hidden
name=
"frgdt"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:selectC
name=
"bsart"
label=
"pr类型"
disabled=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:inputC
name=
"banfn"
label=
"采购申请编号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"false"
/>
</div>
</div>
...
...
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapPurchaseList.js
View file @
f590bf98
...
...
@@ -47,7 +47,7 @@ function initPurchaseListGrid() {
}
,
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
viewHandler
(
data
.
parentI
d
);
viewHandler
(
data
.
i
d
);
},
onAfterShowData
:
function
(
currentData
)
{
...
...
@@ -63,39 +63,37 @@ function initPurchaseListGrid() {
* @param parentId 采购申请id
* @returns {boolean}
*/
function
viewHandler
(
parentI
d
)
{
if
(
!
parentI
d
)
{
function
viewHandler
(
i
d
)
{
if
(
!
i
d
)
{
var
row
=
DataUtil
.
getSelectedRow
(
purchaseGridManager
);
if
(
!
row
)
{
return
row
;
}
parentId
=
row
.
parentI
d
;
id
=
row
.
i
d
;
}
UICtrl
.
addTabItem
({
tabid
:
'viewPurchase'
+
parentI
d
,
tabid
:
'viewPurchase'
+
i
d
,
text
:
'查看采购申请'
,
url
:
web_app
.
name
+
'/
purchase/loadPurchaseDetail.do?isReadOnly=true&id='
+
parentI
d
url
:
web_app
.
name
+
'/
sapPurchase/showSapPurchaseDetail.do?isReadOnly=true&bizId='
+
i
d
});
}
function
updateHandler
()
{
var
row
=
DataUtil
.
getSelectedRow
(
purchaseGridManager
);
if
(
!
row
)
{
return
;
}
UICtrl
.
addTabItem
({
tabid
:
'updatePurchase'
+
row
.
parentId
,
text
:
'修改采购申请'
,
url
:
web_app
.
name
+
'/purchase/loadPurchaseDetail.do?id='
+
row
.
parentId
//添加按钮
function
addHandler
()
{
UICtrl
.
showAjaxDialog
({
title
:
'新增'
,
width
:
400
,
url
:
web_app
.
name
+
'/sapPurchase/choosePurchaseDetail.load'
,
ok
:
insertHandler
});
}
function
addHandler
()
{
function
insertHandler
()
{
var
bsart
=
$
(
"#bsart"
).
val
();
UICtrl
.
addTabItem
({
tabid
:
'addPurchase'
,
text
:
'新增采购申请'
,
url
:
web_app
.
name
+
'/sapPurchase/forwardSapPurchaseDetail.job
'
url
:
web_app
.
name
+
'/sapPurchase/forwardSapPurchaseDetail.job
?bsart='
+
bsart
});
}
...
...
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js
0 → 100644
View file @
f590bf98
var
itemGridManager
=
null
,
pstyp
=
" "
,
fillinDate
=
""
,
bsart
=
""
;
$
(
function
()
{
initializeCommonUI
();
bindEvent
();
initItemGrid
();
});
function
initializeCommonUI
()
{
bsart
=
$
(
"#bsart"
).
val
();
if
(
"ZFW"
==
bsart
)
{
pstyp
=
"D"
;
}
else
{
pstyp
=
""
;
}
}
function
bindEvent
()
{
fillinDate
=
$
(
"#fillinDate"
).
val
();
}
function
initItemGrid
()
{
var
toolbar
=
UICtrl
.
getDefaultToolbarOptions
({
addHandler
:
function
()
{
UICtrl
.
addGridRow
(
itemGridManager
,
{
bnfpo
:
(
itemGridManager
.
getData
().
length
+
1
)
*
10
,
pstyp
:
pstyp
,
badat
:
fillinDate
,
erdat
:
fillinDate
});
},
deleteHandler
:
function
()
{
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
DataUtil
.
delSelectedRows
({
action
:
'sapPurchaseItem/deleteSapPurchaseItem.ajax'
,
param
:
{},
gridManager
:
_grid
,
idFieldName
:
'id'
,
onSuccess
:
function
()
{
reloadGrid
();
}
});
},
})
itemGridManager
=
UICtrl
.
grid
(
'#maingrid'
,
{
columns
:
getGridColumns
(),
dataAction
:
'server'
,
url
:
web_app
.
name
+
'/sapPurchaseItem/querySapPurchaseItems.ajax'
,
parms
:
{
sapPurchaseId
:
getId
()},
height
:
'95%'
,
heightDiff
:
-
4
,
sortName
:
'id'
,
sortOrder
:
'asc'
,
checkbox
:
true
,
usePager
:
true
,
rownumbers
:
true
,
enabledEdit
:
true
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
autoApplyNextEditor
:
false
,
toolbar
:
toolbar
,
onBeforeEdit
:
function
(
editParm
)
{
// var c = editParm.column, data = editParm.record;
// //非资产类消耗性采购申请类型当“科目分配类型”选择K后“物料编号”字段调整为非必须输入项;“成本中心”、“总账科目”字段调整为必须输入项。订单号不可编辑。
// if ("ZNE2" == bsart && (data.knttp == "K"|| data.knttp == "F" ) && c.name === 'kostl') {
// return true;
// }else {
// return false;
// }
// //仅适用于KNTTP=F时
// if (("ZFW" == bsart || "ZNE2" == bsart) && data.knttp == "F" && c.name === 'aufnr') {
// return true;
// }else {
// return false;
// }
// //仅适用于KNTTP=A时
// if (data.knttp == 'A' && c.name === 'anln1') {
// return true;
// }else {
// return false;
// }
},
onAfterEdit
:
function
(
editParm
)
{
// if (editParm.record.knttp === "K") {
// var colums = itemGridManager.columns;
// colums.forEach(colum => {
// if (colum.name == "matnr") {
// colum.editor.required = false;
// itemGridManager.columns = colums
// }
// })
// }
}
}
);
UICtrl
.
setSearchAreaToggle
(
itemGridManager
);
}
function
getGridColumns
()
{
var
columns
=
[];
columns
.
push
({
display
:
"申购项次号"
,
name
:
"bnfpo"
,
width
:
"80"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'spinner'
,
min
:
10
,
max
:
200
,
mask
:
'nnn'
}
},);
columns
.
push
({
display
:
"项次类别"
,
name
:
"pstyp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
hide
:
true
},);
columns
.
push
({
display
:
"科目分配类别"
,
name
:
"knttp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"knttp"
,
getParam
:
function
(
item
)
{
return
{
filterValue
:
$
(
"#bsart"
).
val
()}
},
back
:
{
knttp
:
"knttp"
}
},
}
},);
columns
.
push
({
display
:
"工厂"
,
name
:
"werks"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"WERKS"
}
},
back
:
{
WERKS
:
"werks"
,
NAME1
:
"name1"
},
},
}
},);
columns
.
push
({
display
:
"工厂名称"
,
name
:
"name1"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"text"
}
});
columns
.
push
({
display
:
"库存地点"
,
name
:
"lgort"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"LGORT"
}
},
back
:
{
LGORT
:
"lgort"
,
LGOBE
:
"lgobe"
}
},
}
},);
columns
.
push
({
display
:
"库存地点名称"
,
name
:
"lgobe"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "text"}
},);
columns
.
push
({
display
:
"短文本"
,
name
:
"txz01"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"text"
}
},);
columns
.
push
({
display
:
"物料组"
,
name
:
"matkl"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"MATKL"
}
},
back
:
{
MATKL
:
"matkl"
}
},
}
},);
columns
.
push
({
display
:
"申购数量"
,
name
:
"menge"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
true
,
type
:
"text"
,
mask
:
'9999999.999'
}
},);
columns
.
push
({
display
:
"申购数量单位"
,
name
:
"meins"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
/*editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {paramValue: "MEINS"}
},
back: {
MEINS: "meins"
}
},
}*/
editor
:
{
required
:
true
,
type
:
"text"
}
},);
columns
.
push
({
display
:
"采购组"
,
name
:
"ekgrp"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"EKGRP"
}
},
back
:
{
EKGRP
:
"ekgrp"
}
},
}
},);
columns
.
push
({
display
:
"批准日期"
,
name
:
"frgdt"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "date"}
},);
columns
.
push
({
display
:
"要求交货日期"
,
name
:
"lfdat"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"date"
}
},);
columns
.
push
({
display
:
"创建者"
,
name
:
"ernam"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
},);
columns
.
push
({
display
:
"申请人"
,
name
:
"afnam"
,
width
:
"90"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
required
:
true
},
},);
columns
.
push
({
display
:
"预估单价"
,
name
:
"preis"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
mask
:
'9999999.99'
,
required
:
true
}
},);
columns
.
push
({
display
:
"价格基数"
,
name
:
"ebanPeinh"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {type: 'text', mask: '9999999',required: false}
render
:
function
(
item
)
{
return
item
.
ebanPeinh
=
1
;
}
},);
columns
.
push
({
display
:
"币种"
,
name
:
"waers"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"text"
,
/*data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "WAERS"}
},
back: {
WAERS: "waers"
}
},*/
}
},);
columns
.
push
({
display
:
"评估金额"
,
name
:
"ebanNetwr"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
render
:
function
(
item
)
{
if
(
item
.
ebanPeinh
==
''
)
{
return
item
.
ebanNetwr
=
null
;
}
return
item
.
ebanNetwr
=
(
item
.
preis
*
item
.
menge
/
item
.
ebanPeinh
).
toFixed
(
2
);
}
//editor: {type: 'text'}
},);
columns
.
push
({
display
:
"会计分配序号"
,
name
:
"zebkn"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
},
render
:
function
(
item
)
{
//申购项次为消耗性采购时,从1开始步长为1自动编号,最大99
// if (item.knttp != ''){
// ZEBKN_NUM = ZEBKN_NUM + 1;
// }
return
item
.
zebkn
=
item
.
menge
;
}
},);
columns
.
push
({
display
:
"多重科目分配"
,
name
:
"vrtkz"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {type: 'text'},
render
:
function
(
item
)
{
//资产消耗性申购,若申请数量大于1,此处不能为空,必须选择1
if
(
item
.
knttp
==
"A"
&&
item
.
menge
>
1
)
{
return
item
.
vrtkz
=
1
;
}
}
},);
columns
.
push
({
display
:
"部分发票"
,
name
:
"twrkz"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
},
render
:
function
(
item
)
{
//资产消耗性申购,若申请数量大于1,此处不能为空,必须选择1
if
(
item
.
knttp
==
"A"
&&
item
.
menge
>
1
)
{
return
item
.
twrkz
=
1
;
}
}
},);
columns
.
push
({
display
:
"PR分解数量"
,
name
:
"ekbnMenge"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
}
},);
columns
.
push
({
display
:
"总账科目"
,
name
:
"sakto"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
required
:
false
}
},);
columns
.
push
({
display
:
"资产编号"
,
name
:
"anln1"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"ANLN1"
,
filterValue
:
'1000'
}
},
back
:
{
ANLN1
:
"anln1"
}
},
}
},);
return
columns
;
}
//获取数据保存的参数
function
getExtendedData
(
processAction
)
{
//回退、打回、转交时,不需要验证必填项是否已经填写;
if
(
processAction
==
ProcessAction
.
BACK
||
processAction
==
ProcessAction
.
REPLENISH
||
processAction
==
ProcessAction
.
TRANSMIT
)
{
//不验证
$
(
'#submitForm'
).
attr
(
'check'
,
true
);
}
var
extendedData
=
{};
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
if
(
_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
extendedData
.
sapPurchaseItems
=
Public
.
encodeJSONURI
(
datas
);
}
return
extendedData
;
}
function
getId
()
{
return
$
(
'#id'
).
val
();
}
function
setId
(
value
)
{
$
(
"#id"
).
val
(
value
);
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
_grid
.
options
.
parms
.
sapPurchaseId
=
value
;
}
function
reloadGrid
()
{
itemGridManager
.
loadData
();
}
function
getGridData
()
{
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
_grid
,
isAllData
:
true
});
return
datas
;
}
topsun-xt/src/main/webapp/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.jsp
0 → 100644
View file @
f590bf98
<%--采购申请--%>
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"
/>
<x:script
src=
"/biz/topsun/sap/purchase/sapZNE1PurchaseDetail.js"
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"采购申请"
needStatus=
"true"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<x:hidden
name=
"id"
/>
<x:hidden
name=
"version"
/>
<x:hidden
name=
"billCode"
/>
<x:hidden
name=
"fillinDate"
/>
<x:hidden
name=
"fullId"
/>
<x:hidden
name=
"organId"
/>
<x:hidden
name=
"organName"
/>
<x:hidden
name=
"deptId"
/>
<x:hidden
name=
"deptName"
/>
<x:hidden
name=
"positionId"
/>
<x:hidden
name=
"positionName"
/>
<x:hidden
name=
"personMemberId"
/>
<x:hidden
name=
"personMemberName"
/>
<x:hidden
name=
"statusId"
/>
<x:hidden
name=
"frgdt"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:selectC
name=
"bsart"
label=
"pr类型"
disabled=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:inputC
name=
"banfn"
label=
"采购申请编号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"false"
/>
</div>
</div>
<div
id=
"maingrid"
></div>
</form>
</div>
</body>
\ No newline at end of file
topsun/src/main/java/com/huigou/topsun/sap/purchase/controller/SapPurchaseController.java
View file @
f590bf98
...
...
@@ -43,25 +43,47 @@ public class SapPurchaseController extends CommonController {
return
toResult
(
map
);
}
public
String
choosePurchaseDetail
(){
return
forward
(
"choosePurchaseDetail"
);
}
public
String
forwardSapPurchaseDetail
(){
this
.
putAttribute
(
"processDefinitionKey"
,
SapPurchaseApplication
.
PROCESS_DEFINITION_KEY
);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
String
bsart
=
getSDO
().
getString
(
"bsart"
);
SapPurchase
sapPurchase
=
new
SapPurchase
();
sapPurchase
.
setBsart
(
bsart
);
sapPurchase
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator
operator
=
getOperator
();
sapPurchase
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
switch
(
bsart
){
case
"ZNE1"
:
return
forward
(
"sapZNE1PurchaseDetail"
,
sapPurchase
);
case
"ZFW"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
case
"ZNE2"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
}
return
null
;
}
public
String
showSapPurchaseDetail
(){
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getBizId
();
SapPurchase
sapPurchase
=
sapPurchaseApplication
.
loadSapPurchase
(
id
);
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
switch
(
sapPurchase
.
getBsart
()){
case
"ZNE1"
:
return
forward
(
"sapZNE1PurchaseDetail"
,
sapPurchase
);
case
"ZFW"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
case
"ZNE2"
:
return
forward
(
"sapPurchaseDetail"
,
sapPurchase
);
}
return
null
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment