1
zrg
2025-03-24 9d4a674bb89bb724aa92954caf7947439dc0d784
DAL/Ó¦ÊÕ¹ÜÀí/ClsYS_ReceiveBill.cs
@@ -31,25 +31,82 @@
        {
            DetailColl = null;
        }
        #endregion   è‡ªå®šä¹‰æ–¹æ³•
        //删除关联
        public override void DeleteRelation(ref string sReturn, Int64 lngBillKey)
        {
            //应收单 å…³è”数量
            try
            {
                if (DetailColl[0].HSourceBillType == "1426")                    //应收单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_ReceiveToReceivableIn_Del " + lngBillKey.ToString());
                }
                else
                {
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //新增关联
        public override void AddNewRelation(ref string sReturn, Int64 lngBillKey)
        {
            //应收单 å…³è”数量
            try
            {
                if (DetailColl[0].HSourceBillType == "1426")                    //应收单
                {
                    oCn.RunProc("exec h_p_Xs_UpDateRelation_ReceiveToReceivableIn_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_YS_ReceiveBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_YS_ReceiveBill_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();
                //更新主表
                oCn.RunProc("UpDate YS_ReceiveBillMain set  " +
                string mainSql = "UpDate YS_ReceiveBillMain set  " +
                " HBillNo='" + omodel.HBillNo + "'" +  //固定赋值===============
                ",HDate='" + omodel.HDate + "'" +
                ",HYear='" + omodel.HYear.ToString() + "'" +
                ",HPeriod='" + omodel.HPeriod.ToString() + "'" +
                ",HRemark='" + omodel.HRemark + "'" +
                ",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" +
                ",HUpDater='" + omodel.HUpDater + "'" +
                ",HUpDateDate=getdate()" +
                    //========================================
                //========================================
                ",HAccDate='" + omodel.HAccDate + "'" +
                ",HCusID=" + omodel.HCusID.ToString() +
                ",HAccCusID=" + omodel.HAccCusID.ToString() +
@@ -58,6 +115,10 @@
                ",HExRate=" + omodel.HExRate.ToString() +
                ",HDeptID=" + omodel.HDeptID.ToString() +
                ",HEmpID=" + omodel.HEmpID.ToString() +
                ",HManagerID=" + omodel.HManagerID +
                ",HOrgID=" + omodel.HOrgID +
                ",HGiftRate=" + omodel.HGiftRate +
                ",HGiftMoney=" + omodel.HGiftMoney +
                ",HSumMoney=" + omodel.HSumMoney.ToString() +
                ",HBankID=" + omodel.HBankID.ToString() +
                ",HBankNo='" + omodel.HBankNo + "'" +
@@ -68,14 +129,20 @@
                ",HRemainMoney=" + omodel.HRemainMoney.ToString() +
                ",HCheckStatus=" + omodel.HCheckStatus.ToString() +
                ",HSSNum='" + omodel.HSSNum.ToString() +
                ",HSSNum='" + omodel.HSSNum.ToString() + "'" +
                ",HRelSumMoney=" + omodel.HRelSumMoney.ToString() +
                ",HSumMoneyBB=" + omodel.HSumMoneyBB.ToString() +
                ",HRelSumMoneyBB=" + omodel.HRelSumMoneyBB.ToString() +
                ",HDiscountRate=" + omodel.HDiscountRate.ToString() +
                " where HInterID=" + lngBillKey.ToString());
                //删除关联
                DeleteRelation(ref sReturn, lngBillKey);
                " where HInterID=" + lngBillKey.ToString();
                oCn.RunProc(mainSql);
                if (DetailColl.Count != 0)
                {
                    //删除关联
                    DeleteRelation(ref sReturn, lngBillKey);
                }
                //删除子表
                DeleteBillSub(lngBillKey);
                //插入子表
@@ -94,12 +161,34 @@
                      + 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.HUnitID.ToString() + "," + oSub.HQty.ToString() + "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() +
                      ",'" + oSub.HReceiveBillNo + "'," + oSub.HReceiveBillInterID.ToString() + "," + oSub.HReceiveBillEntryID.ToString() + "," + oSub.HSourceDate.ToString() + "," + oSub.HSourceMoney.ToString() +
                      ",'" + oSub.HReceiveBillNo + "'," + oSub.HReceiveBillInterID.ToString() + "," + oSub.HReceiveBillEntryID.ToString() + ",'" + oSub.HSourceDate.ToString() + "'," + oSub.HSourceMoney.ToString() +
                      "," + oSub.HSourceMoneyBB.ToString() + "," + oSub.HReadyCheckMoney.ToString() + "," + oSub.HUnCheckMoney.ToString() + "," + oSub.HCheckMoney.ToString() + "," + oSub.HCheckMoneyBB.ToString() + "," + oSub.HInovceExRate.ToString() + ",'" + oSub.HSeContractBillNo + "'" +
                      "," + oSub.HPOOrderInterID.ToString() + "," + oSub.HPOOrderEntryID.ToString() + ",'" + oSub.HPOOrderBillNo + "'," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'" +
                      "," + oSub.HPOContractInterID.ToString() + "," + oSub.HPOContractEntryID.ToString() + ",'" + oSub.HPOContractBillNo + "'," + oSub.HSeContractInterID.ToString() + "," + oSub.HSeContractEntryID.ToString() + ",'" + oSub.HSeContractBillNo + "'" +
                      ") ");
                }
                if (DetailColl.Count != 0)
                {
                    //更新订单关联数量
                    AddNewRelation(ref sReturn, omodel.HInterID);
                }
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("h_p_YS_ReceiveBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_YS_ReceiveBill_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;
                }
                //============================
                //
                //foreach (Model.ClsYS_ReceiveBillSub oSub in DetailColl)
                //{
@@ -129,29 +218,94 @@
            try
            {
                //得到mainid
                omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                //若MAINDI重复则重新获取
                while (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_YS_ReceiveBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_YS_ReceiveBill_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();
                //主表
                oCn.RunProc("Insert Into YS_ReceiveBillMain   " +
                string mainSql = "Insert Into YS_ReceiveBillMain   " +
                "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
                ",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
                ",HAccDate,HCusID,HAccCusID,HSSID,HCurID,HExRate" +
                ",HDeptID,HEmpID,HSumMoney,HBankID,HBankNo,HExplanation" +
                ",HDeptID,HEmpID,HManagerID,HOrgID,HGiftRate,HGiftMoney,HSumMoney,HBankID,HBankNo,HExplanation" +
                ",HSSNum,HDiscountRate,HRelSumMoney,HSumMoneyBB,HRelSumMoneyBB" +
                ",HInnerBillNo,HCheckMoney,HCheckMoneyFor,HRemainMoney,HCheckStatus" +
                ") " +
                " values('" + this.BillType + "','"  + this.HBillSubType + "'," +omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
                ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + DBUtility.ClsPub.CurUserName + "',getdate()" +
                ",'" + omodel.HAccDate + "'," + omodel.HCusID.ToString() + "," + omodel.HAccCusID.ToString() + "," + omodel.HSSID.ToString() + "," + omodel.HCurID.ToString() + "," + omodel.HExRate.ToString() +
                ", " + omodel.HDeptID.ToString() + "," + omodel.HEmpID.ToString() + "," + omodel.HSumMoney.ToString() + "," + omodel.HBankID.ToString() + ",'" + omodel.HBankNo + "','" + omodel.HExplanation + "'" +
                ",'" + omodel.HSSNum + "'," + omodel.HDiscountRate.ToString() + "," + omodel.HRelSumMoney.ToString() + "," + omodel.HSumMoneyBB.ToString() + "," + omodel.HRelSumMoneyBB.ToString() +
                ",'" + omodel.HInnerBillNo + "'," + omodel.HCheckMoney.ToString() + "," + omodel.HCheckMoneyFor.ToString() + "," + omodel.HRemainMoney.ToString() + "," + omodel.HCheckStatus.ToString() +
                ") ");
                " values(" +
                "'" + this.BillType + "'" +
                ",'" + this.HBillSubType + "'" +
                "," + omodel.HInterID.ToString() + "" +
                ",'" + omodel.HBillNo + "'" +
                ",'" + omodel.HDate + "'" +
                ", " + omodel.HYear.ToString() + "" +
                "," + omodel.HPeriod.ToString() + "" +
                ",'" + omodel.HRemark + "'" +
                ",'" + omodel.HMaker + "'" +
                ",getdate()" + "";
                mainSql +=
                "," + omodel.HMainSourceInterID + "";
                mainSql +=
                 "," + omodel.HMainSourceEntryID + "";
                mainSql +=
                 ",'" + (omodel.HMainSourceBillNo ==null?"":omodel.HMainSourceBillNo) + "'";
                mainSql +=
                 ",'" + (omodel.HMainSourceBillType) + "'";
                mainSql +=
                ",'" + omodel.HAccDate + "'" +
                "," + omodel.HCusID.ToString() + "" +
                "," + omodel.HAccCusID.ToString() + "" +
                "," + omodel.HSSID.ToString() + "" +
                "," + omodel.HCurID.ToString() + "" +
                "," + omodel.HExRate.ToString() +
                ", " + omodel.HDeptID.ToString() + "" +
                "," + omodel.HEmpID.ToString() + "" +
                "," + omodel.HManagerID + "" +
                "," + omodel.HOrgID + "" +
                "," + omodel.HGiftRate + "" +
                "," + omodel.HGiftMoney + "" +
                "," + omodel.HSumMoney.ToString() + "" +
                "," + omodel.HBankID.ToString() + "" +
                ",'" + omodel.HBankNo + "'" +
                ",'" + omodel.HExplanation + "'" +
                ",'" + omodel.HSSNum + "'" +
                "," + omodel.HDiscountRate.ToString() + "" +
                "," + omodel.HRelSumMoney.ToString() + "" +
                "," + omodel.HSumMoneyBB.ToString() + "" +
                "," + omodel.HRelSumMoneyBB.ToString() +
                ",'" + omodel.HInnerBillNo + "'" +
                "," + omodel.HCheckMoney.ToString() + "" +
                "," + omodel.HCheckMoneyFor.ToString() + "" +
                "," + omodel.HRemainMoney.ToString() + "" +
                "," + omodel.HCheckStatus.ToString() +
                ") ";
                oCn.RunProc(mainSql);
                //插入子表
                foreach (Model.ClsYS_ReceiveBillSub oSub in DetailColl)
                {
                    oCn.RunProc("Insert into YS_ReceiveBillSub " +
                    string subSql = "Insert into YS_ReceiveBillSub " +
                      " (HInterID,HEntryID,HCloseMan,HEntryCloseDate,HCloseType,HRemark" +
                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                      ",HMaterID,HUnitID,HQty,HPrice,HMoney" +
@@ -163,12 +317,37 @@
                      + 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.HUnitID.ToString() + "," + oSub.HQty.ToString() + "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() +
                      ",'" + oSub.HReceiveBillNo + "'," + oSub.HReceiveBillInterID.ToString() + "," + oSub.HReceiveBillEntryID.ToString() + "," + oSub.HSourceDate.ToString() + "," + oSub.HSourceMoney.ToString() +
                      ",'" + oSub.HReceiveBillNo + "'," + oSub.HReceiveBillInterID.ToString() + "," + oSub.HReceiveBillEntryID.ToString() + ",'" + oSub.HSourceDate.ToString() + "'," + oSub.HSourceMoney.ToString() +
                      "," + oSub.HSourceMoneyBB.ToString() + "," + oSub.HReadyCheckMoney.ToString() + "," + oSub.HUnCheckMoney.ToString() + "," + oSub.HCheckMoney.ToString() + "," + oSub.HCheckMoneyBB.ToString() + "," + oSub.HInovceExRate.ToString() + ",'" + oSub.HSeContractBillNo + "'" +
                      "," + oSub.HPOOrderInterID.ToString() + "," + oSub.HPOOrderEntryID.ToString() + ",'" + oSub.HPOOrderBillNo + "'," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'" +
                      "," + oSub.HPOContractInterID.ToString() + "," + oSub.HPOContractEntryID.ToString() + ",'" + oSub.HPOContractBillNo + "'," + oSub.HSeContractInterID.ToString() + "," + oSub.HSeContractEntryID.ToString() + ",'" + oSub.HSeContractBillNo + "'" +
                      ") ");
                      ") ";
                    oCn.RunProc(subSql);
                }
                if (DetailColl.Count != 0)
                {
                //更新订单关联数量
                AddNewRelation(ref sReturn, omodel.HInterID);
                }
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("h_p_YS_ReceiveBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_YS_ReceiveBill_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;
                }
                //============================
                //
                //foreach (Model.ClsYS_ReceiveBillSub oSub in DetailColl)
                //{
@@ -232,6 +411,12 @@
                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.HMainSourceInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMainSourceInterID"]);
                omodel.HMainSourceEntryID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMainSourceEntryID"]);
                omodel.HMainSourceBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMainSourceBillNo"]);
                omodel.HMainSourceBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMainSourceBillType"]);
                //========================================================
                omodel.HAccDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HAccDate"]);
                omodel.HCusID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCusID"]);
@@ -241,6 +426,10 @@
                omodel.HExRate = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[0]["HExRate"]);
                omodel.HDeptID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"]);
                omodel.HEmpID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"]);
                omodel.HManagerID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HManagerID"]);
                omodel.HOrgID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HOrgID"]);
                omodel.HGiftRate = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HGiftRate"]);
                omodel.HGiftMoney = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HGiftMoney"]);
                omodel.HSumMoney = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HSumMoney"]);
                omodel.HBankID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HBankID"]);
                omodel.HBankNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBankNo"]);