产品数量的前端(键盘抬起的事件):

                 <td><input type="text" name="proCount" οnkeyup="isProCountFull(this)" class="{required:true,min:1,digits:true}" style="width: 100px" /></td>

js代码:

<script type="text/javascript">    function isProCountFull(obj) {var proid = $($(obj).parent().parent().find("input[name='proID']")[0]).val();var procount=$(obj).val();if (proid != '' && proid != null) {if (procount != '' && procount != null && procount != '0') {$.ajax({type: "POST", //设置提交方式url: "getProCount.aspx",data: "proid=" + proid + "&procount=" + procount, //提交数据success: function (msg) {if (msg == "OK") {                               } else {alert(msg);$(obj).attr("value", "");}}});}} else {alert("请先选择产品");$(obj).attr("value", "");}}//判断是否有重复名称的产品function issameproid(obj) {var proidcount = 0;
//            proidscount = $(document).find("input[name='proID']").length;var proid = $($(obj).parent().find("input[name='proID']")[0]).val();$(document).find("input[name='proID']").each(function () {if ($(this).val() == proid) {proidcount++;if (proidcount >= 2) {alert("选择产品有重复,请重新选择");$($(obj).parent().find("input[name='proName']")[0]).attr("value", "");$($(obj).parent().find("input[name='proId']")[0]).attr("value", "");}}});}</script>

判断产品的总量是否到达:

   var isprocount=false;$("#trprobatch").show();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)) {isprocount=true;if(isprocount){$(this).parent().parent().find("input[name='txtProCount0']").attr("value", "0");alert("产品总数已经达到,不能为此产品添加批号");}// event.stopPropagation();}}

后端代码(getProCount.aspx):

  protected void Page_Load(object sender, EventArgs e){string returnResult = "";//定义返回状态this.Response.Clear();//获取前端的数据string proid = Request.Form["proid"].ToString();string procount = Request.Form["procount"].ToString();returnResult = proid + "  " + procount;object obj= SqlComm.GetObjectByCondition("dbo.BioProStock", "isnull(sum(ProCout),0)", " ProID=" + proid);if (obj != null){if (int.Parse(obj.ToString()) < int.Parse(procount)){returnResult = "此产品库存不足,最多发货数据" + obj.ToString();}else{returnResult = "OK";}  }this.Response.Write(returnResult);this.Response.End();}

根据产品的编号获取产品的名称:

-- Description: 根据产品的编号获取产品的名称
-- =============================================
CREATE FUNCTION FN_getProNameByProID
(@ProID int
)
RETURNS nvarchar(100)
AS
BEGINDECLARE @ProName nvarchar(50) SELECT  @ProName= ProName FROM BiotbProduct WHERE ProID=@ProIDRETURN  @ProName
END

选择发货产品批次的页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SendGoodsSelectProStock.aspx.cs" Inherits="BioErpWeb.SendGoods.SendGoodsSelectProStock" %><!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/Style.css" rel="stylesheet" type="text/css" /><style type="text/css">#form1{text-align: center;}.style10{height: 30px;width: 763px;}.style2{width: 100%;}.style11{width: 74px;}.style12{width: 217px;}.style13{width: 91px;}.style14{width: 47px;}.style15{width: 70px;}.style18{height: 44px;width: 763px;}.style19{width: 763px;}#tb1{width: 767px;}</style><script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script><script type="text/javascript">var procount = 0;function stockClick(control) {var tr = control.parentNode.parentNode;var txts = tr.getElementsByTagName('td');var rowIndex = control.parentNode.parentNode.rowIndex;           var input = control.parentNode;var inputhf = input.getElementsByTagName('input');document.getElementById('lbproStockID').innerText = txts[1].innerHTML;document.getElementById('Label2').innerText = txts[2].innerHTML;document.getElementById('lbProBatch').innerText = txts[3].innerHTML;procount= parseInt(txts[4].innerHTML);document.getElementById('lbExpDate').innerText = txts[5].innerHTML;document.getElementById('lbStockDate').innerText = txts[6].innerHTML;document.getElementById('lbMakeDate').innerText = txts[7].innerHTML;document.getElementById('lbMakeDate').innerText = txts[7].innerHTML;document.getElementById('lbstockid').innerText = txts[8].innerHTML;}function returnSendEdit() {if ($("#lbStockID").html() == "" || $("#txtCount").val() == "" || $("#txtCount").val() == "0") {alert("请选择产品批次信息,并填写数量");} else {var returnbacklist = new Array($("#lbproStockID").html(), $("#lbProBatch").html(), $("#txtCount").val(), $("#lbExpDate").html(), $("#lbStockDate").html(), $("#lbMakeDate").html(), $("#lbstockid").html());window.returnValue = returnbacklist;window.close();}}//判断填写产品数量是否超出当前产品库存function isOvercount() {if (parseInt($("#txtCount").val()) > procount) {alert("填写产品数量越界,请重新填写");$("#txtCount").attr("value", "0");}}</script>
</head>
<body><form id="form1" runat="server"><div ><div style="margin:0px auto; width:762px;"><br /><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="765px" CssClass="gray2"><Columns><asp:TemplateField><ItemTemplate><input id= "Radio1" οnclick="stockClick(this)" value="<%#DataBinder.Eval(Container.DataItem,"id")%>" name= "stock" type= "radio" />                    </ItemTemplate><HeaderStyle CssClass="blue6" /><ItemStyle Width="1%" /></asp:TemplateField><asp:BoundField DataField="ID" HeaderText="库存号" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="3%" /></asp:BoundField><asp:BoundField DataField="proName" HeaderText="产品全名" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="14%" /></asp:BoundField><asp:BoundField DataField="BathNum" HeaderText="批号" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="6%" /></asp:BoundField><asp:BoundField DataField="ProCout"  HeaderText="数量" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="3%" /></asp:BoundField><asp:BoundField DataField="ExpirateDate" HeaderText="有效期" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="false" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="4%" /></asp:BoundField><asp:BoundField DataField="StockDate" HeaderText="入库日期" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="false" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="4%" /></asp:BoundField><asp:BoundField DataField="makeDate" HeaderText="生产日期" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="false" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="4%" /></asp:BoundField><asp:BoundField DataField="StockID" HeaderText="仓库编号"  HtmlEncode="false" ><HeaderStyle CssClass="blue6" /><ItemStyle Width="4%" /></asp:BoundField></Columns></asp:GridView></div><div style="margin:0px auto; width:751px;"><table id="tb1" cellpadding="0" cellspacing="0"><tr><td id="tdNoData" style="display:none; color: #FF0000; font-size: 25px; font-weight: inherit;line-height: 30px;" class="style18">这个产品现在没有库存!</td></tr><tr id="tr1"><td style="text-align:left;" class="style10">注意:你填写的数量请不要超过你选择的库存的数量!</td></tr><tr id="tr2"><td class="style19"><table class="style2" border="1" style="border-collapse:collapse;" ><tr class="blue6"><td class="style11">库存号</td><td class="style12">产品全名</td><td class="style13">批号</td><td class="style14">数量</td><td class="style11">有效期</td><td class="style15">入库日期</td><td>生产日期</td><td>仓库编号</td></tr><tr><td class="style11"><asp:Label ID="lbproStockID" runat="server" CssClass="gray2"></asp:Label></td><td class="style12"><asp:Label ID="Label2" runat="server" CssClass="gray2"></asp:Label></td><td class="style13"><asp:Label ID="lbProBatch" runat="server" CssClass="gray2"></asp:Label></td><td class="style14"><asp:TextBox ID="txtCount"  οnkeyup="isOvercount()" runat="server" CssClass="input" Width="41px"></asp:TextBox>                    </td><td class="style11"><asp:Label ID="lbExpDate" runat="server" CssClass="gray2"></asp:Label></td><td class="style15"><asp:Label ID="lbStockDate" runat="server" CssClass="gray2"></asp:Label></td><td><asp:Label ID="lbMakeDate" runat="server" CssClass="gray2"></asp:Label></td><td><asp:Label ID="lbstockid" runat="server" CssClass="gray2"></asp:Label></td></tr></table></td></tr><tr><td class="style19"><table cellpadding="0" cellspacing="0"  style=" width:99%; margin:10px;" ><tr><td  style=" text-align:right;"><span><input id="Button1" class="btn1" οnclick="returnSendEdit()"  style=" width:80px;" type="button" value="确定" /></span><span><input id="Button2" class="btn2" style=" width:80px;" οnclick="{window.close()}" type="button" value="关闭" /></span></td></tr></table></td></tr><tr><td class="style19"></td></tr></table></div></div></form>
</body>
</html>

后台的代码:

  protected void Page_Load(object sender, EventArgs e){if (Request.QueryString["proID"] != null && Request.QueryString["proID"] != ""){this.GridView1.DataSource = SqlComm.GetDataByCondition("dbo.BioProStock", "*,ProName=dbo.FN_getProNameByProID(proid)", "ProId=" + Request.QueryString["proID"]);this.GridView1.DataBind();}}

发货产品添加批号,对应修改产品库存数量:

--发货产品添加批号,对应修改产品库存数量
--======================================
CREATE PROC [dbo].[BioProStockUpdateCount]
(@ID INT,@ProCout INT --此产品批次的数量
)
AS
DECLARE @realCount INT
SELECT @realCount= ProCout FROM dbo.BioProStock WHERE ID=@ID
IF(@realCount>@ProCout)
BEGIN UPDATE dbo.BioProStock SET ProCout=@realCount-@ProCoutWHERE ID=@ID
END
ELSEBEGINDELETE FROM dbo.BioProStock WHERE ID=@IDEND

转载于:https://www.cnblogs.com/sunliyuan/p/7619994.html

ERP产品销售发货判断库存功能(四十二)相关推荐

  1. ERP产品销售发货--发货管理(四十一)

    发货详细信息的业务实体视图: CREATE VIEW [dbo].[View_BioSendAppInfo] AS SELECTSendId,BillNo,Subject,DepartMentID,D ...

  2. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  3. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  4. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨) ...

  5. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨 ...

  6. 【正点原子STM32连载】第四十二章 FLASH模拟EEPROM实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  7. maya批量命名插件_教你玩转MAYA的四十二精华造诣(第一期)

    最近在整理文档时发现我收藏了一篇关于MAYA应用技巧的文章,突然有兴趣看了看,结果发现老版本MAYA中的某些内容很多已经无法应用于新版本.我又上网查了一下,结果发现网上好多帖子和我收藏的这篇内容基本一 ...

  8. 如何选择适合你的兴趣爱好(四十二),风筝

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十二讲--风筝.风筝是在纸鸢背上系上一条弓弦,或在纸鸢头部按一个风笛,当纸升空以后,强风通过笛,或者引起弓弦的 ...

  9. 【Microsoft Azure 的1024种玩法】四十二. 通过Windows Admin Center快速创建Azure Virtual Machines

    [简介] Windows Admin Center是微软开发的一套可以部署在本地基于浏览器的GUI的工具集平台,其平台可用于管理Windows相关服务器和PC机器,我们可以利用Windows Admi ...

最新文章

  1. saej1929_(1929年-2020年)
  2. 交换机开发(二)—— 三层交换机报文转发过程
  3. 【人脸识别】Cos Face中的LMCL详解
  4. html中hr的各种样式使用
  5. 小记 -- cadence安装记录
  6. 漂浮广告代码html,漂浮广告的JS代码(经典)
  7. 农夫山泉赴港上市,迷之操作暗藏“算计”
  8. AXD 查看register笔记
  9. it,GitHub与GitLab的区别
  10. java 拖拉机_Java——io流
  11. mysql按照首字母排序
  12. 万亿蚂蚁的高光与隐忧
  13. 好想与你天长地久,共度岁月
  14. 华为荣耀屏鸿蒙,荣耀智慧屏:华为鸿蒙迈出的第一步
  15. Python3 print pprint
  16. Oracle PL-SQL 的使用
  17. 脑机接口(BCI)常用的实验范式
  18. 微积分拾遗——链式法则
  19. [激光器原理与应用-7]: 半导体制冷片与TEC温控器
  20. 个人计算机的操作系统,个人计算机Win7操作系统

热门文章

  1. 汉威电子持续发力智慧城市产业链
  2. 易维帮助台:让IT运维服务与企业业务发展需求高度融合
  3. msyql 1062
  4. Java:处理PDF
  5. PHP学习笔记01——基础语法
  6. Cacti实现网络监控的使用心得(1)
  7. 1012. 数字分类 (20)-PAT乙级真题
  8. 微型计算机基础知识,微型计算机的基础知识
  9. Zookeeper原理架构
  10. webstorm简单介绍,webstrom基本使用