wangyi
2026-04-05 ef1cd741b5c1754a138cacc31f322e051662162c
出运单修改
2个文件已修改
1个文件已添加
1234 ■■■■■ 已修改文件
DAL/仓库管理/ClsKf_POStockInBill1.cs 1051 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/仓库管理/ClsKf_SellOutBillMain.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/²Ö¿â¹ÜÀí/ClsKf_POStockInBill1.cs
New file
@@ -0,0 +1,1051 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace DAL
{
    public class ClsKf_POStockInBill1 : DBUtility.ClsXt_BaseBill
    {
        public Model.ClsKf_SellOutBillMain omodel = new Model.ClsKf_SellOutBillMain();
        public List<Model.ClsKf_SellOutBillSub> DetailColl = new List<Model.ClsKf_SellOutBillSub>();
        public List<Model.ClsKf_SellOutBillScheme> DetailSubColl = new List<Model.ClsKf_SellOutBillScheme>();
        public ClsKf_POStockInBill1()
        {
            base.MvarItemKeySub = "Kf_ICStockBillSub";
            base.MvarItemKeySub2 = "";
            base.MvarItemKeySub3 = "";
            base.MvarItemKeySub4 = "";
            base.MvarItemKey = "Kf_ICStockBillMain";
            base.MvarReportTitle = "采购入库库单";
            base.BillType = "1201";
            base.HBillSubType = "1201";
        }
        #region å›ºå®šä»£ç 
        ~ClsKf_POStockInBill1()
        {
            DetailColl = null;
        }
        #endregion   è‡ªå®šä¹‰æ–¹æ³•
        //删除关联
        public override void DeleteRelation(ref string sReturn, Int64 lngBillKey)
        {
            //收料通知单 é€€æ–™é€šçŸ¥å• å…³è”数量
            try
            {
                if (omodel.HMainSourceBillType == "发货通知单")
                {
                    oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Del " + lngBillKey.ToString());
                }
                else if (omodel.HMainSourceBillType == "退货通知单")
                {
                    oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Back_Del " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1401")                    //销售订单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_Delete " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1402")                    //发货通知单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockToPOStockIn_Delete " + lngBillKey.ToString());
                }
                else
                {
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //新增关联
        public override void AddNewRelation(ref string sReturn, Int64 lngBillKey)
        {
            //收料通知单 é€€æ–™é€šçŸ¥å• å…³è”数量
            try
            {
                if (omodel.HMainSourceBillType == "发货通知单")
                {
                    oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Add " + lngBillKey.ToString());
                }
                else if (omodel.HMainSourceBillType == "退货通知单")
                {
                    oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Back_Add " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1401")                    //销售订单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_Add " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1402")                    //发货通知单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockToPOStockIn_Add " + lngBillKey.ToString());
                }
                else
                {
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //修改单据
        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
        {
            try
            {
                //保存前控制=========================================
                string HBillNote = "";
                DataSet ds = oCn.RunProcReturn("Exec h_p_Kf_SellOutBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Kf_SellOutBill_BeforeSaveCtrl");
                if (ds == null)
                {
                    sReturn = "保存前判断失败!";
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    return false;
                }
                //=========================================================
                //
                oCn.BeginTran();
                //string mainSql = "UpDate Kf_ICStockBillMain set  " +
                //" HBillNo='" + omodel.HBillNo + "'" +  //固定赋值===============
                //",HDate='" + omodel.HDate + "'" +
                //",HYear='" + omodel.HYear.ToString() + "'" +
                //",HPeriod='" + omodel.HPeriod.ToString() + "'" +
                //",HRemark='" + omodel.HRemark + "'" +
                //",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" +
                //",HUpDateDate=getdate()" +
                ////========================================
                //",HOrgID=" + omodel.HOrgID +
                //",HStockORGID=" + omodel.HOrgID +
                //",HEmpID=" + omodel.HEmpID.ToString() +
                //",HSupID=" + omodel.HSupID.ToString() +
                //",HWHID=" + omodel.HWHID.ToString() +
                //",HSellSID=" + omodel.HSellSID.ToString() +
                //",HDeptID=" + omodel.HDeptID.ToString() +
                //",HSecManagerID=" + omodel.HSecManagerID.ToString() +
                //",HKeeperID=" + omodel.HKeeperID.ToString() +
                //",HManagerID=" + omodel.HManagerID.ToString() +
                //",HCheckStatusMan='" + omodel.HCheckStatusMan.ToString() + "'" +
                //",HConveyCompID=" + omodel.HConveyCompID.ToString() +
                //",HConveyTypeID=" + omodel.HConveyTypeID.ToString() +
                //",HCarriage=" + omodel.HCarriage.ToString() +
                //",HExplanation='" + omodel.HExplanation + "'" +
                //",HSeOrderBillNo='" + omodel.HSeOrderBillNo + "'" +
                //",HCurID=" + omodel.HCurID.ToString() +
                //",HSCWHID=" + omodel.HSCWHID.ToString() +
                //",HInnerBillNo='" + omodel.HInnerBillNo + "'" +
                //",HLinkPhone='" + omodel.HLinkPhone + "'" +
                //",HLinkMan='" + omodel.HLinkMan + "'" +
                //",HConveyMoney=" + omodel.HConveyMoney.ToString() +
                //",HRedBlueFlag=" + DBUtility.ClsPub.BoolToString(omodel.HRedBlueFlag) +
                //" where HInterID=" + lngBillKey.ToString();
                string mainSql = "update Kf_ICStockBillMain set " +
                    "HDate = '" + omodel.HDate + "'" +
                    ",HYear = " + omodel.HDate.Year + "" +
                    ",HPeriod = " + omodel.HDate.Month + "" +
                    ",HRemark = '" + omodel.HRemark + "'" +
                    ",HUpDater = '" + omodel.HUpDater + "'" +
                    ",HUpDateDate = " + "getdate()" + "" +
                    ",HSTOCKORGID = " + omodel.HOrgID + "" +
                    ",HOWNERID = " + omodel.HOrgID + "" +
                    ",HOrgID = " + omodel.HOrgID + "" +
                    ",HBillNo='" + omodel.HBillNo + "'" +
                    ",HMainSourceInterID = " + omodel.HMainSourceInterID + "" +
                    ",HMainSourceEntryID = " + omodel.HMainSourceEntryID + "" +
                    ",HMainSourceBillNo = '" + omodel.HMainSourceBillNo + "'" +
                    ",HMainSourceBillType = '" + omodel.HMainSourceBillType + "'" +
                    ",HDeptID = " + omodel.HDeptID + "" +
                    ",HManagerID = " + omodel.HManagerID + "" +
                    ",HEmpID = " + omodel.HEmpID + "" +
                    ",HSupID = " + omodel.HSupID + "" +
                    ",HSecManagerID = " + omodel.HSecManagerID + "" +
                    ",HKeeperID = " + omodel.HKeeperID + "" +
                    ",HWHID = " + omodel.HWHID + "" +
                    ",HSCWHID = " + omodel.HSCWHID + "" +
                    ",HCurID = " + omodel.HCurID + "" +
                    ",HExRate = " + omodel.HExRate + "" +
                    ",HSellSID = " + omodel.HSellSID + "" +
                    ",HLinkMan = '" + omodel.HLinkMan + "'" +
                    ",HLinkPhone = '" + omodel.HLinkPhone + "'" +
                    ",HSeOrderBillNo = '" + omodel.HSeOrderBillNo + "'" +
                    ",HConVeyCompID = " + omodel.HConveyCompID + "" +
                    ",HConveyTypeID = " + omodel.HConveyTypeID + "" +
                    ",HConveyMoney = " + omodel.HConveyMoney + "" +
                    ",HExplanation = '" + omodel.HExplanation + "'" +
                    ",HInnerBillNo = '" + omodel.HInnerBillNo + "'" +
                    ",HCarriage = " + omodel.HCarriage + "" +
                    ",HCheckStatusMan = '" + omodel.HCheckStatusMan + "'" +
                    ",HProjectID = '" + omodel.HProjectID.ToString() + "'" +
                     ",HGroupID = '" + omodel.HGroupID.ToString() + "'" +
                    ",HPriceType = '" + omodel.HPriceType + "'" +
                    ",HInvoiceBillNo = '" + omodel.HInvoiceBillNo + "'" +
                    " where HInterID = " + lngBillKey;
                //更新主表
                oCn.RunProc(mainSql);
                //删除关联
                DeleteRelation(ref sReturn, lngBillKey);
                //删除子表
                DeleteBillSub(lngBillKey);
                //插入子表
                omodel.HInterID = lngBillKey;
                int HEntryID = 1;
                foreach (Model.ClsKf_SellOutBillSub oSub in DetailColl)
                {
                    string subSql = "Insert into Kf_ICStockBillSub" +
                     " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" +
                     ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                     ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
                     ",HMaterID,HUnitID,HQtyMust,HQty,HPieceQty,HPrice,HMoney,HTaxPrice,HTaxRate,HTaxMoney,HWHID" +
                     ",HSPID,HSCWHID,HSCSPID,HSPGroupID,HBatchNo,HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                     ",HQty_Full,HQty_Empty,HQty_Back,HCostPrice,HCostMoney,HSalePrice" +
                     ",HPropertyID,HSecUnitID,HSecUnitRate" +
                     ",HEngineNum,HUnderPanNum,HLeaveFactCard,HReqBuyQty,HReqOutQty,HCurrentInventory" +
                     ") values(" +
                     "" + omodel.HInterID.ToString() + "" +
                     "," + (HEntryID++) + "" +
                     ",'" + oSub.HCloseMan + "'" +
                     ",'" + oSub.HEntryCloseDate.ToShortDateString() + "'" +
                     "," + Convert.ToString(oSub.HCloseType ? 1 : 0) + "" +
                     ",'" + oSub.HRemark + "'" +
                     "," + oSub.HSourceInterID.ToString() + "" +
                     "," + oSub.HSourceEntryID.ToString() + "" +
                     ",'" + oSub.HSourceBillNo + "'" +
                     ",'" + oSub.HSourceBillType + "'" +
                     "," + oSub.HRelationQty.ToString() + "" +
                     "," + oSub.HRelationMoney.ToString() + "" +
                     "," + oSub.HSeOrderInterID.ToString() + "" +
                     "," + oSub.HSeOrderEntryID.ToString() + "" +
                     ",'" + oSub.HSeOrderBillNo + "'" +
                     "," + oSub.HMaterID.ToString() + "" +
                     "," + oSub.HUnitID.ToString() + "" +
                     "," + oSub.HQtyMust.ToString() + "" +
                     "," + oSub.HQty.ToString() + "" +
                     "," + oSub.HPieceQty.ToString() + "" +
                     "," + oSub.HPrice.ToString() + "" +
                     "," + oSub.HMoney.ToString() + "" +
                     "," + oSub.HTaxPrice.ToString() + "" +
                     "," + oSub.HTaxRate.ToString() + "" +
                     "," + oSub.HTaxMoney.ToString() + "" +
                     "," + oSub.HWHID.ToString() + "" +
                     "," + oSub.HSPID.ToString() + "" +
                     "," + oSub.HSCWHID.ToString() + "" +
                     "," + oSub.HSCSPID.ToString() + "" +
                     "," + oSub.HSPGroupID.ToString() + "" +
                     ",'" + oSub.HBatchNo + "'" +
                     "," + oSub.HPOOrderInterID.ToString() + "" +
                     "," + oSub.HPOOrderEntryID.ToString() + "" +
                     ",'" + oSub.HPOOrderBillNo + "'" +
                     "," + oSub.HQty_Full + "" +
                     "," + oSub.HQty_Empty + "" +
                     "," + oSub.HQty_Back + "" +
                     "," + oSub.HCostPrice.ToString() + "" +
                     "," + oSub.HCostMoney.ToString() + "" +
                     "," + oSub.HSalePrice.ToString() + "" +
                     "," + oSub.HPropertyID.ToString() + "" +
                     "," + oSub.HSecUnitID.ToString() + "" +
                     "," + oSub.HSecUnitRate.ToString() + "" +
                     ",'" + oSub.HEngineNum + "'" +
                     ",'" + oSub.HUnderPanNum + "'" +
                     ",'" + oSub.HLeaveFactCard + "'" +
                     "," + oSub.HReqBuyQty +
                     "," + oSub.HReqOutQty +
                     "," + oSub.HCurrentInventory +
                     ") ";
                    oCn.RunProc(subSql);
                    //oCn.RunProc("Insert into Kf_ICStockBillSub " +
                    //  " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" +
                    //  ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                    //  ",HMaterID,HPropertyID,HSecUnitID,HSecUnitRate,HUnitID,HQtyMust" +
                    //  ",HQty,HPrice,HMoney,HWHID,HSCWHID,HSPID" +
                    //  ",HCostPrice,HCostMoney,HSalePrice" +
                    //  ",HEngineNum,HUnderPanNum,HLeaveFactCard" +
                    //  ",HSCSPID,HSPGroupID,HBatchNo,HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                    //  ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HQty_Full,HQty_Empty,HQty_Back" +
                    //  ") values("
                    //  + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HCloseMan + "','" + oSub.HEntryCloseDate.ToShortDateString() + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" +
                    //  "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                    //  "," + oSub.HMaterID.ToString() + "," + oSub.HPropertyID.ToString() + "," + oSub.HSecUnitID.ToString() + "," + oSub.HSecUnitRate.ToString() + "," + oSub.HUnitID.ToString() + "," + oSub.HQtyMust.ToString() +
                    //  "," + oSub.HQty.ToString() + "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() + "," + oSub.HWHID.ToString() + "," + oSub.HSCWHID.ToString() + "," + oSub.HSPID.ToString() +
                    //  "," + oSub.HCostPrice.ToString() + "," + oSub.HCostMoney.ToString() + "," + oSub.HSalePrice.ToString() +
                    //  ",'" + oSub.HEngineNum + "','" + oSub.HUnderPanNum + "','" + oSub.HLeaveFactCard + "'" +
                    //  "," + oSub.HSCSPID.ToString() + "," + oSub.HSPGroupID.ToString() + ",'" + oSub.HBatchNo + "'," + oSub.HPOOrderInterID.ToString() + "," + oSub.HPOOrderEntryID.ToString() + ",'" + oSub.HPOOrderBillNo + "'" +
                    //  "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HQty_Full +
                    //  "," + oSub.HQty_Empty + "," + oSub.HQty_Back +
                    //  ") ");
                }
                //更新订单关联数量
                AddNewRelation(ref sReturn, omodel.HInterID);
                //控制关联数量
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("Exec h_p_Kf_SellOutBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Kf_SellOutBill_AfterSaveCtrl");
                if (ds2 == null)
                {
                    sReturn = "保存后控制判断失败!";
                    oCn.RollBack();
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败2!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
                    oCn.RollBack();
                    return false;
                }
                //============================
                //
                sReturn = "修改单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //新增单据
        public override bool AddBill(ref string sReturn)
        {
            try
            {
                //得到mainid
                //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                //omodel.HBillNo = DBUtility.ClsPub.CreateBillCode(BillType, ref DBUtility.ClsPub.sExeReturnInfo, true);
                //若MAINDI重复则重新获取
                if (IsExistBillNo(ref DBUtility.ClsPub.sExeReturnInfo, omodel.HBillNo, Pub_Class.ClsPub.Enum_BillStatus.BillStatus_AddNew, omodel.HInterID))
                {
                    omodel.HBillNo = DBUtility.ClsPub.CreateBillCode(BillType, ref DBUtility.ClsPub.sExeReturnInfo, true);
                }
                if (IsExistMainID(ref DBUtility.ClsPub.sExeReturnInfo, omodel.HInterID, Pub_Class.ClsPub.Enum_BillStatus.BillStatus_AddNew))
                {
                    omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存前控制=========================================
                string HBillNote = "";
                DataSet ds = oCn.RunProcReturn("Exec h_p_Kf_SellOutBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Kf_SellOutBill_BeforeSaveCtrl");
                if (ds == null)
                {
                    sReturn = "保存前判断失败!";
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    return false;
                }
                //=========================================================
                //
                oCn.BeginTran();
                //主表
                string mainSql = "Insert Into Kf_ICStockBillMain" +
                    "(HInterID,HBillNo,HDate,HYear,HPeriod,HBillType,HBillSubType,HRemark,HMaker,HMakeDate,HBillStatus,HSTOCKORGID,HOWNERID,HOrgID" +
                    ",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
                    ",HDeptID,HManagerID,HEmpID,HSupID,HSecManagerID,HKeeperID,HWHID,HSCWHID,HCurID,HExRate,HSellSID,HLinkMan,HLinkPhone" +
                    ",HSeOrderBillNo" +
                    ",HConveyCompID,HConveyTypeID,HConveyMoney" +
                    ",HExplanation,HInnerBillNo,HRedBlueFlag,HCarriage,HCheckStatusMan,HProjectID,HGroupID,HPriceType,HInvoiceBillNo" +
                    ") " +
                    "values(" +
                    "" + omodel.HInterID.ToString() + "" +
                    ",'" + omodel.HBillNo + "'" +
                    ",'" + omodel.HDate + "'" +
                    "," + omodel.HYear.ToString() + "" +
                    "," + omodel.HPeriod.ToString() + "" +
                    ",'" + this.BillType + "'" +
                    ",'" + omodel.HBillSubType + "'" +
                    ",'" + omodel.HRemark + "'" +
                    ",'" + omodel.HMaker + "'" +
                    "," + "getdate()" + "" +
                    "," + "1" + "" +
                    "," + omodel.HOrgID + "" +
                    "," + omodel.HOrgID + "" +
                    "," + omodel.HOrgID + "" +
                    "," + omodel.HMainSourceInterID + "" +
                    "," + omodel.HMainSourceEntryID + "" +
                    ",'" + omodel.HMainSourceBillNo + "'" +
                    ",'" + omodel.HMainSourceBillType + "'" +
                    "," + omodel.HDeptID.ToString() + "" +
                    "," + omodel.HManagerID.ToString() +
                    "," + omodel.HEmpID.ToString() + "" +
                    ", " + omodel.HSupID.ToString() + "" +
                    "," + omodel.HSecManagerID.ToString() + "" +
                    ", " + omodel.HKeeperID.ToString() + "" +
                    "," + omodel.HWHID.ToString() + "" +
                    "," + omodel.HSCWHID.ToString() + "" +
                    "," + omodel.HCurID.ToString() + "" +
                    "," + omodel.HExRate.ToString() + "" +
                    "," + omodel.HSellSID.ToString() + "" +
                    ",'" + omodel.HLinkMan + "'" +
                    ",'" + omodel.HLinkPhone + "'" +
                    ",'" + omodel.HSeOrderBillNo + "'" +
                    "," + omodel.HConveyCompID.ToString() + "" +
                    "," + omodel.HConveyTypeID.ToString() + "" +
                    "," + omodel.HConveyMoney.ToString() + "" +
                    ",'" + omodel.HExplanation + "'" +
                    ",'" + omodel.HInnerBillNo + "'" +
                    "," + DBUtility.ClsPub.BoolToString(omodel.HRedBlueFlag) + "" +
                    "," + omodel.HCarriage + "" +
                    ",'" + omodel.HCheckStatusMan + "'" +
                    ",'" + omodel.HProjectID.ToString() + "'" +
                    ",'" + omodel.HGroupID.ToString() + "'" +
                    ",'" + omodel.HPriceType + "'" +
                    ",'" + omodel.HInvoiceBillNo + "'" +
                    ") ";
                oCn.RunProc(mainSql);
                //oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
                //"(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
                //",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
                //",HYear,HPeriod,HRemark,HMaker,HMakeDate,HOrgID,HStockORGID" +
                //",HSupID,HWHID,HSCWHID,HEmpID,HManagerID" +
                //",HSecManagerID,HSellSID,HCurID" +
                //",HLinkMan,HLinkPhone" +
                //",HSeOrderBillNo,HConveyCompID,HConveyTypeID,HConveyMoney" +
                //",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag,HCarriage,HCheckStatusMan" +
                //") " +
                //" values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
                //"," + omodel.HMainSourceInterID + "," + omodel.HMainSourceEntryID + ",'" + omodel.HMainSourceBillNo + "','" + omodel.HMainSourceBillType + "'" +
                //", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" + "," + omodel.HOrgID + "," + omodel.HOrgID +
                //", " + omodel.HSupID.ToString() + "," + omodel.HWHID.ToString() + "," + omodel.HSCWHID.ToString() + "," + omodel.HEmpID.ToString() + "," + omodel.HManagerID.ToString() +
                //"," + omodel.HSecManagerID.ToString() + "," + omodel.HSellSID.ToString() + "," + omodel.HCurID.ToString() +
                //",'" + omodel.HLinkMan + "','" + omodel.HLinkPhone + "'" +
                //",'" + omodel.HSeOrderBillNo + "'," + omodel.HConveyCompID.ToString() + "," + omodel.HConveyTypeID.ToString() + "," + omodel.HConveyMoney.ToString() +
                //", " + omodel.HKeeperID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(omodel.HRedBlueFlag) + "," + omodel.HCarriage + ",'" + omodel.HCheckStatusMan + "'" +
                //") ");
                //插入子表
                int HEntryID = 1;
                foreach (Model.ClsKf_SellOutBillSub oSub in DetailColl)
                {
                    string subSql = "Insert into Kf_ICStockBillSub" +
                      " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" +
                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                      ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
                      ",HMaterID,HUnitID,HQtyMust,HQty,HPieceQty,HPrice,HMoney,HTaxPrice,HTaxRate,HTaxMoney,HWHID" +
                      ",HSPID,HSCWHID,HSCSPID,HSPGroupID,HBatchNo,HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                      ",HQty_Full,HQty_Empty,HQty_Back,HCostPrice,HCostMoney,HSalePrice" +
                      ",HPropertyID,HSecUnitID,HSecUnitRate" +
                      ",HEngineNum,HUnderPanNum,HLeaveFactCard,HReqBuyQty,HReqOutQty,HCurrentInventory" +
                      ") values(" +
                      "" + omodel.HInterID.ToString() + "" +
                      "," + (HEntryID++) + "" +
                      ",'" + oSub.HCloseMan + "'" +
                      ",'" + oSub.HEntryCloseDate.ToShortDateString() + "'" +
                      "," + Convert.ToString(oSub.HCloseType ? 1 : 0) + "" +
                      ",'" + oSub.HRemark + "'" +
                      "," + oSub.HSourceInterID.ToString() + "" +
                      "," + oSub.HSourceEntryID.ToString() + "" +
                      ",'" + oSub.HSourceBillNo + "'" +
                      ",'" + oSub.HSourceBillType + "'" +
                      "," + oSub.HRelationQty.ToString() + "" +
                      "," + oSub.HRelationMoney.ToString() + "" +
                      "," + oSub.HSeOrderInterID.ToString() + "" +
                      "," + oSub.HSeOrderEntryID.ToString() + "" +
                      ",'" + oSub.HSeOrderBillNo + "'" +
                      "," + oSub.HMaterID.ToString() + "" +
                      "," + oSub.HUnitID.ToString() + "" +
                      "," + oSub.HQtyMust.ToString() + "" +
                      "," + oSub.HQty.ToString() + "" +
                      "," + oSub.HPieceQty.ToString() + "" +
                      "," + oSub.HPrice.ToString() + "" +
                      "," + oSub.HMoney.ToString() + "" +
                      "," + oSub.HTaxPrice.ToString() + "" +
                      "," + oSub.HTaxRate.ToString() + "" +
                      "," + oSub.HTaxMoney.ToString() + "" +
                      "," + oSub.HWHID.ToString() + "" +
                      "," + oSub.HSPID.ToString() + "" +
                      "," + oSub.HSCWHID.ToString() + "" +
                      "," + oSub.HSCSPID.ToString() + "" +
                      "," + oSub.HSPGroupID.ToString() + "" +
                      ",'" + oSub.HBatchNo + "'" +
                      "," + oSub.HPOOrderInterID.ToString() + "" +
                      "," + oSub.HPOOrderEntryID.ToString() + "" +
                      ",'" + oSub.HPOOrderBillNo + "'" +
                      "," + oSub.HQty_Full + "" +
                      "," + oSub.HQty_Empty + "" +
                      "," + oSub.HQty_Back + "" +
                      "," + oSub.HCostPrice.ToString() + "" +
                      "," + oSub.HCostMoney.ToString() + "" +
                      "," + oSub.HSalePrice.ToString() + "" +
                      "," + oSub.HPropertyID.ToString() + "" +
                      "," + oSub.HSecUnitID.ToString() + "" +
                      "," + oSub.HSecUnitRate.ToString() + "" +
                      ",'" + oSub.HEngineNum + "'" +
                      ",'" + oSub.HUnderPanNum + "'" +
                      ",'" + oSub.HLeaveFactCard + "'" +
                      "," + oSub.HReqBuyQty +
                      "," + oSub.HReqOutQty +
                      "," + oSub.HCurrentInventory +
                      ") ";
                    oCn.RunProc(subSql);
                    //oCn.RunProc("Insert into Kf_ICStockBillSub " +
                    //  " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" +
                    //  ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                    //  ",HMaterID,HPropertyID,HSecUnitID,HSecUnitRate,HUnitID,HQtyMust" +
                    //  ",HQty,HPrice,HMoney,HWHID,HSCWHID,HSPID" +
                    //  ",HCostPrice,HCostMoney,HSalePrice" +
                    //  ",HEngineNum,HUnderPanNum,HLeaveFactCard" +
                    //  ",HSCSPID,HSPGroupID,HBatchNo,HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                    //  ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HQty_Full,HQty_Empty,HQty_Back" +
                    //  ") values("
                    //  + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HCloseMan + "','" + oSub.HEntryCloseDate.ToShortDateString() + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" +
                    //  "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                    //  "," + oSub.HMaterID.ToString() + "," + oSub.HPropertyID.ToString() + "," + oSub.HSecUnitID.ToString() + "," + oSub.HSecUnitRate.ToString() + "," + oSub.HUnitID.ToString() + "," + oSub.HQtyMust.ToString() +
                    //  "," + oSub.HQty.ToString() + "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() + "," + oSub.HWHID.ToString() + "," + oSub.HSCWHID.ToString() + "," + oSub.HSPID.ToString() +
                    //  "," + oSub.HCostPrice.ToString() + "," + oSub.HCostMoney.ToString() + "," + oSub.HSalePrice.ToString() +
                    //  ",'" + oSub.HEngineNum + "','" + oSub.HUnderPanNum + "','" + oSub.HLeaveFactCard + "'" +
                    //  "," + oSub.HSCSPID.ToString() + "," + oSub.HSPGroupID.ToString() + ",'" + oSub.HBatchNo + "'," + oSub.HPOOrderInterID.ToString() + "," + oSub.HPOOrderEntryID.ToString() + ",'" + oSub.HPOOrderBillNo + "'" +
                    //  "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HQty_Full +
                    //  "," + oSub.HQty_Empty + "," + oSub.HQty_Back +
                    //  ") ");
                }
                //更新订单关联数量
                AddNewRelation(ref sReturn, omodel.HInterID);
                //控制关联数量
                //
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("Exec h_p_Kf_SellOutBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Kf_SellOutBill_AfterSaveCtrl");
                if (ds2 == null)
                {
                    sReturn = "保存后控制判断失败!";
                    oCn.RollBack();
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败2!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
                    oCn.RollBack();
                    return false;
                }
                //============================
                sReturn = "新增单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //显示单据
        public override bool ShowBill(Int64 lngBillKey, ref string sReturn)
        {
            try
            {
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn("Select * from Kf_ICStockBillMain Where HInterID=" + lngBillKey.ToString(), "Kf_ICStockBillMain");
                if (Ds.Tables[0].Rows.Count == 0)
                {
                    sReturn = "单据未找到!";
                    return false;
                }
                //固定赋值===========================================
                omodel.HMainSourceBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMainSourceBillType"]);
                omodel.HYear = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HYear"]);
                omodel.HPeriod = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPeriod"]);
                omodel.HBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
                omodel.HBillSubType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillSubType"]);
                omodel.HInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]);
                omodel.HDate = DBUtility.ClsPub.isDate(Ds.Tables[0].Rows[0]["HDate"]);
                omodel.HBillNo = Ds.Tables[0].Rows[0]["HBillNo"].ToString().Trim();
                omodel.HBillStatus = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HBillStatus"]);
                omodel.HCheckItemNowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNowID"]);
                omodel.HCheckItemNextID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNextID"]);
                omodel.HCheckFlowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckFlowID"]);
                omodel.HRemark = Ds.Tables[0].Rows[0]["HRemark"].ToString().Trim();
                omodel.HBackDate = Ds.Tables[0].Rows[0]["HBackDate"].ToString().Trim();
                omodel.HBacker = Ds.Tables[0].Rows[0]["HBacker"].ToString().Trim();
                omodel.HCheckDate = Ds.Tables[0].Rows[0]["HCheckDate"].ToString().Trim();
                omodel.HChecker = Ds.Tables[0].Rows[0]["HChecker"].ToString().Trim();
                omodel.HMaker = Ds.Tables[0].Rows[0]["HMaker"].ToString().Trim();
                omodel.HMakeDate = Ds.Tables[0].Rows[0]["HMakeDate"].ToString().Trim();
                omodel.HUpDateDate = Ds.Tables[0].Rows[0]["HUpDateDate"].ToString().Trim();
                omodel.HUpDater = Ds.Tables[0].Rows[0]["HUpDater"].ToString().Trim();
                omodel.HCloseDate = Ds.Tables[0].Rows[0]["HCloseDate"].ToString().Trim();
                omodel.HCloseMan = Ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();
                omodel.HCloseType = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[0]["HCloseType"]);
                omodel.HDeleteDate = Ds.Tables[0].Rows[0]["HDeleteDate"].ToString().Trim();
                omodel.HDeleteMan = Ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();
                //========================================================
                omodel.HOrgID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HOrgID"]);
                omodel.HSellSID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSellSID"]);
                omodel.HCurID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCurID"]);
                omodel.HSupID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSupID"]);
                omodel.HWHID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HWHID"]);
                omodel.HSCWHID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSCWHID"]);
                omodel.HEmpID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"]);
                omodel.HManagerID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"]);
                omodel.HSecManagerID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSecManagerID"]);
                omodel.HKeeperID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HKeeperID"]);
                omodel.HDeptID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"]);
                omodel.HExplanation = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HExplanation"]);
                omodel.HInnerBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HInnerBillNo"]);
                omodel.HRedBlueFlag = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[0]["HRedBlueFlag"]);
                omodel.HLinkMan = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HLinkMan"]);
                omodel.HLinkPhone = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HLinkPhone"]);
                //
                omodel.HConveyCompID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HConveyCompID"]);
                omodel.HConveyTypeID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HConveyTypeID"]);
                omodel.HConveyMoney = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HConveyMoney"]);
                omodel.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSeOrderBillNo"]);
                //
                //循环
                DataSet DsSub;
                DsSub = oCn.RunProcReturn("Select * from Kf_ICStockBillSub Where HInterID=" + lngBillKey.ToString(), "Kf_ICStockBillSub");
                DetailColl.Clear();//清空
                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
                {
                    Model.ClsKf_SellOutBillSub oSub = new Model.ClsKf_SellOutBillSub();
                    // å›ºå®šèµ‹å€¼===============================================
                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceInterID"]);
                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceEntryID"]);
                    oSub.HSourceBillType = DsSub.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
                    oSub.HSourceBillNo = DsSub.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationQty"]);
                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationMoney"]);
                    oSub.HCloseMan = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HEntryCloseDate"]);
                    oSub.HRemark = DsSub.Tables[0].Rows[i]["HRemark"].ToString().Trim();
                    //===================================================
                    oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMaterID"]);
                    oSub.HPropertyID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPropertyID"]);
                    oSub.HSecUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSecUnitID"]);
                    oSub.HSecUnitRate = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HSecUnitRate"]);
                    oSub.HUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HUnitID"]);
                    oSub.HQtyMust = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQtyMust"]);
                    oSub.HQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQty"]);
                    oSub.HPieceQty = DBUtility.ClsPub.isInt(DsSub.Tables[0].Rows[i]["HPieceQty"]);
                    oSub.HPrice = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HPrice"]);
                    oSub.HMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HMoney"]);
                    oSub.HSalePrice = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HSalePrice"]);
                    oSub.HCostMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HCostMoney"]);
                    oSub.HCostPrice = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HCostPrice"]);
                    oSub.HWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HWHID"]);
                    oSub.HSCWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCWHID"]);
                    oSub.HSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPID"]);
                    oSub.HSCSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCSPID"]);
                    oSub.HSPGroupID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPGroupID"]);
                    oSub.HBatchNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HBatchNo"]);
                    oSub.HEngineNum = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HEngineNum"]);
                    oSub.HUnderPanNum = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HUnderPanNum"]);
                    oSub.HLeaveFactCard = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HLeaveFactCard"]);
                    oSub.HPOOrderInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPOOrderInterID"]);
                    oSub.HPOOrderEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPOOrderEntryID"]);
                    oSub.HPOOrderBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HPOOrderBillNo"]);
                    oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderInterID"]);
                    oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderEntryID"]);
                    oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSeOrderBillNo"]);
                    DetailColl.Add(oSub);
                }
                sReturn = "显示单据成功!";
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        //显示单据条码信息
        public bool ShowBill_Scheme(Int64 lngBillKey, ref string sReturn)
        {
            try
            {
                //循环子表2
                DataSet DsSubSec;
                DsSubSec = oCn.RunProcReturn("Select * from Kf_ICStockBillSub_WMS   with (nolock) Where HInterID=" + lngBillKey.ToString() + " and HBillType='" + this.BillType + "'", "Kf_ICStockBillSub_WMS");
                DetailSubColl.Clear();//清空
                for (int i = 0; i < DsSubSec.Tables[0].Rows.Count; i++)
                {
                    Model.ClsKf_SellOutBillScheme oSubSec = new Model.ClsKf_SellOutBillScheme();
                    oSubSec.HInterID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HInterID"].ToString());
                    oSubSec.HEntryID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HEntryID"].ToString());
                    oSubSec.HItemID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HItemID"].ToString());
                    oSubSec.HBillType = DsSubSec.Tables[0].Rows[i]["HBillType"].ToString();
                    oSubSec.HMaterID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HMaterID"].ToString());
                    oSubSec.HProcID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HProcID"].ToString());
                    oSubSec.HWhID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HWhID"].ToString());
                    oSubSec.HGroupID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HGroupID"].ToString());
                    oSubSec.HQty = DBUtility.ClsPub.isDoule(DsSubSec.Tables[0].Rows[i]["HQty"].ToString());
                    oSubSec.HBarCode = DsSubSec.Tables[0].Rows[i]["HBarCode"].ToString();
                    oSubSec.HAddr = DsSubSec.Tables[0].Rows[i]["HAddr"].ToString();
                    oSubSec.HMaker = DsSubSec.Tables[0].Rows[i]["HMaker"].ToString();
                    oSubSec.HMakeDate = DBUtility.ClsPub.isDate(DsSubSec.Tables[0].Rows[i]["HMakeDate"].ToString());
                    oSubSec.HSourceInterID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HSourceInterID"].ToString());
                    oSubSec.HSourceEntryID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HSourceEntryID"].ToString());
                    oSubSec.HSourceBillType = DsSubSec.Tables[0].Rows[i]["HSourceBillType"].ToString();
                    oSubSec.HSourceBillNo = DsSubSec.Tables[0].Rows[i]["HSourceBillNo"].ToString();
                    oSubSec.HSourceItemID = DBUtility.ClsPub.isLong(DsSubSec.Tables[0].Rows[i]["HSourceItemID"].ToString());
                    //
                    DetailSubColl.Add(oSubSec);
                }
                sReturn = "显示单据成功!";
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        public bool IsSave(Int64 HMaterID, string sBatchNo, ref string sReturn)
        {
            try
            {
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn("Select * from Crm_CusAppealBillSub Where HMaterID=" + HMaterID.ToString() + " and HBatchNo='" + sBatchNo + "'", "Crm_CusAppealBillSub");
                if (Ds.Tables[0].Rows.Count == 0)
                {
                    sReturn = "投诉记录单据未找到!";
                    return true;
                }
                DataSet DsSub;
                DsSub = oCn.RunProcReturn("Select HBackType from Crm_CusAppealDisposeBillMain Where HSourceInterID=" + DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]).ToString() + " and HSourceEntryID=" + DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HEntryID"]).ToString(), "Crm_CusAppealDisposeBillMain");
                if (DsSub.Tables[0].Rows.Count == 0)
                {
                    sReturn = "投诉处理单据未找到!";
                    return true;
                }
                if (DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[0][0]) == "订错退回")
                {
                    sReturn = "投诉处理单 ç±»åž‹ä¸º è®¢é”™é€€å›žï¼";
                    return false;
                }
                sReturn = "显示单据成功!";
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        public long Get_CusBySeOutStockBackBillNo(string sBatchNo)
        {
            try
            {
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn("Select * from h_v_Xs_SeOutStockBackBillList_K3 Where å•据号='" + sBatchNo + "'", "h_v_Xs_SeOutStockBackBillList_K3");
                if (Ds.Tables[0].Rows.Count == 0)
                {
                    return 0;
                }
                //固定赋值===========================================
                //
                long HCusID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCusID"]);
                return HCusID;
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        public bool CheckStockQty(long HMaterID, long HWhID, string sBatchNo)
        {
            try
            {
                //查询主表
                DataSet Ds;
                Ds = oCn.RunProcReturn("Select å³æ—¶åº“å­˜ from h_v_KF_ICInventoryList Where HMaterID=" + HMaterID.ToString() + " and HWHID=" + HWhID.ToString() + " and æ‰¹æ¬¡='" + sBatchNo + "'", "h_v_KF_ICInventoryList");
                if (Ds.Tables[0].Rows.Count == 0)
                {
                    return false;
                }
                //判断是否负库存或0库存
                if (DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0][0]) <= 0)
                {
                    return false;
                }
                return true;
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        public bool SplitQty(long HMainID, long HSubID, string HBillNo, double HSplitQty)
        {
            try
            {
                long HNewInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                string HMaker = DBUtility.ClsPub.CurUserName;
                //查询主表
                oCn.RunProc("exec h_p_Kf_ICStockBill_Split " + HMainID.ToString() + "," + HSubID.ToString() + ",'" + HBillNo + "'," + HSplitQty.ToString() + "," + HNewInterID.ToString() + ",'" + HMaker + "'");
                //
                return true;
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        public bool ChangePrice(long HMainID, long HSubID, double HNewPrice)
        {
            try
            {
                string HMaker = DBUtility.ClsPub.CurUserName;
                //查询主表
                oCn.RunProc("exec h_p_Kf_ICStockBill_ChangePrice " + HMainID.ToString() + "," + HSubID.ToString() + "," + HNewPrice.ToString() + ",'" + HMaker + "'");
                //
                return true;
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //删除条码
        public bool Sub_DelBarCode(Int64 lngBillKey, ref string sReturn)
        {
            try
            {
                oCn.RunProc("Delete from Kf_ICStockBillSub_WMS where HitemID= " + lngBillKey.ToString() + "");
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                return false;
            }
        }
        //判断 è´Ÿåº“å­˜
        public bool CheckKF(Int64 lngBillKey, int iType, ref string sReturn)
        {
            try
            {
                DataSet oDs = new DataSet();
                oDs = oCn.RunProcReturn("exec  h_p_Kf_ICStockBill_CheckKF  " + lngBillKey.ToString() + "," + iType.ToString(), "gy_czygl");
                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
                {
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][0]) == "N")
                {
                    sReturn = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][1]);
                    return false;
                }
                else
                {
                    sReturn = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][1]);
                    return true;
                }
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        //条码扫描记录,新增到销售出库   (源单:发货通知单)
        public bool AddBill_PDA(ref string sReturn)
        {
            try
            {
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    sReturn = s;
                    return false;
                }
                omodel.HYear = sYear;
                omodel.HPeriod = sPeriod;
                oCn.BeginTran();
                //删除主表
                oCn.RunProc("Delete From Kf_ICStockBillMain  where HInterID=" + omodel.HInterID.ToString());
                //插入子表
                oCn.RunProc("EXEC h_p_Kf_SellOutBillSub_Insert " + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'");
                //插入主表
                oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
                ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
                ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
                ") " +
                " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "',convert(varchar(10),getdate(),120),'" + omodel.HMainSourceBillType + "'" +
                ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',convert(varchar(10),getdate(),120)" +
                ", " + omodel.HSupID.ToString() + "," + omodel.HWHID.ToString() + "," + omodel.HSCWHID.ToString() + "," + omodel.HEmpID.ToString() + "," + omodel.HManagerID.ToString() + "," + omodel.HSecManagerID.ToString() +
                ", " + omodel.HKeeperID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(omodel.HRedBlueFlag) +
                ") ");
                //更新关联数量
                oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Add " + omodel.HInterID.ToString());
                //审核单据
                oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + omodel.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + omodel.HInterID.ToString());
                //生成K3单据
                //新增子表、主表
                oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_Insert " + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'," + omodel.HBillerID.ToString());
                //回填关联数量
                oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData " + omodel.HInterID.ToString());
                //审核单据
                oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_Check " + omodel.HInterID.ToString() + "," + omodel.HBillerID.ToString());
                //更新库存
                oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateStock " + omodel.HInterID.ToString());
                oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateOrderStock " + omodel.HInterID.ToString());
                //判断条码库存是否异常(负库存、库存大于条码初始化)
                DataSet Ds;
                Ds = oCn.RunProcReturn("EXEC h_p_KF_ICInventoryBarCodeQtyCtrl  " + omodel.HInterID.ToString(), "h_p_KF_ICInventoryBarCodeQtyCtrl");
                if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1)
                {
                }
                else
                {
                    sReturn = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]);
                    oCn.RollBack();
                    return false;
                }
                sReturn = "新增单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
        //条码扫描记录,新增到销售出库 (红字)    (源单:退货通知单)
        public bool AddBill_PDA_Red(ref string sReturn)
        {
            try
            {
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(omodel.HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    sReturn = s;
                    return false;
                }
                omodel.HYear = sYear;
                omodel.HPeriod = sPeriod;
                DataSet Ds;
                oCn.BeginTran();
                //删除主表
                oCn.RunProc("Delete From Kf_ICStockBillMain  where HInterID=" + omodel.HInterID.ToString());
                //插入子表
                oCn.RunProc("EXEC h_p_Kf_SellOutBillSub_Red_Insert " + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'");
                //插入主表
                oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
                ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
                ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
                ") " +
                " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "',convert(varchar(10),getdate(),120),'" + omodel.HMainSourceBillType + "'" +
                ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',convert(varchar(10),getdate(),120)" +
                ", " + omodel.HSupID.ToString() + "," + omodel.HWHID.ToString() + "," + omodel.HSCWHID.ToString() + "," + omodel.HEmpID.ToString() + "," + omodel.HManagerID.ToString() + "," + omodel.HSecManagerID.ToString() +
                ", " + omodel.HKeeperID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(omodel.HRedBlueFlag) +
                ") ");
                //更新关联数量
                oCn.RunProc("exec h_p_Xs_UpDateSeOutStockBackRelation_Add " + omodel.HInterID.ToString());
                //审核单据
                oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + omodel.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + omodel.HInterID.ToString());
                sReturn = "新增单据成功!";
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCn.RollBack();
                throw (e);
            }
        }
    }
}
Model/²Ö¿â¹ÜÀí/ClsKf_SellOutBillMain.cs
@@ -45,5 +45,6 @@
        public Int64 HERPInterID;
        public string HERPBillType;
        public string HERPBillNo;
        public string HInvoiceBillNo;
    }
}
WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
@@ -148,6 +148,188 @@
        #endregion
        #region é‡‡è´­å…¥åº“保存
        /// <summary>
        /// ä¿å­˜é”€å”®å‡ºåº“单
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("Kf_POStockInBill/SaveSellOutBillList")]
        [HttpPost]
        public object SaveSellOutBillList([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string user = sArray[2].ToString();
            string OperationType = sArray[3].ToString();
            ListModels oListModels = new ListModels();
            try
            {
                //判断权限
                //if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Edit", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无保存权限";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                DAL.ClsKf_POStockInBill1 oBill = new DAL.ClsKf_POStockInBill1();
                List<Model.ClsKf_SellOutBillMain> lsmain = new List<Model.ClsKf_SellOutBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getSellOutBillMainByJson(msg2);
                foreach (Model.ClsKf_SellOutBillMain oItem in lsmain)
                {
                    oItem.HMaker = user;
                    oItem.HUpDater = user;
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oBill.omodel = oItem;
                }
                //表体数据
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                List<Model.ClsKf_SellOutBillSub> ls = new List<Model.ClsKf_SellOutBillSub>();
                ls = oListModels.getSellOutBillSubByJson(msg3);
                int i = 0;
                foreach (Model.ClsKf_SellOutBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;
                    oItemSub.HCloseMan = "";
                    oBill.DetailColl.Add(oItemSub);
                }
                //进行 ä¼šè®¡æœŸé—´ ç»“è´¦ çš„判断和控制
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                DateTime HDate = DateTime.Now;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    objJsonResult.Message = s;
                    return objJsonResult;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (Convert.ToInt32(OperationType) == 1)                                //新增保存
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (Convert.ToInt32(OperationType) == 4)                          //下推保存
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else                                                                    //编辑保存
                {
                    if (BillOld.ShowBill(lsmain[0].HInterID, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "此单据有误!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //判断是否可编辑
                    if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "此单据已经被审核,不允许修改!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (BillOld.omodel.HBillStatus > 1)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s + ",不允许修改";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //自动审核设置
                if (Convert.ToInt32(OperationType) == 1 || Convert.ToInt32(OperationType) == 4)
                {
                    objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID
                    //系统参数  è‡ªåŠ¨å®¡æ ¸
                    string sReturn = "";
                    if (oSystemParameter.ShowBill(ref sReturn) == true)
                    {
                        if (oSystemParameter.omodel.Kf_SellOutBill_AutoCheck == "Y") //系统参数  è‡ªåŠ¨å®¡æ ¸
                        {
                            objJsonResult.Verify = "Y";
                        }
                        else
                        {
                            objJsonResult.Verify = "N";
                        }
                    }
                }
                else
                {
                    objJsonResult.HInterID = oBill.omodel.HInterID.ToString(); //返回主ID
                    objJsonResult.Verify = "N";
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
        #region é‡‡è´­å…¥åº“单 ä¿å­˜/编辑功能
        [Route("Kf_POStockInBill/POStockInBillEdit")]
        [HttpPost]