大型商贸系统(进货管理)技术解析(五)自营无订单进仓冲红单
功能介绍:
自营无订单仓冲红单通过选择已审核无订单进仓单抵消某张已审核过的进仓冲红单使其进货无效。进仓冲红包括自营进仓冲红;无订单进仓冲红。其中自营无订单进仓冲红,在选择了相应的需要冲红的已审核无订单进仓单后,使其录入的件数和细数为原进仓单的相反数,然后保存,修改,经过审核后即可实现冲红操作功能。
效果图:
图1.1
功能实现:
1. 自营无订单进仓冲红单所用到的表与表之间的关系图
表1:冲红单表(Offset)
用于存放自营无订单进仓冲红单信息
列名 | 数据类型 | 主键/外键 | 说明 |
Offset_id | int | 主键 | 冲红单id |
Repertory_enter_id | int | 外键 | 进仓单id |
Review_deny | Bit |
| 审核否 |
Record_number | nchar(20) |
| 记录编号 |
Registrant_id | int | 外键 | 登记人id |
Auditor_id | int | 外键 | 审核人id |
Review_time | datetime |
| 审核时间 |
Review_time | datetime |
| 登记时间 |
表2:进仓单表(Repertory_enter)
用于存放商品进仓单信息
列名 | 数据类型 | 主键/外键 | 说明 |
Repertory_enter_id | int | 主键 | 进仓单id |
Repertory_place_id | int | 外键 | 仓库地点id |
Indent_id | int | 外键 | 订单id |
Hava_indent_deny | Bit |
| 有无订单否 |
Receiver_id | int | 外键 | 收货人id |
Record_number | nchar(20) |
| 记录编号 |
Registrant_id | int | 外键 | 登记人id |
Register_time | datetime |
| 登记时间 |
Auditor_id | int | 外键 | 审核人id |
Review_time | datetime |
| 审核时间 |
Affix_count | nchar(10) |
| 附件张数 |
Type_of_operation_pubid | int | 外键 | 经营方式pubid |
Original_number | nchar(20) |
| 原始单号 |
Agreement_id | int | 外键 | 合同id |
Review_deny | Bit |
| 审核否 |
YouXiaoFou | Bit |
| 有效否 |
表3:进仓明细表(Repertory_enter_detail)
用于记录进仓明细单信息
列名 | 数据类型 | 主键/外键 | 说明 |
Repertory_enter_detail_id | int | 主键 | 进仓明细id |
Repertory_enter_detail_Farid | int | 外键 | 进仓明细farid |
Repertory_enter_id | int | 外键 | 进仓id |
Goods_id | int | 外键 | 商品id |
Repertory_enter_packages | decimal(18,0) |
| 入库件数 |
Repertory_enter_quantity | decimal(18,0) |
| 入库细数 |
Giveaway_quantity | decimal(18,0) |
| 物扣数量 |
Review_deny | bit |
| 审核否 |
Auditor_id | int | 外键 | 审核人id |
Review_time | datetime |
| 审核时间 |
ChongHong_deny | Bit |
| 冲红否 |
表4:员工表(Eemployee)
用于记录员工信息
列名 | 数据类型 | 主键/外键 | 说明 |
Employee_id | int | 主键 | 员工id |
Employee_number | nchar(12) |
| 员工编号 |
Employee_name | nchar(10) |
| 员工名称 |
Department_id | int | 外键 | 部门id |
Duties_id | int | 外键 | 职务id |
Sex | int | 外键 | 性别pubid |
2. 实现自营无订单进仓冲红单界面效果图
图2.1
2.1 实现该功能的界面代码
<!DOCTYPE html>
<html>
<head>
<meta content="text/javascript;charset=utf-8" />
<title>自营无订单冲红处理</title>
<link href="../../Content/jquery-easyui-1.3.3/themes/icon.css" rel="stylesheet" />
<link href="../../Content/jquery-easyui-1.3.3/demo/demo.css" rel="stylesheet" />
<link href="../../Content/jquery-easyui-1.3.3/themes/default/easyui.css" rel="stylesheet" />
<link href="../../Content/MyCSS/PublicCSS.css" rel="stylesheet" />
<script src="../../Content/jquery-easyui-1.3.3/jquery.min.js"></script>
<script src="../../Content/jquery-easyui-1.3.3/jquery.easyui.min.js"></script>
<script src="../../Content/jquery-easyui-1.3.3/easyloader.js"></script>
<link href="../../Content/yxsss/js_css/yu.css" rel="stylesheet" />
<script src="../../Content/yxsss/js_css/yu.js"></script>
<style type="text/css">
body { text-align: center; font-size: 20px; }
input { margin-top: 1px; margin-left: 5px; margin-right: 5px; font-size: 15px; }
button { height: 28px; font-size: 20px; margin: 1px 3px 1px 3px; }
div > button { margin: 15px 4px auto 15px; }
#weibu tr td { height: 30px; }
.myimg:hover { margin-top: 3px; margin-left: 3px; }
</style>
</head>
<body style="text-align: center">
<div style="display: none">
<div class="easyui-window" title="" id="wWDingDanJinHuoChuLi" style="display: none; text-align: center; border-spacing: 0; padding: 0; border: 0 solid white; height: 600px;"
data-options="fit:true,collapsible:false,minimizable:false,maximizable:false,closable:false,draggable:false,resizable:false,shadow:false,modal:true,center:true">
<div style="padding: 5px; background: #e0ffff; color: #4169e1; font-size: 20px; margin: 0 0 auto;" border="1">
无订单冲红处理
</div>
<table id="tbWDingDanJinHuoChuLi" style="width: 780px; height: 20px; padding: 0; border: none;">
<tr>
<td style="vertical-align: middle">
<input type="button" value="记录编号" οnclick="OpenZiYingJinCangDanChaZhao()" style="width: 100px;" /><input type="text" @*οnclick="SelectWuDingDanJinCangRecord_number()"*@ id="txtWuDingDanCHJiLuBianMa" style="width: 120px; color: red; margin-left: 5px;" /></td>
<td style="vertical-align: middle">
<input type="button" value="进货部门" style="width: 100px;" /><input type="text" id="bumendaima" style="width: 40px; text-align: center; margin-left: 5px" /></td>
<td style="vertical-align: middle">
<div style="border-bottom: #000 1px solid; width: 180px;">
<input id="txtBuMenMC" readonly="readonly" style="width: 240px; margin-left: 5px; border: none; color: #0000FF; font-size: 15px;" />
</div>
</td>
</tr>
</table>
<table style="width: 780px; height: 150px; padding: 0; border: none;">
<tr>
<td style="width: 180px; text-align: center; font-size: 15px;">合同号:</td>
<td>
<div style="border-bottom: #000 1px solid; width: 100px;">
<input id="AgreementCode" readonly="readonly" style="width: 100px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="text-align: center; font-size: 15px;">库存地点:</td>
<td>
<input class="easyui-combobox" id="RepertoryPlaceIdentifier" data-options="panelHeight:100" style="width: 145px; text-align: center" /></td>
<td>
<div style="border-bottom: #000 1px solid; width: 180px;">
<input readonly="readonly" id="kucunMC" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
</tr>
<tr>
<td style="width: 110px; text-align: center; font-size: 15px;">结算方式:</td>
<td>
<div style="border-bottom: #000 1px solid; width: 100px;">
<input readonly="readonly" id="jiesuanfangshi" style="width: 100px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="text-align: right; font-size: 15px;">附件:<input type="text" id="txtFuJianZhangShu" style="width: 40px" />张数</td>
<td colspan="2" align="right" style="font-size: 15px;">原始进货单号:<input type="text" id="txtTongJinCang" style="width: 180px;" /></td>
</tr>
<tr>
<td style="width: 110px; text-align: center; font-size: 15px;">买手:</td>
<td>
<div style="border-bottom: #000 1px solid; width: 80px;">
<input readonly="readonly" id="maijia" style="width: 80px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="text-align: center; font-size: 15px;">收货人:</td>
<td>
<input class="easyui-combobox" id="shouhuorenbianhao" data-options="panelHeight:100" style="width: 145px; text-align: center" /></td>
<td>
<div style="border-bottom: #000 1px solid; width: 180px;">
<input readonly="readonly" id="ReceiverName" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
</tr>
<tr>
<td style="width: 120px; text-align: center; font-size: 15px;">往来单位:</td>
<td style="width: 160px;" colspan="2">
<div style="border-bottom: #000 1px solid; width: 300px;">
<input readonly="readonly" id="SupplyUnits" style="width: 300px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="vertical-align: middle">
<input type="button" id="piliangxuanshangpin" value="批量选商品" οnclick="OpenPiLiangXuanShangPin()" style="width: 100px; text-align: right; font-size: 17px;" />
</td>
<td>
<button οnclick="SelectWDJinCangChongHongDan()">
<img src="../../Content/image/2012092109942.png" />查询</button>
</td>
</tr>
</table>
<div class="easyui-panel" style="width: 785px; height: 243px;">
<table id="tb进窗信息" class="easyui-datagrid" style="width: 3780px;" data-options="rownumbers:true,idField:'Goods_id',singleSelect:true,onClickRow:onClickRowMingXi,@*onAfterEdit:onAfterEdit,*@
fit:true,pagination:true,frozenColumns:[[
{field:'ShanChu',width:40,title:'删除',align:'center',formatter:deleteSelect}
]]">
<thead>
<tr>
<th data-options="field:'Goods_id',hidden:true,width:80,align:'center'">商品ID</th>
<th data-options="field:'Repertory_enter_detail_id',hidden:true,width:80,align:'center'">进仓明细ID</th>
<th data-options="field:'Goods_code',width:80,align:'center'">商品代码</th>
<th data-options="field:'Goods_bar_code',width:80,align:'center'">商品条码</th>
<th data-options="field:'Goods_name',width:80,align:'center'">商品名称</th>
<th data-options="field:'Quality_content',width:80,align:'center'">包装含量</th>
<th data-options="field:'NumberOfUnits',editor:'numberbox',width:80,align:'center',styler:cellStyler">入库件数</th>
<th data-options="field:'Shipments_quantity',width:80,editor:'numberbox',align:'center',styler:cellStyler">入库细数</th>
<th data-options="field:'WuGouShuLiang',editor:'numberbox',width:80,align:'center',styler:cellStyler">物扣数量</th>
<th data-options="field:'Tax_inclusive_price',width:80,align:'center'">含税进价</th>
<th data-options="field:'Input_ratio',width:80,align:'center'">进项税率</th>
<th data-options="field:'Purchase_bid',width:80,align:'center'">采购进价</th>
<th data-options="field:'Art_No',width:80,align:'center'">货号</th>
<th data-options="field:'Format_model',width:80,align:'center'">规格型号</th>
<th data-options="field:'JiLiangDanWei',width:80,align:'center'">计量单位</th>
<th data-options="field:'Retail_unit_price',width:80,align:'center'">零售单价</th>
<th data-options="field:'MaiJia',width:80,hidden:true,align:'center'">买手</th>
<th data-options="field:'Vender_bar_code_deny',width:80,align:'center'">厂家条码否</th>
<th data-options="field:'Goods_abbreviation',width:80,align:'center'">商品简称</th>
<th data-options="field:'Plncode_PLN',width:80,align:'center'">PLN码</th>
<th data-options="field:'Goods_name',width:80,align:'center'">商品标记</th>
<th data-options="field:'Copy_record_deny',width:80,align:'center'">复制记录否</th>
<th data-options="field:'Contract_number',width:80,align:'center'">合同号</th>
<th data-options="field:'Manufacturer_name',width:80,align:'center'">生产厂家</th>
<th data-options="field:'Producing_area_name',width:80,align:'center'">产地</th>
<th data-options="field:'ShiYongDuiXiang',width:80,align:'center'">使用对象</th>
<th data-options="field:'Goods_colours',width:80,align:'center'">商品花色</th>
<th data-options="field:'Goods_rademark_name',width:80,align:'center'">商品商标</th>
<th data-options="field:'ShangPinFenLei',width:80,align:'center'">商品分类</th>
<th data-options="field:'BaoZhiQi',width:80,align:'center'">保质期</th>
<th data-options="field:'Output_ratio',width:80,align:'center'">销项税率</th>
<th data-options="field:'Count_scale',width:80,align:'center'">统计比例</th>
<th data-options="field:'ZhiLiangDengJi',width:80,align:'center'">质量等级</th>
<th data-options="field:'JiYingJiJie',width:80,align:'center'">经营季节</th>
<th data-options="field:'Permit_decimal_deny',width:80,align:'center'">允许小数否</th>
<th data-options="field:'ChanPinZhuangTai',width:80,align:'center'">产品状态</th>
<th data-options="field:'DengJiRen',width:80,align:'center'">登记人</th>
<th data-options="field:'Register_time',width:80,align:'center'">登记时间</th>
<th data-options="field:'ShenHeRen',width:80,align:'center'">审核人</th>
<th data-options="field:'Review_time',width:80,align:'center'">审核时间</th>
<th data-options="field:'GengXinRen',width:80,align:'center'">更新人</th>
<th data-options="field:'Update_Time',width:80,align:'center'">更新时间</th>
<th data-options="field:'Self_fix_goods_deny',width:80,align:'center'">自订货否</th>
<th data-options="field:'Mini_fix_goods_deny',width:80,align:'center'">最小订货数</th>
</tr>
</thead>
</table>
</div>
<table id="weibu" style="width: 715px; height: 35px">
<tr>
<td style="font-size: 15px; width: 60px">登记人</td>
<td style="width: 50px">
<div style="border-bottom: #000 1px solid; width: 180px;">
<input class="easyui-combobox" id="dengjiren" data-options="url:'/ShangPinJinChuangDan/SelectEmployee',valueField:'ID',textField:'MC'" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="font-size: 15px">登记时间</td>
<td style="width: 250px">
<div style="border-bottom: #000 1px solid; width: 180px;">
<input class="easyui-datetimebox" data-options="formatter:myformatter" id="datdengjishijian" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
</tr>
<tr>
<td style="font-size: 15px; width: 60px">审核人</td>
<td style="width: 50px">
<div style="border-bottom: #000 1px solid; width: 180px;">
<input class="easyui-combobox" id="Auditor" data-options="url:'/ShangPinJinChuangDan/SelectEmployee',valueField:'ID',textField:'MC'" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
<td style="font-size: 15px">审核时间</td>
<td>
<div style="border-bottom: #000 1px solid; width: 180px;">
<input class="easyui-datetimebox" data-options="formatter:myformatter" id="datshenheshijian" style="width: 180px; border: none; color: #0000FF; font-size: 17px;" />
</div>
</td>
</tr>
</table>
<button οnclick="OpenwYiShenHeWDDJC(); " id="TianJia">
<img src="../../Content/image/add.png" />添加</button>
<button οnclick="UpdateWDJinCangCH();">
<img src="../../Content/image/table_edit.png" />修改</button>
<button οnclick="DeleteWDJinCangCHDan();" id="ShanChu">
<img src="../../Content/image/delete.png" />删除</button>
<button id="BaoCun" οnclick="BaoCunWDJCChongHong();">
<img src="../../Content/image/disk.png" />保存</button>
<button οnclick="qingKong();" id="FanQi">
<img src="../../Content/image/01.png" />放弃</button>
<button οnclick="ShenHeWDJinCangChongHong();" id="ShenHe">
<img src="../../Content/image/ok.gif" />审核</button>
<button id="DaYin">
<img src="../../Content/image/2012081511202.png" />打印</button>
<button id="TuiChu" οnclick=" parent.jinCang();">
<img src="../../Content/image/2012080412301.png" />退出</button>
</div>
</div>
</body>
</html>
3. 对无订单进仓冲红的记录编号的操作
效果图:
3.1 实现该功能的界面代码
3.2 在JavaScript中的代码实现
3.3 实现该功能的控制器代码
#region 生成配货单据
public ActionResult SelectWuDingDanJinCangCangHongRecord_number()
{
//实例化DataTable接收对象_myWuDingDanJinCangChongHong的方法GetOddNumbers中数据返回的数据
DataTable dt = _myWuDingDanJinCangChongHong.GetOddNumbers(8);
DataTable dt2 = _myWuDingDanJinCangChongHong.GetDayMaxQuantity(17);//查询获取当前日最大单据数
string patchNumber = dt.Rows[0]["Prefixs"].ToString().Trim();//声明变量接收获取表dt中["Prefixs"]列单元格的值
string patchCount = dt2.Rows[0][0].ToString();//声明变量patchCount,dt2表中的总长度
//for循环并判断总的长度与dt.Rows[0]["Suffix_number"]作比较
for (int i = patchCount.Length; i < Convert.ToInt32(dt.Rows[0]["Suffix_number"].ToString().Trim()); i++)
{
patchCount = "0" + patchCount;//符合条件的要在patchCount前加“0”
}
string recordNumber = patchNumber + patchCount;//对自营无订单进仓冲红单记录编号的并接
return Json(recordNumber, JsonRequestBehavior.AllowGet);
}
#endregion
3.4 实现该功能逻辑层代码
#region 获取当前日最大单据
public DataTable GetDayMaxQuantity(int dayMaxQuantityId)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Day_max_quantity_id",SqlDbType.Int),
};
sql[0].Value = "GetDayMaxQuantity";
sql[1].Value = dayMaxQuantityId;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("Update_Day_Max_Count", sql);
return dt;
}
#endregion
#region 获取记录编号前缀
public DataTable GetOddNumbers(int intOddNumbersId)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Odd_numbers_id",SqlDbType.Int),
};
sql[0].Value = "GetOddNumbers";
sql[1].Value = intOddNumbersId;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("Update_Day_Max_Count", sql);
return dt;
}
#endregion
3.5 实现该功能存储过程
if(@NB='GetDayMaxCount') --获取日最大单数
begin
SELECT Day_max_count
FROM Day_max_quantity
where Day_max_quantity_id=@Day_max_quantity_id
end
if(@NB='GetOddNumbers') --获取记录编号/批次号前缀
begin
SELECT Odd_numbers_id,Suffix_number,(rtrim(Prefix)+CONVERT(varchar(12),GETDATE(),112))as Prefixs
FROM Odd_numbers
WHERE (Odd_numbers_id = @Odd_numbers_id)
end
4. 对“添加”按钮的操作
4.1 点击“添加”按钮将会弹出“选择已审核无订单进仓单”的窗口
界面效果图
图4.1
4.2 实现该功能的界面代码
4.3 在JavaScript中的代码实现
1.1 在JavaScript中的代码实现
//打开已审核无订单进仓单(选择已审核无订单进仓)
function OpenwYiShenHeWDDJC() {
//对记录编号的操作
$.getJSON("/ZiYingWuDingDanJinCangChongHong/SelectWuDingDanJinCangCangHongRecord_number", function (value) {
$("#txtWuDingDanCHJiLuBianMa").val(value);
});
//打开“选择已审核无订单进仓单”的窗口
$('#wXuanZeYiShenHeWDDJCDanXiAll').window('open');
//对“选择已审核无订单进仓单”窗口中DGV的数据查询
$.getJSON("/ZiYingWuDingDanJinCangChongHong/SelectYiShenHeWdjcChongHong", function (data) {
$('#tbXuanZeYiShenHeWDDJCDan').datagrid('loadData', data);
});
}
//模糊查询已审核无订单进仓单
function MohuSelectYiShenHeWdjcChongHong() {
$.getJSON("/ZiYingWuDingDanJinCangChongHong/MohuSelectYiShenHeWdjcChongHong?strBlur=" + $('#strBlur').val(), function (data) {
$('#tbXuanZeYiShenHeWDDJCDan').datagrid('loadData', data);
});
}
4.4 实现该功能的控制器操作
#region 查询已审核无订单进仓单信息(冲红单)
public ActionResult SelectYiShenHeWdjcChongHong()
{
DataTable dt = _myWuDingDanJinCangChongHong.SelectYiShenHeWdjcChongHong();=
List<Dictionary<string, object>> listReturn = ConvertHelper.DtToList(dt);
return Json(listReturn, JsonRequestBehavior.AllowGet);
}
#endregion
#region 模糊查询已审核无定进仓信息(冲红单)
public ActionResult MohuSelectYiShenHeWdjcChongHong(string strBlur)
{
DataTable dt = _myWuDingDanJinCangChongHong.MohuSelectYiShenHeWdjcChongHong(strBlur);
List<Dictionary<string, object>> listReturn = ConvertHelper.DtToList(dt);
return Json(listReturn, JsonRequestBehavior.AllowGet);
}
#endregion
4.5 实现该功能逻辑层的操作
#region 查询已审核无订单进仓单信息(冲红单)
public DataTable SelectYiShenHeWdjcChongHong()
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
};
sql[0].Value = "SelectYiShenHeWdjcChongHong";
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
#endregion
#region 模糊查询已审核无定进仓信息(冲红单)
public DataTable MohuSelectYiShenHeWdjcChongHong(string trBlur)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@strBlur", SqlDbType.Char),
};
sql[0].Value = "MohuSelectYiShenHeWdjcChongHong";
sql[1].Value = trBlur;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
#endregion
4.6 实现该功能的存储过程
--查询已审核无订单进仓单信息(冲红单)
if(@NB='SelectYiShenHeWdjcChongHong')
begin
SELECT Repertory_enter.Repertory_enter_id, Repertory_enter.Hava_indent_deny, Repertory_enter.Record_number, Repertory_enter.Agreement_id, Repertory_enter.Repertory_place_id,
Agreement.Contract_number, Department.Department_name, Repertory_enter.Review_deny, Department.Department_code, Department.Department_id, Repertory_place.Repertory_place_name,
Attribute_gather_detail.Attribute_gather_detail_name AS settlement, Repertory_enter.Affix_count, Repertory_enter.Original_number, Eemployee.Employee_name AS maijia,
Repertory_enter.Receiver_id, Eemployee_1.Employee_number AS Receivecoad, Eemployee_1.Employee_name AS ReceiverName, Enterprise_name.Chinese,
Repertory_place.Repertory_place_identifier, Repertory_enter.Registrant_id, CONVERT(varchar(20), Repertory_enter.Register_time, 120) AS Register_time,
Eemployee_2.Employee_number AS dengjirencoad, Eemployee_2.Employee_name AS dengjiren, Repertory_enter.Auditor_id, CONVERT(varchar(20), Repertory_enter.Review_time, 120)
AS Review_time, Eemployee_3.Employee_name AS Auditor, Attribute_gather_detail_1.Attribute_gather_detail_name AS jiesuanfangshi
FROM Repertory_enter INNER JOIN
Agreement ON Repertory_enter.Agreement_id = Agreement.Agreement_id INNER JOIN
Department ON Agreement.Purchase_unit_id = Department.Department_id INNER JOIN
Repertory_place ON Repertory_enter.Repertory_place_id = Repertory_place.Repertory_place_id INNER JOIN
Attribute_gather_detail ON Agreement.Settlement_pubid = Attribute_gather_detail.Attribute_gather_detail_id INNER JOIN
Eemployee ON Agreement.Purchasing_agent_id = Eemployee.Employee_id INNER JOIN
Eemployee AS Eemployee_1 ON Repertory_enter.Receiver_id = Eemployee_1.Employee_id INNER JOIN
Supply_units ON Agreement.Supply_units_id = Supply_units.Supply_units_id INNER JOIN
Enterprise_name ON Supply_units.Enterprise_name_id = Enterprise_name.Enterprise_name_id INNER JOIN
Eemployee AS Eemployee_2 ON Repertory_enter.Registrant_id = Eemployee_2.Employee_id INNER JOIN
Eemployee AS Eemployee_3 ON Repertory_enter.Auditor_id = Eemployee_3.Employee_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_1 ON Agreement.Settlement_pubid = Attribute_gather_detail_1.Attribute_gather_detail_id
where Repertory_enter.Review_deny='True'and Repertory_enter.Hava_indent_deny='false' and Repertory_enter.chongHongFou='false'
end
--模糊查询已审核无定进仓信息(冲红单)
if(@NB='MohuSelectYiShenHeWdjcChongHong')
begin
SELECT Repertory_enter.Repertory_enter_id, Repertory_enter.Hava_indent_deny, Repertory_enter.Record_number, Repertory_enter.Agreement_id, Repertory_enter.Repertory_place_id,
Agreement.Contract_number, Department.Department_name, Repertory_enter.Review_deny, Department.Department_code, Department.Department_id, Repertory_place.Repertory_place_name,
Attribute_gather_detail.Attribute_gather_detail_name AS settlement, Repertory_enter.Affix_count, Repertory_enter.Original_number, Eemployee.Employee_name AS maijia,
Repertory_enter.Receiver_id, Eemployee_1.Employee_number AS Receivecoad, Eemployee_1.Employee_name AS ReceiverName, Enterprise_name.Chinese,
Repertory_place.Repertory_place_identifier, Repertory_enter.Registrant_id, CONVERT(varchar(20), Repertory_enter.Register_time, 120) AS Register_time,
Eemployee_2.Employee_number AS dengjirencoad, Eemployee_2.Employee_name AS dengjiren, Repertory_enter.Auditor_id, CONVERT(varchar(20), Repertory_enter.Review_time, 120)
AS Review_time, Eemployee_3.Employee_name AS Auditor, Attribute_gather_detail_1.Attribute_gather_detail_name AS jiesuanfangshi
FROM Repertory_enter INNER JOIN
Agreement ON Repertory_enter.Agreement_id = Agreement.Agreement_id INNER JOIN
Department ON Agreement.Purchase_unit_id = Department.Department_id INNER JOIN
Repertory_place ON Repertory_enter.Repertory_place_id = Repertory_place.Repertory_place_id INNER JOIN
Attribute_gather_detail ON Agreement.Settlement_pubid = Attribute_gather_detail.Attribute_gather_detail_id INNER JOIN
Eemployee ON Agreement.Purchasing_agent_id = Eemployee.Employee_id INNER JOIN
Eemployee AS Eemployee_1 ON Repertory_enter.Receiver_id = Eemployee_1.Employee_id INNER JOIN
Supply_units ON Agreement.Supply_units_id = Supply_units.Supply_units_id INNER JOIN
Enterprise_name ON Supply_units.Enterprise_name_id = Enterprise_name.Enterprise_name_id INNER JOIN
Eemployee AS Eemployee_2 ON Repertory_enter.Registrant_id = Eemployee_2.Employee_id INNER JOIN
Eemployee AS Eemployee_3 ON Repertory_enter.Auditor_id = Eemployee_3.Employee_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_1 ON Agreement.Settlement_pubid = Attribute_gather_detail_1.Attribute_gather_detail_id
where Repertory_enter.Review_deny='True'and Repertory_enter.Hava_indent_deny='false'
and Repertory_enter.Record_number like '%'+RTRIM(@strBlur)+'%'
end
5 对自营无订单进仓冲红单录入的功能所以操作代码
JavaScript中代码
//单击无定单进仓冲红(绑定冲红单)
var repertoryEnterid = 0;
function onClickWDJCCH(rowIndex, rowData) {
$('#wXuanZeYiShenHeWDDJCDanXiAll').window('close');
$('#bumendaima').val(rowData.Department_code);
$('#txtBuMenMC').val(rowData.Department_name);
$('#AgreementCode').val(rowData.Contract_number);
$('#RepertoryPlaceIdentifier').combobox('setValue', rowData.Repertory_place_identifier);
$('#kucunMC').val(rowData.Repertory_place_name);
$('#jiesuanfangshi').val(rowData.jiesuanfangshi);
$('#txtFuJianZhangShu').val(rowData.Affix_count);
$('#txtTongJinCang').val(rowData.Record_number);
$('#maijia').val(rowData.maijia);
$('#shouhuorenbianhao').combobox('setValue', rowData.Receivecoad);
$('#ReceiverName').val(rowData.ReceiverName);
$('#SupplyUnits').val(rowData.Chinese);
repertoryEnterid = rowData.Repertory_enter_id;
BingDingWDJCCHMingXi(rowData.Repertory_enter_id);
}
控制器代码:
//绑定冲红单根据(无定单进仓id)
var repertoryEnterDetailid = 0;
function BingDingWDJCCHMingXi(repertoryEnterid) {
$.getJSON("/ZiYingWuDingDanJinCangChongHong/BingDingWdjcchMingXi?repertoryEnterid=" + repertoryEnterid, function (data) {
$('#tb进窗信息').datagrid('loadData', data);
repertoryEnterDetailid = data[0].Repertory_enter_detail_id;
});
}
#region 绑定无订单进仓冲红明细
public ActionResult BingDingWdjcchMingXi(int repertoryEnterid)
{
DataTable dt = _myWuDingDanJinCangChongHong.BingDingWdjcchMingXi(repertoryEnterid);
dt.Columns.Add("YiRuKuShu", typeof(int));
dt.Columns.Add("HaiYaoRuKuShu", typeof(int));
//for循环遍历,对DGV中数据的处理,并使其数据为原来无订单进仓单的数据的相反数
for (int i = 0; i < dt.Rows.Count; i++)
{
int giveawayQuantity = Convert.ToInt32(dt.Rows[i]["WuGouShuLiang"]);
int repertoryEnterPackages = Convert.ToInt32(dt.Rows[i]["NumberOfUnits"]);
int repertoryEnterQuantity = Convert.ToInt32(dt.Rows[i]["Shipments_quantity"]);
int rpdetailid = Convert.ToInt32(dt.Rows[i]["Repertory_enter_detail_id"]);
var zongyaoRuKuShu = -(Convert.ToInt32(dt.Rows[i]["ZongYaoRuKuShu"]));
DataTable k = _myWuDingDanJinCangChongHong.SelectYiRuKuShu(rpdetailid);
int yirukushu = Convert.ToInt32(k.Rows[0]["yirukushu"]);
dt.Rows[i]["YiRuKuShu"] = yirukushu;
dt.Rows[i]["HaiYaoRuKuShu"] = zongyaoRuKuShu - yirukushu;
dt.Rows[i]["NumberOfUnits"] = -repertoryEnterPackages;
dt.Rows[i]["Shipments_quantity"] = -repertoryEnterQuantity;
dt.Rows[i]["WuGouShuLiang"] = -giveawayQuantity;
}
List<Dictionary<string, object>> listReturn = ConvertHelper.DtToList(dt);
return Json(listReturn, JsonRequestBehavior.AllowGet);
}
逻辑层:
#region 绑定无订单进仓冲红明细
public DataTable BingDingWdjcchMingXi(int repertoryEnterId)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
};
sql[0].Value = "BingDingWdjcchMingXi";
sql[1].Value = repertoryEnterId;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
#endregion
存储过程:
--绑定无订单进仓冲红明细
if(@NB='BingDingWdjcchMingXi')
begin
SELECT Goods.Goods_code, Goods.Goods_bar_code, Goods.Goods_name, Goods.Art_No, Goods.Format_model, Attribute_gather_detail.Attribute_gather_detail_name AS JiLiangDanWei,
Goods.Goods_abbreviation, Goods.Plncode_PLN, Goods.Agreement_id, Attribute_gather_detail_1.Attribute_gather_detail_name AS ShiYongDuiXiang, Goods.Goods_colours, Goods.Input_ratio,
Goods.Output_ratio, Goods.Count_scale, Goods.Quality_content, Attribute_gather_detail_2.Attribute_gather_detail_name AS ZhiLiangDengJi, Manage_season.Manage_season_name AS JiYingJiJie,
Goods.Permit_decimal_deny, Goods.Copy_record_deny, Goods.Vender_bar_code_deny, Attribute_gather_detail_3.Attribute_gather_detail_name AS ShangPinBiaoJi,
Manufacturer.Manufacturer_name, Goods_producing_area.Producing_area_name, Attribute_gather_detail_4.Attribute_gather_detail_name AS ChanPinZhuangTai, CONVERT(varchar(20),
Goods.Register_time, 120) AS Register_time, CONVERT(varchar(20), Goods.Review_time, 120) AS Review_time, CONVERT(varchar(20), Goods.Update_Time, 120) AS Update_Time,
Goods.Retail_unit_price, Goods.Purchase_bid, Goods.Self_fix_goods_deny, Goods.Mini_fix_goods_deny, Attribute_gather_detail_5.Attribute_gather_detail_name AS ShangPinFenLei,
Agreement.Contract_number, Goods_rademark.Goods_rademark_name, Attribute_gather_detail_6.Attribute_gather_detail_name AS BaoZhiQi, Repertory_enter_detail.Repertory_enter_id,
Repertory_enter_detail.Goods_id, Repertory_enter_detail.Repertory_enter_packages AS NumberOfUnits, Repertory_enter_detail.Repertory_enter_quantity AS Shipments_quantity,
Repertory_enter_detail.Giveaway_quantity AS WuGouShuLiang, Goods.Purchase_bid * (CAST(Goods.Input_ratio AS decimal(18, 5)) / 100 + 1) AS Tax_inclusive_price, Goods.Purchase_bid AS Expr1,
Eemployee_1.Employee_name AS DengJiRen, Eemployee_2.Employee_name AS GengXinRen, Eemployee.Employee_name AS ShenHeRen, Repertory_enter_detail.Repertory_enter_detail_id,
(Repertory_enter_detail.Repertory_enter_packages *(cast(Goods.Quality_content AS decimal(18, 5)))+Repertory_enter_detail.Giveaway_quantity) AS ZongYaoRuKuShu
FROM Goods INNER JOIN
Attribute_gather_detail ON Goods.Unit_of_measurement_pubid = Attribute_gather_detail.Attribute_gather_detail_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_1 ON Goods.Use_target_pubid = Attribute_gather_detail_1.Attribute_gather_detail_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_2 ON Goods.Quality_grade_pubid = Attribute_gather_detail_2.Attribute_gather_detail_id INNER JOIN
Manage_season ON Goods.Manage_season_id = Manage_season.Manage_season_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_3 ON Goods.Goods_tab_pubid = Attribute_gather_detail_3.Attribute_gather_detail_id INNER JOIN
Manufacturer ON Goods.Manufacturer_id = Manufacturer.Manufacturer_id INNER JOIN
Goods_producing_area ON Goods.Producing_area_id = Goods_producing_area.Producing_area_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_4 ON Goods.Product_status_pubid = Attribute_gather_detail_4.Attribute_gather_detail_id INNER JOIN
Eemployee AS Eemployee_1 ON Goods.Registrant_id = Eemployee_1.Employee_id INNER JOIN
Eemployee ON Goods.Auditor_id = Eemployee.Employee_id INNER JOIN
Eemployee AS Eemployee_2 ON Goods.Update_person_id = Eemployee_2.Employee_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_5 ON Goods.Goods_classify_pubid = Attribute_gather_detail_5.Attribute_gather_detail_id INNER JOIN
Agreement ON Goods.Agreement_id = Agreement.Agreement_id INNER JOIN
Goods_rademark ON Goods.Goods_rademark_id = Goods_rademark.Goods_rademark_id INNER JOIN
Attribute_gather_detail AS Attribute_gather_detail_6 ON Goods.Quality_guarantee_period_pubid = Attribute_gather_detail_6.Attribute_gather_detail_id INNER JOIN
Repertory_enter_detail ON Goods.Goods_id = Repertory_enter_detail.Goods_id
where Repertory_enter_detail.Repertory_enter_id=@Repertory_enter_id AND (Repertory_enter_detail.Repertory_enter_detail_Farid = 0)
end
6.对“保存”按钮的功能的操作代码
在JavaScript中的代码:
//新增无订单进仓冲红
function BaoCunWDJCChongHong() {
ui.confirm('是否新增???', function (k) {
if (k) {
if ($('#shouhuorenbianhao').combobox('getValue') == "" || $('#dengjiren').combobox('getValue') == "" ||
$('#RepertoryPlaceIdentifier').combobox('getValue') == "" || $('#txtJiLuBianMa').val() == "" ||
$('#datdengjishijian').datetimebox('getValue') == "") {
ui.error("数据不完整,新增失败!", 1000, false);
return false;
}
//新增冲红单
$.getJSON("/ZiYingWuDingDanJinCangChongHong/Insert_Offsert?" +
"repertoryEnterId=" + repertoryEnterid + "&" +
"recordNumber=" + $('#txtWuDingDanCHJiLuBianMa').val() + "&" +
"registrantId=" + $('#dengjiren').combobox('getValue') + "&" +
"registerTime=" + $('#datdengjishijian').datetimebox('getValue'),
function (data) {
if (data > 0) {
$("#tb进窗信息").datagrid("endEdit", $('#tb进窗信息').datagrid('getRowIndex', $('#tb进窗信息').datagrid('getSelected')));
var dataMingXi = $('#tb进窗信息').datagrid('getRows');
for (var i = 0; i < dataMingXi.length; i++) {
//新增新进仓明细
$.getJSON("/ZiYingWuDingDanJinCangChongHong/Insert_NewRepertoryEnterDetail?" +
"repertoryEnterId=" + repertoryEnterid + '&' +
"goodsId=" + dataMingXi[i].Goods_id + '&' +
"repertoryEnterQuantity=" + dataMingXi[i].Shipments_quantity + '&' +
"repertoryEnterPackages=" + dataMingXi[i].NumberOfUnits + "&" +
"giveawayQuantity=" + dataMingXi[i].WuGouShuLiang);
}
ui.alert('新增进仓冲红单保存成功!!!', 1000, false);
QingChu();
$('#Auditor').combobox({ disabled: false });
$('#datshenheshijian').datetimebox({ disabled: false });
} else {
ui.alert('新增进仓冲红单保存失败!!!', 1000, false);
}
});
}
});
}
控制代码:
#region 保存新增
//新增新进仓单明细(进仓冲红明细)
public void Insert_NewRepertoryEnterDetail(string repertoryEnterId, string goodsId,
string repertoryEnterQuantity, string repertoryEnterPackages,
string giveawayQuantity)
{
_myWuDingDanJinCangChongHong.Insert_NewRepertoryEnterDetail(Convert.ToInt32(repertoryEnterId),
Convert.ToInt32(goodsId),
Convert.ToDecimal(repertoryEnterQuantity),
Convert.ToDecimal(repertoryEnterPackages),
Convert.ToDecimal(giveawayQuantity));
}
//新增冲红单
public int Insert_Offsert(string repertoryEnterId, string recordNumber,
string registrantId, string registerTime)
{
DataTable dt = _myWuDingDanJinCangChongHong.Insert_Offsert(
Convert.ToInt32(repertoryEnterId),
recordNumber,
Convert.ToInt32(registrantId),
Convert.ToDateTime(registerTime));
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
#endregion
逻辑层代码:
#region 保存新增
//新增新进仓单明细(进仓冲红明细)
public int Insert_NewRepertoryEnterDetail(int repertoryEnterId, int goodsId,
decimal repertoryEnterQuantity, decimal repertoryEnterPackages,
decimal giveawayQuantity)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
new SqlParameter("@Goods_id", SqlDbType.Int),
new SqlParameter("@Repertory_enter_quantity", SqlDbType.Decimal),
new SqlParameter("@Repertory_enter_packages", SqlDbType.Decimal),
new SqlParameter("@Giveaway_quantity", SqlDbType.Decimal),
};
sql[0].Value = "Insert_NewRepertoryEnterDetail";
sql[1].Value = repertoryEnterId;
sql[2].Value = goodsId;
sql[3].Value = repertoryEnterQuantity;
sql[4].Value = repertoryEnterPackages;
sql[5].Value = giveawayQuantity;
int dt = _myDalMethod.DAL_OPTableDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
//新增冲红单
public DataTable Insert_Offsert(int repertoryEnterId,
string recordNumber, int registrantId, DateTime registerTime)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
new SqlParameter("@Record_number", SqlDbType.Char),
new SqlParameter("@Registrant_id", SqlDbType.Int),
new SqlParameter("@Register_time", SqlDbType.DateTime),
};
sql[0].Value = "Insert_Offsert";
sql[1].Value = repertoryEnterId;
sql[2].Value = recordNumber;
sql[3].Value = registrantId;
sql[4].Value = registerTime;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
#endregion
#region 保存新增
//新增新进仓单明细(进仓冲红明细)
public int Insert_NewRepertoryEnterDetail(int repertoryEnterId, int goodsId,
decimal repertoryEnterQuantity, decimal repertoryEnterPackages,
decimal giveawayQuantity)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
new SqlParameter("@Goods_id", SqlDbType.Int),
new SqlParameter("@Repertory_enter_quantity", SqlDbType.Decimal),
new SqlParameter("@Repertory_enter_packages", SqlDbType.Decimal),
new SqlParameter("@Giveaway_quantity", SqlDbType.Decimal),
};
sql[0].Value = "Insert_NewRepertoryEnterDetail";
sql[1].Value = repertoryEnterId;
sql[2].Value = goodsId;
sql[3].Value = repertoryEnterQuantity;
sql[4].Value = repertoryEnterPackages;
sql[5].Value = giveawayQuantity;
int dt = _myDalMethod.DAL_OPTableDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
//新增冲红单
public DataTable Insert_Offsert(int repertoryEnterId,
string recordNumber, int registrantId, DateTime registerTime)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
new SqlParameter("@Record_number", SqlDbType.Char),
new SqlParameter("@Registrant_id", SqlDbType.Int),
new SqlParameter("@Register_time", SqlDbType.DateTime),
};
sql[0].Value = "Insert_Offsert";
sql[1].Value = repertoryEnterId;
sql[2].Value = recordNumber;
sql[3].Value = registrantId;
sql[4].Value = registerTime;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
#endregion
存储过程:
--新增冲红单
if(@NB='Insert_Offsert')
begin
begin tran
INSERT INTO Offset
(Repertory_enter_id,Record_number,Registrant_id, Register_time,Review_deny)
VALUES (@Repertory_enter_id,@Record_number,@Registrant_id,@Register_time,'false')
select @@IDENTITY
UPDATE Day_max_quantity
SET Day_max_count = Day_max_count + 1
WHERE (Day_max_quantity_id = 20)
commit tran
end
--新增新进仓单明细(进仓冲红明细)
if(@NB='Insert_NewRepertoryEnterDetail')
begin
INSERT INTO Repertory_enter_detail
(Repertory_enter_detail_Farid,Repertory_enter_id, Goods_id, Repertory_enter_packages,
Repertory_enter_quantity, Giveaway_quantity,ChongHong_deny)
VALUES (0,@Repertory_enter_id,@Goods_id,@Repertory_enter_packages,@Repertory_enter_quantity,@Giveaway_quantity,'true')
end
7.对“修改”按钮的操作,所以功能的代码实现
JavaScript中代码:
//修改无订单进仓冲红
function UpdateWDJinCangCH() {
if (offsetId > 0) {
$.getJSON("/ZiYingWuDingDanJinCangChongHong/UpdateWdJinCangChongHong?offsetId=" + offsetId + "&" +
"repertoryEnterId=" + repertoryEnterId + "&" +
"registrantId=" + $('#dengjiren').combobox('getValue') + "&" +
"datdengjishijian=" + $('#datdengjishijian').datetimebox('getValue'),
function (data) {
if (data > 0) {
ui.alert('修改无定进仓冲红单成功!!!', 1000, false);
QingChu();
}
});
}
}
控制器代码:
#region 修改进仓冲红单
public int UpdateWdJinCangChongHong(string offsetId, string repertoryEnterId,
string registrantId, string datdengjishijian)
{
int dt = _myWuDingDanJinCangChongHong.UpdateWdJinCangChongHong(
Convert.ToInt32(offsetId),
Convert.ToInt32(repertoryEnterId),
Convert.ToInt32(registrantId),
Convert.ToDateTime(datdengjishijian));
return dt;
}
#endregion
逻辑层代码:
#region 修改进仓冲红单
public int UpdateWdJinCangChongHong(int offsetId, int repertoryEnterId, int registrantId, DateTime registerTime)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Offset_id", SqlDbType.Int),
new SqlParameter("@Repertory_enter_id", SqlDbType.Int),
new SqlParameter("@Registrant_id", SqlDbType.Int),
new SqlParameter("@Register_time", SqlDbType.DateTime),
};
sql[0].Value = "UpdateWdJinCangChongHong";
sql[1].Value = offsetId;
sql[2].Value = repertoryEnterId;
sql[3].Value = registrantId;
sql[4].Value = registerTime;
return _myDalMethod.DAL_OPTableDB_Par("NOOrderFormOffsetEntry", sql);
}
#endregion
存储过程:
--修改无订单进仓冲红
if(@NB='UpdateWdJinCangChongHong')
begin
UPDATE Offset
SET Repertory_enter_id =@Repertory_enter_id, Registrant_id =@Registrant_id, Register_time =@Register_time
where Offset.Offset_id=@Offset_id
end
8.对“放弃”按钮的功能操作
//清空
function qingKong() {
$('#txtWuDingDanJiLuBianMa').val('');
$('#bumendaima').val('');
$('#txtBuMenMC').val('');
$('#AgreementCode').val('');
$('#RepertoryPlaceIdentifier').combobox('clear');
$('#kucunMC').val('');
$('#jiesuanfangshi').val('');
$('#txtFuJianZhangShu').val('');
$('#txtTongJinCang').val('');
$('#maijia').val('');
$('#shouhuorenbianhao').combobox('clear');
$('#ReceiverName').val('');
$('#SupplyUnits').val('');
$('#tb进窗信息').datagrid('loadData', { total: 0, rows: [] });
$('#dengjiren').combobox('clear');
$('#datdengjishijian').datetimebox('clear');
$('#Auditor').combobox('clear');
$('#datshenheshijian').datetimebox('clear');
parent.document.getElementById("labTips").innerHTML = "";
}
8.对“审核”按钮的功能操作代码
在JavaScript中:
//审核无定单进仓冲红单
function ShenHeWDJinCangChongHong() {
var auditor = $('#Auditor').combobox('getValue');
var shenheshijian = $('#datshenheshijian').datetimebox('getValue');
var jCchMingXi = $('#tb进窗信息').datagrid('getRows');
var goodsid = 0;
for (var i = 0; i < jCchMingXi.length; i++) {
goodsid += jCchMingXi[i].Goods_id + ",";
}
$.getJSON("/ZiYingWuDingDanJinCangChongHong/ShenHeWdJinCangChongHong?repertoryPlaceId=" + repertoryPlaceId + "&" +
"goodsid=" + goodsid + "&" +
"offsetId=" + offsetId + "&" +
"auditor=" + auditor + "&" +
"shenheshijian=" + shenheshijian, function (data) {
var tip = "";
if (data == "审核成功!!!") {
ui.alert('审核成功!', 1000, false);
} else {
ui.error('审核失败!详情请看右栏...', 1000, false);
var strs1 = data.split('+');
for (var j = 0; j < strs1.length; j++) {
tip += "<li style='font-size:15px;margin-left:1px;'>" + strs1[j] + "</li>";
}
}
if (tip != "") {
parent.document.getElementById("labTips").innerHTML = "<ol >" + tip + "</ol>";
}
});
}
控制器代码:
#region 审核进仓冲红单
public ActionResult ShenHeWdJinCangChongHong(int repertoryPlaceId, string goodsid, int offsetId, int auditor, DateTime shenheshijian)
{
string[] goodIds = goodsid.Split(',');
string msg = "";
var stocksid = new List<int>();
var chongHongShuList = new List<int>();
for (int i = 0; i < goodIds.Length - 1; i++)
{
DataTable dt = _myWuDingDanJinCangChongHong.SelectStockQuantity(repertoryPlaceId, Convert.ToInt32(goodIds[i]));
int stockQuantity = Convert.ToInt32(dt.Rows[0]["Stock_quantity"]);
int stockId = Convert.ToInt32(dt.Rows[0]["Stock_id"]);
DataTable dt1 = _myWuDingDanJinCangChongHong.SelectJcchMingXi(offsetId);
int repertoryEnterQuantity = Convert.ToInt32(dt1.Rows[0]["Repertory_enter_quantity"]);
int giveawayQuantity = Convert.ToInt32(dt1.Rows[0]["Giveaway_quantity"]);
var zongChongHongShu = repertoryEnterQuantity + giveawayQuantity;
if (stockQuantity > -zongChongHongShu)
{
stocksid.Add(stockId);
chongHongShuList.Add(zongChongHongShu);
}
else
{
msg += "库存不足!";
}
}
if (msg == "")
{
for (int i = 0; i < stocksid.Count; i++)
{
_myWuDingDanJinCangChongHong.UpateStockQuary(stocksid[i], chongHongShuList[i]);
}
_myWuDingDanJinCangChongHong.Insert_JCCHAuditorAndReview_time(auditor, shenheshijian);
_myWuDingDanJinCangChongHong.UpateJcchdShenHeFou(offsetId);
msg = "审核成功!!!";
}
return Json(msg, JsonRequestBehavior.AllowGet);
}
#endregion
逻辑层代码:
#region 审核进仓冲红单
//(1)查询库存数根据仓库id,商品id
public DataTable SelectStockQuantity(int repertoryPlaceId, int goodsid)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Repertory_place_id", SqlDbType.Int),
new SqlParameter("@Goods_id", SqlDbType.Int),
};
sql[0].Value = "SelectStockQuantity";
sql[1].Value = repertoryPlaceId;
sql[2].Value = goodsid;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
//(2)查询进仓明细(每条单的总冲红数)
public DataTable SelectJcchMingXi(int offsetId)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Offset_id", SqlDbType.Int),
};
sql[0].Value = "SelectJcchMingXi";
sql[1].Value = offsetId;
DataTable dt = _myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
return dt;
}
//(3)修改库存数量
public void UpateStockQuary(int stockId, Decimal stockQuantity)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Stock_id", SqlDbType.Int),
new SqlParameter("@Stock_quantity", SqlDbType.Decimal),
};
sql[0].Value = "UpateStockQuary";
sql[1].Value = stockId;
sql[2].Value = stockQuantity;
_myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
}
//(4)修改进仓冲红单的审核否
public void UpateJcchdShenHeFou(int offsetId)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Offset_id",SqlDbType.Int),
};
sql[0].Value = "UpateJCCHDShenHeFou";
sql[1].Value = offsetId;
_myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
}
//(5)新增进仓冲红的审核人和审核时间
public void Insert_JCCHAuditorAndReview_time(int auditor, DateTime shenheshijian)
{
SqlParameter[] sql =
{
new SqlParameter("@NB", SqlDbType.Char),
new SqlParameter("@Auditor_id", SqlDbType.Int),
new SqlParameter("@Review_time", SqlDbType.DateTime),
};
sql[0].Value = "Insert_JCCHAuditorAndReview_time";
sql[1].Value = auditor;
sql[2].Value = shenheshijian;
_myDalMethod.DAL_SelectDB_Par("NOOrderFormOffsetEntry", sql);
}
#endregion
存储过程:
--审核无定单进仓冲红
--()查询库存数根据仓库id和商品id
if(@NB='SelectStockQuantity')
begin
SELECT isnull(Stock_quantity,0) as Stock_quantity,Stock_id
FROM Stock
where Repertory_place_id=@Repertory_place_id and Goods_id=@Goods_id
end
--(2)查询无定进仓明细(每条单的总冲红数根据冲红id
if(@NB='SelectJcchMingXi')
begin
SELECT Repertory_enter_detail.Repertory_enter_quantity, Repertory_enter_detail.Giveaway_quantity, Repertory_enter_detail.Repertory_enter_packages, Offset.Offset_id, Offset.Repertory_enter_id
FROM Repertory_enter_detail INNER JOIN
Offset ON Repertory_enter_detail.Repertory_enter_id = Offset.Repertory_enter_id
where Offset.Offset_id=@Offset_id
end
--(3)修改库存数量
if(@NB='UpateStockQuary')
begin
UPDATE Stock
SET Stock_quantity =Stock_quantity-@Stock_quantity
where Stock_id=@Stock_id
end
--(4)修改进仓冲红单的审核否
if(@NB='UpateJcchdShenHeFou')
begin
begin tran
UPDATE Offset
SET Review_deny = 'true'
where Offset_id=@Offset_id
UPDATE Repertory_enter
SET YouXiaoFou ='false'
where Repertory_enter_id=(SELECT Repertory_enter_id
FROM Offset where Offset_id=@Offset_id)
UPDATE Repertory_enter
SET ChongHongFou ='true'
where Repertory_enter_id=(SELECT Repertory_enter_id
FROM Offset
WHERE (Offset_id = @Offset_id))
commit tran
end
--(5)新增进仓冲红的审核人和审核时间
if(@NB='Insert_JCCHAuditorAndReview_time')
begin
INSERT INTO Offset
(Auditor_id, Review_time)
VALUES (@Auditor_id,@Review_time)
end
仅供初学者使用,禁止商业用途。
每件事情都必须有一个期限,否则,大多数人都会有多少时间就花掉多少时间。
经验不是发生在一个人身上的事件,而是一个人如何看待发生在他身上的事。