BLL层代码:

 public   class BioPurchaseBLL
{
/// <summary>
/// 购进申请添加
/// </summary>
/// <param name="appinfo">申请对象</param>
/// <returns>编号</returns>
public int ProPurchaseAdd(BioPurchaseAppInfo appinfo)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@PurchaseID",SqlDbType.Int),
new SqlParameter("@Subject",appinfo.Subject),
new SqlParameter("@DepartMentID",appinfo.DepartMentID),
new SqlParameter("@AppUserId",appinfo.AppUserId),
new SqlParameter("@RealUserID",appinfo.RealUserID),
new SqlParameter("@OrderCom",appinfo.OrderCom),
new SqlParameter("@SendComID",appinfo.SendComID),
new SqlParameter("@OrderTime",appinfo.OrderTime),
new SqlParameter("@sendType",appinfo.sendType),
new SqlParameter("@WholeType",appinfo.WholeType)
};
//输出参数
pars[0].Direction = ParameterDirection.Output; int count= DataBaseHelper.ExcuteSqlReturnInt("BioPurchaseAppInfo_ADD", CommandType.StoredProcedure, pars);
if (count != 0)
{
return int.Parse(pars[0].Value.ToString());
}
else
{
return 0;
}
} /// <summary>
/// 添加购进产品信息
/// </summary>
/// <param name="pro">购进产品对象</param>
/// <returns>int</returns>
public int BioPurchaseProADD(BioPurchasePro pro)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@PurchaseID",pro.PurchaseID),
new SqlParameter("@ProID",pro.ProID),
new SqlParameter("@ProCount",pro.ProCount),
new SqlParameter("@ProPrice",pro.ProPrice),
new SqlParameter("@InvoicePrice",pro.InvoicePrice)
};
return DataBaseHelper.ExcuteSqlReturnInt("BioPurchasePro_ADD", CommandType.StoredProcedure, pars); }
}

前端的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProPurchaseNew.aspx.cs" Inherits="BioErpWeb.WholeSaleSystem.ProPurchase.ProPurchaseNew" %>

<!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>
<link href="../../Styles/ERPBaseStyle.css" rel="stylesheet" type="text/css" /> <script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script> <script src="../../Scripts/validateExtender.js" type="text/javascript"></script>
<script src="../../Scripts/ValidateMessage_ZW.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.metadata.js" type="text/javascript"></script> <link href="../../Styles/InputStyle1.css" rel="stylesheet" type="text/css" />
<script src="../../JS/CheckDepartMent.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.7.custom.min.js" type="text/javascript"></script>
<link href="../../Scripts/jquery-ui-1.7.custom.css" rel="stylesheet" type="text/css" /> <script src="../../JS/CheckUserName.js" type="text/javascript"></script>
<script src="../../JS/CustomerName.js" type="text/javascript"></script>
<script src="../../JS/ProNameChoose.js" type="text/javascript"></script> <script type="text/javascript">
$(document).ready(function () {
$("#form1").validate();
}); function addrow() {
var tr = '<tr><td><input type="text" name="proName" class="required" style=" width:294px"/>
<input type="hidden" name="proID" /><input value="选择" type="button" onclick="showProName()" class="btnchoose"/>
</td><td><input type="text" name="proCount" class="{required:true,min:1,digits:true}" style=" width:150px"/></td>
<td><input type="text" name="proPrice" class="{required:true,min:0.1,number:true}" style=" width:150px"/></td>
<td><input type="button" value="添加行" onclick="addrow()" class="btnchoose"/>
<input type="button" value="删除行" onclick="deleterow()" class="btnchoose"/></td></tr>';
var obj = window.event.srcElement;
var parenttr = obj.parentNode.parentNode;
$(parenttr).after(tr);
} function deleterow() {
var obj = window.event.srcElement;
var parenttr = obj.parentNode.parentNode;
$(parenttr).remove(); }
</script> </head>
<body>
<form id="form1" runat="server"> <div>
<table class="maintable Inupttable" style=" width:900px;">
<tr>
<td colspan="8" class="titlebar">商品采购申请单</td>
</tr>
<tr>
<td>申请部门</td>
<td>
<asp:DropDownList ID="ddlDepartMent" runat="server">
</asp:DropDownList>
</td><td>
制表人</td>
<td class="style1">
<asp:Label ID="lbApplayUser" runat="server" ></asp:Label>
</td>
<td>经手人</td><td>
<asp:TextBox ID="txtRealUserID" CssClass="{required:true,digits:true, min:1}"
runat="server" Width="78px"></asp:TextBox>
<input id="btnUser" type="button" value="选择" class="btnchoose" onclick="showDialog3()" /></td>
<td>制表时间</td><td>
<asp:Label ID="lbTime" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td>发货(订货)单位</td>
<td>
<asp:TextBox ID="txtSendCom" runat="server" Width="102px"></asp:TextBox>
<input id="btnUser1" type="button" value="选择" class="btnchoose"
onclick="showCustomerDialog3()" /></td><td>
入库单位</td>
<td class="style1">
<asp:DropDownList ID="ddlOrderCom" runat="server">
<asp:ListItem>上海某某公司</asp:ListItem>
<asp:ListItem>成都某某公司</asp:ListItem>
<asp:ListItem>北京某某公司</asp:ListItem>
<asp:ListItem>雅安某某公司</asp:ListItem>
</asp:DropDownList>
</td>
<td>采购方式</td><td>
<asp:DropDownList ID="ddlSaleType" runat="server">
<asp:ListItem>经销</asp:ListItem>
<asp:ListItem>代销</asp:ListItem>
</asp:DropDownList>
</td>
<td>入库方式</td><td>
<asp:DropDownList ID="ddlTypes" runat="server">
<asp:ListItem>零星采购</asp:ListItem>
<asp:ListItem>采购入库</asp:ListItem>
</asp:DropDownList>
</td>
</tr> <tr>
<td colspan="8" style="border:none;">
<div>
<table style="width:95%; border:solid 1px; border-collapse:collapse; line-height:25px;">
<tr><td>产品名称及规格</td><td>数量</td><td>单价</td>
<td>操作</td></tr>
<tr><td><input type="text" name="proName" class="required" style=" width:294px"/>
<input type="hidden" name="proID" /><input value="选择" type="button" onclick="showProName()"
class="btnchoose"/></td><td><input type="text" name="proCount" class="{required:true,min:1,digits:true}"
style=" width:150px"/></td><td><input type="text" name="proPrice" class="{required:true,min:0.1,number:true}" style=" width:150px"/></td>
<td class="style1"><input type="button" value="添加一行" onclick="addrow()" class="btnchoose"/> </td></tr>
</table> </div>
</td>
</tr>
<tr>
<td>备注:</td>
<td colspan="5">
<asp:TextBox ID="txtRemark" runat="server" Width="523px"></asp:TextBox>
</td> <td>审批核人</td>
<td>
<asp:TextBox ID="txtNetUserId" CssClass="{required:true,digits:true, min:1}"
runat="server" Width="70px"></asp:TextBox>
<input id="btnUser0" type="button" value="选择" class="btnchoose"
onclick="showDialog3()" /></td>
</tr>
<tr>
<td colspan="8" class="bottomtd">
<asp:HiddenField ID="hf_applayUserid" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="保存"
onclick="btnSubmit_Click" /> </td>
</tr> </table> </div>
</form>
</body>
</html>

产品选择功能:(弹出窗体选择,返回产品和编号)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProList.aspx.cs" Inherits="BioErpWeb.PersonList.ProList" %>

<!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>
<script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript">
function search() {
if (document.getElementById("txtSearchName").value == "") {
alert("请输入产品名");
return;
}
document.getElementById("PersonIframeList")
.src = "ProListSelect.aspx?ProName=" + encodeURIComponent(document.getElementById("txtSearchName").value); } function choose() {
var index = PersonIframeList.document.getElementById("sltUserList").selectedIndex; var text = PersonIframeList.document.getElementById("sltUserList").options[index].innerText; var value = PersonIframeList.document.getElementById("sltUserList").value;
window.returnValue = value+"-"+text;
window.close();
}
</script>
<style type="text/css">
.style1
{
width: 196px;
}
#PersonIframeList
{
width: 174px;
}
.style2
{
width: 194px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style=" width:324px; ">
<tr>
<td class="style1">产品姓名
</td>
<td class="style2">
<input id="txtSearchName" name="txtSearchName" type="text" size="10" maxlength="10"/>
<input type="button" value="查询" onclick="search()" />
</td>
</tr>
<tr>
<td class="style1">
<iframe id="PersonIframeList" frameborder="0" src="ProListSelect.aspx"
height="310px" > </iframe>
</td>
<td style=" vertical-align:bottom; padding-bottom:20px;" class="style2">
<span id="chooseProName"></span>
<input type="button" value="选择" onclick="choose()"/>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

取出产品的名称:

function showProName() {
var re = showModalDialog("../../PersonList/ProList.aspx", "", "dialogWidth=350px;dialogHeight=400px");
var valuetext = re.split("-");
var obj = window.event.srcElement;
var td = obj.parentNode;
var txts = td.getElementsByTagName('input');
if (re == null || re == "") { if (txts[0].value == "" || txts[0].value == null) {
txts[0].value = "请选择"; }
}
else {
txts[0].value = valuetext[1];
txts[1].value = valuetext[0];
}
}

选择的后台代码:

 public string GetUserList
{
get {
string strHtml = "";
if (Request.QueryString["ProName"] == null)
{
DataSet ds = SqlComm.GetDataByCondition("BiotbProduct", "top 10 ProID,ProName", " 1=1 order by ProID");
foreach (DataRow dr in ds.Tables[0].Rows)
{
strHtml += "<option value='" + dr["ProID"] + "'>" + dr["ProName"] + "</option>";
} }
else
{
DataSet ds = SqlComm.GetDataByCondition("BiotbProduct", "top 10 ProID,ProName",
" ProName like '" + Request.QueryString["ProName"].ToString() + "%' order by ProID");
foreach (DataRow dr in ds.Tables[0].Rows)
{
strHtml += "<option value='" + dr["ProID"] + "'>" + dr["ProName"] + "</option>";
}
} return strHtml;
}
}

定义枚举类型:

 public  enum TaskNavigateEmun
{
/// <summary>
/// 合同管理 1
/// </summary>
CRMContract=1,
/// <summary>
/// 产品购进 2
/// </summary>
ProPurchase=2,
/// <summary>
/// 产品发货3
/// </summary>
ProSend=3,
/// <summary>
/// 产品退货4
/// </summary>
ProBackSend=4
}

添加的后台页面:

  protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.lbApplayUser.Text = Web.UserLogin.user.UserName;
this.lbApplayUser.ToolTip = Web.UserLogin.user.UserId.ToString();
this.hf_applayUserid.Value = Web.UserLogin.user.UserId.ToString();
DepartMentBand();
this.lbTime.Text = DateTime.Now.ToString();
} }
/// <summary>
/// 绑定部门信息
/// </summary>
private void DepartMentBand()
{
ddlDepartMent.DataSource = SqlComm.getDepartMent();
ddlDepartMent.DataTextField = "DepartmentName";
ddlDepartMent.DataValueField = "DepartmentId";
ddlDepartMent.DataBind();
ddlDepartMent.Items.Add(new ListItem("--请选择部门--", "0"));
ddlDepartMent.SelectedValue = "0";
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
int taskid=0; BioPurchaseAppInfo appinfo = new BioPurchaseAppInfo();
BioPurchaseBLL puchasebll = new BioPurchaseBLL(); string proname = Request["proName"].ToString();
string[] pronames = proname.Split(',');
appinfo.Subject = pronames[0]+ "-采购申请单";
appinfo.DepartMentID =int.Parse( ddlDepartMent.SelectedValue.ToString());
appinfo.AppUserId = int.Parse(Session["Userid"].ToString());
appinfo.RealUserID = int.Parse(txtRealUserID.Text.Trim());
appinfo.OrderCom = this.ddlOrderCom.SelectedItem.Text;
appinfo.SendComID =int.Parse( this.txtSendCom.Text.Trim());
appinfo.OrderTime = Convert.ToDateTime(this.lbTime.Text);
appinfo.sendType=this.ddlTypes.Text;
appinfo.WholeType = this.ddlSaleType.Text;
taskid= puchasebll.ProPurchaseAdd(appinfo);
bool proadd = false;
if (taskid != 0)
{
string proid = Request["proID"].ToString();
string procount = Request["proCount"].ToString();
string proprice = Request["proPrice"].ToString();
string[] proids = proid.Split(',');
string[] procounts = procount.Split(',');
string[] proprices = proprice.Split(',');
for (int i = 0; i < proids.Length; i++)
{
BioPurchasePro pro=new BioPurchasePro();
pro.PurchaseID=taskid;
pro.ProID=int.Parse(proids[i]);
pro.ProCount=int.Parse(procounts[i]);
pro.ProPrice=decimal.Parse(proprices[i]);
pro.InvoicePrice=pro.ProCount* pro.ProPrice;
puchasebll.BioPurchaseProADD(pro); }
proadd = true; }
if (taskid != 0 && proadd==true)
{
TaskListRecord record = new TaskListRecord();
record.Accepter = int.Parse(this.txtNetUserId.Text.Trim());
record.AuditingSate = 0;
record.DepartMentId = int.Parse(this.ddlDepartMent.SelectedValue.ToString());
record.FirstAccepter = int.Parse(this.txtNetUserId.Text.Trim());
record.FirstSumitTime = Convert.ToDateTime(this.lbTime.Text);
record.FirstTransmitter = int.Parse(Session["Userid"].ToString());
record.Mind = this.txtRemark.Text;
record.Pass = 1;
record.Subject = pronames[0] + "-采购申请单";
record.SumitTime = DateTime.Now;
record.TaskID = taskid;
record.TaskTableID =(int)TaskNavigateEmun.ProPurchase;
record.Transmitter = int.Parse(Session["Userid"].ToString());
SqlComm.TaskListRecordAdd(record);
} Response.Redirect("~/Web/Desk.aspx");
}

js的公用方法封装:

function showobj(objID) {
// var obj = document.getElementById(objID);
// obj.style.display = "";
$("#" + objID).show();
}

查询购进批号表中审核的产品数量:

CREATE PROC [dbo].[getauditingProBatchCountByPurchaseID]
(
@PurchaseID INT
)
AS
BEGIN
SELECT COUNT(isauditing) FROM BioPuchaseProBatch WHERE purchaseProID
IN (SELECT PurchaseProID FROM dbo.BioPurchasePro WHERE
PurchaseID=@PurchaseID) AND isauditing=1
END

BLL层的代码:

 /// <summary>
/// 根据产品购进单编号获取对于产品批号的数量(已经审核的数量)
/// </summary>
/// <param name="PurchaseID">购进单编号</param>
/// <returns></returns>
public int getauditingProBatchCountByPurchaseID(string PurchaseID)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@PurchaseID",int.Parse(PurchaseID))
};
object o = DataBaseHelper.SelectSQLReturnObject("getauditingProBatchCountByPurchaseID", CommandType.StoredProcedure, pars);
if (o != null)
{
return int.Parse(o.ToString());
}
else
{
return 0;
}
}

添加产品批次到产品库存表:

-- Description:	添加产品批次到产品库存表
-- =============================================
CREATE PROCEDURE [dbo].[BioProStockAdd]
@ProID INT,
@BathNum NVARCHAR(50),
@ProCout INT,
@StockPrice MONEY,
@MakeDate DATETIME,
@ExpirateDate DATETIME,
@StockID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT BioProStock
(
ProID,
BathNum,
ProCout,
StockPrice,
MakeDate,
ExpirateDate,
StockID
)
VALUES
(
@ProID,
@BathNum,
@ProCout,
@StockPrice ,
@MakeDate,
@ExpirateDate,
@StockID
) END

BLL层代码:

     /// <summary>
/// 给产品库存表添加一条记录
/// </summary>
/// <param name="prostock"></param>
/// <returns></returns>
public int BioProStockAdd(BioProStock prostock)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@ProID",prostock.ProID),
new SqlParameter("@BathNum",prostock.BathNum),
new SqlParameter("@ProCout",prostock.ProCout),
new SqlParameter("@StockPrice",prostock.StockPrice),
new SqlParameter("@MakeDate",prostock.MakeDate),
new SqlParameter("@ExpirateDate",prostock.ExpirateDate),
new SqlParameter("@StockID",prostock.StockID)
};
return DataBaseHelper.ExcuteSqlReturnInt("BioProStockAdd", CommandType.StoredProcedure, pars);
}
}

查询购进批号表中审核的产品数量:

--查询购进批号表中审核的产品数量
CREATE PROC [dbo].[getauditingProBatchCountByPurchaseID]
(
@PurchaseID INT
)
AS
BEGIN
SELECT COUNT(isauditing) FROM BioPuchaseProBatch WHERE purchaseProID
IN (SELECT PurchaseProID FROM dbo.BioPurchasePro WHERE
PurchaseID=@PurchaseID) AND isauditing=1
END

修改的前端代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProPurchaseEdit.aspx.cs"
Inherits="BioErpWeb.WholeSaleSystem.ProPurchase.ProPurchaseEdit" %> <!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>
<link href="../../Styles/ERPBaseStyle.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/validateExtender.js" type="text/javascript"></script>
<script src="../../Scripts/ValidateMessage_ZW.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.metadata.js" type="text/javascript"></script>
<link href="../../Styles/InputStyle1.css" rel="stylesheet" type="text/css" />
<script src="../../JS/CheckDepartMent.js" type="text/javascript"></script>
<link href="../../Styles/CalenderStyle.css" rel="stylesheet" type="text/css" />
<script src="../../Scripts/cld.js" type="text/javascript"></script>
<script src="../../JS/CheckUserName.js" type="text/javascript"></script>
<script src="../../JS/CustomerName.js" type="text/javascript"></script>
<script src="../../JS/ProNameChoose.js" type="text/javascript"></script>
<script src="../../Scripts/Comm.js" type="text/javascript"></script>
<script type="text/javascript">
var tri = 0;
$(document).ready(function () {
$("#form1").validate();
$("#addrow").click(function () {
tri++;
var tr = '<tr id="tr' + tri + '"><td><input type="text" name="proName" class="required" style=" width:294px"/>
<input type="hidden" name="proID" /><input value="选择" type="button" onclick="showProName()" class="btnchoose"/></td>
<td><input type="text" name="proCount" class="{required:true,min:1,digits:true}" style=" width:150px"/></td>
<td><input type="text" name="proPrice" class="{required:true,min:0.1,number:true}" style=" width:150px"/></td>
<td> <input type="button" value="添加批号" name="btnaddBacths" class="btnchoose" /></td></tr>';
$("#caption").before(tr);
sethidden();
});
$("#deleteRow").click(function () {
var name = '#tr' + tri;
$(name).remove();
if (tri > 0) {
tri--;
} else {
tri = 0;
}
}); });
function addrows(count) { for (var i = 0; i < count; i++) {
tri++;
var tr = '<tr id="tr' + tri + '">
<td><input type="text" name="proName" class="required" style=" width:294px"/>
<input type="hidden" name="proID" /><input value="选择" type="button" onclick="showProName()" name="chpro" class="btnchoose"/></td>
<td><input type="text" name="proCount" class="{required:true,min:1,digits:true}" style=" width:150px"/></td>
<td><input type="text" name="proPrice" class="{required:true,min:0.1,number:true}" style=" width:150px"/></td>
<td> <input type="hidden" name="purchaseProID"/><input type="button" value="添加批号" name="btnaddBacths" class="btnchoose" onclick="setbatch()" /></td>
</tr>';
var obj = $("#troption");
$(obj).after(tr); }
} //产品信息赋值
function setValues(proName, proID, proCount, proPrice, purchaseProID) { var proNames = proName.split(',');
var proIDs = proID.split(',');
var proCounts = proCount.split(',');
var proPrices = proPrice.split(',');
var purchaseProIDs=purchaseProID.split(',');
var txtProName = document.getElementsByName("proName");
var txtProID = document.getElementsByName("proID");
var txtProCount = document.getElementsByName("proCount");
var txtproPrice = document.getElementsByName("proPrice");
var txtpurchaseProID = document.getElementsByName("purchaseProID");
for (var i = 0; i <(proIDs.length-1); i++) {
txtProName[i].value = proNames[i];
txtProID[i].value = proIDs[i];
txtProCount[i].value = proCounts[i];
txtproPrice[i].value = proPrices[i];
txtpurchaseProID[i].value = purchaseProIDs[i]; } } function deleterow() {
var obj = window.event.srcElement;
var parenttr = obj.parentNode.parentNode;
$(parenttr).remove(); } function sethidden() { var name = '<%=this.hiddenName()%>';
if (name != null) {
var names = name.split("/"); for (var i = 0; i < names.length; i++) {
$(document).find("input[name='" + names[i] + "']").each(function () {
$(this).css("display", "none");
})
}
} } function setbatch() {
var procount = 0;
var boxnum = 1;
$("#divprobatch").css("display", "block");
var obj = window.event.srcElement;
var tr = obj.parentNode.parentNode;
var inputs = tr.getElementsByTagName("input"); $("#divprobatch").find("input[name='proIds']").each(function () {
if (inputs[1].value == $(this).val()) {
boxnum++;
procount += parseInt($(this).parent().parent().find("input[name='txtProCount0']").val());
if (procount > parseInt(inputs[3].value)) { $(this).parent().parent().find("input[name='txtProCount0']").attr("value", "0");
alert("产品总数已经达到,不能为此产品添加批号");
event.stopPropagation(); }
}
}) //2011年11月29日22:28:00
//新添加一个控件<input type="hidden" name="PurchaseProID2"/>
var trbatch = '<tr> <td id="td2"><input id="txtProName0" value="' + inputs[0].value + '" readonly="readonly" name="txtProName0"
style="width: 294px" type="text" class="input" size="50" /><input type="hidden" name="proIds" value="' + inputs[1].value + '"/> </td>';
trbatch += '<td><input id="txtProCount0" name="txtProCount0" class="{required:true,min:1,digits:true;}" type="text" size="5" /></td>
<td><input id="txtProBatch0" name="txtProBatch0" type="text" size="11" /> </td>';
trbatch += '<td><input id="txtProBoxNum0" name="txtProBoxNum0" value="' + boxnum + '" readonly="readonly" type="text" size="11" /> </td>';
trbatch += '<td><input id="txtMarkDate0" name="txtMarkDate0" onfocus="setday(this)" onclick="setday(this)" size="11"
class="{required:true,dateISO:true}" type="text" readonly="readonly" /></td>';
trbatch += '<td><input id="txtExPirationDate0" onfocus="setday(this)" onclick="setday(this)" name="txtExPirationDate0"
class="{required:true,dateISO:true}" size="11" type="text" readonly="readonly" />';
trbatch += '</td><td><input type="hidden" value="'+inputs[5].value+'" name="PurchaseProID2"/>
<input type="button" class="btn2" value="删除" onclick="deleterow()"/><input id="Hidden2" name="proID0" type="hidden" />
<input id="Hidden3" name="tb1RowIndex" type="hidden" />';
trbatch += '</td></tr>'; $("#probatchtr").after(trbatch);
} //根据后台传过来的产品批次个数,添加相应行数
function setaddbatchs(count) {
var trbatch = '<tr> <td id="td2"><input id="txtProName0" value="" readonly="readonly" name="txtProName0"
style="width: 294px" type="text" class="input" size="50" /><input type="hidden" name="proIds" value=""/> </td>';
trbatch += '<td><input id="txtProCount0" name="txtProCount0" class="{required:true,min:1,digits:true}" type="text" size="5" /></td>
<td><input id="txtProBatch0" name="txtProBatch0" type="text" size="11" /> </td>';
trbatch += '<td><input id="txtProBoxNum0" name="txtProBoxNum0" value="" readonly="readonly" type="text" size="11" /> </td>';
trbatch += '<td><input id="txtMarkDate0" name="txtMarkDate0" onfocus="setday(this)" onclick="setday(this)"
size="11" class="{required:true,dateISO:true}" type="text" readonly="readonly" /></td>';
trbatch += '<td><input id="txtExPirationDate0" onfocus="setday(this)" onclick="setday(this)"
name="txtExPirationDate0" class="{required:true,dateISO:true}" size="11" type="text" readonly="readonly" />';
trbatch += '</td><td><input type="hidden" value="" name="PurchaseProID2"/><input type="button" class="btn2" value="删除" onclick="deleterow()"/>
<input id="Hidden2" name="proID0" type="hidden" /><input id="Hidden3" name="tb1RowIndex" type="hidden" />';
trbatch += '</td></tr>';
for (var i = 0; i < count; i++) {
$("#probatchtr").after(trbatch);
}
} function setbatchsvalues(proname, proId, txtProCount, txtProBatch, txtProBoxNum, txtMarkDate, txtExPirationDate, PurchaseProID) { var pronames = proname.split(",");
var proIds = proId.split(",");
var ProCouns = txtProCount.split(",");
var ProBatchs = txtProBatch.split(",");
var ProBoxNums = txtProBoxNum.split(",");
var MarkDates = txtMarkDate.split(",");
var ExPirationDates = txtExPirationDate.split(",");
var PurchaseProIDs = PurchaseProID.split(","); var txtProName0s = document.getElementsByName("txtProName0");
var txtproIds = document.getElementsByName("proIds")
var txtProCount0 = document.getElementsByName("txtProCount0");
var txtProBatch0 = document.getElementsByName("txtProBatch0");
var txtProBoxNum0 = document.getElementsByName("txtProBoxNum0");
var txtMarkDate0 = document.getElementsByName("txtMarkDate0");
var txtExPirationDate0 = document.getElementsByName("txtExPirationDate0");
var PurchaseProID2 = document.getElementsByName("PurchaseProID2"); for (var i = 0; i < txtProName0s.length; i++) {
txtProName0s[i].value = pronames[i];
txtproIds[i].value = proIds[i];
txtProCount0[i].value = ProCouns[i];
txtProBatch0[i].value = ProBatchs[i];
txtProBoxNum0[i].value = ProBoxNums[i];
txtMarkDate0[i].value = MarkDates[i];
txtExPirationDate0[i].value = ExPirationDates[i];
PurchaseProID2[i].value = PurchaseProIDs[i]; } } // function showBatchsdiv() {
// $("#divprobatch").show();
// }
// </script>
<style type="text/css">
#pricetable
{
border: none;
width: 99%;
}
#pricetable td
{
border: none;
}
#divprobatch
{
width: 99%;
border: none;
}
#divprobatch table
{
width: 99%;
border: none;
}
#divprobatch table td
{
border: none;
padding-right: 2px;
}
</style>
</head>
<body onload="sethidden()">
<form id="form1" runat="server">
<div style=" width:99%; height:750px; overflow:scroll;">
<table class="maintable Inupttable" style="width: 900px;">
<tr>
<td colspan="8" class="titlebar">
商品采购审核单
</td>
</tr>
<tr>
<td>
申请部门
</td>
<td>
<asp:DropDownList ID="ddlDepartMent" runat="server">
</asp:DropDownList>
</td>
<td>
制表人
</td>
<td class="style1">
<asp:Label ID="lbApplayUser" runat="server"></asp:Label>
</td>
<td>
经手人
</td>
<td>
<asp:TextBox ID="txtRealUserID" CssClass="{required:true,digits:true, min:1}" runat="server"
Width="78px"></asp:TextBox>
<input id="btnUser" type="button" value="选择" class="btnchoose" onclick="showDialog3()" /><asp:Label
ID="lbOldRealName" runat="server" Text="Label"></asp:Label>
</td>
<td>
制表时间
</td>
<td>
<asp:Label ID="lbTime" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td>
发货(订货)单位
</td>
<td>
<asp:TextBox ID="txtSendCom" runat="server" Width="72px" CssClass="{required:true,digits:true, min:1}"></asp:TextBox>
<input id="btnUser1" type="button" value="选择" class="btnchoose" onclick="showCustomerDialog3()" /><asp:Label
ID="lbOldSenComName" runat="server" Text="Label"></asp:Label>
</td>
<td>
入库单位
</td>
<td class="style1">
<asp:DropDownList ID="ddlOrderCom" runat="server">
<asp:ListItem>上海某某公司</asp:ListItem>
<asp:ListItem>成都某某公司</asp:ListItem>
<asp:ListItem>北京某某公司</asp:ListItem>
<asp:ListItem>雅安某某公司</asp:ListItem>
</asp:DropDownList>
</td>
<td>
采购方式
</td>
<td>
<asp:DropDownList ID="ddlSaleType" runat="server">
<asp:ListItem>经销</asp:ListItem>
<asp:ListItem>代销</asp:ListItem>
</asp:DropDownList>
</td>
<td>
入库方式
</td>
<td>
<asp:DropDownList ID="ddlTypes" runat="server">
<asp:ListItem>零星采购</asp:ListItem>
<asp:ListItem>采购入库</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="8" style="border: none;" class="style2">
<div>
<table id="tableprolist" style="width: 95%; border: solid 1px; border-collapse: collapse;
line-height: 25px;">
<tr>
<td>
产品名称及规格
</td>
<td>
数量
</td>
<td>
单价
</td>
<td>
操作
</td>
</tr>
<tr id="troption">
<td>
<input type="text" name="proName" class="required" style="width: 294px" /><input
type="hidden" name="proID" /><input value="选择" type="button" name="chpro" onclick="showProName()"
class="btnchoose" />
</td>
<td>
<input type="text" name="proCount" class="{required:true,min:1,digits:true}" style="width: 150px" />
</td>
<td>
<input type="text" name="proPrice" class="{required:true,min:0.1,number:true}" style="width: 150px" />
</td>
<td class="style1">
<!--2011年11月29日22:37:47 添加 <input type="hidden" name="purchaseProID"/>-->
<input type="hidden" name="purchaseProID"/>
<input type="button" value="添加批号" onclick="setbatch()" name="btnaddBacths" class="btnchoose" />
</td>
</tr>
<tr id="caption">
<td colspan="4" style="text-align: right;">
<input type="button" value="添加一行" id="addrow" name="addrow" class="btnchoose" />
<input type="button" value="删除行" id="deleteRow" name="deleteRow" class="btnchoose" />
</td>
</tr>
<tr>
<td colspan="4">
<div id="divprobatch" style="display: none;">
<table id="tb2" align="left" cellpadding="0" border="0" cellspacing="0" class="style2">
<tr id="probatchtr">
<td style="width: 340px;">
订货产品名称及规格(只读)
</td>
<td style="width: 70px;">
数量
</td>
<td style="width: 95px;">
批号
</td>
<td style="width: 95px;">
货号(只读)
</td>
<td style="width: 150px;">
生产日期
</td>
<td style="width: 150px;">
有效期
</td>
<td style="width: 65px;">
 
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td colspan="4">
<table id="pricetable">
<tr>
<td>
<asp:Label ID="lbTotal" runat="server" Text="产品总额"></asp:Label>
<asp:Label ID="lbTotalInvoicePrice" runat="server" Text=""></asp:Label>
</td>
<td>
<asp:Label ID="lbisPay" Visible="false" runat="server" Text="是否付款:"></asp:Label><asp:CheckBox
ID="isPay" runat="server" Visible="false" />
</td>
<td>
<asp:Label ID="lbBill" runat="server" Text="账单编号:" Visible="false"></asp:Label>
<asp:TextBox ID="txtBillNo" runat="server" Visible="false"></asp:TextBox>
</td>
<td>
<asp:Label ID="lbPayuser" runat="server" Text=" 付款人:" Visible="false"></asp:Label>
<asp:TextBox ID="txtBillUser" runat="server" Visible="false"></asp:TextBox>
<input id="btnbilluserchoose" type="button" visible="false" runat="server" value="选择"
class="btnchoose" onclick="showDialog3()" /><asp:Label ID="lbBillUserName" runat="server"
Text="Label"></asp:Label>
 
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div id="proAuditing" style=" display:none;">
产品质量审核:<asp:CheckBox ID="cb_Auditing" Text="质量审核合格" runat="server" />
</div>
<div id="stockAuditing" style=" display:none;">
<span>仓库审核:<asp:CheckBox ID="cb_Stock" Text="仓库审核合格" runat="server" /></span>
<span>选择仓库:<asp:DropDownList ID="ddlStock" runat="server">
</asp:DropDownList>
</span>
</div>
</td>
</tr>
<tr>
<td>
备注
</td>
<td colspan="5">
<asp:TextBox ID="txtRemark" runat="server" Width="523px"></asp:TextBox>
</td>
<td>
审批核人
</td>
<td>
<asp:TextBox ID="txtNetUserId" CssClass="{required:true,digits:true, min:1}" runat="server"
Width="70px"></asp:TextBox>
<input id="btnUser0" type="button" value="选择" name="btnuser0" class="btnchoose" onclick="showDialog3()" />
</td>
</tr>
<tr>
<td>
历史审批意见
</td>
<td colspan="7">
<asp:Label ID="lbRemarks" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td colspan="8" class="bottomtd">
<asp:HiddenField ID="hf_applayUserid" runat="server" />
<asp:HiddenField ID="hf_subject" runat="server" />
<asp:HiddenField ID="hf_FirstAccepter" runat="server" />
<asp:HiddenField ID="hf_FirstTransmitter" runat="server" />
<asp:Button ID="btbRun" runat="server" Text="执行" Visible="false" UseSubmitBehavior="false" CssClass="btnchoose"
onclick="btbRun_Click"/>
<asp:Button ID="btnreject" Visible="false" name="btnreject" runat="server" Text="拒绝审核" UseSubmitBehavior="false"
OnClick="Button1_Click" />
 <asp:Button ID="btnSubmit" runat="server" Text="提交审核" OnClick="btnSubmit_Click" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

根据产品批号获取此产品名称:

-- Description:	根据产品批号编号获取此产品名称
-- =============================================
CREATE FUNCTION [dbo].[FN_GetProNameByProBatchID]
(
@ProBatchID INT
)
RETURNS NVARCHAR(100)
AS
BEGIN
-- Declare the return variable here
DECLARE @proName NVARCHAR(100)
DECLARE @purchaseProID INT
DECLARE @ProID INT
SELECT @purchaseProID= purchaseProID FROM dbo.BioPuchaseProBatch
WHERE ProBatchID=@ProBatchID SELECT @ProID=ProID FROM BioPurchasePro WHERE PurchaseProID=@purchaseProID
SELECT @proName=ProName FROM dbo.BiotbProduct
WHERE ProID=@ProID
RETURN @proName
END

根据购进单编号获取相应批次详细信息:

 public DataTable getProBatchDetailByPurchaseID(string PurchaseID)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@PurchaseID",int.Parse(PurchaseID))
}; return DataBaseHelper.SelectSQLReturnTable("getProBatchDetailByPurchaseID", CommandType.StoredProcedure, pars);
}

存储过程的封装:

CREATE PROC [dbo].[getProBatchDetailByPurchaseID]
(
@PurchaseID INT
)
AS
SELECT
ProBatchID,
proName=dbo.FN_GetProNameByProBatchID(ProBatchID),
proID=[dbo].FN_GetProIDByProBatchID(ProBatchID),
purchaseProID,
batchNum,
boxNum,
proCount,
realityProCount,
stockDate,
expirationDate,
makeDate,
isDeleteSate,
isAuditing,
isprinted
FROM
BioPuchaseProBatch WHERE purchaseProID
IN (
SELECT PurchaseProID FROM dbo.BioPurchasePro
WHERE dbo.BioPurchasePro.PurchaseID=@PurchaseID
)

根据产品批号 获取此产品编号:

CREATE FUNCTION [dbo].[FN_GetProIDByProBatchID]
(
-- Add the parameters for the function here
@ProBatchID INT
)
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @purchaseProID INT
DECLARE @ProID INT
SELECT @purchaseProID= purchaseProID FROM dbo.BioPuchaseProBatch
WHERE ProBatchID=@ProBatchID
SELECT @ProID=ProID FROM BioPurchasePro WHERE PurchaseProID=@purchaseProID RETURN @ProID
END

添加产品批号的BLL:

  /// <summary>
/// 添加产品批号
/// </summary>
/// <param name="batch"></param>
/// <returns></returns>
public int BioPuchaseProBatchAdd(BioPuchaseProBatch batch)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@purchaseProID",batch.purchaseProID),
new SqlParameter("@batchNum",batch.boxNum),
new SqlParameter("@boxNum",batch.boxNum),
new SqlParameter("@proCount",batch.proCount),
new SqlParameter("@realityProCount",batch.realityProCount),
new SqlParameter("@expirationDate",batch.expirationDate),
new SqlParameter("@makeDate",batch.makeDate),
};
return DataBaseHelper.ExcuteSqlReturnInt("BioPuchaseProBatch_ADD", CommandType.StoredProcedure, pars);

共用方法的封装:

 /// <summary>
/// 根据任务表单编号,和 任务表编号进行查询返回数据表
/// </summary>
/// <param name="TaskID">TaskID:如合同管理单号为5</param>
/// <param name="TaskTableID">TaskTableID:如合同管理单(1)、商品供货单(2)、商品采购申请单(3)</param>
/// <returns></returns>
public static DataTable getTaskListRecordsByCondition(string TaskID, string TaskTableID)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@tableName","TaskListRecord"),
new SqlParameter("@columns"," *,UserName=dbo.getUserNameByUserID(Transmitter) "),
new SqlParameter("@condition"," TaskID='"+TaskID+"' and TaskTableID='"+TaskTableID+"'")
};
return DataBaseHelper.SelectSQLReturnTable("GetDataByCondition", CommandType.StoredProcedure, pars);
} /// <summary>
/// 根据任务表单编号,和 任务表编号进行查询返回数据表
/// </summary>
/// <param name="TaskID">TaskID:如合同管理单号为5</param>
/// <param name="TaskTableID">TaskTableID:如合同管理单(1)、商品供货单(2)、商品采购申请单(3)</param>
/// <returns></returns>
public static String getTaskListRecordsMindsByCondition(string TaskID, string TaskTableID)
{
DataTable dt= getTaskListRecordsByCondition(TaskID, TaskTableID);
string historys = "";
for (int i = 1; i < dt.Rows.Count; i++)
{
historys += dt.Rows[i]["UserName"].ToString() +": "+dt.Rows[i]["Mind"].ToString() + " " +
Convert.ToDateTime(dt.Rows[i]["SumitTime"].ToString()).ToString("yyyy-MM-dd") + "</br>"; }
if (historys.Length == 0)
{
historys = "暂无审核意见";
}
return historys; }

查询视图:

CREATE VIEW [dbo].[View_BioPurchaseProInfo]
AS
SELECT a.*,b.PurchaseProID,
b.ProID,
ProName=dbo.FN_getProNameByProID(b.ProID),
b.ProCount,b.ProPrice,
b.isInvoice,b.isPay,
b.InvoicePrice FROM BioPurchaseAppInfo AS a INNER JOIN BioPurchasePro
AS b ON b.PurchaseID = a.PurchaseID

公用方法的封装:

 /// <summary>
/// 获取流程主题
/// </summary>
/// <param name="TaskID"></param>
/// <param name="TaskTableID"></param>
/// <returns></returns>
public static String getTaskListSubjectByCondition(string listid)
{
object obj= SqlComm.GetObjectByCondition("TaskListRecord", " TOP 1 Subject ", " ListID=" + listid + " ORDER BY ListID desc");
if (obj != null)
{
return obj.ToString();
}
else
{
return null;
}
} /// <summary>
/// 首次接受人
/// </summary>
/// <param name="listid"></param>
/// <returns></returns>
public static String getFirstAccpterByCondition(string listid)
{
object obj = SqlComm.GetObjectByCondition("TaskListRecord", " TOP 1 FirstAccepter ", " ListID=" + listid + " ORDER BY ListID desc");
if (obj != null)
{
return obj.ToString();
}
else
{
return null;
}
} /// <summary>
/// 首次传输人
/// </summary>
/// <param name="listid"></param>
/// <returns></returns>
public static String getFirstTransmitterByCondition(string listid)
{
object obj = SqlComm.GetObjectByCondition("TaskListRecord", " TOP 1 FirstTransmitter ", " ListID=" + listid + " ORDER BY ListID desc");
if (obj != null)
{
return obj.ToString();
}
else
{
return null;
}
}

修改的后台代码:

public partial class ProPurchaseEdit: BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DepartMentBand();
getdata();
hiddenName();
getprobatchDetail();
} }
/// <summary>
/// 批号信息加载
/// </summary>
public void getprobatchDetail()
{
BioPurchaseBLL pbll = new BioPurchaseBLL();
string id = Request.QueryString["taskid"];
DataTable dt = pbll.getProBatchDetailByPurchaseID(id);
#region 加载产品批号信息
if (dt.Rows.Count > 0)
{
int count = dt.Rows.Count;
//2011年12月2日19:27:17
//显示添加批号的前端方法修改为:showobj
ClientScript.RegisterStartupScript(this.GetType(), "showobj", "showobj('divprobatch');setaddbatchs(" + count + ");", true);
string proname = "";
string proId = "";
string txtProCount = "";
string txtProBatch = "";
string txtProBoxNum = "";
string txtMarkDate = "";
string txtExPirationDate = "";
string PurchaseProID = ""; for (int i = 0; i < dt.Rows.Count; i++)
{
proname += dt.Rows[i]["proName"].ToString() + ",";
proId += dt.Rows[i]["proID"].ToString() + ",";
txtProCount += dt.Rows[i]["proCount"].ToString() + ",";
txtProBatch += dt.Rows[i]["batchNum"].ToString() + ",";
txtProBoxNum += dt.Rows[i]["boxNum"].ToString() + ",";
txtMarkDate += Convert.ToDateTime(dt.Rows[i]["makeDate"].ToString()).ToString("yyyy-MM-dd") + ",";
txtExPirationDate += Convert.ToDateTime(dt.Rows[i]["expirationDate"].ToString()).ToString("yyyy-MM-dd") + ",";
PurchaseProID += dt.Rows[i]["purchaseProID"].ToString() + ","; } ClientScript.RegisterStartupScript(this.GetType(), "setbatchsvalues", "setbatchsvalues('" + proname + "','" + proId + "','"
+ txtProCount + "','" + txtProBatch + "','" + txtProBoxNum + "','" + txtMarkDate + "','" + txtExPirationDate + "','" + PurchaseProID + "');", true);
#endregion //判断是否存在此产品的批号信息
if (dt.Rows.Count>0)
{
//当前登录用户是否有产品质量审核权限 值50
if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",50,"))
{ ClientScript.RegisterStartupScript(this.GetType(), "test", "showobj('proAuditing');", true);
if (pbll.getauditingProBatchCountByPurchaseID(id) != 0)
{
this.cb_Auditing.Checked = true;
}
}
else
{
if (pbll.getauditingProBatchCountByPurchaseID(id) != 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "test", "showobj('proAuditing');", true);
this.cb_Auditing.Checked = true;
this.cb_Auditing.Enabled = false;
} } //如果产品批号已经审核 并且 当前登录用户是仓库管理员 则显示相应控件
if (pbll.getauditingProBatchCountByPurchaseID(id) != 0 && SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",25,"))
{
ClientScript.RegisterStartupScript(this.GetType(), "test1", "showobj('stockAuditing');", true);
}
}
}
} /// <summary>
/// 隐藏指定name控件
/// </summary>
/// <returns></returns>
public string hiddenName()
{
if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",48,") ||
SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",49,"))
{
return "addrow/deleteRow/chpro";
}
else
{
return "abcdefg";
}
}
protected void getdata()
{
////如果获取阐述不存在直接跳转。
if (Request.QueryString["taskid"] == null || Request.QueryString["listid"] == null)
{
Response.Write("<script>window.history.go(-1);this.close()</script>");
}
string taskid = Request.QueryString["taskid"].ToString();
string listid = Request.QueryString["listid"].ToString();
//string taskid = "10";
//string listid = "50"; string rights= SqlComm.getUserRightsByUserId(Session["Userid"].ToString()); BioPurchaseBLL purchasebll=new BioPurchaseBLL();
ViewBioPurchaseAppInfo viewpurchase = purchasebll.getViewBioPurchaseAppInfo(taskid);
ddlDepartMent.SelectedValue = viewpurchase.DepartMentID.ToString();
this.lbApplayUser.Text = viewpurchase.AppUserName.ToString();
this.lbOldRealName.Text = viewpurchase.RealUserName;
this.txtRealUserID.Text = viewpurchase.RealUserID.ToString();
this.lbTime.Text = Convert.ToDateTime(viewpurchase.OrderTime).ToString("yyyy-MM-dd");
this.lbOldSenComName.Text = viewpurchase.CopanyName;
this.txtSendCom.Text = viewpurchase.sendComID.ToString();
this.ddlOrderCom.Text = viewpurchase.OrderCom.ToString();
this.ddlSaleType.Text = viewpurchase.WholeType;
this.ddlTypes.Text = viewpurchase.sendType; //判断是否数据库中已经添加了财务审核的记录
if (viewpurchase.BillNo != "" && viewpurchase.BillNo != null)
{
this.lbBill.Visible = true;
this.lbisPay.Visible = true;
this.isPay.Visible = true;
this.txtBillNo.Visible = true;
this.lbPayuser.Visible = true;
this.txtBillUser.Visible = true;
this.btnbilluserchoose.Visible = true;
this.txtBillUser.Text = viewpurchase.BillUserID.ToString();
this.txtBillNo.Text = viewpurchase.BillNo.ToString();
this.lbBillUserName.Text = viewpurchase.BillUserName.ToString();
int paycount= int.Parse(SqlComm.GetObjectByCondition("dbo.BioPurchasePro", "count(isPay)",
" PurchaseID=" + Request.QueryString["taskid"].ToString()).ToString());
if (paycount > 0)
{
this.isPay.Checked = true;
} }
else
{
if (rights.Contains(",48,"))
{
this.lbBill.Visible = true;
this.lbisPay.Visible = true;
this.isPay.Visible = true;
this.txtBillNo.Visible = true;
this.lbPayuser.Visible = true;
this.txtBillUser.Visible = true;
this.btnbilluserchoose.Visible = true;
this.txtBillUser.Text = Session["Userid"].ToString();
this.txtBillNo.Text = DateTime.Now.ToString("yyyyMMdd") + taskid;
this.btnreject.Visible = true;
}
} //判断当前用户是否有仓库管理权限值25
if (rights.Contains(",25,"))
{
this.btbRun.Visible = true;
this.ddlStock.DataSource = SqlComm.GetDataByCondition("BioErpStockTable", "ID,StockName", null);
this.ddlStock.DataTextField = "StockName";
this.ddlStock.DataValueField = "ID";
this.ddlStock.DataBind();
} //根据表单单号在流程表中查询历史审批记录绑定信息
this.lbRemarks.Text= SqlComm.getTaskListRecordsMindsByCondition(taskid, ((int)TaskNavigateEmun.ProPurchase).ToString());
this.hf_subject.Value = SqlComm.getTaskListSubjectByCondition(listid);
this.hf_FirstTransmitter.Value = SqlComm.getFirstTransmitterByCondition(listid);
this.hf_FirstAccepter.Value = SqlComm.getFirstAccpterByCondition(listid);
//根据表单编号查询产品基本信息并绑定
DataTable dt = SqlComm.GetDataByCondition("View_BioPurchaseProInfo",
"ProID,ProName,ProCount,ProPrice,InvoicePrice,purchaseProID", "PurchaseID=" + taskid).Tables[0];
int count = dt.Rows.Count;
ClientScript.RegisterStartupScript(this.GetType(), "addrows", "addrows(" + (count-1) + ");", true); string proNames = "";
string proIDs = "";
string proCounts = "";
string proPrices = "";
decimal totalInvoicePrice = 0;
string purchaseProIDs = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
proIDs+= dt.Rows[i]["ProID"].ToString()+",";
proNames+=dt.Rows[i]["ProName"].ToString()+",";
proCounts+= dt.Rows[i]["ProCount"].ToString()+",";
proPrices+= decimal.Parse(dt.Rows[i]["ProPrice"].ToString()).ToString("0.0")+",";
totalInvoicePrice += decimal.Parse(dt.Rows[i]["InvoicePrice"].ToString());
purchaseProIDs += dt.Rows[i]["purchaseProID"].ToString() + ",";
}
ClientScript.RegisterStartupScript(this.GetType(), "setValues",
"setValues('" + proNames + "','" + proIDs + "','" + proCounts + "','" + proPrices + "','" + purchaseProIDs + "');", true);
this.lbTotalInvoicePrice.Text = totalInvoicePrice.ToString("0.0");
} /// <summary>
/// 绑定部门信息
/// </summary>
private void DepartMentBand()
{
ddlDepartMent.DataSource = SqlComm.getDepartMent();
ddlDepartMent.DataTextField = "DepartmentName";
ddlDepartMent.DataValueField = "DepartmentId";
ddlDepartMent.DataBind();
ddlDepartMent.Items.Add(new ListItem("--请选择部门--", "0"));
ddlDepartMent.SelectedValue = "0";
}
protected void btnSubmit_Click(object sender, EventArgs e)
{ TaskListRecord record = new TaskListRecord();
record.Accepter = int.Parse(this.txtNetUserId.Text.Trim());
record.AuditingSate = 0;
record.DepartMentId = int.Parse(this.ddlDepartMent.SelectedValue.ToString());
record.FirstAccepter = int.Parse(this.hf_FirstAccepter.Value);
record.FirstSumitTime = Convert.ToDateTime(this.lbTime.Text);
record.FirstTransmitter = int.Parse(this.hf_FirstTransmitter.Value);
record.Mind = this.txtRemark.Text;
record.Pass = 1;
record.Subject = hf_subject.Value;
record.SumitTime = DateTime.Now;
record.TaskID = int.Parse(Request.QueryString["taskid"].ToString());
record.TaskTableID = (int)TaskNavigateEmun.ProPurchase;
record.Transmitter = int.Parse(Session["Userid"].ToString()); //财务审核
if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",48,"))
{
SqlComm.UpdateTableByCondition("BioPurchaseAppInfo", "BillUserID='" +
this.txtBillUser.Text.Trim() + "',BillNo='" + this.txtBillNo.Text.Trim() + "'", " PurchaseID=" + Request.QueryString["taskid"].ToString());
int ispay = 0;
if (isPay.Checked)
{
ispay = 1;
}
SqlComm.UpdateTableByCondition("BioPurchasePro", "ispay=" + ispay, "PurchaseID=" + Request.QueryString["taskid"].ToString()); } //有产品批号添加权限的人员来进行
if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",49,"))
{
SqlComm.DeleteTableByCondition("BioPuchaseProBatch", " where purchaseProID IN
(SELECT PurchaseProID FROM dbo.BioPurchasePro WHERE PurchaseID=" + Request.QueryString["taskid"].ToString() + ")"); //2011年11月29日22:30:00
// string proid = Request["PurchaseProID"]; 修改为 string proid = Request["PurchaseProID2"];
string proid = Request["PurchaseProID2"];
string procount = Request["txtProCount0"];
string txtProBatch = Request["txtProBatch0"];
string txtProBoxNum = Request["txtProBoxNum0"];
string txtMarkDate = Request["txtMarkDate0"];
string txtExPirationDate = Request["txtExPirationDate0"]; if (proid != null)
{
string[] proids = proid.Split(',');
string[] procounts = procount.Split(',');
string[] txtProBatchs = txtProBatch.Split(',');
string[] txtProBoxNums = txtProBoxNum.Split(',');
string[] txtMarkDates = txtMarkDate.Split(',');
string[] txtExPirationDates = txtExPirationDate.Split(',');
BioPurchaseBLL purchasebll = new BioPurchaseBLL();
for (int i = 0; i < proids.Length; i++)
{
BioPuchaseProBatch probatch = new BioPuchaseProBatch();
probatch.purchaseProID = int.Parse(proids[i]);
probatch.proCount = int.Parse(procounts[i]);
probatch.batchNum = txtProBatchs[i];
probatch.boxNum = txtProBoxNums[i];
probatch.makeDate = Convert.ToDateTime(txtMarkDates[i]);
probatch.expirationDate = Convert.ToDateTime(txtExPirationDates[i]);
probatch.realityProCount = int.Parse(procounts[i]);
purchasebll.BioPuchaseProBatchAdd(probatch);
}
}
} //如果有产品质量审核的权限
if (SqlComm.getUserRightsByUserId(Session["Userid"].ToString()).Contains(",50,"))
{
if (cb_Auditing.Checked)
{
//2011年12月3日
//修改条件 去掉了第一个"Where"
bool isok = SqlComm.UpdateTableByCondition("dbo.BioPuchaseProBatch", "isAuditing=1",
" ProBatchID IN (SELECT ProBatchID FROM dbo.BioPuchaseProBatch WHERE purchaseProID IN (SELECT PurchaseProID FROM dbo.BioPurchasePro WHERE PurchaseID="
+ Request.QueryString["taskid"].ToString() + "))");
}
} ////判断当前登录用户是否是部门经理,并且是否是当前部门
//if (Web.UserLogin.user.RoleId == ((int)RoseEmun.DepartMentManager) && Web.UserLogin.user.DepartmentId
== int.Parse(this.ddlDepartMent.SelectedValue.ToString()))
//{ if (SqlComm.TaskListRecordAdd(record) != 0)
{
SqlComm.UpdateTableByCondition("dbo.TaskListRecord", " AuditingSate=1", " ListID=" + Request.QueryString["listid"].ToString());
//ClientScript.RegisterStartupScript(this.GetType(), "test",
"alert('合同申请提交成功,下次审批人员编号:" + this.txtNetUserId.Text + "')", true);
} //} Response.Redirect("~/Web/Desk.aspx");
} //拒绝审核
protected void Button1_Click(object sender, EventArgs e)
{
TaskListRecord record = new TaskListRecord();
record.Accepter = int.Parse(this.hf_FirstTransmitter.Value);
record.AuditingSate = 0;
record.DepartMentId = int.Parse(this.ddlDepartMent.SelectedValue.ToString());
record.FirstAccepter = int.Parse(this.hf_FirstAccepter.Value);
record.FirstSumitTime = Convert.ToDateTime(this.lbTime.Text);
record.FirstTransmitter = int.Parse(this.hf_FirstTransmitter.Value);
record.Mind = this.txtRemark.Text;
record.Pass = 1;
record.Subject = hf_subject.Value;
record.SumitTime = DateTime.Now;
record.TaskID = int.Parse(Request.QueryString["taskid"].ToString());
record.TaskTableID = (int)TaskNavigateEmun.ProPurchase;
record.Transmitter = int.Parse(Session["Userid"].ToString()); //判断当前登录用户是否是部门经理,并且是否是当前部门
if (Web.UserLogin.user.RoleId == ((int)RoseEmun.DepartMentManager) && Web.UserLogin.user.DepartmentId
== int.Parse(this.ddlDepartMent.SelectedValue.ToString()))
{
if (SqlComm.TaskListRecordAdd(record) != 0)
{
SqlComm.UpdateTableByCondition("dbo.TaskListRecord", " AuditingSate=1", " ListID=" + Request.QueryString["listid"].ToString());
ClientScript.RegisterStartupScript(this.GetType(), "test", "alert('购进审核请提交成功,下次审批人员编号:" + this.txtNetUserId.Text + "')", true);
}
}
Response.Redirect("~/Web/Desk.aspx"); } protected void btbRun_Click(object sender, EventArgs e)
{
//判断是否已经质量审核
if (cb_Auditing.Checked == false)
{
ClientScript.RegisterStartupScript(this.GetType(), "test3", "alert('请完成产品质量审核后才能入库')", true); return;
}
//判断是否选择了 仓库审核合格 if (cb_Stock.Checked == false)
{
ClientScript.RegisterStartupScript(this.GetType(), "test3", "alert('请先选择仓库审核合格,否则不能入库')", true);
return;
} string proId = Request["proIds"].ToString();
string procount = Request["txtProCount0"].ToString();
string ProBoxNum = Request["txtProBoxNum0"].ToString();
string ProBatch = Request["txtProBatch0"].ToString();
string MarkDate = Request["txtMarkDate0"].ToString();
string ExPirationDate = Request["txtExPirationDate0"].ToString();
string PurchaseProID = Request["PurchaseProID2"].ToString(); string[] proIds = proId.Split(',');
string[] procounts = procount.Split(',');
string[] ProBoxNums = ProBoxNum.Split(',');
string[] ProBatchs = ProBatch.Split(',');
string[] MarkDates = MarkDate.Split(',');
string[] ExPirationDates = ExPirationDate.Split(',');
string[] PurchaseProIDs = PurchaseProID.Split(','); ArrayList arraylist=new ArrayList();
for (int i = 0; i < PurchaseProIDs.Length; i++)
{ object o= SqlComm.GetObjectByCondition("BioPurchasePro", "ProPrice", " PurchaseProID=" + PurchaseProIDs[i]);
if (o != null)
{
arraylist.Add(o.ToString());
}
} BioProStock prostock = new BioProStock();
//添加产品批号等信息到产品库存表
BioPurchaseBLL pbll = new BioPurchaseBLL();
for (int i = 0; i < proIds.Length; i++)
{
prostock.ProID = int.Parse(proIds[i]);
prostock.BathNum = ProBatchs[i];
prostock.ProCout = int.Parse(procounts[i]);
prostock.StockPrice = decimal.Parse(arraylist[i].ToString());
prostock.MakeDate = Convert.ToDateTime(MarkDates[i]);
prostock.ExpirateDate = Convert.ToDateTime(ExPirationDates[i]);
prostock.StockID = int.Parse(this.ddlStock.SelectedValue.ToString());
pbll.BioProStockAdd(prostock);
} TaskListRecord record = new TaskListRecord();
record.Accepter = int.Parse(this.hf_FirstTransmitter.Value);
record.AuditingSate = 2;
record.DepartMentId = int.Parse(this.ddlDepartMent.SelectedValue.ToString());
record.FirstAccepter = int.Parse(this.hf_FirstAccepter.Value);
record.FirstSumitTime = Convert.ToDateTime(this.lbTime.Text);
record.FirstTransmitter = int.Parse(this.hf_FirstTransmitter.Value);
record.Mind = this.txtRemark.Text;
record.Pass = 1;
record.Subject = hf_subject.Value;
record.SumitTime = DateTime.Now;
record.TaskID = int.Parse(Request.QueryString["taskid"].ToString());
record.TaskTableID = (int)TaskNavigateEmun.ProPurchase;
record.Transmitter = int.Parse(Session["Userid"].ToString()); if (SqlComm.TaskListRecordAdd(record) != 0)
{
SqlComm.UpdateTableByCondition("dbo.TaskListRecord", " AuditingSate=1", " ListID=" + Request.QueryString["listid"].ToString()); }
}
}

ERP产品采购申请管理(三十八)的更多相关文章

  1. NeHe OpenGL教程 第三十八课:资源文件

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  2. Java进阶(三十八)快速排序

    Java进阶(三十八)快速排序 前言 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 ...

  3. SQL注入之Sqli-labs系列第三十八关、第三十九关,第四十关(堆叠注入)

    0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注入更为准确.堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新 的查询或者终止查询,可以达到修改数据 ...

  4. 微信小程序把玩(三十八)获取设备信息 API

    原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx. ...

  5. 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)

    1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...

  6. ERP采购申请管理(三十九)

    获取当前表单在流程中的状态: /// <summary> /// 获取当前表单在流程表中的状态 /// </summary> /// <param name=" ...

  7. bp(net core)+easyui+efcore实现仓储管理系统——入库管理之二(三十八)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  8. 【FastDev4Android框架开发】打造QQ6.X最新版本号側滑界面效果(三十八)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50253925 本文出自:[江清清的博客] (一).前言: [好消息] ...

  9. Deep learning:三十八(Stacked CNN简单介绍)

    http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络 ...

随机推荐

  1. 在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter已被废弃,目前找到解决方案就有两种

    1 直接实现WebMvcConfigurer (官方推荐) 例如: @Configuration public class WebMvcConfg implements WebMvcConfigure ...

  2. loadrunner controller如何执行测试

    使用Virtual User Generator编写需要测试的脚本   打开controller,在左侧的available scripts里选择需要测试的脚本添加(Add)到scripts in s ...

  3. FZU - 1989 AntiAC

     Problem 1989 AntiAC Accept: 93    Submit: 444Time Limit: 4000 mSec    Memory Limit : 32768 KB  Prob ...

  4. Ubuntu(16.04.2)学习笔记(一)如何解决dpkg: error processing install-info

    一.服务器安装软件是出现以下的错误信息: www@TinywanAliYun:~$ sudo apt-get install letsencrypt Reading package lists... ...

  5. STM32建立基本项目

    1.下载固件库解压 2.Keil建立项目,项目下建立三个文件夹3.各目录下从固件库中拷贝对应的目录 4.修改main.c文件 5.修改C++ 6.修改Include 7,编译.

  6. 解决virtualbox与mac文件拖拽问题

    apt-get purge virtualbox-guest-x11apt-get autoremove --purgerebootapt-get updateapt-get dist-upgrade ...

  7. luogu 1026 统计单词个数

    此题 字符串匹配+dp 确实我的kmp,哈希需要练一练了,忘干净可咋办 补救用下string,十分方便 e.g: 1.询问a[i]是否是x子串,可以截取并判断前缀 x为截取串 x.find(a[i]) ...

  8. C# this调用构造函数及析构函数

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace trai ...

  9. commons-lang3-3.2.jar中的常用工具类的使用

    这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...

  10. CMake 实践教程

    本篇博客是根据 <<CMake Practice>> 一文编写, 目的有三: 其一: 提取出其中的精要部分; 其二: 对其中不易理解的地方进行简要说明; 其三: 方便后续查找复 ...