Json 实现数据添加/更新 的页面效果

以上为实现的效果截图

 

HTML代码如下:

 

<%@ Page Language="C#" MasterPageFile="~/Admin/MasterIndex.master" AutoEventWireup="true"
    CodeFile="SellOpt.aspx.cs" Inherits="bssm_Sell_SellOpt" Title="销售签单" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <link type="text/css" rel="stylesheet" href="http://www.cnblogs.com/js/showwinmin1css/css.css" />

    <script type="text/javascript" src="http://www.cnblogs.com/js/Global.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/jquery-1.2.6.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/jquery-layer.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/json.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/Date.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/My97DatePicker/WdatePicker.js"></script>

    <script>
        var purID =  '<%=string.IsNullOrEmpty(Request.QueryString["ID"])?"":Request.QueryString["ID"]%>';     
        var hidToProduct = '<%=hidToProduct.ClientID %>';
        var txtToname = '<%=txtToname.ClientID %>';
        var txtShouldReceive = '<%=txtShouldReceive.ClientID %>';
        var hidProductCount = '<%=hidProductCount.ClientID %>';
        var hidtoCustomer = '<%=hidtoCustomer.ClientID %>';
        var hidToUser = '<%=hidToUser.ClientID %>';
        var txtContractNO = '<%=txtContractNO.ClientID %>';
        var hidPdtModels = '<%=hidPdtModels.ClientID %>'
    </script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/SellOpt.js"></script>

    <script type="text/javascript" src="http://www.cnblogs.com/js/prototype.js"></script>

    <asp:HiddenField ID="hidPdtModels" runat="server" />
    <asp:HiddenField ID="hidToProduct" runat="server" />
    <asp:HiddenField ID="hidtoCustomer" runat="server" />
    <asp:HiddenField ID="hidToUser" runat="server" />
    <asp:HiddenField ID="hidProductCount" runat="server" />
    <asp:HiddenField ID="hidpPay" runat="server" />
    <asp:HiddenField ID="txtToname" runat="server"></asp:HiddenField>
    <asp:TextBox ID="txtShouldReceive" runat="server" Style="display: none;"></asp:TextBox>
    <div class="infotit">
        <h2>
            销售签单</h2>
        <Leixun:loginInfo runat="server" ID="loginInfo1" />
    </div>
    <!--info tit -->
    <div class="editbar">
        <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" CssClass="btn"
            OnClientClick="return  gettrcount()" />
        <input class="btn" οnclick="javascript:window.location='SellList.aspx';" type="button"
            value="销售单列表" />
    </div>
    <!--edit bar -->
    <div style="border: 1px solid #ccc; border-bottom: none">
        <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bartb">
            <tr>
                <td>
                    销售编号:<asp:TextBox ID="txtContractNO" class="n_input" runat="server"></asp:TextBox></td>
                <td>
                    &nbsp;&nbsp;&nbsp;经手人<span class="fc_red">*</span>:
                    <asp:TextBox ID="txtToUser" runat="server" ReadOnly="True" class="n_input"></asp:TextBox><image
                        src="http://www.cnblogs.com/admin/ui/s2.gif" style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/userselect.aspx?NO=<%=hidToUser.ClientID %>&name=<%=txtToUser.ClientID %>&Type=radio')" /><image
                            style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/useradd.aspx?sid=<%=hidToUser.ClientID %>&name=<%=txtToUser.ClientID %>')"
                            src="http://www.cnblogs.com/admin/ui/s1.gif" /><asp:RequiredFieldValidator ID="RequiredFieldValidator2"
                                runat="server" ErrorMessage="销售员不能为空" ControlToValidate="txtToUser" Display="Dynamic"></asp:RequiredFieldValidator></td>
                <td rowspan="2" valign="top">
                    备注:
                    <asp:TextBox ID="txtMemo" TextMode="MultiLine" runat="server" Style="width: 240px;
                        height: 50px; vertical-align: text-top"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    客&nbsp;&nbsp;户 <span class="fc_red">*</span> :<asp:TextBox ID="txtToCustomer" runat="server"
                        ReadOnly="True" class="gys_input"></asp:TextBox><image style="cursor: pointer;" src="http://www.cnblogs.com/admin/ui/s2.gif"
                            οnclick="showsentence('http://www.cnblogs.com/module/CustomerSelect.aspx?NO=<%=hidtoCustomer.ClientID %>&name=<%=txtToCustomer.ClientID %>&type=radio')" /><image
                                style="cursor: pointer;" οnclick="showsentence('http://www.cnblogs.com/module/CustomerAdd.aspx?sid=<%=hidtoCustomer.ClientID %>&name=<%=txtToCustomer.ClientID %>')"
                                src="http://www.cnblogs.com/admin/ui/s1.gif" /></td>
                <td>
                    签单日期<span class="fc_red">*</span>:
                    <asp:TextBox ID="txtCreator" CssClass="Wdate" runat="server" Width="167px" οnfοcus="new WdatePicker(this,'%Y-%M-%D %h:%m:%s',true)"></asp:TextBox>
                </td>
            </tr>
        </table>
        <div id="ctrltable" class="editbar2">
            [<a href="javascript:void(0)" οnclick="addsingle()">新增行</a>] [<a href="javascript:void(0)"
                οnclick="removeall()">删除所有行</a>]
        </div>
        <!--editbar2 -->
    </div>
    <!--top heights -->
    <div style="height: 40%; overflow: auto; border: 1px solid #ccc;" id="changediv">
        <table class="datalist2" id="tbProduct" style="width: 98%;" cellspacing="1">
            <tr>
                <th>
                    名称</th>
                <th style="width: 200px">
                    规格</th>
                <th style="width: 80px">
                    数量</th>
                <th style="width: 80px">
                    单价</th>
                <th style="width: 80px">
                    金额</th>
                <th style="width: 120px">
                    到货日期</th>
                <th style="width: 80px">
                    库存</th>
                <th style="width: 80px">
                    已送货数</th>
                <th style="width: 40px">
                    操作</th>
            </tr>
        </table>
    </div>
    <!--content -->
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="heji">
        <tr>
            <td width="62%">
                合计:<asp:TextBox ID="txthejiCount" ReadOnly="true" runat="server" Width="100px"></asp:TextBox>
            </td>
            <td width="19%">
            </td>
            <td width="19%">
                金额:<asp:TextBox ID="txthejoTotal" ReadOnly="true" runat="server" Width="100px"></asp:TextBox>
            </td>
        </tr>
    </table>
    <div class="footbar">
        制单人:<%=LeixunOA.UI.UserInfo.GetUserInfo().RealName %>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 制单时间:<%=DateTime.Now.ToShortDateString() %>
    </div>
    <!--footbar -->
    <div class="editbar">
        <asp:Button ID="Button1" runat="server" Text="保存" OnClick="btnSave_Click" CssClass="btn"
            OnClientClick="return  gettrcount()" />
        <input class="btn" οnclick="javascript:window.location='SellList.aspx';" type="button"
            value="销售单列表" />
    </div>
    <!--edit bar -->
</asp:Content>

 

JS代码如下:

 

        var trTemplate = '<tr><td><input type="hidden" /><input class="n_input" readonly = "readonly"  style="width: 85%" type="text"  /><image style="cursor: hand;" src="http://www.cnblogs.com/admin/ui/s2.gif" /></td><td><input readonly="readonly" class="n_input" style="width:90%;" type="text" /></td><td><input   class="n_input" style="width:90%;" type="text" value="0"  /></td><td><input    class="n_input" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" type="text" /></td><td><input readonly="readonly" οnfοcus="new WdatePicker(this,null,false)" class="n_input" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" type="text" /></td><td><input class="n_input" readonly="readonly" style="width:90%;" value="0" type="text" /></td><td><a href="javascript:void(0)" οnclick="jQuery(this).parent().parent().remove()">删除</a></td></tr>';
       
        var alldelid ="";
        var alldelname ="";
       
        jQuery(document).ready(function(){
       
            jQuery("form").submit(Form_Submit);
       
            RenderProduct();
        });
       
        function RenderProduct()
        {
            if(jQuery("#" + hidPdtModels).val() == "") return;
           
            var models = jQuery.parseJSON(jQuery("#" + hidPdtModels).val());
            jQuery(models).each(function(i,model){
                addsingle();
                jQuery("#tbProduct tr:last td:not(:first,:last)").removeAttr("disabled");
               
                jQuery("#tbProduct tr:last td:eq(0) input[type='hidden']").val(model.pdtID);
                jQuery("#tbProduct tr:last td:eq(0) input[type='text']").val(model.ProductName);
                jQuery("#tbProduct tr:last td:eq(1) input[type='text']").val(model.pNo);
                jQuery("#tbProduct tr:last td:eq(2) input[type='text']").val(model.pdtCount);
                jQuery("#tbProduct tr:last td:eq(3) input[type='text']").val(model.pdtPrice);
                jQuery("#tbProduct tr:last td:eq(4) input[type='text']").val(model.pdtPrice*model.pdtCount);
                jQuery("#tbProduct tr:last td:eq(5) input[type='text']").val(model.arriveTime != null?model.arriveTime.Format("yyyy-MM-dd"):"");
                jQuery("#tbProduct tr:last td:eq(6) input[type='text']").val(model.stockCount);
                jQuery("#tbProduct tr:last td:eq(7) input[type='text']").val(model.pPartInvCount);
               
                switch(model.pdtStatus)
                {
                    case 0:
                        //jQuery("#tbProduct tr:last td:last").html("");
                        break;
                    case 1:
                        jQuery("#tbProduct tr:last td:last").html("已送货");
                        break;
                    default:
                        jQuery("#tbProduct tr:last td:last").html("部分送货");                   
                        break;
                }
            });
        }
       
        function Form_Submit()
        {
           
            if(jQuery("#"+hidtoCustomer).val() == "")
            {
                alert("请选择销售客户!");
                return false;
            }
            if(jQuery("#"+hidToUser).val() == "")
            {
                alert("请选择经手人!");
                return false;
            }
            if(jQuery("#"+txtContractNO).val() == "")
            {
                alert("请填写编号!");
                return false;
            }
           
           
            var submitFlag = true;
            var models = new Array();
            jQuery("#tbProduct tr:gt(0)").each(function(i){
                var model = new Object();
                model.pdtID = jQuery(this).find("td:eq(0) input[type='hidden']").val();
                model.pdtCount = jQuery(this).find("td:eq(2) input[type='text']").val();
                model.pdtPrice = jQuery(this).find("td:eq(3) input[type='text']").val();
                model.arriveTime = jQuery(this).find("td:eq(5) input[type='text']").val();
            
                if(isNaN(parseInt(model.pdtID)))
                {
                    alert("请先选择产品!");
                    submitFlag = false;
                    return false;
                }
               
                if(isNaN(parseFloat(model.pdtCount)))
                {
                    alert("请输入数量!");
                    submitFlag = false;
                    return false;
                }
               
                if(isNaN(parseFloat(model.pdtPrice)))
                {
                    alert("请输入单价!");
                    submitFlag = false;
                    return false;
                }
               
                if(model. arriveTime == "")
                {
                    alert("请输入到货时间!");
                    submitFlag = false;
                    return false;
                }
                models.push(model);
            })   
           if(models.length == 0)
                submitFlag = false;

           var strModels = jQuery.toJSON(models);
          
           jQuery("#" + hidPdtModels ).val(strModels);
           return submitFlag;
        }
      
        function showsentence(urls)
        {
            var Url = urls;
            jQuery.layerSetup({
            id:"sentence",
            title:"",
            width:700,
            height:320,
            content:'<iframe id="frm_sentence" src='+Url+' frameborder="0" height="100%" width="100%" ></iframe>',
            isbg:true
           
            });
            jQuery.layershow();
        }
       
        function removeli(id,name)
        {
           
            var llid = id;
            if(name==null)
            {
//                alert(jQuery("#"+id).children(1).children().html());
//                alert(jQuery("#"+id).children(1).next().children()[0].value);
                id = jQuery("#"+llid).children(1).children().html();
                name = jQuery("#"+llid).children(1).next().children()[0].value;
            }
            jQuery("#"+llid).empty();
            jQuery("#ul1 tr").remove("#"+llid);
            jQuery("#"+hidToProduct)[0].value = jQuery("#"+hidToProduct)[0].value.replace(id + ",","");
            jQuery("#"+txtToname)[0].value = jQuery("#"+txtToname)[0].value.replace(name + ",","");
           
        }
        function removeall()
        {
           
            //jQuery("#ul1").children().not("#thd").empty();
            jQuery("#ul1 tr").not("#hd").remove();
            jQuery("#"+hidToProduct)[0].value = alldelid;
            jQuery("#"+txtToname)[0].value = alldelname;
            CalculateSum();
        }
       
        function addsingle()
        {       
            jQuery("#tbProduct").append(trTemplate);
            jQuery("#tbProduct tr:last td:eq(0) img").click(pdtImage_Click);
            jQuery("#tbProduct tr:last td:eq(2) input[type='text'],#tbProduct tr:last td:eq(3) input[type='text']").blur(Caculate_TotalCharge).keydown(function(e){jQuery(e.target).val(jQuery(e.target).val().replace(/[^0-9^.^\-^]/g,'')); });
            jQuery("#tbProduct tr:last td:not(:last,:first)").attr("disabled","disabled");

        }
       
       
        function Caculate_TotalCharge(e)
        {
            try{
                var tr = jQuery(e.target).parent().parent();
                var charge = parseFloat(tr.find("td:eq(2) input[type='text']").val()) * parseFloat(tr.find("td:eq(3) input[type='text']").val())
                charge = isNaN(charge)?"0":charge
                jQuery(tr).find("td:eq(4) input[type='text']").val(charge);

                var totalCount=totalCharge = 0;
                jQuery("#tbProduct tr:gt(0)").each(function(i,model){
                    totalCharge += parseFloat(jQuery(this).find("td:eq(4) input[type='text']").val());
                    totalCount += parseFloat(jQuery(this).find("td:eq(2) input[type='text']").val());
                })
                totalCharge = isNaN(totalCharge)?"0":totalCharge;
                totalCount = isNaN(totalCount)?"0":totalCount;
                jQuery("input[type='text'][id*='txthejoTotal']").val(totalCharge);
                jQuery("input[type='text'][id*='txthejiCount']").val(totalCount);
            }
            catch(ex){}
        }
       
        function pdtImage_Click(e)
        {
            jQuery("#hidPdtID,#txtPdtName").removeAttr("id");
            var hidPdtID = jQuery(e.target).parent().parent().find("td:eq(0) input[type='hidden']")
            var txtPdtName =  jQuery(e.target).parent().parent().find("td:eq(0) input[type='text']")
            hidPdtID.attr("id","hidPdtID");
            txtPdtName.attr("id","txtPdtName");
            showsentence('http://www.cnblogs.com/module/ProductSelectDiv.aspx?NO=hidPdtID&name=txtPdtName&type=radio&urlele=1&returnFunc=hidPdtID_Change')  
        }
       
        function hidPdtID_Change()
        {
            if(jQuery("#hidPdtID").val() == "") return;
            jQuery("#hidPdtID").parent().parent().find("td:not(:first,:last)").removeAttr("disabled");

            try {
                jQuery.ajax({
                    type: "GET",
                    url: "http://www.cnblogs.com/ajax/Product.aspx",
                    data: { "Type": "GetModelByID", "ID":jQuery("#hidPdtID").val() },
                    cache: false,
                    dataType: "json",
                    success: function(model) {
                        if(model == null) return;
                        var tr = jQuery("#hidPdtID").parent().parent();
                        tr.find("td:eq(1) input[type='text']").val(model.pNO);
                        tr.find("td:eq(3) input[type='text']").val(model.pOutPrice);
                        tr.find("td:eq(6) input[type='text']").val(model.stockCount);
                    }
                });
            }
            catch(ex){}
        }
       
        function choosesingle(xlid)
        {  
            showsentence("http://www.cnblogs.com/module/ProductSelectDiv.aspx?NO="+hidToProduct+"&type=radio&type=radio&name="+txtToname+"&lid="+xlid);
        }
        function gettrcount()
        {
           
            /*
            if(jQuery("#"+hidToProduct).val() == "")
            {
                alert("请添加相应产品!");
                return false;
            }

            jQuery("#"+hidProductCount)[0].value = jQuery("#ul1 tr").not("#hd:first").length + 2;
            for(var i = 0;i<jQuery("#ul1 tr").not("#hd:first").length + 2;i++)
            {
                if(!ValidPrice(jQuery("#txtCount" + i)))
                {
                    alert("请输入数字类型!");
                    return false;
                }
               
                if(!ValidPrice(jQuery("#txtPrice" + i)))
                {
                    alert("请输入数字类型!");
                    return false;
                }
            }*/
        }
       
        function CalculateSum()
        {
           
            jQuery("#"+txtShouldReceive)[0].value = "0.00";
            for(var i = 0;i<jQuery("#ul1 tr").not("#hd:first").length + 2;i++)
            {
                var count = jQuery("#txtCount" + i);
                var price = jQuery("#txtPrice" + i);
               
                if(count.length != 0 && price.length != 0)
                {
                    var pay  = parseFloat(count[0].value) * parseFloat(price[0].value);
                    jQuery("#"+txtShouldReceive)[0].value = parseFloat(jQuery("#"+txtShouldReceive)[0].value) +(isNaN(pay)==true?0.00:pay);
                }
            }
            jQuery("#sptotal")[0].innerText = jQuery("#"+txtShouldReceive)[0].value;
        }
       
        function chknum(i)
        {
          
            var minnum = jQuery("#spCount"+i)[0].innerText;
            var realnum = jQuery("#txtCount"+i)[0].value;
            if(parseFloat(realnum) < parseFloat(minnum))
            {
                alert("数量不得小于已入库数!");
                jQuery("#txtCount"+i)[0].focus();
            }
        }
       
        function ValidPrice(txtPriceObj)
        {
   //var txtPriceObj=jQuery("#"+id);
   if(txtPriceObj.length!=0)
   {
       var val=parseFloat(txtPriceObj[0].value.trim()*1.0);
       if(isNaN(val))
       {
        return false;
       }
       else
       {
           return true;
       }
   }
   else
   {
       return true;
   }
   
        }
 

后台代码如下:

 

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.Text;
using LeixunOA.BLL;
using LeixunOA.Model;
using LeixunOA.UI;
using LeixunOA.Common;
using Newtonsoft.Json;
using System.Collections.Generic;

public partial class bssm_Sell_SellOpt : LeixunOA.UI.AdminPage
{
    public string adminname = string.Empty;
    SellContract model;
    SellContractBLL bll;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (UserInfo.GetRoleId() != 0)
            {
                adminname = "超级管理员";

            }
            else
            {
                adminname = LeixunOA.UI.UserInfo.GetUserInfo().RoleNames;

            }

            //ControlData.BindEnumStatus(rdoType, typeof(EnumDefine.SellType));
            //ControlData.BindingCommon(ddlContractType, "t_sysCode", "codeID", "codeName", " parentNO = 'ContractType'", " codeOrder desc  ", string.Empty, "--请选择合同类型--", string.Empty);
            //ControlData.BindEnumStatus(rdoinvoiceStatus, typeof(EnumDefine.invoiceStatus));
            //rdoinvoiceStatus.Items[0].Selected = true;


            txtCreator.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
            {
                //txtReceived.Enabled = false;
                txtContractNO.Enabled = false;
                bll = new SellContractBLL();
                model = bll.GetModel(ConvertData.ToInt(Request.QueryString["ID"]));
                if (model != null)
                {
                    txtContractNO.Text = model.scNO;

                    //rdoType.SelectedValue = model.pClassType.ToString();
                    txtToCustomer.Text = model.CustomerName;
                    hidtoCustomer.Value = model.scCustomerID.ToString();

                    txtToname.Value = model.pProductName;
                    hidToProduct.Value = model.pProducctID;

                    txthejoTotal.Text = model.pcShouldReceive.ToString();

                    hidpPay.Value = model.pcReceived.ToString();
                    //rdoinvoiceStatus.SelectedValue = model.invoiceStatus.ToString();

                    txtToUser.Text = model.UserName;
                    hidToUser.Value = model.scUserID.ToString();

 

                    if (model.scAutoTime != null)
                    {
                        txtCreator.Text = model.scAutoTime.Value.ToString();
                    }

                    txtMemo.Text = model.scMemo;

                    txthejoTotal.Text = model.pcShouldReceive.ToString();

                    List<ProductInSell> piss = (new ProductInSellBLL()).GetListArray(string.Format("sellID={0}", model.sellContractID));
                    decimal count = 0;
                    foreach (ProductInSell pis in piss)
                    {
                        count += pis.pdtCount;
                    }

                    txthejiCount.Text = count.ToString();

                    hidPdtModels.Value = JavaScriptConvert.SerializeObject(piss);
                   


                    /*
                    //合同
                    ddlContractType.SelectedValue = model.scType.ToString();
                    txtContractName.Text = model.scTitle;
                    txtDesc.Text = model.scDesc;
                    txtItem.Text = model.scItem;
                    txtContent.Text = model.scContent;

                    if (model.scBeginTime != null)
                    {
                        txtStartDate.Text = model.scBeginTime.Value.ToString();
                    }

                    if (model.scEndTime != null)
                    {
                        txtEndData.Text = model.scEndTime.Value.ToString();
                    }

                    txtSellerSig.Text = model.scSellerSig;
                    txtPurchaserSig.Text = model.scSellerSig;
                    upfileHidden.Value = model.scResourceID;

                    */
                }
            }
            else
            {
                //txtContractNO.Text = EnumDefine.NOType.XS.ToString() + LeixunOA.UI.Application.GetNONum;
                txtContractNO.Text = (new GetNOClass()).SellNO;

            }
        }


    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        bll = new SellContractBLL();
        model = new SellContract();

        model.scNO = txtContractNO.Text;
        model.CustomerName = Request.Form[txtToCustomer.UniqueID];
        model.scCustomerID = ConvertData.ToInt(hidtoCustomer.Value);
        model.UserName = Request.Form[txtToUser.UniqueID];
        model.scUserID = ConvertData.ToInt(hidToUser.Value);
        model.scMemo = txtMemo.Text;
        if (!string.IsNullOrEmpty(Request.Form[txtCreator.UniqueID]))
        {
            model.scAutoTime = Convert.ToDateTime(Request.Form[txtCreator.UniqueID]);
        }


        model.pProductName = txtToname.Value;
        model.pProducctID = hidToProduct.Value;


        if (!string.IsNullOrEmpty(Request.Form[txthejoTotal.UniqueID]))
        {
            model.pcShouldReceive = Convert.ToDecimal(Request.Form[txthejoTotal.UniqueID]);
        }


        if (!string.IsNullOrEmpty(hidpPay.Value.Trim()))
        {
            model.pcReceived = Convert.ToDecimal(hidpPay.Value.Trim());
        }
        else
        {
            model.pcReceived = 0;
        }


        //销售单一旦修改或新添加,审核状态将更改为未审核。
        model.pExamine = Convert.ToInt32(LeixunOA.UI.EnumDefine.FinanceRemitStatus.RemitUnFull);

 

 

        if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
        {
            //修改
            model.sellContractID = ConvertData.ToInt(Request.QueryString["ID"]);
            AddProduct(model.sellContractID, true);
            bll.Update(model);
            Response.Redirect("SellRead.aspx?ID=" + model.sellContractID.ToString());
            //MessageBox.ShowAndRedirect(Page, "销售记录修改成功", "SellList.aspx");
        }
        else
        {
            //添加
            int id = bll.Add(model);
            AddProduct(id, false);
            if (((Button)sender).ID == "btnnew" || ((Button)sender).ID == "Button2")
            {
                Response.Redirect("Sellopt.aspx");
            }
            else
            {
                Response.Redirect("SellRead.aspx?ID=" + id.ToString());
            }
            //MessageBox.ShowAndRedirect(Page, "销售记录添加成功", "SellList.aspx");
        }
    }

    private void AddProduct(int sellID, bool flag)
    {
        ProductInSellBLL pisBll = new ProductInSellBLL();
        List<ProductInSell> pisModels = new List<ProductInSell>();
        ProductInSell pisModel;
        if (flag)
        {
            pisBll.Delete(sellID, ConvertData.ToInt(EnumDefine.ProductInSellStatus.UnOuted));
        }


        List<JavaScriptObject> jsObjects = JavaScriptConvert.DeserializeObject<List<JavaScriptObject>>(hidPdtModels.Value);
        foreach (JavaScriptObject jsObj in jsObjects)
        {
            pisModel = pisBll.GetModel(sellID, ConvertData.ToInt(jsObj["pdtID"]));

            if (pisModel == null)
            {
                pisModel = new ProductInSell();
            }
           
            pisModel.pdtID = ConvertData.ToInt(jsObj["pdtID"]);
            pisModel.pdtPrice = ConvertData.ToDecimal(jsObj["pdtPrice"].ToString());
            pisModel.pdtCount = ConvertData.ToDecimal(jsObj["pdtCount"].ToString());

            if (pisModel.pdtCount == 0) continue;

            if(jsObj["arriveTime"] != null)
            {
                pisModel.arriveTime = Convert.ToDateTime(jsObj["arriveTime"]);
            }
            pisModel.sellID = sellID;

            if (pisModel.pPartInvCount == pisModel.pdtCount)
            {
                pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.Outed);
            }
            else if (pisModel.pPartInvCount > 0)
            {
                pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.PartOuted);
            }
            else
            {
                pisModel.pdtStatus = Convert.ToInt32(EnumDefine.ProductInSellStatus.UnOuted);
            }

            if (pisModel.sysid == 0)
            {
                //添加
                pisBll.Add(pisModel);
            }
            else
            {
                //修改
                pisBll.Update(pisModel);
            }
        }

    }

    protected void btnSaveAndProduce_Click(object sender, EventArgs e)
    {
        btnSave_Click(sender, e);
        Response.Redirect("../Produce/ProducePlanOpt.aspx");
    }
}

转载于:https://www.cnblogs.com/mady55/archive/2009/03/29/1424458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值