从源更新
This commit is contained in:
@@ -636,10 +636,10 @@ input.inputstyle:hover{
|
|||||||
background:#EAF2FD;
|
background:#EAF2FD;
|
||||||
z-index:90;
|
z-index:90;
|
||||||
}
|
}
|
||||||
#login_body{
|
#login_body,#register_body{
|
||||||
background:#93bbe5 url(../images/bg_login.jpg) top center no-repeat;
|
background:#93bbe5 url(../images/bg_login.jpg) top center no-repeat;
|
||||||
}
|
}
|
||||||
#login_main{
|
#login_main,#register_main{
|
||||||
width:459px;
|
width:459px;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
margin:160px auto 0 auto;
|
margin:160px auto 0 auto;
|
||||||
@@ -649,7 +649,14 @@ input.inputstyle:hover{
|
|||||||
height:263px;
|
height:263px;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
position:relative;
|
position:relative;
|
||||||
background:url(../images/bg_loginmain.jpg) no-repeat;
|
background:url(../images/bg_login_main.jpg) no-repeat;
|
||||||
|
}
|
||||||
|
#register{
|
||||||
|
width:459px;
|
||||||
|
height:300px;
|
||||||
|
overflow:hidden;
|
||||||
|
position:relative;
|
||||||
|
background:url(../images/bg_register_main.jpg) no-repeat;
|
||||||
}
|
}
|
||||||
#login .login_btn{
|
#login .login_btn{
|
||||||
float:left;
|
float:left;
|
||||||
@@ -657,13 +664,13 @@ input.inputstyle:hover{
|
|||||||
height:50px;
|
height:50px;
|
||||||
margin:160px auto 0 120px;
|
margin:160px auto 0 120px;
|
||||||
}
|
}
|
||||||
#login .register_btn{
|
#register .register_btn{
|
||||||
float:left;
|
float:left;
|
||||||
width:230px;
|
width:230px;
|
||||||
height:50px;
|
height:50px;
|
||||||
margin:218px auto 0 120px;
|
margin:228px auto 0px 120px;
|
||||||
}
|
}
|
||||||
#login_signal{
|
#login_signal,#register_signal{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
left: 63px;
|
left: 63px;
|
||||||
top: 19px;
|
top: 19px;
|
||||||
@@ -707,7 +714,7 @@ input.inputstyle:hover{
|
|||||||
border:none;
|
border:none;
|
||||||
font-family:Arial, Helvetica, sans-serif;
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
left: 118px;
|
left: 120px;
|
||||||
top: 84px;
|
top: 84px;
|
||||||
}
|
}
|
||||||
#user_pwd{
|
#user_pwd{
|
||||||
@@ -719,7 +726,7 @@ input.inputstyle:hover{
|
|||||||
border:none;
|
border:none;
|
||||||
font-family:Arial, Helvetica, sans-serif;
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
left: 118px;
|
left: 120px;
|
||||||
top: 118px;
|
top: 118px;
|
||||||
}
|
}
|
||||||
#user_pwd_repeat{
|
#user_pwd_repeat{
|
||||||
@@ -731,7 +738,7 @@ input.inputstyle:hover{
|
|||||||
border:none;
|
border:none;
|
||||||
font-family:Arial, Helvetica, sans-serif;
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
left: 118px;
|
left: 120px;
|
||||||
top: 152px;
|
top: 152px;
|
||||||
}
|
}
|
||||||
#user_captcha{
|
#user_captcha{
|
||||||
@@ -743,7 +750,7 @@ input.inputstyle:hover{
|
|||||||
border:none;
|
border:none;
|
||||||
font-family:Arial, Helvetica, sans-serif;
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
background:url(../images/bg_logininout.jpg) no-repeat;
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
left: 118px;
|
left: 120px;
|
||||||
top: 186px;
|
top: 186px;
|
||||||
}
|
}
|
||||||
#imgCaptcha{
|
#imgCaptcha{
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
BIN
erp_web/images/bg_register_main.jpg
Normal file
BIN
erp_web/images/bg_register_main.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
@@ -276,3 +276,15 @@
|
|||||||
}
|
}
|
||||||
return newArr;
|
return newArr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证单据
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
function validateForm(id) {
|
||||||
|
if(!$('#'+ id).form('validate')) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
{ title: '预付款',field: 'advancein',width:70,align:"center"},
|
{ title: '预付款',field: 'advancein',width:70,align:"center"},
|
||||||
{ title: '期初应收',field: 'beginneedget',width:70,align:"center"},
|
{ title: '期初应收',field: 'beginneedget',width:70,align:"center"},
|
||||||
{ title: '期初应付',field: 'beginneedpay',width:70,align:"center"},
|
{ title: '期初应付',field: 'beginneedpay',width:70,align:"center"},
|
||||||
{ title: '税率', field: 'taxrate',width:50,align:"center"},
|
{ title: '税率(%)', field: 'taxrate',width:50,align:"center"},
|
||||||
{ title: '状态',field: 'enabled',width:70,align:"center",formatter:function(value){
|
{ title: '状态',field: 'enabled',width:70,align:"center",formatter:function(value){
|
||||||
return value? "启用":"禁用";
|
return value? "启用":"禁用";
|
||||||
}}
|
}}
|
||||||
@@ -457,6 +457,9 @@
|
|||||||
});
|
});
|
||||||
//保存信息
|
//保存信息
|
||||||
$("#saveSupplier").off("click").on("click", function () {
|
$("#saveSupplier").off("click").on("click", function () {
|
||||||
|
if(validateForm("supplierFM")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (checkSupplierName()) {
|
if (checkSupplierName()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -554,13 +557,15 @@
|
|||||||
//编辑信息
|
//编辑信息
|
||||||
function editSupplier(supplierTotalInfo) {
|
function editSupplier(supplierTotalInfo) {
|
||||||
var supplierInfo = supplierTotalInfo.split("AaBb");
|
var supplierInfo = supplierTotalInfo.split("AaBb");
|
||||||
|
var beginNeedGet = supplierInfo[5];
|
||||||
|
var beginNeedPay = supplierInfo[6];
|
||||||
var row = {
|
var row = {
|
||||||
supplier : supplierInfo[1],
|
supplier : supplierInfo[1],
|
||||||
contacts : supplierInfo[2].replace("undefined",""),
|
contacts : supplierInfo[2].replace("undefined",""),
|
||||||
phonenum : supplierInfo[3].replace("undefined",""),
|
phonenum : supplierInfo[3].replace("undefined",""),
|
||||||
email : supplierInfo[4].replace("undefined",""),
|
email : supplierInfo[4].replace("undefined",""),
|
||||||
BeginNeedGet : supplierInfo[5],
|
BeginNeedGet : beginNeedGet == "0"? "":beginNeedGet,
|
||||||
BeginNeedPay : supplierInfo[6],
|
BeginNeedPay : beginNeedPay == "0"? "":beginNeedPay,
|
||||||
AllNeedGet: "",
|
AllNeedGet: "",
|
||||||
AllNeedPay: "",
|
AllNeedPay: "",
|
||||||
description : supplierInfo[8].replace("undefined",""),
|
description : supplierInfo[8].replace("undefined",""),
|
||||||
@@ -602,7 +607,7 @@
|
|||||||
supType: supType
|
supType: supType
|
||||||
}),
|
}),
|
||||||
success: function(res){
|
success: function(res){
|
||||||
if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney) {
|
if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney !== "") {
|
||||||
var moneyA = res.data.rows.getAllMoney.toFixed(2)-0;
|
var moneyA = res.data.rows.getAllMoney.toFixed(2)-0;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"get",
|
type:"get",
|
||||||
@@ -615,7 +620,7 @@
|
|||||||
supType: supType
|
supType: supType
|
||||||
}),
|
}),
|
||||||
success: function(res){
|
success: function(res){
|
||||||
if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney) {
|
if (res && res.code === 200 && res.data && res.data.rows && res.data.rows.getAllMoney !== "") {
|
||||||
var moneyB = res.data.rows.getAllMoney.toFixed(2)-0;
|
var moneyB = res.data.rows.getAllMoney.toFixed(2)-0;
|
||||||
var money = moneyA+moneyB;
|
var money = moneyA+moneyB;
|
||||||
var moneyBeginNeedGet = $("#BeginNeedGet").val()-0; //期初应收
|
var moneyBeginNeedGet = $("#BeginNeedGet").val()-0; //期初应收
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
//初始化界面
|
//初始化界面
|
||||||
|
var defDepotId = null;
|
||||||
var kid = sessionStorage.getItem("userId");
|
var kid = sessionStorage.getItem("userId");
|
||||||
var pageType = getUrlParam('t'); //获取页面类型传值
|
var pageType = getUrlParam('t'); //获取页面类型传值
|
||||||
var depotList = null;
|
var depotList = null;
|
||||||
@@ -228,7 +229,10 @@
|
|||||||
{
|
{
|
||||||
if(userdepot.indexOf("["+depot.id+"]")!=-1)
|
if(userdepot.indexOf("["+depot.id+"]")!=-1)
|
||||||
{
|
{
|
||||||
options += '<option value="' + depot.id + '">' + depot.name + '</option>';
|
if(depot.isDefault){
|
||||||
|
defDepotId = depot.id;
|
||||||
|
}
|
||||||
|
options += '<option value="' + depot.id + '">' + depot.name + '</option>';
|
||||||
depotString = depotString + depot.id + ",";
|
depotString = depotString + depot.id + ",";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1582,7 +1586,17 @@
|
|||||||
reject(); //撤销下、刷新商品列表
|
reject(); //撤销下、刷新商品列表
|
||||||
$("#addOrgan").off("click").on("click",function(){
|
$("#addOrgan").off("click").on("click",function(){
|
||||||
$('#supplierDlg').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加供应商信息');
|
$('#supplierDlg').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加供应商信息');
|
||||||
|
$('#supplierFM').form('clear');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#addMember").off("click").on("click",function(){
|
||||||
|
$('#supplierDlg').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加会员信息');
|
||||||
|
$('#supplierFM').form('clear');
|
||||||
|
});
|
||||||
|
$("#addCustomer").off("click").on("click",function(){
|
||||||
|
$('#supplierDlg').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/> 增加客户信息');
|
||||||
|
$('#supplierFM').form('clear');
|
||||||
|
});
|
||||||
url = '/depotHead/addDepotHeadAndDetail';
|
url = '/depotHead/addDepotHeadAndDetail';
|
||||||
|
|
||||||
//零售单据修改收款时,自动计算找零
|
//零售单据修改收款时,自动计算找零
|
||||||
@@ -2569,7 +2583,13 @@
|
|||||||
$("#otherMoneyTotalDlg").text($("#OtherMoney").val());
|
$("#otherMoneyTotalDlg").text($("#OtherMoney").val());
|
||||||
});
|
});
|
||||||
|
|
||||||
if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"){
|
if(listTitle === "采购入库列表" || listTitle === "其它入库列表" || listTitle === "采购订单列表"|| listTitle === "零售出库列表"|| listTitle === "销售出库列表"|| listTitle === "销售订单列表"){
|
||||||
|
var supplierType = "供应商";
|
||||||
|
if(listTitle === "零售出库列表"){
|
||||||
|
supplierType = "会员";
|
||||||
|
}else if(listTitle === "销售出库列表" || listTitle === "销售订单列表"){
|
||||||
|
supplierType = "客户";
|
||||||
|
}
|
||||||
//检查单位名称是否存在 ++ 重名无法提示问题需要跟进
|
//检查单位名称是否存在 ++ 重名无法提示问题需要跟进
|
||||||
function checkSupplierName() {
|
function checkSupplierName() {
|
||||||
var supplierName = $.trim($("#supplier").val());
|
var supplierName = $.trim($("#supplier").val());
|
||||||
@@ -2608,8 +2628,12 @@
|
|||||||
}
|
}
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
//保存供应商信息
|
//保存供应商信息
|
||||||
$("#saveSupplier").off("click").on("click",function() {
|
$("#saveSupplier").off("click").on("click",function() {
|
||||||
|
if(validateForm("supplierFM")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(checkSupplierName()){
|
if(checkSupplierName()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2629,7 +2653,7 @@
|
|||||||
}
|
}
|
||||||
var url = '/supplier/add';
|
var url = '/supplier/add';
|
||||||
var supObj = $("#supplierFM").serializeObject();
|
var supObj = $("#supplierFM").serializeObject();
|
||||||
supObj.type = "供应商";
|
supObj.type = supplierType;
|
||||||
supObj.enabled = 1;
|
supObj.enabled = 1;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url,
|
url: url,
|
||||||
@@ -2927,7 +2951,7 @@
|
|||||||
//新增
|
//新增
|
||||||
function append(){
|
function append(){
|
||||||
if (endEditing()) {
|
if (endEditing()) {
|
||||||
$('#materialData').datagrid('appendRow', {});
|
$('#materialData').datagrid('appendRow', {DepotId:defDepotId});
|
||||||
editIndex = $('#materialData').datagrid('getRows').length - 1;
|
editIndex = $('#materialData').datagrid('getRows').length - 1;
|
||||||
$('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex);
|
$('#materialData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex);
|
||||||
autoReckon();
|
autoReckon();
|
||||||
|
|||||||
@@ -20,6 +20,15 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var tableString = localStorage.getItem("tableString");
|
var tableString = localStorage.getItem("tableString");
|
||||||
document.write(tableString);
|
document.write(tableString);
|
||||||
|
var rowLen = $(".datagrid .datagrid-view2 .datagrid-body .datagrid-row").length;
|
||||||
|
if(rowLen > 7) {
|
||||||
|
var allHeight = (rowLen+2)*25;
|
||||||
|
var rowHeight = rowLen*25;
|
||||||
|
$(".datagrid .datagrid-wrap").height(allHeight);
|
||||||
|
$(".datagrid .datagrid-view").height(allHeight);
|
||||||
|
$(".datagrid .datagrid-view1 .datagrid-body").height(rowHeight);
|
||||||
|
$(".datagrid .datagrid-view2 .datagrid-body").height(rowHeight);
|
||||||
|
}
|
||||||
window.print();
|
window.print();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -105,13 +105,12 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#loginOut').click(function () {
|
$('#loginOut').click(function () {
|
||||||
if (confirm("确认要退出系统吗?")){
|
$.messager.confirm("提示","确认要退出系统吗?",function(r){
|
||||||
//确定
|
if(r) {
|
||||||
sessionStorage.removeItem("userId");
|
sessionStorage.removeItem("userId");
|
||||||
location.href = '/user/logout';
|
location.href = '/user/logout';
|
||||||
}else{
|
}
|
||||||
//取消
|
});
|
||||||
}
|
|
||||||
})
|
})
|
||||||
//IE下禁止选中
|
//IE下禁止选中
|
||||||
document.body.onselectstart = document.body.ondrag = function () {
|
document.body.onselectstart = document.body.ondrag = function () {
|
||||||
|
|||||||
@@ -120,9 +120,9 @@
|
|||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
<td>税率</td>
|
<td>税率(%)</td>
|
||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -182,7 +182,19 @@
|
|||||||
{title: '搬运费', field: 'truckage', width: 60},
|
{title: '搬运费', field: 'truckage', width: 60},
|
||||||
{title: '负责人', field: 'principalName', width: 60},
|
{title: '负责人', field: 'principalName', width: 60},
|
||||||
{title: '排序', field: 'sort', width: 60},
|
{title: '排序', field: 'sort', width: 60},
|
||||||
|
{
|
||||||
|
title: '是否默认', field: 'isDefault', width: 100, align: "center",
|
||||||
|
formatter: function (value, rec) {
|
||||||
|
if (rec.isDefault) {
|
||||||
|
return "<b style='color:green'>是</b>";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "否";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{title: '描述', field: 'remark', width: 120}
|
{title: '描述', field: 'remark', width: 120}
|
||||||
|
|
||||||
]],
|
]],
|
||||||
toolbar: [
|
toolbar: [
|
||||||
{
|
{
|
||||||
@@ -200,6 +212,14 @@
|
|||||||
handler: function () {
|
handler: function () {
|
||||||
batDeleteDepot();
|
batDeleteDepot();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'setDepotIsDefault',
|
||||||
|
text: '设为默认',
|
||||||
|
iconCls: 'icon-ok',
|
||||||
|
handler: function () {
|
||||||
|
setDepotIsDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
onLoadError: function () {
|
onLoadError: function () {
|
||||||
@@ -286,7 +306,53 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//设为默认操作事件
|
||||||
|
function setDepotIsDefault() {
|
||||||
|
var allRow = $('#tableData').datagrid('getRows');
|
||||||
|
var row = $('#tableData').datagrid('getChecked');
|
||||||
|
if (row.length == 0) {
|
||||||
|
$.messager.alert('设置提示', '没有记录被选中!', 'info');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (row.length > 0) {
|
||||||
|
function setDefault(depotID, isDefault) {
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "/depot/updateDepotIsDefault",
|
||||||
|
dataType: "json",
|
||||||
|
async: false,
|
||||||
|
data: ({
|
||||||
|
depotID: depotID,
|
||||||
|
isDefault: isDefault
|
||||||
|
}),
|
||||||
|
success: function (res) {
|
||||||
|
if (res == "true" && isDefault) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//此处添加错误处理
|
||||||
|
error: function () {
|
||||||
|
$.messager.alert('提示', '设为默认账户异常,请稍后再试!', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (row.length == 1) {
|
||||||
|
setDefault(row[0].id, true); //设置默认
|
||||||
|
for (var i = 0; i < allRow.length; i++) {
|
||||||
|
if (allRow[i].id != row[0].id) {
|
||||||
|
setDefault(allRow[i].id, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout(function () {
|
||||||
|
$("#searchBtn").click();
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
//批量删除仓库
|
//批量删除仓库
|
||||||
function batDeleteDepot() {
|
function batDeleteDepot() {
|
||||||
var row = $('#tableData').datagrid('getChecked');
|
var row = $('#tableData').datagrid('getChecked');
|
||||||
|
|||||||
@@ -121,11 +121,11 @@
|
|||||||
{title: '操作人员', field: 'username', width: 80, align: "center"},
|
{title: '操作人员', field: 'username', width: 80, align: "center"},
|
||||||
{title: '操作IP', field: 'clientip', width: 90, align: "center"},
|
{title: '操作IP', field: 'clientip', width: 90, align: "center"},
|
||||||
{title: '操作时间', field: 'createtime', width: 130, align: "center"},
|
{title: '操作时间', field: 'createtime', width: 130, align: "center"},
|
||||||
{title: '操作详情', field: 'remark', width: 380},
|
{title: '操作详情', field: 'remark', width: 260},
|
||||||
{title: '操作状态',field: 'status',width:70,align:"center",formatter:function(value){
|
{title: '操作状态',field: 'status',width:70,align:"center",formatter:function(value){
|
||||||
return value? "失败":"成功";
|
return value? "失败":"成功";
|
||||||
}},
|
}},
|
||||||
{title: '备注', field: 'remark', width: 180}
|
{title: '备注', field: 'remark', width: 150}
|
||||||
]],
|
]],
|
||||||
onLoadError: function () {
|
onLoadError: function () {
|
||||||
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error');
|
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error');
|
||||||
|
|||||||
@@ -120,9 +120,9 @@
|
|||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
<td>税率</td>
|
<td>税率(%)</td>
|
||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -1109,6 +1109,7 @@
|
|||||||
$(".window-mask").css({width: webW, height: webH});
|
$(".window-mask").css({width: webW, height: webH});
|
||||||
$("#Name").val("").focus();
|
$("#Name").val("").focus();
|
||||||
$("#manyUnitCheck").prop("checked", false);
|
$("#manyUnitCheck").prop("checked", false);
|
||||||
|
$("#manyUnit").val(""); //置空
|
||||||
//当前为不选中状态
|
//当前为不选中状态
|
||||||
$("#Unit").show();
|
$("#Unit").show();
|
||||||
$("#manyUnit").hide();
|
$("#manyUnit").hide();
|
||||||
@@ -1200,6 +1201,10 @@
|
|||||||
$.messager.alert('提示', '型号不能为空!', 'warning');
|
$.messager.alert('提示', '型号不能为空!', 'warning');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(!$("#Unit").val() && !$("#manyUnit").val()) {
|
||||||
|
$.messager.alert('提示', '单位为必填项!', 'warning');
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (checkIsExist()) {
|
if (checkIsExist()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1283,9 +1288,9 @@
|
|||||||
$("#Color").focus().val(materialInfo[11]);
|
$("#Color").focus().val(materialInfo[11]);
|
||||||
$("#EnableSerialNumber").val(materialInfo[24]=='1'?'1':'0');
|
$("#EnableSerialNumber").val(materialInfo[24]=='1'?'1':'0');
|
||||||
//商品类别id
|
//商品类别id
|
||||||
$("#parentid").val(materialInfo[14]);
|
$("#parentid").val(materialInfo[14] == "undefined" ? "" : materialInfo[14]);
|
||||||
//商品类别名称
|
//商品类别名称
|
||||||
$("#parentName").val(materialInfo[15]);
|
$("#parentName").val(materialInfo[15] == "undefined" ? "" : materialInfo[15]);
|
||||||
mId = materialInfo[14];
|
mId = materialInfo[14];
|
||||||
mName = materialInfo[15];
|
mName = materialInfo[15];
|
||||||
$("#Packing").focus().val(materialInfo[12]);
|
$("#Packing").focus().val(materialInfo[12]);
|
||||||
|
|||||||
@@ -344,9 +344,9 @@
|
|||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
<td>税率</td>
|
<td>税率(%)</td>
|
||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -346,9 +346,9 @@
|
|||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
<td>税率</td>
|
<td>税率(%)</td>
|
||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -265,9 +265,9 @@
|
|||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
<td>税率</td>
|
<td>税率(%)</td>
|
||||||
<td style="padding:1px">
|
<td style="padding:1px">
|
||||||
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -63,7 +63,13 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="width:60px;height:50px;">会员卡号:</td>
|
<td style="width:60px;height:50px;">会员卡号:</td>
|
||||||
<td style="padding:5px;width:200px;">
|
<td style="padding:5px;width:200px;">
|
||||||
|
<div class="org-list">
|
||||||
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
||||||
|
</div>
|
||||||
|
<div class="add-org-btn">
|
||||||
|
<img id="addMember" src="/js/easyui-1.3.5/themes/icons/edit_add.png"
|
||||||
|
style="cursor: pointer;" alt="增加会员" title="增加会员"/>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td style="width:70px;">单据日期:</td>
|
<td style="width:70px;">单据日期:</td>
|
||||||
<td style="padding:5px">
|
<td style="padding:5px">
|
||||||
@@ -243,5 +249,107 @@
|
|||||||
<a href="javascript:void(0)" id="saveDepotHeadAccountDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
<a href="javascript:void(0)" id="saveDepotHeadAccountDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
<a href="javascript:void(0)" id="cancelDepotHeadAccountDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
<a href="javascript:void(0)" id="cancelDepotHeadAccountDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="supplierDlg" class="easyui-dialog" style="width:580px;padding:10px 20px"
|
||||||
|
closed="true" buttons="#supplierDlgBtn" modal="true" collapsible="false" closable="true">
|
||||||
|
<form id="supplierFM">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 80px;height: 20px">名称</td>
|
||||||
|
<td style="width: 180px;padding:1px">
|
||||||
|
<input name="supplier" id="supplier" class="easyui-validatebox"
|
||||||
|
data-options="required:true,validType:'length[2,30]'" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td style="width: 60px;height: 20px">联系人</td>
|
||||||
|
<td style="width:180px;padding:1px;">
|
||||||
|
<input name="contacts" id="contacts" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>联系电话</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="phonenum" id="phonenum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>手机</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="telephone" id="telephone" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>电子邮箱</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="email" id="email" class="easyui-validatebox" validType="email"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>传真</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="fax" id="fax" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>期初应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedGet" id="BeginNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
<td>期初应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedPay" id="BeginNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>累计应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedGet" id="AllNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
<td>累计应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedPay" id="AllNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>纳税人识别号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>税率</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxRate" id="taxRate" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>开户行</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="bankName" id="bankName" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>账号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="accountNumber" id="accountNumber" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>地址</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<input name="address" id="address" class="easyui-validatebox" style="width: 408px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>备注</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<textarea name="description" id="description" rows="2" cols="2" style="width: 408px;"></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="supplierDlgBtn">
|
||||||
|
<a href="javascript:void(0)" id="saveSupplier" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
|
<a href="javascript:void(0)" id="cancelSupplier" class="easyui-linkbutton" iconCls="icon-cancel"
|
||||||
|
onclick="javascript:$('#supplierDlg').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -63,7 +63,13 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="width:60px;">客户:</td>
|
<td style="width:60px;">客户:</td>
|
||||||
<td style="padding:5px">
|
<td style="padding:5px">
|
||||||
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
<div class="org-list">
|
||||||
|
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
||||||
|
</div>
|
||||||
|
<div class="add-org-btn">
|
||||||
|
<img id="addCustomer" src="/js/easyui-1.3.5/themes/icons/edit_add.png"
|
||||||
|
style="cursor: pointer;" alt="增加客戶" title="增加客戶"/>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td style="width:70px;">单据日期:</td>
|
<td style="width:70px;">单据日期:</td>
|
||||||
<td style="padding:5px">
|
<td style="padding:5px">
|
||||||
@@ -195,6 +201,107 @@
|
|||||||
<a href="javascript:void(0)" id="saveOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
<a href="javascript:void(0)" id="saveOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
<a href="javascript:void(0)" id="cancelOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
<a href="javascript:void(0)" id="cancelOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="supplierDlg" class="easyui-dialog" style="width:580px;padding:10px 20px"
|
||||||
|
closed="true" buttons="#supplierDlgBtn" modal="true" collapsible="false" closable="true">
|
||||||
|
<form id="supplierFM">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 80px;height: 20px">名称</td>
|
||||||
|
<td style="width: 180px;padding:1px">
|
||||||
|
<input name="supplier" id="supplier" class="easyui-validatebox"
|
||||||
|
data-options="required:true,validType:'length[2,30]'" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td style="width: 60px;height: 20px">联系人</td>
|
||||||
|
<td style="width:180px;padding:1px;">
|
||||||
|
<input name="contacts" id="contacts" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>联系电话</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="phonenum" id="phonenum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>手机</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="telephone" id="telephone" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>电子邮箱</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="email" id="email" class="easyui-validatebox" validType="email"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>传真</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="fax" id="fax" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>期初应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedGet" id="BeginNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
<td>期初应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedPay" id="BeginNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>累计应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedGet" id="AllNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
<td>累计应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedPay" id="AllNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>纳税人识别号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>税率(%)</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>开户行</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="bankName" id="bankName" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>账号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="accountNumber" id="accountNumber" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>地址</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<input name="address" id="address" class="easyui-validatebox" style="width: 408px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>备注</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<textarea name="description" id="description" rows="2" cols="2" style="width: 408px;"></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="supplierDlgBtn">
|
||||||
|
<a href="javascript:void(0)" id="saveSupplier" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
|
<a href="javascript:void(0)" id="cancelSupplier" class="easyui-linkbutton" iconCls="icon-cancel"
|
||||||
|
onclick="javascript:$('#supplierDlg').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -63,7 +63,13 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td style="width:60px;">客户:</td>
|
<td style="width:60px;">客户:</td>
|
||||||
<td style="padding:5px">
|
<td style="padding:5px">
|
||||||
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
<div class="org-list">
|
||||||
|
<input id="OrganId" name="OrganId" style="width:130px;"/>
|
||||||
|
</div>
|
||||||
|
<div class="add-org-btn">
|
||||||
|
<img id="addCustomer" src="/js/easyui-1.3.5/themes/icons/edit_add.png"
|
||||||
|
style="cursor: pointer;" alt="增加客戶" title="增加客戶"/>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td style="width:70px;">单据日期:</td>
|
<td style="width:70px;">单据日期:</td>
|
||||||
<td style="padding:5px">
|
<td style="padding:5px">
|
||||||
@@ -276,6 +282,107 @@
|
|||||||
<a href="javascript:void(0)" id="saveOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
<a href="javascript:void(0)" id="saveOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
<a href="javascript:void(0)" id="cancelOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
<a href="javascript:void(0)" id="cancelOtherMoneyDlg" class="easyui-linkbutton" iconCls="icon-cancel">取消</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="supplierDlg" class="easyui-dialog" style="width:580px;padding:10px 20px"
|
||||||
|
closed="true" buttons="#supplierDlgBtn" modal="true" collapsible="false" closable="true">
|
||||||
|
<form id="supplierFM">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 80px;height: 20px">名称</td>
|
||||||
|
<td style="width: 180px;padding:1px">
|
||||||
|
<input name="supplier" id="supplier" class="easyui-validatebox"
|
||||||
|
data-options="required:true,validType:'length[2,30]'" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td style="width: 60px;height: 20px">联系人</td>
|
||||||
|
<td style="width:180px;padding:1px;">
|
||||||
|
<input name="contacts" id="contacts" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>联系电话</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="phonenum" id="phonenum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>手机</td>
|
||||||
|
<td style="padding:1px;">
|
||||||
|
<input name="telephone" id="telephone" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>电子邮箱</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="email" id="email" class="easyui-validatebox" validType="email"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>传真</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="fax" id="fax" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>期初应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedGet" id="BeginNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
<td>期初应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="BeginNeedPay" id="BeginNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>累计应收</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedGet" id="AllNeedGet" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
<td>累计应付</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="AllNeedPay" id="AllNeedPay" type="text" class="easyui-numberbox"
|
||||||
|
data-options="min:0,precision:2" style="width: 160px;height: 20px" disabled="true"></input>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>纳税人识别号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxNum" id="taxNum" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>税率(%)</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="taxRate" id="taxRate" class="easyui-numberbox" data-options="validType:'length[1,2]'" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>开户行</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="bankName" id="bankName" class="easyui-validatebox" style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
<td>账号</td>
|
||||||
|
<td style="padding:1px">
|
||||||
|
<input name="accountNumber" id="accountNumber" class="easyui-validatebox"
|
||||||
|
style="width: 160px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>地址</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<input name="address" id="address" class="easyui-validatebox" style="width: 408px;height: 20px"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>备注</td>
|
||||||
|
<td style="padding:1px" colspan="3">
|
||||||
|
<textarea name="description" id="description" rows="2" cols="2" style="width: 408px;"></textarea>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="supplierDlgBtn">
|
||||||
|
<a href="javascript:void(0)" id="saveSupplier" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
|
||||||
|
<a href="javascript:void(0)" id="cancelSupplier" class="easyui-linkbutton" iconCls="icon-cancel"
|
||||||
|
onclick="javascript:$('#supplierDlg').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -39,6 +39,10 @@
|
|||||||
|
|
||||||
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-print" id="printBtn">打印</a>
|
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-print" id="printBtn">打印</a>
|
||||||
</td>
|
</td>
|
||||||
|
<td> </td>
|
||||||
|
<td>
|
||||||
|
当前总余额:<span class="first-total">0</span>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -182,6 +186,13 @@
|
|||||||
if(res && res.code === 200){
|
if(res && res.code === 200){
|
||||||
if(res.data && res.data.page) {
|
if(res.data && res.data.page) {
|
||||||
$("#tableData").datagrid('loadData', res.data.page);
|
$("#tableData").datagrid('loadData', res.data.page);
|
||||||
|
var total = 0;
|
||||||
|
res.data.page.rows.forEach(function(value, index, array){
|
||||||
|
//执行某些操作
|
||||||
|
total += value.currentamount;
|
||||||
|
})
|
||||||
|
|
||||||
|
$(".first-total").text(total); //当前总余额
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
333
erp_web/pages/reports/stock_warning_report.html
Normal file
333
erp_web/pages/reports/stock_warning_report.html
Normal file
@@ -0,0 +1,333 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>库存预警</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<!-- 指定以IE8的方式来渲染 -->
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
|
||||||
|
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
|
||||||
|
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/print/print.js"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/default/easyui.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/icon.css"/>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/common.css"/>
|
||||||
|
<script type="text/javascript" src="/js/easyui-1.3.5/jquery.easyui.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/My97DatePicker/WdatePicker.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/common/common.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- 查询 -->
|
||||||
|
<div id="searchPanel" class="easyui-panel" style="padding:10px;" title="查询窗口" iconCls="icon-search" collapsible="true"
|
||||||
|
closable="false">
|
||||||
|
<table id="searchTable">
|
||||||
|
<tr>
|
||||||
|
<td>仓库:</td>
|
||||||
|
<td>
|
||||||
|
<select name="searchProjectId" id="searchProjectId" style="width:80px;"></select>
|
||||||
|
</td>
|
||||||
|
<td> </td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" id="searchBtn">查询</a>
|
||||||
|
|
||||||
|
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-redo" id="exprotBtn">导出</a>
|
||||||
|
|
||||||
|
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-print" id="printBtn">打印</a>
|
||||||
|
<span class="total-count"></span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 数据显示table -->
|
||||||
|
<div id="tablePanel" class="easyui-panel" style="padding:1px;top:300px;" title="库存预警列表" iconCls="icon-list"
|
||||||
|
collapsible="true" closable="false">
|
||||||
|
<table id="tableData" style="top:300px;border-bottom-color:#FFFFFF"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var depotList = null;
|
||||||
|
var depotID = null;
|
||||||
|
var mPropertyList = ""; //商品属性列表
|
||||||
|
var kid = sessionStorage.getItem("userId");
|
||||||
|
//初始化界面
|
||||||
|
$(function () {
|
||||||
|
var thisDate = getNowFormatMonth(); //当前月份
|
||||||
|
var userBusinessList = null;
|
||||||
|
var userdepot = null;
|
||||||
|
initSystemData_UB();
|
||||||
|
initSelectInfo_UB();
|
||||||
|
initSystemData_depot();
|
||||||
|
initSelectInfo_depot();
|
||||||
|
initMProperty(); //初始化商品属性
|
||||||
|
initTableData();
|
||||||
|
ininPager();
|
||||||
|
search();
|
||||||
|
exportExcel();
|
||||||
|
print();
|
||||||
|
});
|
||||||
|
|
||||||
|
//导出EXCEL
|
||||||
|
function exportExcel() {
|
||||||
|
$("#exprotBtn").off("click").on("click", function () {
|
||||||
|
if (!$("#searchProjectId").val()) {
|
||||||
|
$.messager.alert('导出提示', '请先选择仓库再进行查询!', 'error');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
showEachDetails(1, 3000);
|
||||||
|
//此处直接去做get请求,用下面的查询每月统计的方法,去获取list,参数长度虽长,但还是可以用get
|
||||||
|
//window.location.href = "/depotItem/exportExcel.action?browserType=" + getOs();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化系统基础信息
|
||||||
|
function initSystemData_UB() {
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/userBusiness/getBasicData",
|
||||||
|
data: ({
|
||||||
|
KeyId: kid,
|
||||||
|
Type: "UserDepot"
|
||||||
|
}),
|
||||||
|
//设置为同步
|
||||||
|
async: false,
|
||||||
|
dataType: "json",
|
||||||
|
success: function (res) {
|
||||||
|
if (res && res.code === 200) {
|
||||||
|
if(res.data) {
|
||||||
|
userBusinessList = res.data.userBusinessList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
userBusinessList = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化页面选项卡
|
||||||
|
function initSelectInfo_UB() {
|
||||||
|
|
||||||
|
if (userBusinessList != null) {
|
||||||
|
if (userBusinessList.length > 0) {
|
||||||
|
//用户对应的仓库列表 [1][2][3]...
|
||||||
|
userdepot = userBusinessList[0].value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//初始化系统基础信息
|
||||||
|
function initSystemData_depot() {
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/depot/getAllList",
|
||||||
|
//设置为同步
|
||||||
|
async: false,
|
||||||
|
dataType: "json",
|
||||||
|
success: function (res) {
|
||||||
|
if(res && res.code === 200) {
|
||||||
|
depotList = res.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化页面选项卡
|
||||||
|
function initSelectInfo_depot() {
|
||||||
|
var options = "";
|
||||||
|
|
||||||
|
if (depotList != null) {
|
||||||
|
options = "";
|
||||||
|
for (var i = 0; i < depotList.length; i++) {
|
||||||
|
var depot = depotList[i];
|
||||||
|
|
||||||
|
if (userdepot != null) {
|
||||||
|
if (userdepot.indexOf("[" + depot.id + "]") != -1) {
|
||||||
|
options += '<option value="' + depot.id + '">' + depot.name + '</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$("#searchProjectId").empty().append(options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化商品属性
|
||||||
|
function initMProperty() {
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/materialProperty/list",
|
||||||
|
dataType: "json",
|
||||||
|
data: ({
|
||||||
|
search: JSON.stringify({
|
||||||
|
name: ""
|
||||||
|
}),
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 100
|
||||||
|
}),
|
||||||
|
success: function (res) {
|
||||||
|
if(res && res.code === 200){
|
||||||
|
var thisRows = res.data.page.rows;
|
||||||
|
for (var i = 0; i < thisRows.length; i++) {
|
||||||
|
if (thisRows[i].enabled) {
|
||||||
|
mPropertyList += thisRows[i].nativename + ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mPropertyList) {
|
||||||
|
mPropertyList = mPropertyList.substring(0, mPropertyList.length - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//此处添加错误处理
|
||||||
|
error: function () {
|
||||||
|
$.messager.alert('查询提示', '查询信息异常,请稍后再试!', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化表格数据
|
||||||
|
function initTableData() {
|
||||||
|
$('#tableData').datagrid({
|
||||||
|
height: heightInfo,
|
||||||
|
nowrap: false,
|
||||||
|
rownumbers: true,
|
||||||
|
//动画效果
|
||||||
|
animate: false,
|
||||||
|
//选中单行
|
||||||
|
singleSelect: true,
|
||||||
|
pagination: true,
|
||||||
|
//交替出现背景
|
||||||
|
striped: true,
|
||||||
|
//loadFilter: pagerFilter,
|
||||||
|
pageSize: 10,
|
||||||
|
pageList: [10, 50, 100],
|
||||||
|
columns: [[
|
||||||
|
{title: '名称', field: 'materialName', width: 60},
|
||||||
|
{title: '型号', field: 'materialModel', width: 80},
|
||||||
|
{title: '扩展信息', field: 'materialOther', width: 150},
|
||||||
|
{title: '单位', field: 'materialUnit', width: 80},
|
||||||
|
{title: '入库数量', field: 'basicInNumber', width: 80},
|
||||||
|
{title: '出库数量', field: 'basicOutNumber', width: 80},
|
||||||
|
{title: '库存数量', field: 'basicNumber', width: 80},
|
||||||
|
{title: '安全库存量', field: 'safetystock', width: 80},
|
||||||
|
{title: '临界库存量', field: 'basicLinjieNumber', width: 80}
|
||||||
|
]],
|
||||||
|
onLoadError: function () {
|
||||||
|
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始化键盘enter事件
|
||||||
|
$(document).keydown(function (event) {
|
||||||
|
//兼容 IE和firefox 事件
|
||||||
|
var e = window.event || event;
|
||||||
|
var k = e.keyCode || e.which || e.charCode;
|
||||||
|
//兼容 IE,firefox 兼容
|
||||||
|
var obj = e.srcElement ? e.srcElement : e.target;
|
||||||
|
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
|
||||||
|
if (k == "13" && (obj.id == "Type" || obj.id == "Name")) {
|
||||||
|
$("#savePerson").click();
|
||||||
|
}
|
||||||
|
//搜索按钮添加快捷键
|
||||||
|
if (k == "13" && (obj.id == "searchType")) {
|
||||||
|
$("#searchBtn").click();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//分页信息处理
|
||||||
|
function ininPager() {
|
||||||
|
try {
|
||||||
|
var opts = $("#tableData").datagrid('options');
|
||||||
|
var pager = $("#tableData").datagrid('getPager');
|
||||||
|
pager.pagination({
|
||||||
|
onSelectPage: function (pageNum, pageSize) {
|
||||||
|
opts.pageNumber = pageNum;
|
||||||
|
opts.pageSize = pageSize;
|
||||||
|
pager.pagination('refresh', {
|
||||||
|
pageNumber: pageNum,
|
||||||
|
pageSize: pageSize
|
||||||
|
});
|
||||||
|
showEachDetails(pageNum, pageSize);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
$.messager.alert('异常处理提示', "分页信息异常 : " + e.name + ": " + e.message, 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//增加
|
||||||
|
var url;
|
||||||
|
var personID = 0;
|
||||||
|
//保存编辑前的名称
|
||||||
|
var orgPerson = "";
|
||||||
|
|
||||||
|
//搜索处理
|
||||||
|
function search() {
|
||||||
|
showEachDetails(1, initPageSize);
|
||||||
|
var opts = $("#tableData").datagrid('options');
|
||||||
|
var pager = $("#tableData").datagrid('getPager');
|
||||||
|
opts.pageNumber = 1;
|
||||||
|
opts.pageSize = initPageSize;
|
||||||
|
pager.pagination('refresh', {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: initPageSize
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#searchBtn").unbind().bind({
|
||||||
|
click: function () {
|
||||||
|
search();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function showEachDetails(pageNo, pageSize) {
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/depotItem/findStockWarningCount",
|
||||||
|
dataType: "json",
|
||||||
|
data: ({
|
||||||
|
currentPage: pageNo,
|
||||||
|
pageSize: pageSize,
|
||||||
|
projectId : $.trim($("#searchProjectId").val())
|
||||||
|
}),
|
||||||
|
success: function (res) {
|
||||||
|
if(res && res.code === 200 && res.data) {
|
||||||
|
var HeadIds = res.data.total;
|
||||||
|
if (HeadIds > 0) {
|
||||||
|
if (pageSize === 3000) {
|
||||||
|
window.location.href = "/depotItem/exportWarningExcel?browserType=" + getOs() + "¤tPage=" + pageNo + "&pageSize=" + pageSize + "&projectId=" + $.trim($("#searchProjectId").val()) ;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//获取排序后的产品ID
|
||||||
|
$("#tableData").datagrid('loadData', res.data.rows);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('查询提示', '无数据!', 'error');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//此处添加错误处理
|
||||||
|
error: function () {
|
||||||
|
$.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//报表打印
|
||||||
|
function print() {
|
||||||
|
$("#printBtn").off("click").on("click", function () {
|
||||||
|
CreateFormPage('打印报表', $('#tableData'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -13,10 +13,10 @@
|
|||||||
<script type="text/javascript" src="/js/gVerify.js"></script>
|
<script type="text/javascript" src="/js/gVerify.js"></script>
|
||||||
<script type="text/javascript" src="/js/md5/md5.js"></script>
|
<script type="text/javascript" src="/js/md5/md5.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body id="login_body">
|
<body id="register_body">
|
||||||
<div id="login_main">
|
<div id="register_main">
|
||||||
<div id="login">
|
<div id="register">
|
||||||
<p id="login_signal"><img src="/images/register_tip.jpg" width="108" height="29" alt="login"/></p>
|
<p id="register_signal"><img src="/images/register_tip.jpg" width="108" height="29" alt="login"/></p>
|
||||||
<p id="txt_username">
|
<p id="txt_username">
|
||||||
<label for="user_name">用户名:</label>
|
<label for="user_name">用户名:</label>
|
||||||
</p>
|
</p>
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<input type="password" id="user_pwd"/>
|
<input type="password" id="user_pwd"/>
|
||||||
<input type="password" id="user_pwd_repeat"/>
|
<input type="password" id="user_pwd_repeat"/>
|
||||||
<input type="text" id="user_captcha"/>
|
<input type="text" id="user_captcha"/>
|
||||||
<div id="imgCaptcha"></div>
|
<div id="imgCaptcha" title="点击刷新验证码"></div>
|
||||||
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
||||||
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
||||||
<div class="register_btn">
|
<div class="register_btn">
|
||||||
@@ -81,9 +81,11 @@
|
|||||||
}),
|
}),
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res && res.code === 200) {
|
if (res && res.code === 200) {
|
||||||
alert("注册成功!");
|
alert("注册成功,请进行登录!");
|
||||||
|
location.href = "login.html";
|
||||||
} else {
|
} else {
|
||||||
alert(res.msg);
|
alert(res.msg);
|
||||||
|
verifyCode.refresh(); //刷新
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//此处添加错误处理
|
//此处添加错误处理
|
||||||
|
|||||||
@@ -1694,3 +1694,30 @@ return _success_msg;
|
|||||||
end
|
end
|
||||||
;;
|
;;
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 时间:2019年4月30日
|
||||||
|
-- version:1.0.14
|
||||||
|
-- 此次更新
|
||||||
|
-- 增加仓库默认功能 增加库存预警功能
|
||||||
|
-- 特别提醒:之后的sql都是在之前基础上迭代,可以对已存在的系统进行数据保留更新
|
||||||
|
-- ----------------------------
|
||||||
|
alter table jsh_depot add is_default bit(1) DEFAULT NULL COMMENT '是否默认';
|
||||||
|
insert into `jsh_functions`(`Number`, `Name`, `PNumber`, `URL`, `State`, `Sort`, `Enabled`, `Type`, `PushBtn`)
|
||||||
|
select '030112', '库存预警', '0301', '../reports/stock_warning_report.html', b'0', '0670', b'1', '电脑版', '' from dual where not exists
|
||||||
|
(select * from jsh_functions where Number='030112' and PNumber='0301');
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 改管理员的功能权限
|
||||||
|
-- ----------------------------
|
||||||
|
update jsh_userbusiness SET Type = 'RoleFunctions', KeyId = '4',
|
||||||
|
Value = '[13][12][16][243][14][15][234][236][22][23][220][240][25][217][218][26][194][195][31][59][207][208][209][226][227][228][229][235][237][244][210][211][241][33][199][242][41][200][201][202][40][232][233][197][203][204][205][206][212]'
|
||||||
|
where Id = 5;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 给app的功能增加代号 在功能表增加个人信息
|
||||||
|
-- ----------------------------
|
||||||
|
update jsh_app SET Number = '02' where name='个人信息';
|
||||||
|
insert into `jsh_functions`(`Number`, `Name`, `PNumber`, `URL`, `State`, `Sort`, `Enabled`, `Type`, `PushBtn`)
|
||||||
|
select '02', '个人信息', '0', '', b'1', '0005', b'1', '电脑版', '' from dual where not exists
|
||||||
|
(select * from jsh_functions where Number='02' and PNumber='0');
|
||||||
2013
sql/jsh_erp(第一次建库请使用这个).sql
Normal file
2013
sql/jsh_erp(第一次建库请使用这个).sql
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,12 @@
|
|||||||
package com.jsh.erp.config;
|
package com.jsh.erp.config;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.parser.ISqlParser;
|
import com.baomidou.mybatisplus.core.parser.ISqlParser;
|
||||||
import com.baomidou.mybatisplus.core.parser.ISqlParserFilter;
|
import com.baomidou.mybatisplus.core.parser.ISqlParserFilter;
|
||||||
import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
|
import com.baomidou.mybatisplus.core.parser.SqlParserHelper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
|
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
|
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
|
||||||
import com.jsh.erp.datasource.entities.User;
|
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.Expression;
|
||||||
import net.sf.jsqlparser.expression.LongValue;
|
import net.sf.jsqlparser.expression.LongValue;
|
||||||
import org.apache.ibatis.mapping.MappedStatement;
|
import org.apache.ibatis.mapping.MappedStatement;
|
||||||
|
|||||||
@@ -207,5 +207,16 @@ public class DepotController {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@PostMapping(value = "/updateDepotIsDefault")
|
||||||
|
public String updateDepotIsDefault(@RequestParam("isDefault") Boolean isDefault,
|
||||||
|
@RequestParam("depotID") Long depotID,
|
||||||
|
HttpServletRequest request) throws Exception{
|
||||||
|
Map<String, Object> objectMap = new HashMap<String, Object>();
|
||||||
|
int res = depotService.updateDepotIsDefault(isDefault, depotID);
|
||||||
|
if(res > 0) {
|
||||||
|
return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
|
||||||
|
} else {
|
||||||
|
return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.jsh.erp.constants.BusinessConstants;
|
import com.jsh.erp.constants.BusinessConstants;
|
||||||
import com.jsh.erp.constants.ExceptionConstants;
|
import com.jsh.erp.constants.ExceptionConstants;
|
||||||
import com.jsh.erp.datasource.entities.*;
|
import com.jsh.erp.datasource.entities.*;
|
||||||
|
import com.jsh.erp.datasource.vo.DepotItemStockWarningCount;
|
||||||
import com.jsh.erp.exception.BusinessRunTimeException;
|
import com.jsh.erp.exception.BusinessRunTimeException;
|
||||||
import com.jsh.erp.service.depotItem.DepotItemService;
|
import com.jsh.erp.service.depotItem.DepotItemService;
|
||||||
import com.jsh.erp.service.material.MaterialService;
|
import com.jsh.erp.service.material.MaterialService;
|
||||||
@@ -448,7 +449,7 @@ public class DepotItemController {
|
|||||||
BigDecimal InPrice = sumPrice("入库", pid, diEx.getMId(), monthTime, false);
|
BigDecimal InPrice = sumPrice("入库", pid, diEx.getMId(), monthTime, false);
|
||||||
BigDecimal OutPrice = sumPrice("出库", pid, diEx.getMId(), monthTime, false);
|
BigDecimal OutPrice = sumPrice("出库", pid, diEx.getMId(), monthTime, false);
|
||||||
item.put("MaterialName", diEx.getMName());
|
item.put("MaterialName", diEx.getMName());
|
||||||
item.put("MaterialModel", diEx.getMColor());
|
item.put("MaterialModel", diEx.getMModel());
|
||||||
//扩展信息
|
//扩展信息
|
||||||
String materialOther = getOtherInfo(mpArr, diEx);
|
String materialOther = getOtherInfo(mpArr, diEx);
|
||||||
item.put("MaterialOther", materialOther);
|
item.put("MaterialOther", materialOther);
|
||||||
@@ -827,4 +828,81 @@ public class DepotItemController {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
/**
|
||||||
|
* 库存预警报表
|
||||||
|
* @param currentPage
|
||||||
|
* @param pageSize
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/findStockWarningCount")
|
||||||
|
public BaseResponseInfo findStockWarningCount(@RequestParam("currentPage") Integer currentPage,
|
||||||
|
@RequestParam("pageSize") Integer pageSize, @RequestParam("projectId") Integer pid )throws Exception {
|
||||||
|
BaseResponseInfo res = new BaseResponseInfo();
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
try {
|
||||||
|
List<DepotItemStockWarningCount> resList = new ArrayList<DepotItemStockWarningCount>();
|
||||||
|
List<DepotItemStockWarningCount> list = depotItemService.findStockWarningCount((currentPage-1)*pageSize, pageSize,pid);
|
||||||
|
int total = depotItemService.findStockWarningCountTotal(pid);
|
||||||
|
map.put("total", total);
|
||||||
|
map.put("rows", list);
|
||||||
|
res.code = 200;
|
||||||
|
res.data = map;
|
||||||
|
} catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
res.code = 500;
|
||||||
|
res.data = "获取数据失败";
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 导出库存预警excel表格
|
||||||
|
* @param currentPage
|
||||||
|
* @param pageSize
|
||||||
|
* @param projectId
|
||||||
|
* @param monthTime
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/exportWarningExcel")
|
||||||
|
public BaseResponseInfo exportWarningExcel(@RequestParam("currentPage") Integer currentPage,
|
||||||
|
@RequestParam("pageSize") Integer pageSize,
|
||||||
|
@RequestParam("projectId") Integer projectId,
|
||||||
|
HttpServletRequest request, HttpServletResponse response)throws Exception {
|
||||||
|
BaseResponseInfo res = new BaseResponseInfo();
|
||||||
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
|
String message = "成功";
|
||||||
|
try {
|
||||||
|
List<DepotItemStockWarningCount> dataList = depotItemService.findStockWarningCount((currentPage - 1) * pageSize, pageSize, projectId);
|
||||||
|
//存放数据json数组
|
||||||
|
Integer pid = projectId;
|
||||||
|
String[] names = {"名称", "型号", "扩展信息", "单位", "入库数量", "出库数量", "库存数量", "安全库存量", "临界库存量"};
|
||||||
|
String title = "库存预警报表";
|
||||||
|
List<String[]> objects = new ArrayList<String[]>();
|
||||||
|
if (null != dataList) {
|
||||||
|
for (DepotItemStockWarningCount diEx : dataList) {
|
||||||
|
String[] objs = new String[9];
|
||||||
|
|
||||||
|
objs[0] = diEx.getMaterialName().toString();
|
||||||
|
objs[1] = diEx.getMaterialModel().toString();
|
||||||
|
objs[2] = diEx.getMaterialOther().toString();
|
||||||
|
objs[3] = diEx.getMaterialUnit().toString();
|
||||||
|
objs[4] = diEx.getBasicInNumber().toString();
|
||||||
|
objs[5] = diEx.getBasicOutNumber() == null ? "0" : diEx.getBasicOutNumber().toString();
|
||||||
|
objs[6] = diEx.getBasicNumber() == null ? "0" : diEx.getBasicNumber().toString();
|
||||||
|
objs[7] = diEx.getSafetystock() == null ? "0" : diEx.getSafetystock().toString();
|
||||||
|
objs[8] = diEx.getBasicLinjieNumber() == null ? "0" : diEx.getBasicLinjieNumber().toString();
|
||||||
|
objects.add(objs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
File file = ExcelUtils.exportObjectsWithoutTitle(title+pid, names, title, objects);
|
||||||
|
ExportExecUtil.showExec(file, file.getName(), response);
|
||||||
|
res.code = 200;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
message = "导出失败";
|
||||||
|
res.code = 500;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -350,6 +350,7 @@ public class UserController {
|
|||||||
ue.setUsername(loginame);
|
ue.setUsername(loginame);
|
||||||
ue.setLoginame(loginame);
|
ue.setLoginame(loginame);
|
||||||
ue.setPassword(password);
|
ue.setPassword(password);
|
||||||
|
userService.checkUserNameAndLoginName(ue); //检查用户名和登录名
|
||||||
ue = userService.registerUser(ue,manageRoleId);
|
ue = userService.registerUser(ue,manageRoleId);
|
||||||
/**
|
/**
|
||||||
* create by: qiankunpingtai
|
* create by: qiankunpingtai
|
||||||
|
|||||||
@@ -91,6 +91,14 @@ public class Depot {
|
|||||||
*/
|
*/
|
||||||
private String deleteFlag;
|
private String deleteFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This field was generated by MyBatis Generator.
|
||||||
|
* This field corresponds to the database column jsh_depot.is_default
|
||||||
|
*
|
||||||
|
* @mbggenerated
|
||||||
|
*/
|
||||||
|
private Boolean isDefault;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method was generated by MyBatis Generator.
|
* This method was generated by MyBatis Generator.
|
||||||
* This method returns the value of the database column jsh_depot.id
|
* This method returns the value of the database column jsh_depot.id
|
||||||
@@ -354,4 +362,28 @@ public class Depot {
|
|||||||
public void setDeleteFlag(String deleteFlag) {
|
public void setDeleteFlag(String deleteFlag) {
|
||||||
this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim();
|
this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method was generated by MyBatis Generator.
|
||||||
|
* This method returns the value of the database column jsh_depot.is_default
|
||||||
|
*
|
||||||
|
* @return the value of jsh_depot.is_default
|
||||||
|
*
|
||||||
|
* @mbggenerated
|
||||||
|
*/
|
||||||
|
public Boolean getIsDefault() {
|
||||||
|
return isDefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method was generated by MyBatis Generator.
|
||||||
|
* This method sets the value of the database column jsh_depot.is_default
|
||||||
|
*
|
||||||
|
* @param isDefault the value for jsh_depot.is_default
|
||||||
|
*
|
||||||
|
* @mbggenerated
|
||||||
|
*/
|
||||||
|
public void setIsDefault(Boolean isDefault) {
|
||||||
|
this.isDefault = isDefault;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -904,6 +904,66 @@ public class DepotExample {
|
|||||||
addCriterion("delete_Flag not between", value1, value2, "deleteFlag");
|
addCriterion("delete_Flag not between", value1, value2, "deleteFlag");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultIsNull() {
|
||||||
|
addCriterion("is_default is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultIsNotNull() {
|
||||||
|
addCriterion("is_default is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultEqualTo(Boolean value) {
|
||||||
|
addCriterion("is_default =", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultNotEqualTo(Boolean value) {
|
||||||
|
addCriterion("is_default <>", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultGreaterThan(Boolean value) {
|
||||||
|
addCriterion("is_default >", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultGreaterThanOrEqualTo(Boolean value) {
|
||||||
|
addCriterion("is_default >=", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultLessThan(Boolean value) {
|
||||||
|
addCriterion("is_default <", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultLessThanOrEqualTo(Boolean value) {
|
||||||
|
addCriterion("is_default <=", value, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultIn(List<Boolean> values) {
|
||||||
|
addCriterion("is_default in", values, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultNotIn(List<Boolean> values) {
|
||||||
|
addCriterion("is_default not in", values, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultBetween(Boolean value1, Boolean value2) {
|
||||||
|
addCriterion("is_default between", value1, value2, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIsDefaultNotBetween(Boolean value1, Boolean value2) {
|
||||||
|
addCriterion("is_default not between", value1, value2, "isDefault");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.jsh.erp.datasource.mappers;
|
package com.jsh.erp.datasource.mappers;
|
||||||
|
|
||||||
import com.jsh.erp.datasource.entities.*;
|
import com.jsh.erp.datasource.entities.*;
|
||||||
|
import com.jsh.erp.datasource.vo.DepotItemStockWarningCount;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -172,4 +173,10 @@ public interface DepotItemMapperEx {
|
|||||||
List<DepotItem> getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds);
|
List<DepotItem> getDepotItemListListByDepotIds(@Param("depotIds") String[] depotIds);
|
||||||
|
|
||||||
List<DepotItem> getDepotItemListListByMaterialIds(@Param("materialIds") String[] materialIds);
|
List<DepotItem> getDepotItemListListByMaterialIds(@Param("materialIds") String[] materialIds);
|
||||||
|
|
||||||
|
|
||||||
|
List<DepotItemStockWarningCount> findStockWarningCount(@Param("offset") Integer offset,
|
||||||
|
@Param("rows") Integer rows, @Param("pid") Integer pid);
|
||||||
|
|
||||||
|
int findStockWarningCountTotal( @Param("pid") Integer pid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
package com.jsh.erp.datasource.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class DepotItemStockWarningCount {
|
||||||
|
|
||||||
|
|
||||||
|
private String MaterialName;
|
||||||
|
|
||||||
|
private String MaterialModel;
|
||||||
|
|
||||||
|
private String categoryName;
|
||||||
|
|
||||||
|
private String MaterialOther;
|
||||||
|
|
||||||
|
private String MaterialUnit;
|
||||||
|
|
||||||
|
private BigDecimal safetystock;//安全库存量
|
||||||
|
|
||||||
|
private BigDecimal BasicInNumber;//入库量
|
||||||
|
|
||||||
|
private BigDecimal BasicOutNumber;//出库量
|
||||||
|
|
||||||
|
|
||||||
|
private BigDecimal BasicNumber;//库存
|
||||||
|
|
||||||
|
private BigDecimal BasicLinjieNumber;//临界库存
|
||||||
|
|
||||||
|
public String getMaterialName() {
|
||||||
|
return MaterialName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterialName(String materialName) {
|
||||||
|
MaterialName = materialName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMaterialModel() {
|
||||||
|
return MaterialModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterialModel(String materialModel) {
|
||||||
|
MaterialModel = materialModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCategoryName() {
|
||||||
|
return categoryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCategoryName(String categoryName) {
|
||||||
|
this.categoryName = categoryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMaterialOther() {
|
||||||
|
return MaterialOther;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterialOther(String materialOther) {
|
||||||
|
MaterialOther = materialOther;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMaterialUnit() {
|
||||||
|
return MaterialUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterialUnit(String materialUnit) {
|
||||||
|
MaterialUnit = materialUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getSafetystock() {
|
||||||
|
return safetystock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSafetystock(BigDecimal safetystock) {
|
||||||
|
this.safetystock = safetystock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBasicInNumber() {
|
||||||
|
return BasicInNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBasicInNumber(BigDecimal basicInNumber) {
|
||||||
|
BasicInNumber = basicInNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBasicOutNumber() {
|
||||||
|
return BasicOutNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBasicOutNumber(BigDecimal basicOutNumber) {
|
||||||
|
BasicOutNumber = basicOutNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBasicNumber() {
|
||||||
|
return BasicNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBasicNumber(BigDecimal basicNumber) {
|
||||||
|
BasicNumber = basicNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getBasicLinjieNumber() {
|
||||||
|
return BasicLinjieNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBasicLinjieNumber(BigDecimal basicLinjieNumber) {
|
||||||
|
BasicLinjieNumber = basicLinjieNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -316,4 +316,24 @@ public class DepotService {
|
|||||||
return deleteTotal;
|
return deleteTotal;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
|
public int updateDepotIsDefault(Boolean isDefault, Long depotID) throws Exception{
|
||||||
|
logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_DEPOT,BusinessConstants.LOG_OPERATION_TYPE_EDIT+depotID,
|
||||||
|
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
|
||||||
|
Depot depot = new Depot();
|
||||||
|
depot.setIsDefault(isDefault);
|
||||||
|
DepotExample example = new DepotExample();
|
||||||
|
example.createCriteria().andIdEqualTo(depotID);
|
||||||
|
int result=0;
|
||||||
|
try{
|
||||||
|
result = depotMapper.updateByExampleSelective(depot, example);
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error("异常码[{}],异常提示[{}],异常[{}]",
|
||||||
|
ExceptionConstants.DATA_WRITE_FAIL_CODE,ExceptionConstants.DATA_WRITE_FAIL_MSG,e);
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DATA_WRITE_FAIL_CODE,
|
||||||
|
ExceptionConstants.DATA_WRITE_FAIL_MSG);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,9 @@ public class DepotHeadService {
|
|||||||
if(dh.getTotalprice() != null) {
|
if(dh.getTotalprice() != null) {
|
||||||
dh.setTotalprice(dh.getTotalprice().abs());
|
dh.setTotalprice(dh.getTotalprice().abs());
|
||||||
}
|
}
|
||||||
dh.setOpertimeStr(getCenternTime(dh.getOpertime()));
|
if(dh.getOpertime() != null) {
|
||||||
|
dh.setOpertimeStr(getCenternTime(dh.getOpertime()));
|
||||||
|
}
|
||||||
dh.setMaterialsList(findMaterialsListByHeaderId(dh.getId()));
|
dh.setMaterialsList(findMaterialsListByHeaderId(dh.getId()));
|
||||||
resList.add(dh);
|
resList.add(dh);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,17 +9,16 @@ import com.jsh.erp.datasource.mappers.DepotHeadMapper;
|
|||||||
import com.jsh.erp.datasource.mappers.DepotItemMapper;
|
import com.jsh.erp.datasource.mappers.DepotItemMapper;
|
||||||
import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
|
import com.jsh.erp.datasource.mappers.DepotItemMapperEx;
|
||||||
import com.jsh.erp.datasource.mappers.SerialNumberMapperEx;
|
import com.jsh.erp.datasource.mappers.SerialNumberMapperEx;
|
||||||
|
import com.jsh.erp.datasource.vo.DepotItemStockWarningCount;
|
||||||
import com.jsh.erp.exception.BusinessRunTimeException;
|
import com.jsh.erp.exception.BusinessRunTimeException;
|
||||||
import com.jsh.erp.service.log.LogService;
|
import com.jsh.erp.service.log.LogService;
|
||||||
import com.jsh.erp.service.material.MaterialService;
|
import com.jsh.erp.service.material.MaterialService;
|
||||||
import com.jsh.erp.service.serialNumber.SerialNumberService;
|
import com.jsh.erp.service.serialNumber.SerialNumberService;
|
||||||
import com.jsh.erp.service.user.UserService;
|
import com.jsh.erp.service.user.UserService;
|
||||||
import com.jsh.erp.utils.ErpInfo;
|
|
||||||
import com.jsh.erp.utils.QueryUtils;
|
import com.jsh.erp.utils.QueryUtils;
|
||||||
import com.jsh.erp.utils.StringUtil;
|
import com.jsh.erp.utils.StringUtil;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.dao.DataAccessException;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
@@ -32,8 +31,6 @@ import java.util.Date;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.jsh.erp.utils.ResponseJsonUtil.returnJson;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DepotItemService {
|
public class DepotItemService {
|
||||||
private Logger logger = LoggerFactory.getLogger(DepotItemService.class);
|
private Logger logger = LoggerFactory.getLogger(DepotItemService.class);
|
||||||
@@ -795,4 +792,32 @@ public class DepotItemService {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
|
public List<DepotItemStockWarningCount> findStockWarningCount(int offset, Integer rows, Integer pid) {
|
||||||
|
|
||||||
|
List<DepotItemStockWarningCount> list = null;
|
||||||
|
try{
|
||||||
|
list =depotItemMapperEx.findStockWarningCount( offset, rows, pid);
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error("异常码[{}],异常提示[{}],异常[{}]",
|
||||||
|
ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e);
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE,
|
||||||
|
ExceptionConstants.DATA_READ_FAIL_MSG);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
|
public int findStockWarningCountTotal(Integer pid) {
|
||||||
|
int result = 0;
|
||||||
|
try{
|
||||||
|
result =depotItemMapperEx.findStockWarningCountTotal(pid);
|
||||||
|
}catch(Exception e){
|
||||||
|
logger.error("异常码[{}],异常提示[{}],异常[{}]",
|
||||||
|
ExceptionConstants.DATA_READ_FAIL_CODE,ExceptionConstants.DATA_READ_FAIL_MSG,e);
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DATA_READ_FAIL_CODE,
|
||||||
|
ExceptionConstants.DATA_READ_FAIL_MSG);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,6 +120,12 @@ public class SupplierService {
|
|||||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
public int updateSupplier(String beanJson, Long id)throws Exception {
|
public int updateSupplier(String beanJson, Long id)throws Exception {
|
||||||
Supplier supplier = JSONObject.parseObject(beanJson, Supplier.class);
|
Supplier supplier = JSONObject.parseObject(beanJson, Supplier.class);
|
||||||
|
if(supplier.getBeginneedpay() == null) {
|
||||||
|
supplier.setBeginneedpay(BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
if(supplier.getBeginneedget() == null) {
|
||||||
|
supplier.setBeginneedget(BigDecimal.ZERO);
|
||||||
|
}
|
||||||
supplier.setId(id);
|
supplier.setId(id);
|
||||||
int result=0;
|
int result=0;
|
||||||
try{
|
try{
|
||||||
|
|||||||
@@ -41,6 +41,18 @@
|
|||||||
<result column="MaterialUnit" jdbcType="VARCHAR" property="MaterialUnit" />
|
<result column="MaterialUnit" jdbcType="VARCHAR" property="MaterialUnit" />
|
||||||
<result column="MColor" jdbcType="VARCHAR" property="MColor" />
|
<result column="MColor" jdbcType="VARCHAR" property="MColor" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
<resultMap id="ResultStockWarningCount" type="com.jsh.erp.datasource.vo.DepotItemStockWarningCount">
|
||||||
|
<result column="MaterialName" jdbcType="VARCHAR" property="MaterialName" />
|
||||||
|
<result column="MaterialModel" jdbcType="VARCHAR" property="MaterialModel" />
|
||||||
|
<result column="categoryName" jdbcType="VARCHAR" property="categoryName" />
|
||||||
|
<result column="MaterialOther" jdbcType="VARCHAR" property="MaterialOther" />
|
||||||
|
<result column="MaterialUnit" jdbcType="VARCHAR" property="MaterialUnit" />
|
||||||
|
<result column="safetystock" jdbcType="DECIMAL" property="safetystock" />
|
||||||
|
<result column="BasicInNumber" jdbcType="DECIMAL" property="BasicInNumber" />
|
||||||
|
<result column="BasicOutNumber" jdbcType="DECIMAL" property="BasicOutNumber" />
|
||||||
|
<result column="BasicNumber" jdbcType="DECIMAL" property="BasicNumber" />
|
||||||
|
<result column="BasicLinjieNumber" jdbcType="DECIMAL" property="BasicLinjieNumber" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<select id="selectByConditionDepotItem" parameterType="com.jsh.erp.datasource.entities.DepotItemExample" resultMap="com.jsh.erp.datasource.mappers.DepotItemMapper.BaseResultMap">
|
<select id="selectByConditionDepotItem" parameterType="com.jsh.erp.datasource.entities.DepotItemExample" resultMap="com.jsh.erp.datasource.mappers.DepotItemMapper.BaseResultMap">
|
||||||
select *
|
select *
|
||||||
@@ -438,5 +450,95 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="findStockWarningCount" parameterType="com.jsh.erp.datasource.entities.DepotItemExample" resultMap="ResultStockWarningCount">
|
||||||
|
SELECT
|
||||||
|
m. NAME MaterialName,
|
||||||
|
m.Model MaterialModel,
|
||||||
|
mc.`Name` categoryName,
|
||||||
|
CONCAT(
|
||||||
|
'(',
|
||||||
|
m.Standard,
|
||||||
|
')',
|
||||||
|
'(',
|
||||||
|
m.Color,
|
||||||
|
')'
|
||||||
|
) AS MaterialOther,
|
||||||
|
m.unit MaterialUnit,
|
||||||
|
ifnull(m.safetystock,0) safetystock,
|
||||||
|
IFNULL(intype.BasicInNumber ,0) BasicInNumber,
|
||||||
|
IFNULL(outtype.BasicOutNumber ,0) BasicOutNumber,
|
||||||
|
(
|
||||||
|
IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0)
|
||||||
|
) BasicNumber,
|
||||||
|
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0)) BasicLinjieNumber
|
||||||
|
FROM
|
||||||
|
jsh_material m
|
||||||
|
LEFT JOIN jsh_materialcategory mc ON mc.Id = m.CategoryId
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
di.MaterialId,
|
||||||
|
ifnull(sum(BasicNumber), 0) AS BasicInNumber
|
||||||
|
FROM
|
||||||
|
jsh_depothead dh
|
||||||
|
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
|
||||||
|
AND ifnull(di.delete_Flag, '0') != '1'
|
||||||
|
WHERE
|
||||||
|
dh.type = '入库'
|
||||||
|
<if test="pid != null">
|
||||||
|
and di.DepotId= ${pid}
|
||||||
|
</if>
|
||||||
|
AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId
|
||||||
|
) intype ON intype.MaterialId = m.id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
di.MaterialId,
|
||||||
|
ifnull(sum(BasicNumber), 0) AS BasicOutNumber
|
||||||
|
FROM
|
||||||
|
jsh_depothead dh
|
||||||
|
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
|
||||||
|
AND ifnull(di.delete_Flag, '0') != '1'
|
||||||
|
WHERE
|
||||||
|
dh.type = '出库'
|
||||||
|
AND dh.SubType != '调拨'
|
||||||
|
<if test="pid != null">
|
||||||
|
and di.DepotId= ${pid}
|
||||||
|
</if>
|
||||||
|
AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId
|
||||||
|
) outtype ON outtype.MaterialId = m.id
|
||||||
|
WHERE
|
||||||
|
1 = 1
|
||||||
|
AND ifnull(m.delete_Flag, '0') != '1'
|
||||||
|
AND intype.BasicInNumber > 0
|
||||||
|
ORDER BY
|
||||||
|
(IFNULL(intype.BasicInNumber ,0) - IFNULL(outtype.BasicOutNumber ,0) - ifnull(m.safetystock,0))
|
||||||
|
<if test="offset != null and rows != null">
|
||||||
|
limit #{offset},#{rows}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="findStockWarningCountTotal" resultType="java.lang.Integer">
|
||||||
|
select count(1) from
|
||||||
|
jsh_material m
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
di.MaterialId,
|
||||||
|
ifnull(sum(BasicNumber), 0) AS BasicInNumber
|
||||||
|
FROM
|
||||||
|
jsh_depothead dh
|
||||||
|
INNER JOIN jsh_depotitem di ON dh.id = di.HeaderId
|
||||||
|
AND ifnull(di.delete_Flag, '0') != '1'
|
||||||
|
WHERE
|
||||||
|
dh.type = '入库'
|
||||||
|
<if test="pid != null">
|
||||||
|
and di.DepotId= ${pid}
|
||||||
|
</if>
|
||||||
|
AND ifnull(dh.delete_Flag, '0') != '1' group by di.MaterialId
|
||||||
|
) intype ON intype.MaterialId = m.id
|
||||||
|
|
||||||
|
WHERE
|
||||||
|
1 = 1
|
||||||
|
AND ifnull(m.delete_Flag, '0') != '1'
|
||||||
|
AND intype.BasicInNumber > 0
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
<result column="principal" jdbcType="BIGINT" property="principal" />
|
<result column="principal" jdbcType="BIGINT" property="principal" />
|
||||||
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
|
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
|
||||||
<result column="delete_Flag" jdbcType="VARCHAR" property="deleteFlag" />
|
<result column="delete_Flag" jdbcType="VARCHAR" property="deleteFlag" />
|
||||||
|
<result column="is_default" jdbcType="BIT" property="isDefault" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<!--
|
<!--
|
||||||
@@ -90,7 +91,7 @@
|
|||||||
This element is automatically generated by MyBatis Generator, do not modify.
|
This element is automatically generated by MyBatis Generator, do not modify.
|
||||||
-->
|
-->
|
||||||
id, name, address, warehousing, truckage, type, sort, remark, principal, tenant_id,
|
id, name, address, warehousing, truckage, type, sort, remark, principal, tenant_id,
|
||||||
delete_Flag
|
delete_Flag, is_default
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.DepotExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="com.jsh.erp.datasource.entities.DepotExample" resultMap="BaseResultMap">
|
||||||
<!--
|
<!--
|
||||||
@@ -146,11 +147,13 @@
|
|||||||
insert into jsh_depot (id, name, address,
|
insert into jsh_depot (id, name, address,
|
||||||
warehousing, truckage, type,
|
warehousing, truckage, type,
|
||||||
sort, remark, principal,
|
sort, remark, principal,
|
||||||
tenant_id, delete_Flag)
|
tenant_id, delete_Flag, is_default
|
||||||
|
)
|
||||||
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR},
|
values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR},
|
||||||
#{warehousing,jdbcType=DECIMAL}, #{truckage,jdbcType=DECIMAL}, #{type,jdbcType=INTEGER},
|
#{warehousing,jdbcType=DECIMAL}, #{truckage,jdbcType=DECIMAL}, #{type,jdbcType=INTEGER},
|
||||||
#{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{principal,jdbcType=BIGINT},
|
#{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{principal,jdbcType=BIGINT},
|
||||||
#{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR})
|
#{tenantId,jdbcType=BIGINT}, #{deleteFlag,jdbcType=VARCHAR}, #{isDefault,jdbcType=BIT}
|
||||||
|
)
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.Depot">
|
<insert id="insertSelective" parameterType="com.jsh.erp.datasource.entities.Depot">
|
||||||
<!--
|
<!--
|
||||||
@@ -192,6 +195,9 @@
|
|||||||
<if test="deleteFlag != null">
|
<if test="deleteFlag != null">
|
||||||
delete_Flag,
|
delete_Flag,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="isDefault != null">
|
||||||
|
is_default,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="id != null">
|
<if test="id != null">
|
||||||
@@ -227,6 +233,9 @@
|
|||||||
<if test="deleteFlag != null">
|
<if test="deleteFlag != null">
|
||||||
#{deleteFlag,jdbcType=VARCHAR},
|
#{deleteFlag,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="isDefault != null">
|
||||||
|
#{isDefault,jdbcType=BIT},
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<select id="countByExample" parameterType="com.jsh.erp.datasource.entities.DepotExample" resultType="java.lang.Integer">
|
<select id="countByExample" parameterType="com.jsh.erp.datasource.entities.DepotExample" resultType="java.lang.Integer">
|
||||||
@@ -279,6 +288,9 @@
|
|||||||
<if test="record.deleteFlag != null">
|
<if test="record.deleteFlag != null">
|
||||||
delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR},
|
delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.isDefault != null">
|
||||||
|
is_default = #{record.isDefault,jdbcType=BIT},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
@@ -300,7 +312,8 @@
|
|||||||
remark = #{record.remark,jdbcType=VARCHAR},
|
remark = #{record.remark,jdbcType=VARCHAR},
|
||||||
principal = #{record.principal,jdbcType=BIGINT},
|
principal = #{record.principal,jdbcType=BIGINT},
|
||||||
tenant_id = #{record.tenantId,jdbcType=BIGINT},
|
tenant_id = #{record.tenantId,jdbcType=BIGINT},
|
||||||
delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR}
|
delete_Flag = #{record.deleteFlag,jdbcType=VARCHAR},
|
||||||
|
is_default = #{record.isDefault,jdbcType=BIT}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
@@ -342,6 +355,9 @@
|
|||||||
<if test="deleteFlag != null">
|
<if test="deleteFlag != null">
|
||||||
delete_Flag = #{deleteFlag,jdbcType=VARCHAR},
|
delete_Flag = #{deleteFlag,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="isDefault != null">
|
||||||
|
is_default = #{isDefault,jdbcType=BIT},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id,jdbcType=BIGINT}
|
where id = #{id,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
@@ -360,7 +376,8 @@
|
|||||||
remark = #{remark,jdbcType=VARCHAR},
|
remark = #{remark,jdbcType=VARCHAR},
|
||||||
principal = #{principal,jdbcType=BIGINT},
|
principal = #{principal,jdbcType=BIGINT},
|
||||||
tenant_id = #{tenantId,jdbcType=BIGINT},
|
tenant_id = #{tenantId,jdbcType=BIGINT},
|
||||||
delete_Flag = #{deleteFlag,jdbcType=VARCHAR}
|
delete_Flag = #{deleteFlag,jdbcType=VARCHAR},
|
||||||
|
is_default = #{isDefault,jdbcType=BIT}
|
||||||
where id = #{id,jdbcType=BIGINT}
|
where id = #{id,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<generatorConfiguration>
|
<generatorConfiguration>
|
||||||
<classPathEntry
|
<classPathEntry
|
||||||
location="E:\maven-repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
|
location="C:\Users\cjl\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
|
||||||
|
|
||||||
<context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
|
<context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
|
||||||
<commentGenerator>
|
<commentGenerator>
|
||||||
@@ -67,5 +67,6 @@
|
|||||||
<table tableName="jsh_serial_number" domainObjectName="SerialNumber"></table>
|
<table tableName="jsh_serial_number" domainObjectName="SerialNumber"></table>
|
||||||
<table tableName="jsh_organization" domainObjectName="Organization"></table>
|
<table tableName="jsh_organization" domainObjectName="Organization"></table>
|
||||||
<table tableName="jsh_orga_user_rel" domainObjectName="OrgaUserRel"></table> -->
|
<table tableName="jsh_orga_user_rel" domainObjectName="OrgaUserRel"></table> -->
|
||||||
|
<table tableName="jsh_userbusiness" domainObjectName="UserBusiness"></table>
|
||||||
</context>
|
</context>
|
||||||
</generatorConfiguration>
|
</generatorConfiguration>
|
||||||
|
|||||||
Reference in New Issue
Block a user