前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddInspection.aspx.cs" Inherits="StockManager_PurchasingInspection_AddInspection" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>添加采购检验单</title>
<base target="_self" />
<link href="../../css/form.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../js/childWindow.js"></script>
<script type="text/javascript" src="../../js/ShowCalendar.js"></script>
<script type="text/javascript" src="../../js/Ajax.js"></script>
<script language="javascript" type="text/javascript">
function ReEnter(a)
{
openWindow("SelectIn.aspx",700,600)
a.style.border="#cdcdcd 1px solid";
}
function add()
{
// var DataList1 = document.getElementById("DataList1");
// if(DataList1.items.length<1)
// {
// alert("没有要检测的项目!");
// return false;
// }
if($("Select1").value=="请选择")
{
alert("请选择检验员!");
$("Select1").style.border="red 1px solid";
return false;}
var person = document.getElementById("Select1").value;//采购检验员
var date = document.getElementById("startDate").value;//检验日期
if(date=="")
{alert("请输入检验日期!"); return false;}
var Input=document.getElementsByTagName("input");
var str="";
var ArrayList =new Array();
var j = Input.length;
debugger;
for(var i=0;i<j;i++)
{
if(Input[i].type=="text"&&Input[i].name=="Text1")
{
var strId =Input[i].value; //
var WpBm = document.getElementById("TextCode_"+strId).value;//物料编码
var strRKNum = document.getElementById("Text1_"+strId).value;//允许入库数量
var strDHSL = document.getElementById("TextDHSL_"+strId).value;//到货数量
if(strRKNum=="")
{alert("请输入入库数量!"); return false;}
if(parseInt(strRKNum)>parseInt(strDHSL))
{alert("允许入库数量不能大于到货数量!"); return false;}
var strMain = strId + "," + WpBm +","+ strRKNum ;
var HasDetail = false;
for(var k=0;k<j;k++)
{
//HasDetail = false;
if(Input[k].type=="text"&&Input[k].id=="TextDetail_"+strId)
{
HasDetail = true;
var strCheck = Input[k].value;
var strDetail = strId + strCheck;
var strCJ = document.getElementById("TextCJ_"+strDetail).value;
var strHG = document.getElementById("TextHG_"+strDetail).value;
var strZS = document.getElementById("TextZS_"+strDetail).value;
var strBZ = document.getElementById("TextBZ_"+strDetail).value;
if(strCJ=="")
{alert("请输入抽检数量!"); return false;}
if(strHG=="")
{alert("请输入合格数量!"); return false;}
if(parseInt(strHG)>parseInt(strCJ))
{alert("合格数量不能大于抽检数量!"); return false;}
if(str=="")
{
str = strMain + "," + strCJ + "," + strHG + "," + strZS + "," + strBZ + "," + strCheck;
}
else
{
str+="|"+strMain + "," + strCJ + "," + strHG + "," + strZS + "," + strBZ + "," + strCheck;
}
//str+= strMain + "," + strCJ + "," + strHG + "," + strZS + "," + strBZ + "," + strCheck+"|";
}
}
if(HasDetail == false)
{
if(str=="")
{
str = strMain;
}
else
{
str+="|"+strMain;
}
}
}
// if(str=="")
// {
// strMain+="|"+strMain;
// }
}
document.getElementById("HdMessage").value = str;
// if(str=="")
// {
// document.getElementById("HdMessage").value = strMain;
// }
// else
// {
// document.getElementById("HdMessage").value = str;
// }
// sendRequest("GenerateInspection.aspx?danhao="+danhao
// +"&person="+ person
// +"&i_dh=" +i_dh
// +"&date=" +date
// +"&UserCode="+UserCode
//
// +"&M="+escape(str),"AddStock");
}
</script>
</head>
<body οnlοad="DivScroll(true);RowClassChange();">
<form id="form1" runat="server">
<div id="main">
<div id="nei">
<div id="top">
添加采购检验单</div>
<div id="top2">
采购检验单号:<input type="text" name="TxtCGJYD" class="a1" id="TxtCGJYD" runat="server" />
采购收料单号:<input type="text" name="TxtJYD" class="a1" id="TxtJYD" runat="server" readonly="readOnly"
style="background-color: transparent; border-top-style: none; border-right-style: none;
border-left-style: none; border-bottom-style: none; width: 100px;" />
收料仓库:<input type="text" name="TxtSLCK" class="a1" id="TxtSLCK" runat="server" readonly="readOnly"
style="background-color: transparent; border-top-style: none; border-right-style: none;
border-left-style: none; border-bottom-style: none; width: 100px;" />
检验员:<input type="text" name="txtInspection" class="a1" id="Select1" runat="server"
value="请选择" readonly="readOnly" style="background-color: #EFFDFC" οnfοcus="ReEnter(this)" /><input
id="Button3" runat="server" class="a2" οnclick="ReEnter(this)" type="button"
value="..." />
检验日期:<input type="text" name="startDate" class="a1" id="startDate" runat="server"
οnfοcus="ShowCalendar('startDate');" readonly="readOnly" style="background-color: #EFFDFC" />
<input type="submit" name="Submit" value="选择采购收料单" class="a2" id="Submit3" runat="server"
οnclick="javascript:openWindow('SelectInspection.aspx',600,600);" />
<input type="button" name="Submit" value="历史记录" class="a2" id="Submit1" runat="server"
οnclick="javascript:window.location.replace('Inspection.aspx');" /></div>
<br />
<div id="center">
<asp:Repeater ID="DataList1" runat="server" OnItemDataBound="DataList1_ItemDataBound">
<HeaderTemplate>
<table>
<tr>
<td class="HeaderTemplate">
上级BOM编码</td>
<td class="HeaderTemplate">
BOM编码</td>
<td class="HeaderTemplate">
名称</td>
<td class="HeaderTemplate">
规格</td>
<td class="HeaderTemplate">
图纸号</td>
<td class="HeaderTemplate">
型号</td>
<td class="HeaderTemplate">
材质</td>
<td class="HeaderTemplate">
到货数量</td>
<td class="HeaderTemplate">
允许入库数量</td>
<td class="HeaderTemplate">
单价</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td class="ItemTemplate ">
<%# Eval("TOPBOMSN")%>
</td>
<td class="ItemTemplate ">
<%# Eval("BOMSN")%>
</td>
<td class="ItemTemplate ">
<%# Eval("BomName")%>
</td>
<td class="ItemTemplate ">
<%# Eval("Size")%>
</td>
<td class="ItemTemplate ">
<%# Eval("ImageNo")%>
</td>
<td class="ItemTemplate ">
<%# Eval("Model")%>
</td>
<td class="ItemTemplate ">
<%# Eval("Qulity")%>
</td>
<td class="ItemTemplate ">
<input id="TextDHSL_<%#Eval("MID")%>" value=" <%# Eval("i_arrival_num")%>" style="width: 50px;
background-color: transparent; border-top-style: none; border-right-style: none;
border-left-style: none; border-bottom-style: none;" type="text" readonly="readonly" />
</td>
<td class="ItemTemplate ">
<input id="Text1_<%#Eval("MID")%>" value=" <%# Eval("i_arrival_num")%>" style="width: 50px"
οnkeyup="value=value.replace(/[^/d]/g,'')" type="text" />
</td>
<td class="ItemTemplate ">
<%# Eval("m_price")%>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("Check_Buy_ClassSN")%>' />
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%#Eval("i_arrival_num")%>' />
<asp:HiddenField ID="HiddenField3" runat="server" Value='<%#Eval("MID")%>' />
</td>
<td class="ItemTemplate " style="display: none">
<input id="Text1" name="Text1" value='<%#Eval("MID")%>' type="text" />
<input id="TextCode_<%#Eval("MID")%>" value='<%#Eval("BOMSN")%>' type="text" />
</td>
</tr>
<tr>
<td colspan="10" style="text-align: left; padding-left: 25px; background-image: url(../../images_index/L.gif);
background-repeat: no-repeat; background-position: 6px top;" id="Details_rp1">
<asp:Repeater ID="rp1" runat="server">
<HeaderTemplate>
<table style="margin: 2px; border: Double 3px #5D7B9D; width: 96%">
<tr>
<th>
质检项目名称</th>
<th>
IL</th>
<th>
AQL</th>
<th>
Ac</th>
<th>
Re</th>
<th>
抽检数量</th>
<th>
合格数量</th>
<th>
证书是否齐全</th>
<th style="width: 150px">
备注</th>
<th style="display: none">
bn</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<th class="detail">
<%# Eval("ZjName")%>
</th>
<th class="detail">
<%# Eval("IL")%>
</th>
<th class="detail">
<%# Eval("AQl")%>
</th>
<th class="detail">
<%# Eval("Ac")%>
</th>
<th class="detail">
<%# Eval("Re")%>
</th>
<th class="detail">
<input id="TextCJ_<%#Eval("MID")%><%#Eval("ZjBM")%>" type="text" value="<%# Eval("i_spot_check_num")%>"
class="a1" style="width: 40px" οnkeyup="value=value.replace(/[^/d]/g,'')" />
</th>
<th class="detail">
<input id="TextHG_<%#Eval("MID")%><%#Eval("ZjBM")%>" type="text" class="a1" style="width: 40px"
value="<%# Eval("i_spot_check_num")%>" οnkeyup="value=value.replace(/[^/d]/g,'')" />
</th>
<th class="detail">
<select id="TextZS_<%#Eval("MID")%><%#Eval("ZjBM")%>" class="a1" style="width: 40px">
<option selected="selected" value="1">是</option>
<option value="0">否</option>
</select>
</th>
<th class="detail" style="width: 150px">
<input id="TextBZ_<%#Eval("MID")%><%#Eval("ZjBM")%>" class="a1" type="text" style="width: 150px" />
</th>
<th class="detail" style="display: none">
<input id="TextDetail_<%#Eval("MID")%>" value="<%#Eval("ZjBM")%>" type="text" />
</th>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
<div id="foo1">
<asp:Button ID="Submit2" runat="server" class="a2" Text="检 验" OnClientClick="return add()"
OnClick="LinkButton1_Click" Font-Underline="True" />
<%--<input type="submit" name="Submit2263" value="检 验" class="a2" id="Submit2" runat="server"
οnclick="return add()"/>--%>
<div style="display: none">
</div>
</div>
<div id="foot">
</div>
<asp:HiddenField ID="HdSrcKey" runat="server" />
<asp:HiddenField ID="HfUserCode" runat="server" />
<asp:HiddenField ID="HdMessage" runat="server" />
<asp:HiddenField ID="HdChecker" runat="server" />
</div>
</div>
</form>
</body>
</html>
后台:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
public partial class StockManager_PurchasingInspection_AddInspection : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TxtCGJYD.Value = Hst.Common.BillNumAuto.GenerateBillNum("T_ReceiveBuy", "Rid", "C");
HfUserCode.Value = Acurity.AcurityCheck.GetUserMessage(1, Page, 2);
this.Submit2.Visible = false;
this.startDate.Value = DateTime.Now.ToString("yyyy-MM-dd");
}
else
{
Bind();
}
}
//数据绑定
protected void Bind()
{
if (Request.Form["TxtJYD"].ToString() == "") return;
Hst.BLL.T_ReceiveM bll = new Hst.BLL.T_ReceiveM();
DataTable dt = bll.GetListM("RSN='" + Request.Form["TxtJYD"].ToString() + "'").Tables[0];
if (dt.Rows.Count == 0)
{
Response.Write("此BOM没有设置质检类别!");
}
else
{
this.Submit2.Visible = true;
this.DataList1.DataSource = dt;
this.DataList1.DataBind();
}
}
protected void DataList1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemIndex!=-1)
{
string Check_Buy_ClassSN = ((HiddenField)e.Item.FindControl("HiddenField1")).Value;
string MID = ((HiddenField)e.Item.FindControl("HiddenField3")).Value;
string num = ((HiddenField)e.Item.FindControl("HiddenField2")).Value;
Repeater rp = (Repeater)e.Item.FindControl("rp1");
DataSet ds = Hst.StockManager.Inspection.Getlist(MID, Check_Buy_ClassSN, num);
if (ds != null)
{
rp.DataSource = ds.Tables[0];
rp.DataBind();
}
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
List<string> sqllist = new List<string>();
string strsql;
int index = 0;
string BuyPlanSN = "";
string UserCode = HfUserCode.Value;
#region //采购收料记录:T_ReceiveBuy
strsql = "update T_ReceiveBuy set CheckSn='" + Request.Form["TxtCGJYD"]
+ "',Checker='" + HdChecker.Value
+ "',CheckDate='" + Request.Form["startDate"]
+ "',i_state='已检验'"
+ " where RSN='" + Request.Form["TxtJYD"] + "'";
sqllist.Add(strsql);
#endregion
string ReturnsNum = Hst.Common.BillNumAuto.GenerateBillNum("T_StockLog", "LID", "R");//退货单号
string M = this.HdMessage.Value;
string[] Array = M.Split('|');
for (int i = 0; i < Array.Length; i++)
{
string[] ArrayDetail = Array[i].Split(',');
#region 采购收料物料:T_ReceiveM
strsql = "update T_ReceiveM set allowNumber = " + ArrayDetail[2]
+ " where MID=" + ArrayDetail[0];
sqllist.Add(strsql);
#endregion
strsql = "select Check_Buy_ClassSN, i_arrival_num,m_price,TOPBOMSN,T_ReceiveM.BOMSN,BuyPlanSN from T_ReceiveM left join T_Bom on T_ReceiveM.BOMSN = T_Bom.BOMSN where T_ReceiveM.MID="
+ ArrayDetail[0];
DataRow dr = Hst.DBUtility.DbHelperSQL.Query(strsql).Tables[0].Rows[0];
#region//退货单明细
int DhNum = int.Parse(dr[1].ToString());
int HgNum = int.Parse(ArrayDetail[2]);
if (DhNum > HgNum)
{
index = sqllist.Count;
int thNum = DhNum - HgNum;//退货数量
decimal m_money = thNum * Convert.ToDecimal(dr[2].ToString());//金额
strsql = "insert into T_StockPro(LSN,BOMSN,OutNumber, OutPrice, "
+ "OutSumPrice"
+ ")values('"
+ ReturnsNum + "','"
+ ArrayDetail[1] + "',"
+ thNum + ","
+ dr[2].ToString() + ","
+ m_money + ")";
sqllist.Add(strsql);
}
#endregion
#region//更新采购计划单明细
strsql = "update T_buyPlanPro set InspectionNum=isnull(InspectionNum,0)+"
+ DhNum + ",Status=case when Status in ('部分分配','部分收料') then Status when isnull(PlanNumber,0) > isnull(InspectionNum,0)+" + DhNum
+ " then '部分检验' else '全部检验' end "
+ " where BOMSN='" + dr["BOMSN"].ToString()
+ "' and TopBOMSN='" + dr["TopBOMSN"].ToString() + "' and BuyPlanSN='" + dr["BuyPlanSN"].ToString() + "'";
sqllist.Add(strsql);
if (BuyPlanSN == "")
BuyPlanSN = dr["BuyPlanSN"].ToString();
else
BuyPlanSN += "," + dr["BuyPlanSN"].ToString();
#endregion
if (dr[0].ToString() != "")
{
DataTable dt = Hst.StockManager.Inspection.Getlist(ArrayDetail[0], dr[0].ToString(), dr[1].ToString()).Tables[0];
#region 收料检测结果:T_ReceiveCheck
for (int k = 0; k < dt.Rows.Count; k++)
{
string strHGNum = Array[i].Split(',')[4];//合格数量
string ZSQQ = Array[i].Split(',')[5]; //证书是否齐全
string Remarks = Array[i].Split(',')[6];//备注
string CheckNum = Array[i].Split(',')[3];//备注
decimal HGL;
if (CheckNum == "0" || strHGNum == "0" || CheckNum == "" || strHGNum == "")
{
HGL = 0;
}
else
{
//合格率限制
HGL = Math.Round(Convert.ToDecimal(strHGNum) / Convert.ToDecimal(CheckNum), 2);
}
if (k != dt.Rows.Count - 1)
i += 1;
//int CheckNum;//抽检数量
//if (dt.Rows[k]["IL"].ToString() == "")
//{
// HGL = 0;
//}
//else
//{
// HGL = Math.Round(Convert.ToDecimal(strHGNum) / Convert.ToDecimal(dt.Rows[k]["i_spot_check_num"].ToString()), 2);
// CheckNum = Convert.ToInt32(dt.Rows[0]["i_spot_check_num"].ToString());
//}
//string RSN = Hst.DBUtility.DbHelperSQL.GetSingle("select RSN from T_ReceiveM where MID=" + ArrayDetail[0]).ToString();//物料收料编码
strsql = "insert into T_ReceiveCheck(MSN,CheckSN,IL,AQL, "
+ "Ac,Re,CheckNum,OKNum,OKPecent,IsBook,"
+ "Remarks,ReceiveCheckSN,TopBomSN)values('"
+ ArrayDetail[1] + "','"
+ dt.Rows[k]["ZjBM"].ToString() + "','"
+ dt.Rows[k]["IL"].ToString() + "','"
+ dt.Rows[k]["AQL"].ToString() + "','"
+ dt.Rows[k]["Ac"].ToString() + "','"
+ dt.Rows[k]["Re"].ToString() + "',"
+ CheckNum + ","
+ strHGNum + ","
+ HGL.ToString() + ","
+ ZSQQ + " ,'"
+ Remarks + "','"
+ Request.Form["TxtCGJYD"] + "','"
+ dr["TOPBOMSN"].ToString() + "')";
sqllist.Add(strsql);
}
#endregion
}
}
#region//退货
if (index != 0)
{
strsql = "insert into T_StockLog(LSN"
+ ",EmployeeSN,Types,SourceSN,AddTime,HandleSN,InDateTime"
+ ")values('"
+ ReturnsNum + "','"
+ UserCode + "','"
+ "退货','"
+ Request.Form["TxtCGJYD"] + "',"
+ "getdate(),'"
+ UserCode + "',"
+ "getdate()"
+ ")";
sqllist.Insert(index, strsql);
}
#endregion
int result = Hst.DBUtility.DbHelperSQL.ExecuteSqlTran(sqllist);
// throw new Exception(result.ToString());
if (result != 0)
{
string[] arrayBuyPlanSN = BuyPlanSN.Split(',');
for (int i = 0; i < arrayBuyPlanSN.Length; i++)
{
//string Status;
//'全部分配','全部收料','全部检验','全部完成入库','部分收料'
string str = "select 1 from T_buyPlanPro where BuyPlanSN='" + arrayBuyPlanSN[i] + "' and Status not in ('部分分配','部分收料', '部分检验')";
//Status = Convert.ToString(Hst.DBUtility.DbHelperSQL.GetSingle(str));
if (Hst.DBUtility.DbHelperSQL.Exists(str) == false)
{
strsql = "update T_buyPlan set Status='全部检验' where BuyPlanSN='" + arrayBuyPlanSN[i] + "'";
Hst.DBUtility.DbHelperSQL.ExecuteSql(strsql);
}
//{
// Status = "部分检验";
//}
//else
//{
// Status = "全部检验";
//}
}
DataList1.DataSource = "";
DataList1.DataBind();
TxtJYD.Value = "";
this.Submit2.Visible = false;
this.TxtCGJYD.Value = Hst.Common.BillNumAuto.GenerateBillNum("T_ReceiveBuy", "Rid", "C");
Hst.Common.MessageBox.Show(Page, "操作成功!");
return;
}
}
}
类库
public static DataSet Getlist(string MID, string Check_Buy_ClassSN, string num)
{
string allSql = "";
string strSql = "select * from ass_test_items where ClassSN='" + Check_Buy_ClassSN + "'";
DataTable dt = Hst.DBUtility.DbHelperSQL.Query(strSql).Tables[0];
if (dt.Rows.Count == 0) return null;
for (int i = 0; i < dt.Rows.Count; i++)
{
string IL = dt.Rows[i]["IL"].ToString();//IL
string AQL = dt.Rows[i]["AQL"].ToString();//AQL 数字
//string ZjCode = dt.Rows[i]["CheckSN"].ToString();//质检项目编码
string ZjName = dt.Rows[i]["CheckName"].ToString();//质检项目名称
string ZjBM = dt.Rows[i]["CheckSN"].ToString();//质检项目名称
if (IL != "") //IL 和 数量 得到强度级别
{
strSql = "select " + IL + " from ass_quality_psi where i_batch_min<=" + num
+ " and i_batch_max>=" + num;
string Qdjb = Convert.ToString(Hst.DBUtility.DbHelperSQL.GetSingle(strSql));//强度级别
allSql += "select '" + ZjBM + "' as ZjBM, '" + MID + "' as MID, '"
+ ZjName + "' as ZjName, '" + IL + "' as IL, '" + AQL + "' as AQL, i_allow_bad_num as Ac, "
+ " i_allow_bad_num+1 as Re,i_spot_check_num from ass_quality_allow "
+ "where i_inspect_intensity_rank = '" + Qdjb
+ "' and f_allow_std=" + AQL;
}
else
{
allSql += "select '" + ZjBM + "' as ZjBM, '" + MID + "' as MID, '"
+ ZjName + "' as ZjName, '" + IL + "' as IL, '" + AQL + "' as AQL, '' as Ac, "
+ " '' as Re,'' as i_spot_check_num ";
}
if (i != dt.Rows.Count - 1)
allSql += " union all ";
}
return Hst.DBUtility.DbHelperSQL.Query(allSql);
}