前台:
<%@ 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; &nbs; 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);
}