Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
管店云开源进销存
开源进销存系统
提交
fa00853a
开源进销存系统
项目概览
管店云开源进销存
/
开源进销存系统
通知
191
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
开源进销存系统
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fa00853a
编写于
4月 17, 2024
作者:
L
lsh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加采购单
上级
ca89b43d
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
1734 addition
and
0 deletion
+1734
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/_form.html
.../webapp/WEB-INF/views/inventory/purchase/order/_form.html
+901
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/add.html
...in/webapp/WEB-INF/views/inventory/purchase/order/add.html
+121
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/audit.html
.../webapp/WEB-INF/views/inventory/purchase/order/audit.html
+42
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/index.html
.../webapp/WEB-INF/views/inventory/purchase/order/index.html
+127
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/list.html
...n/webapp/WEB-INF/views/inventory/purchase/order/list.html
+203
-0
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/show.html
...n/webapp/WEB-INF/views/inventory/purchase/order/show.html
+340
-0
未找到文件。
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/_form.html
0 → 100644
浏览文件 @
fa00853a
此差异已折叠。
点击以展开。
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/add.html
0 → 100644
浏览文件 @
fa00853a
<form
id=
"purchaseOrder-add-form"
onsubmit=
"purchaseOrder.submitConfirm();return false;"
>
#include("_form.html")
<div
class=
"row p-3 text-center"
style=
"margin: 0 0 0 0;"
>
<div
class=
"col"
>
<button
type=
"button"
class=
"btn btn-lg btn-outline-secondary fs-6 btn-wlg"
onclick=
"dashboard.linkTab('/inventory/purchase/order/add')"
>
清空
</button>
<button
type=
"button"
name=
"normal_btn"
class=
"btn btn-primary btn-lg fs-6 btn-wlg"
onclick=
"purchaseOrder.normal();"
>
确认保存
</button>
<button
type=
"button"
name=
"draft_btn"
class=
"btn btn-outline-primary btn-lg fs-6 btn-wlg"
onclick=
"purchaseOrder.draft();"
>
暂存草稿
</button>
</div>
</div>
</form>
<div
id=
"purchaseOrder-add-confirm"
style=
"display:none;"
>
<button
type=
"button"
name=
"normal_btn"
class=
"btn btn-primary btn-lg fs-6"
onclick=
"purchaseOrder.normal();"
>
确认保存
</button>
<button
type=
"button"
name=
"draft_btn"
class=
"btn btn-outline-primary btn-lg fs-6"
onclick=
"purchaseOrder.draft();"
>
暂存草稿
</button>
<button
type=
"button"
class=
"btn btn-outline-primary btn-lg fs-6"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
取消
</button>
</div>
<script
type=
"application/javascript"
>
if
(
typeof
(
purchaseOrder
)
==
"
undefined
"
)
{
purchaseOrder
=
{};
}
$
(
function
()
{
var
formId
=
"
#purchaseOrder-add-form
"
;
// 初始化bootstrap相关组件
common
.
initBootstrap
();
// 绑定tablink
dashboard
.
bindTablink
();
setTimeout
(
function
()
{
purchaseOrder
.
handlerList
(
formId
);
purchaseOrder
.
supplierList
(
formId
);
purchaseOrder
.
bindGoodsSelector
(
formId
);
purchaseOrder
.
balanceAccountList
(
formId
);
formInput
.
listenkeyUp
(
formId
);
},
500
);
#
if
(
purchaseOrder
)
setTimeout
(
function
()
{
$
(
formId
).
find
(
"
input[name=remark]
"
).
first
().
focus
();
},
500
);
#
end
purchaseOrder
.
uploadFileListener
(
formId
)
});
purchaseOrder
.
submitConfirm
=
function
()
{
var
formId
=
"
#purchaseOrder-add-form
"
;
var
result
=
purchaseOrder
.
formChecking
(
formId
);
if
(
!
result
)
{
return
;
}
beekit
.
modalConfirm
(
"
确定要保存进货单吗?
"
,
$
(
"
#purchaseOrder-add-confirm
"
).
html
());
};
purchaseOrder
.
normal
=
function
()
{
var
formId
=
"
#purchaseOrder-add-form
"
;
$
(
formId
).
find
(
"
input[name=order_status]
"
).
first
().
val
(
#
(
OrderStatusEnum
.
normal
.
value
));
purchaseOrder
.
create
();
};
purchaseOrder
.
draft
=
function
()
{
var
formId
=
"
#purchaseOrder-add-form
"
;
$
(
formId
).
find
(
"
input[name=order_status]
"
).
first
().
val
(
#
(
OrderStatusEnum
.
draft
.
value
));
purchaseOrder
.
create
();
};
purchaseOrder
.
create
=
function
(
msg
)
{
var
formId
=
"
#purchaseOrder-add-form
"
;
var
result
=
purchaseOrder
.
formChecking
(
formId
);
if
(
!
result
)
{
return
;
}
#
if
(
purchaseOrder
&&
purchaseOrder
.
id
&&
purchaseOrder
.
id
>
0
)
var
url
=
"
/inventory/purchase/order/update
"
;
#
else
var
url
=
"
/inventory/purchase/order/create
"
;
#
end
beekit
.
ajaxPost
(
url
,
$
(
formId
).
serialize
(),
function
(
ret
)
{
common
.
processRequestResult
(
ret
,
function
(
ret
)
{
beekit
.
modalConfirmClose
();
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
var
orderStatusVal
=
$
(
formId
).
find
(
"
input[name=order_status]
"
).
first
().
val
();
if
(
orderStatusVal
==
#
(
OrderStatusEnum
.
draft
.
value
))
{
beekit
.
flyer
(
$
(
formId
).
find
(
"
button[name=draft_btn]
"
).
first
(),
$
(
formId
).
find
(
"
span[name=draft_count]
"
).
first
(),
"
#purchaseOrder-add-form button[name=draft_count_btn]
"
);
}
else
{
beekit
.
flyer
(
$
(
formId
).
find
(
"
button[name=normal_btn]
"
).
first
(),
"
#inventory_purchase_order
"
);
#
if
(
orderPrintConfig
.
purchase_order_flag
)
#
if
(
orderPrintConfig
.
purchase_order_confirm
)
setTimeout
(
function
()
{
beekit
.
confirm
(
'
是否打印单据?
'
,
function
()
{
lodopPrinter
.
purchaseOrderPrint
(
0
,
ret
.
targetId
,
false
);
});
},
1500
);
#
else
lodopPrinter
.
purchaseOrderPrint
(
0
,
ret
.
targetId
,
false
);
#
end
#
end
}
dashboard
.
linkTab
(
"
/inventory/purchase/order/add
"
);
}
});
});
};
purchaseOrder
.
draftIndex
=
function
()
{
beekit
.
offcanvasMiddle
(
"
/inventory/purchase/order/draftIndex
"
);
};
</script>
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/audit.html
0 → 100644
浏览文件 @
fa00853a
<div
class=
"modal-dialog modal-dialog-scrollable modal-dialog-centered"
>
<div
class=
"modal-content"
>
<form
id=
"purchaseOrder-audit-form"
onsubmit=
"purchaseOrder.auditCreate();return false;"
>
<div
class=
"modal-header"
>
<h6
class=
"modal-title"
>
进货单审核
</h6>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<input
type=
"hidden"
name=
"id"
value=
"#(id)"
>
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"input-group mb-3"
>
<span
class=
"input-group-text"
>
审核说明
</span>
<textarea
class=
"form-control"
name=
"audit_desc"
></textarea>
</div>
</div>
</div>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-danger"
onclick=
"purchaseOrder.auditCreate(#(AuditStatusEnum.reject.value));"
>
审核拒绝
</button>
<button
type=
"button"
class=
"btn btn-primary"
onclick=
"purchaseOrder.auditCreate(#(AuditStatusEnum.pass.value));"
>
审核通过
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
aria-label=
"Close"
>
关闭
</button>
</div>
</form>
</div>
</div>
<script
type=
"application/javascript"
>
purchaseOrder
.
auditCreate
=
function
(
auditStatus
)
{
beekit
.
ajaxPost
(
"
/inventory/purchase/order/auditCreate?audit_status=
"
+
auditStatus
,
$
(
"
#purchaseOrder-audit-form
"
).
serialize
(),
function
(
ret
)
{
beekit
.
msg
(
ret
);
if
(
ret
.
state
==
"
ok
"
)
{
beekit
.
modalClose
();
purchaseOrder
.
list
(
#
(
id
));
}
});
};
</script>
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/index.html
0 → 100644
浏览文件 @
fa00853a
<div
class=
"card mb-2"
>
<div
class=
"card-body search-form"
>
<form
id=
"purchaseOrder-search-form"
>
<input
type=
"hidden"
id=
"purchaseOrder_pageNumber"
name=
"pageNumber"
>
<div
class=
"row align-items-center"
>
<div
class=
"col"
>
<div
class=
"row align-items-center"
>
<div
class=
"col-3"
>
<div
class=
"btn-group"
role=
"group"
>
<input
type=
"radio"
class=
"btn-check"
name=
"order_time_btn"
id=
"purchaseOrder_order_time_preday"
value=
"1"
autocomplete=
"off"
>
<label
class=
"btn btn-outline-primary"
for=
"purchaseOrder_order_time_preday"
>
昨日
</label>
<input
type=
"radio"
class=
"btn-check"
name=
"order_time_btn"
id=
"purchaseOrder_order_time_today"
value=
"2"
autocomplete=
"off"
>
<label
class=
"btn btn-outline-primary"
for=
"purchaseOrder_order_time_today"
>
今日
</label>
<input
type=
"radio"
class=
"btn-check"
name=
"order_time_btn"
id=
"purchaseOrder_order_time_month"
value=
"3"
autocomplete=
"off"
>
<label
class=
"btn btn-outline-primary"
for=
"purchaseOrder_order_time_month"
>
本月
</label>
<input
type=
"radio"
class=
"btn-check"
name=
"order_time_btn"
id=
"purchaseOrder_order_time_premonth"
value=
"4"
autocomplete=
"off"
>
<label
class=
"btn btn-outline-primary"
for=
"purchaseOrder_order_time_premonth"
>
上月
</label>
<input
type=
"radio"
class=
"btn-check"
name=
"order_time_btn"
id=
"purchaseOrder_order_time_year"
value=
"5"
autocomplete=
"off"
>
<label
class=
"btn btn-outline-primary"
for=
"purchaseOrder_order_time_year"
>
本年
</label>
</div>
</div>
<div
class=
"col-2"
>
<input
type=
"hidden"
name=
"supplier_info_id"
id=
"purchaseOrder_search_supplier_info_id"
>
<input
type=
"text"
class=
"form-control"
placeholder=
"请输入供应商名称或简码"
id=
"purchaseOrder_search_supplier_info_keyword"
autocomplete=
"off"
>
</div>
<div
class=
"col-2"
>
<input
type=
"hidden"
name=
"handler_id"
id=
"purchaseOrder_search_handler_id"
>
<input
type=
"text"
class=
"form-control"
placeholder=
"请输入进货员姓名或简码"
id=
"purchaseOrder_search_handler_keyword"
autocomplete=
"off"
>
</div>
<div
class=
"col-3"
>
<input
type=
"text"
class=
"form-control"
placeholder=
"单据编号/备注"
name=
"keyword"
onclick=
"$(this).select();"
>
</div>
<div
class=
"col align-self-center"
>
<button
type=
"submit"
class=
"btn btn-sm btn-primary"
onclick=
"purchaseOrder.search(this);"
>
<i
class=
"bi bi-search"
></i>
搜索
</button>
<span
style=
"margin-left: 15px;"
><a
href=
"javascript:void(0);"
onclick=
"common.expandFilter(this, 'purchaseOrder_expand_filter')"
>
展开
<i
class=
"bi bi-chevron-double-down"
></i></a></span>
</div>
</div>
<div
id=
"purchaseOrder_expand_filter"
style=
"display: none;"
>
<div
class=
"row align-items-center mt-3"
>
<div
class=
"col-2"
>
<input
type=
"text"
class=
"form-control"
id=
"purchaseOrder_search_start_time"
name=
"start_time"
placeholder=
"开始时间"
onClick=
"WdatePicker({el:this, startDate:'%y-%M-%d 00:00:00', dateFmt:'yyyy-MM-dd HH:mm:ss'})"
readonly
>
</div>
<div
class=
"col-2"
>
<input
type=
"text"
class=
"form-control"
id=
"purchaseOrder_search_end_time"
name=
"end_time"
placeholder=
" 结束时间"
onClick=
"WdatePicker({el:this, startDate:'%y-%M-%d 00:00:00', dateFmt:'yyyy-MM-dd HH:mm:ss'})"
readonly
>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div
id=
"data-list-purchaseOrder"
></div>
<script
type=
"application/javascript"
>
if
(
typeof
(
purchaseOrder
)
==
"
undefined
"
)
{
purchaseOrder
=
{};
}
$
(
function
()
{
// 初始化bootstrap相关组件
common
.
initBootstrap
();
// 加载列表
purchaseOrder
.
list
();
$
(
'
#purchaseOrder-search-form input[name=order_time_btn]
'
).
on
(
'
click
'
,
function
()
{
var
timeType
=
$
(
this
).
val
();
var
times
=
datetime
.
getFormatTime
(
timeType
);
$
(
"
#purchaseOrder_search_start_time
"
).
val
(
times
.
startTime
);
$
(
"
#purchaseOrder_search_end_time
"
).
val
(
times
.
endTime
);
purchaseOrder
.
list
();
});
purchaseOrder
.
loadingHandlerList
();
purchaseOrder
.
loadSupplierList
();
});
purchaseOrder
.
list
=
function
(
targetId
,
callback
)
{
var
showAuditFlag
=
$
(
"
#purchaseOrder_show_audit_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
showAuditFlag
)
==
'
undefined
'
)
{
showAuditFlag
=
false
;
}
var
hideDisableFlag
=
$
(
"
#purchaseOrder_hide_disable_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
hideDisableFlag
)
==
'
undefined
'
)
{
hideDisableFlag
=
true
;
}
var
hidePayFlag
=
$
(
"
#purchaseOrder_hide_pay_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
hidePayFlag
)
==
'
undefined
'
)
{
hidePayFlag
=
false
;
}
$
(
"
#purchaseOrder_pageNumber
"
).
val
(
1
);
beekit
.
ajaxFillPage
(
"
/inventory/purchase/order/list?hide_disable_flag=
"
+
hideDisableFlag
+
"
&show_audit_flag=
"
+
showAuditFlag
+
"
&hide_pay_flag=
"
+
hidePayFlag
,
"
#purchaseOrder-search-form
"
,
"
#data-list-purchaseOrder
"
,
"
purchaseOrder-data-
"
+
targetId
,
callback
);
};
purchaseOrder
.
add
=
function
()
{
beekit
.
modal
(
"
/inventory/purchase/order/add
"
);
};
purchaseOrder
.
search
=
function
(
othis
)
{
common
.
loadingSearch
(
othis
);
purchaseOrder
.
list
(
""
,
function
(
ret
)
{
common
.
restoreSearch
(
othis
);
});
};
purchaseOrder
.
loadingHandlerList
=
function
()
{
beekit
.
autocomplete
(
"
#purchaseOrder_search_handler_keyword
"
,
"
/setting/tenant/admin/listByJson
"
,
"
#purchaseOrder_search_handler_id
"
,
function
()
{
purchaseOrder
.
list
();
});
}
purchaseOrder
.
loadSupplierList
=
function
()
{
beekit
.
autocomplete
(
"
#purchaseOrder_search_supplier_info_keyword
"
,
"
/inventory/supplier/info/listByJson
"
,
"
#purchaseOrder_search_supplier_info_id
"
,
function
()
{
purchaseOrder
.
list
();
});
}
</script>
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/list.html
0 → 100644
浏览文件 @
fa00853a
<div
class=
"card card-table mb-1"
>
<div
class=
"card-body page-body"
>
<div
class=
"row align-items-center oper-list"
>
<div
class=
"col-3"
>
#if(session.hasOper(Permissions.inventory_purchase_order_export))
<div
class=
"btn-group"
role=
"group"
aria-label=
"Button group with nested dropdown"
>
<button
type=
"button"
class=
"btn btn-sm btn-outline-secondary"
onclick=
"purchaseOrder.export();"
>
导出
</button>
<div
class=
"btn-group"
role=
"group"
>
<button
type=
"button"
class=
"btn btn-sm btn-outline-secondary dropdown-toggle"
data-bs-toggle=
"dropdown"
aria-expanded=
"false"
></button>
<ul
class=
"dropdown-menu"
>
<li><a
class=
"dropdown-item"
href=
"javascript:void(0);"
onclick=
"purchaseOrder.exportLog();"
>
导出记录
</a></li>
</ul>
</div>
</div>
#end
</div>
<div
class=
"col"
>
#if(page.totalPage > 1)
<div
class=
"float-end"
>
#@paginate(page.pageNumber, page.totalPage, "")
</div>
#end
<div
class=
"float-end me-3 mt-1"
>
#if(orderAuditFlag)
#if(session.hasOper(Permissions.inventory_purchase_order_audit))
<input
class=
"form-check-input"
type=
"checkbox"
name=
"show_audit_flag"
id=
"purchaseOrder_show_audit_flag"
#if
(
showAuditFlag
)
checked
#end
onclick=
"purchaseOrder.list();"
>
<label
class=
"form-check-label"
for=
"purchaseOrder_show_audit_flag"
>
待审核单据
</label>
#end
#end
<input
class=
"form-check-input"
type=
"checkbox"
name=
"hide_disable_flag"
id=
"purchaseOrder_hide_disable_flag"
#if
(
hideDisableFlag
)
checked
#end
onclick=
"purchaseOrder.list();"
>
<label
class=
"form-check-label"
for=
"purchaseOrder_hide_disable_flag"
>
隐藏作废单据
</label>
<input
class=
"form-check-input"
type=
"checkbox"
name=
"hide_pay_flag"
id=
"purchaseOrder_hide_pay_flag"
#if
(
hidePayFlag
)
checked
#end
onclick=
"purchaseOrder.list();"
>
<label
class=
"form-check-label"
for=
"purchaseOrder_hide_pay_flag"
>
隐藏已付单据
</label>
</div>
</div>
</div>
</div>
</div>
<table
class=
"table table-hover table-bordered bg-white"
>
<thead>
<tr
class=
"table-header"
>
<th>
单据编号
</th>
<th>
进货日期
</th>
<th>
供应商
</th>
<th>
应付金额
</th>
<th>
已付金额
</th>
<th>
剩余未付
</th>
#if(feeList
&&
feeList.size() > 0)
<th>
其他费用
<i
class=
"bi bi-question-circle text-secondary"
style=
"font-size:13px"
data-bs-toggle=
"tooltip"
data-bs-placement=
"top"
title=
"除商品金额外,其他需要支付给供应商的费用,比如物流费等"
></i></th>
#end
#if(costList
&&
costList.size() > 0)
<th>
成本支出
<i
class=
"bi bi-question-circle text-secondary"
style=
"font-size:13px"
data-bs-toggle=
"tooltip"
data-bs-placement=
"top"
title=
"本次进货的成本支出,无需支付给供应商,用于内部记账"
></i></th>
#end
<th>
进货员
</th>
<th>
单据状态
</th>
<th>
备注
</th>
<th
style=
"width: 10%"
>
操作
</th>
</tr>
</thead>
<tbody
class=
"table-row"
id=
"purchaseOrder-list"
>
#for (x : page.getList())
<tr
data-id=
"#(x.id)"
id=
"purchaseOrder-data-#(x.id)"
#if(x.order_status =
=
OrderStatusEnum.disable.value
)
class=
"disable-order"
#end
>
<td>
#(x.order_code)
</td>
<td>
#date(x.order_time, "yyyy-MM-dd")
</td>
<td>
#(x.supplierInfo.name??)
</td>
<td><span
class=
"fw-bold text-secondary"
>
#number(x.amount, "#.##")
</span>
</td>
<td><span
class=
"fw-bold text-secondary"
>
#number(x.paid_amount, "#.##")
</span>
</td>
<td><span
class=
" #if(x.amount > x.paid_amount) fw-bold text-danger #else fw-bold text-secondary #end "
>
#number(x.amount - x.paid_amount, "#.##")
</span></td>
#if(feeList
&&
feeList.size() > 0)
<td><span
class=
"fw-bold text-secondary"
>
#number(x.other_amount, "#.##")
</span>
</td>
#end
#if(costList
&&
costList.size() > 0)
<td><span
class=
"fw-bold text-secondary"
>
#number(x.other_cost_amount, "#.##")
</span>
</td>
#end
<td>
#(x.handler.real_name??)
</td>
<td>
#if(x.order_status == OrderStatusEnum.disable.value)
<span
class=
"text-decoration-line-through"
>
已作废
</span>
#elseif(x.reject_type == RejectTypeEnum.part.value)
<span
class=
"badge bg-warning"
>
部分退货
</span>
#elseif(x.reject_type == RejectTypeEnum.all.value)
<span
class=
"badge bg-warning"
>
已退货
</span>
#elseif(x.audit_status == AuditStatusEnum.waiting.value)
<span
class=
"badge bg-danger"
>
待审核
</span>
#elseif(x.audit_status == AuditStatusEnum.reject.value)
<span
class=
"badge bg-warning"
data-bs-toggle=
"tooltip"
data-bs-placement=
"top"
title=
"#(x.audit_desc)"
>
审核拒绝
</span>
#else
<span
class=
"badge bg-success"
>
已到货
</span>
#end
</td>
<td>
#(x.remark)
</td>
<td>
#if(x.order_status == OrderStatusEnum.disable.value)
<span
class=
"text-decoration-line-through"
>
已作废
</span>
#else
#if(x.audit_status == AuditStatusEnum.waiting.value)
#if(session.hasOper(Permissions.inventory_purchase_order_audit))
<button
type=
"button"
class=
"btn btn-sm sm-more btn-outline-primary"
onclick=
"purchaseOrder.audit(#(x.id));"
>
审核
</button>
#end
#end
#if(x.reject_type == RejectTypeEnum.no.value)
#if(!orderAuditFlag || (orderAuditFlag
&&
(x.audit_status != AuditStatusEnum.pass.value || session.hasOper(Permissions.inventory_purchase_order_audit))))
#if(session.hasOper(Permissions.inventory_purchase_order_update))
<button
type=
"button"
class=
"btn btn-sm sm-more btn-outline-primary"
onclick=
"purchaseOrder.edit(#(x.id));"
>
修改
</button>
#end
#end
#end
#end
</td>
</tr>
#end
</tbody>
</table>
<script
type=
"application/javascript"
>
$
(
function
()
{
// 初始化bootstrap相关组件
common
.
initBootstrap
();
// 滚动表头处理
common
.
tableFixedWidth
();
common
.
tableFixed
();
$
(
"
.main
"
).
scroll
(
function
()
{
common
.
tableFixed
();
});
$
(
"
#purchaseOrder_pageNumber
"
).
val
(
#
(
page
.
pageNumber
));
$
(
"
#purchaseOrder-list tr
"
).
on
(
"
dblclick
"
,
function
()
{
purchaseOrder
.
show
(
$
(
this
).
attr
(
"
data-id
"
));
});
});
purchaseOrder
.
show
=
function
(
id
)
{
beekit
.
offcanvas
(
"
/inventory/purchase/order/show?id=
"
+
id
);
};
purchaseOrder
.
edit
=
function
(
id
)
{
beekit
.
offcanvasClose
();
beekit
.
modal
(
"
/inventory/purchase/order/edit?id=
"
+
id
);
};
purchaseOrder
.
reject
=
function
(
id
)
{
beekit
.
offcanvasClose
();
dashboard
.
linkTab
(
'
/inventory/purchase/rejectOrder/add
'
,
{
"
order_ids
"
:
id
});
};
purchaseOrder
.
audit
=
function
(
id
)
{
beekit
.
offcanvasClose
();
beekit
.
modal
(
"
/inventory/purchase/order/audit?id=
"
+
id
);
};
purchaseOrder
.
disable
=
function
(
id
)
{
beekit
.
confirmByUrl
(
"
/inventory/purchase/order/disable
"
,
{
"
id
"
:
id
},
"
确认要作废此进货单吗?
"
,
function
(
ret
)
{
common
.
processRequestResult
(
ret
,
function
(
ret
)
{
beekit
.
msg
(
ret
);
beekit
.
offcanvasClose
();
purchaseOrder
.
list
(
id
);
});
});
};
purchaseOrder
.
delete
=
function
(
id
)
{
beekit
.
focusColor
(
"
goodsInfo-data-
"
+
id
);
beekit
.
confirmByUrl
(
"
/inventory/purchase/order/delete
"
,
{
"
id
"
:
id
},
"
确认要删除此进货单吗?
"
,
function
(
ret
)
{
beekit
.
msg
(
ret
);
beekit
.
offcanvasClose
();
purchaseOrder
.
list
();
});
};
purchaseOrder
.
export
=
function
()
{
var
showAuditFlag
=
$
(
"
#purchaseOrder_show_audit_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
showAuditFlag
)
==
'
undefined
'
)
{
showAuditFlag
=
false
;
}
var
hideDisableFlag
=
$
(
"
#purchaseOrder_hide_disable_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
hideDisableFlag
)
==
'
undefined
'
)
{
hideDisableFlag
=
true
;
}
var
hidePayFlag
=
$
(
"
#purchaseOrder_hide_pay_flag
"
).
prop
(
"
checked
"
);
if
(
typeof
(
hidePayFlag
)
==
'
undefined
'
)
{
hidePayFlag
=
false
;
}
beekit
.
confirmByUrl
(
"
/inventory/purchase/order/export?hide_disable_flag=
"
+
hideDisableFlag
+
"
&show_audit_flag=
"
+
showAuditFlag
+
"
&hide_pay_flag=
"
+
hidePayFlag
,
$
(
"
#purchaseOrder-search-form
"
).
serialize
(),
"
确定要导出单据吗?
"
,
function
(
ret
)
{
purchaseOrder
.
exportLog
(
ret
.
targetId
);
});
}
purchaseOrder
.
exportLog
=
function
(
targetId
)
{
beekit
.
modal
(
"
/export/log/?targetId=
"
+
targetId
);
}
</script>
psi-web/src/main/webapp/WEB-INF/views/inventory/purchase/order/show.html
0 → 100644
浏览文件 @
fa00853a
<div
class=
"offcanvas-header"
>
<h6
class=
"text-white"
>
<i
class=
"bi bi-grid"
></i>
进货单详情
</h6>
<i
class=
"bi bi-x-square-fill"
style=
"font-size: 1.5rem; color: #ffffff; cursor: pointer;"
data-bs-dismiss=
"offcanvas"
aria-label=
"Close"
></i>
</div>
<div
class=
"offcanvas-body pt-1"
>
<div
class=
"card"
>
<div
class=
"card-body"
style=
"padding: 0.5rem 0.5rem;"
>
<div
class=
"row align-items-center"
>
<div
class=
"col"
>
#if(purchaseOrder.auditConfigFlag)
#if(purchaseOrder.order_status != OrderStatusEnum.disable.value)
#if(purchaseOrder.audit_status == AuditStatusEnum.waiting.value)
#if(session.hasOper(Permissions.inventory_purchase_order_audit))
<button
type=
"button"
class=
"btn btn-sm btn-outline-success"
onclick=
"purchaseOrder.audit(#(purchaseOrder.id));"
>
<i
class=
"bi bi-hand-index"
></i>
审核
</button>
#end
#end
#end
#end
#if(purchaseOrder.order_status == OrderStatusEnum.normal.value
&&
purchaseOrder.audit_status == AuditStatusEnum.pass.value)
#if(purchaseOrder.reject_type != RejectTypeEnum.all.value)
#if(session.hasOper(Permissions.inventory_purchase_order_update))
<button
type=
"button"
class=
"btn btn-sm btn-outline-info"
onclick=
"purchaseOrder.reject(#(purchaseOrder.id));"
>
<i
class=
"bi bi-reply"
></i>
退货
</button>
#end
#end
#end
#if(purchaseOrder.reject_type == RejectTypeEnum.no.value)
#if(!purchaseOrder.auditConfigFlag || (purchaseOrder.auditConfigFlag
&&
(purchaseOrder.audit_status != AuditStatusEnum.pass.value || session.hasOper(Permissions.inventory_purchase_order_audit))))
#if(session.hasOper(Permissions.inventory_purchase_order_update))
<button
type=
"button"
class=
"btn btn-sm btn-outline-primary"
onclick=
"purchaseOrder.edit(#(purchaseOrder.id));"
>
<i
class=
"bi bi-pencil-square"
></i>
修改
</button>
#end
#end
#end
#if(purchaseOrder.reject_type == RejectTypeEnum.no.value)
#if(!purchaseOrder.auditConfigFlag || (purchaseOrder.auditConfigFlag
&&
purchaseOrder.audit_status != AuditStatusEnum.pass.value))
#if(session.hasOper(Permissions.inventory_purchase_order_disable))
<button
type=
"button"
class=
"btn btn-sm btn-outline-danger"
onclick=
"purchaseOrder.disable(#(purchaseOrder.id));"
>
<i
class=
"bi bi-trash"
></i>
作废
</button>
#end
#end
#end
#if(purchaseOrder.order_status == OrderStatusEnum.draft.value)
#if(session.hasOper(Permissions.inventory_purchase_order_disable))
<button
type=
"button"
class=
"btn btn-sm btn-outline-danger"
onclick=
"purchaseOrder.delete(#(purchaseOrder.id));"
>
<i
class=
"bi bi-trash"
></i>
删除
</button>
#end
#end
</div>
<div
class=
"col text-end"
>
<button
type=
"button"
class=
"btn btn-sm btn-primary"
onclick=
"purchaseOrder.showPrint(#(purchaseOrder.id));"
>
<i
class=
"bi bi-printer"
></i>
打印
</button>
#if(purchaseOrder.print_count > 0)
<span
class=
"btn btn-sm btn-outline-danger sm-more"
>
已打印:#(purchaseOrder.print_count)
</span>
#end
</div>
#if(purchaseOrder.order_status == OrderStatusEnum.disable.value)
<img
src=
"#(resourceDomain)/img/disable.png"
class=
"order-status-pic"
>
#elseif(purchaseOrder.audit_status == AuditStatusEnum.reject.value)
<img
src=
"#(resourceDomain)/img/audit_reject.png"
class=
"order-status-pic"
>
#elseif(purchaseOrder.reject_type == RejectTypeEnum.part.value)
<img
src=
"#(resourceDomain)/img/reject_part.png"
class=
"order-status-pic"
>
#elseif(purchaseOrder.reject_type == RejectTypeEnum.all.value)
<img
src=
"#(resourceDomain)/img/reject_all.png"
class=
"order-status-pic"
>
#else
#if(purchaseOrder.pay_status == OrderPayStatusEnum.finish.value)
<img
src=
"#(resourceDomain)/img/payover.png"
class=
"order-status-pic"
>
#elseif(purchaseOrder.pay_status == OrderPayStatusEnum.part.value)
<img
src=
"#(resourceDomain)/img/paypart.png"
class=
"order-status-pic"
>
#end
#end
</div>
</div>
</div>
<ul
class=
"nav nav-tabs mt-2"
>
<li
class=
"nav-item"
><a
class=
"nav-link active fw-bold"
aria-current=
"page"
href=
"javascript:void(0);"
_target=
"showDetail"
onclick=
"purchaseOrder.showInfo(this);"
>
单据详情
</a></li>
<li
class=
"nav-item"
><a
class=
"nav-link fw-bold"
aria-current=
"page"
href=
"javascript:void(0);"
_target=
"showPayLog"
onclick=
"purchaseOrder.showInfo(this);"
>
付款记录
</a></li>
<li
class=
"nav-item"
><a
class=
"nav-link fw-bold"
aria-current=
"page"
href=
"javascript:void(0);"
_target=
"showOrderLog"
onclick=
"purchaseOrder.showInfo(this);"
>
单据日志
</a></li>
</ul>
<div
id=
"purchaseOrder_showDetail"
>
<div
class=
"card mt-2"
>
<div
class=
"card-body"
style=
"padding: 1rem 1rem;"
>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
单据编号:
</span><span>
#(purchaseOrder.order_code)
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
供应商:
</span><span
class=
"text-secondary fw-bold"
>
#(purchaseOrder.supplierInfo.name??)
</span>
</div>
</div>
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
进货员:
</span><span>
#(purchaseOrder.handler.real_name??)
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
到货日期:
</span><span>
#date(purchaseOrder.order_time, "yyyy-MM-dd")
</span>
</div>
</div>
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
制单人:
</span><span>
#(purchaseOrder.makeMan.real_name??)
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
制单时间:
</span><span>
#date(purchaseOrder.created_at, "yyyy-MM-dd HH:mm:ss")
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
最近修改:
</span><span>
#date(purchaseOrder.updated_at, "yyyy-MM-dd HH:mm:ss")
</span>
</div>
</div>
#if(purchaseOrder.auditConfigFlag)
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
审核状态:
</span>
#if(purchaseOrder.audit_status == AuditStatusEnum.waiting.value)
<span
class=
"badge bg-warning"
>
待审核
</span>
#elseif(purchaseOrder.audit_status == AuditStatusEnum.pass.value)
<span
class=
"badge bg-success"
>
审核通过
</span>
#elseif(purchaseOrder.audit_status == AuditStatusEnum.reject.value)
<span
class=
"badge bg-danger"
>
审核拒绝
</span>
#end
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
审核人:
</span><span>
#(purchaseOrder.auditor.real_name??)
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
审核时间:
</span><span>
#date(purchaseOrder.audit_time, "yyyy-MM-dd HH:mm:ss")
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
审核反馈:
</span><span>
#(purchaseOrder.audit_desc)
</span>
</div>
</div>
#end
</div>
</div>
<div
class=
"row mt-2"
>
<div
class=
"col"
>
<table
class=
"table table-hover table-bordered bg-white"
>
<thead>
<tr
class=
"table-header"
>
<th>
商品名称
</th>
<th>
商品条码
</th>
<th>
规格
</th>
<th
style=
"width: 6%;"
>
单位
</th>
<th
style=
"width: 6%;"
>
单价
</th>
#if(orderGoodsDiscountFlag)
<th
style=
"width: 8%;"
>
折扣(%)
</th>
<th
style=
"width: 6%;"
>
折后价
</th>
#end
<th
style=
"width: 6%;"
>
数量
</th>
<th
style=
"width: 6%;"
>
金额
</th>
#if(purchaseOrder.reject_type == RejectTypeEnum.part.value || purchaseOrder.reject_type == RejectTypeEnum.all.value)
<th
style=
"width: 6%;"
>
退货数量
</th>
<th
style=
"width: 6%;"
>
退货金额
</th>
#end
<th>
备注
</th>
</tr>
</thead>
<tbody
class=
"table-row"
>
#for(x : purchaseOrder.orderGoodsList)
#set(goodsInfo = x.goodsInfo)
<tr>
<td>
#(goodsInfo.name??)
</td>
<td>
#(goodsInfo.bar_code??)
</td>
<td>
#(x.goodsSpecNames??)
</td>
<td>
#(x.goodsUnit.name??)
</td>
<td>
#number(x.price, '#.####')
</td>
#if(orderGoodsDiscountFlag)
<td>
#number(x.discount, '#.####')
</td>
<td>
#number(x.discount_amount, '#.####')
</td>
#end
<td>
#number(x.buy_number, '#.####')
</td>
<td>
#number(x.amount, '#.####')
</td>
#if(purchaseOrder.reject_type == RejectTypeEnum.part.value || purchaseOrder.reject_type == RejectTypeEnum.all.value)
<td><span
class=
"fw-bold text-danger"
>
#number(x.reject_number, '#.####')
</span></td>
<td><span
class=
"fw-bold text-danger"
>
#number(x.reject_amount, '#.##')
</span></td>
#end
<td>
#(x.remark)
</td>
</tr>
#end
</tbody>
</table>
</div>
</div>
<div
class=
"card"
>
<div
class=
"card-body"
style=
"padding: 1rem 1rem;"
>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
商品合计:
</span><span
class=
"fw-bold text-secondary"
>
#(purchaseOrder.goods_amount)
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
折扣:
</span><span
class=
"fw-bold text-secondary"
>
#(purchaseOrder.discount)%
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
折后金额:
</span><span
class=
"fw-bold text-secondary"
>
#number(purchaseOrder.discount_amount, "#.##")
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
抹零金额:
</span><span
class=
"fw-bold text-secondary"
>
#(purchaseOrder.odd_amount)
</span>
</div>
</div>
#if(feeList
&&
feeList.size() > 0)
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
#for(x : feeList)
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
#(x.name??):
</span><span
class=
"fw-bold text-secondary me-5"
>
#number(purchaseOrder.getOrderFee(x.id)??, "#.##")
</span>
</div>
#end
</div>
#end
#if(costList
&&
costList.size() > 0)
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
#for(x : costList)
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
#(x.name??):
</span><span
class=
"fw-bold text-secondary me-5"
>
#number(purchaseOrder.getOrderCost(x.id)??, "#.##")
</span>
</div>
#end
</div>
#end
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
应付金额:
</span><span
class=
"fw-bold text-secondary"
>
#number(purchaseOrder.amount, "#.##")
</span>
</div>
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
已付金额:
</span>
#if(purchaseOrder.paid_amount > 0)
<span
class=
"badge bg-success"
>
#number(purchaseOrder.paid_amount, "#.##")
</span>
#else
<span
class=
"badge bg-secondary"
>
#number(purchaseOrder.paid_amount, "#.##")
</span>
#end
</div>
<div
class=
"col-3"
>
#set(lastAmount = purchaseOrder.amount??0 - purchaseOrder.paid_amount??0 )
<span
class=
"text-secondary"
>
剩余金额:
</span>
#if(lastAmount > 0)
<span
class=
"badge bg-danger"
>
#number(lastAmount,"#.##")
</span>
#else
<span
class=
"badge bg-secondary"
>
0
</span>
#end
</div>
#if(purchaseOrder.reject_type != RejectTypeEnum.no.value)
<div
class=
"col-3"
>
<span
class=
"text-secondary"
>
退货金额:
</span><span
class=
"fw-bold text-secondary"
>
#number(purchaseOrder.reject_amount, "#.##")
</span>
</div>
#end
</div>
<hr
class=
"row-hr"
/>
<div
class=
"row"
>
<div
class=
"col"
>
<span
class=
"text-secondary"
>
备注:
</span><span>
#(purchaseOrder.remark??)
</span>
</div>
<div
class=
"col text-end"
id=
"purchaseOrder_order_img_list_preview"
>
#for(thumb : purchaseOrder.orderImgList)
<img
class=
"rounded"
src=
"#(resourceUploadDomain)#(thumb)"
layer-src=
"#(resourceUploadDomain)#(thumb)"
style=
"width:30px"
>
#end
</div>
</div>
</div>
</div>
</div>
<div
id=
"purchaseOrder_showPayLog"
style=
"display:none;"
></div>
<div
id=
"purchaseOrder_showOrderLog"
style=
"display:none;"
></div>
</div>
<script
type=
"application/javascript"
>
$
(
function
()
{
// 初始化bootstrap相关组件
common
.
initBootstrap
();
beekit
.
photos
(
"
#purchaseOrder_order_img_list_preview
"
);
});
purchaseOrder
.
showInfo
=
function
(
othis
)
{
var
target
=
$
(
othis
).
attr
(
"
_target
"
);
var
targetHtml
=
$
(
"
#purchaseOrder_
"
+
target
).
html
();
if
(
targetHtml
==
''
)
{
if
(
target
==
'
showPayLog
'
)
{
beekit
.
ajaxFill
(
"
/inventory/purchase/order/showPayLog
"
,
{
"
id
"
:
#
(
purchaseOrder
.
id
)},
"
#purchaseOrder_
"
+
target
);
}
else
if
(
target
==
'
showOrderLog
'
)
{
beekit
.
ajaxFill
(
"
/inventory/purchase/order/showOrderLog
"
,
{
"
id
"
:
#
(
purchaseOrder
.
id
)},
"
#purchaseOrder_
"
+
target
);
}
}
$
(
othis
).
parent
().
parent
().
find
(
"
a
"
).
each
(
function
()
{
if
(
this
==
othis
)
{
$
(
othis
).
toggleClass
(
"
active
"
);
$
(
"
#purchaseOrder_
"
+
target
).
show
();
}
else
{
$
(
this
).
removeClass
(
"
active
"
);
$
(
"
#purchaseOrder_
"
+
$
(
this
).
attr
(
"
_target
"
)).
hide
();
}
});
}
purchaseOrder
.
showPrint
=
function
(
orderId
)
{
beekit
.
modal
(
"
/inventory/purchase/order/showPrint?id=
"
+
orderId
);
}
</script>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录