11
pzy
2024-08-26 dbbcd506929afda0a85ae23bcb5f88c1dccef387
DAL/²É¹º¹ÜÀí/ClsCg_PayableBill.cs
@@ -8,12 +8,12 @@
    public  class ClsCg_PayableBill : DBUtility.ClsXt_BaseBill
    {
        public Model.ClsCg_PayableBillMain omodel = new Model.ClsCg_PayableBillMain();
        public List<Model.ClsCg_PayableBillSub> DetailColl = new List<Model.ClsCg_PayableBillSub>();
        public List<Model.ClsCg_PayableSub> DetailColl = new List<Model.ClsCg_PayableSub>();
        public List<Model.ClsCg_PayableSub> DetailCol2 = new List<Model.ClsCg_PayableSub>();
        public ClsCg_PayableBill()
        {
            base.MvarItemKeySub = "Cg_PayableBillSub";
            base.MvarItemKeySub2 = "";
            base.MvarItemKeySub = "Cg_PayableSub";
            base.MvarItemKeySub2 = "Cg_PayableSub_Entry";
            base.MvarItemKeySub3 = "";
            base.MvarItemKeySub4 = "";
            base.MvarItemKey= "Cg_PayableBillMain";
@@ -32,11 +32,75 @@
        #endregion
        #endregion
        //删除关联
        public override void DeleteRelation(ref string sReturn, Int64 lngBillKey)
        {
            //采购入库单 é‡‡è´­è®¢å• å…³è”数量
            try
            {
                if (DetailColl[0].HSourceBillType == "1201")                      //采购入库单
                {
                    oCn.RunProc("exec h_p_Cg_UpDateRelation_POStockInToPayable_Del " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1102")                    //采购订单
                {
                    oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPayable_Del " + lngBillKey.ToString());
                }
                else
                {
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        //新增关联
        public override void AddNewRelation(ref string sReturn, Int64 lngBillKey)
        {
            //采购入库单 é‡‡è´­è®¢å• å…³è”数量
            try
            {
                if (DetailColl[0].HSourceBillType == "1201")                      //采购入库单
                {
                    oCn.RunProc("exec h_p_Cg_UpDateRelation_POStockInToPayable_Add " + lngBillKey.ToString());
                }
                else if (DetailColl[0].HSourceBillType == "1102")                    //采购订单
                {
                    oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPayable_Add " + lngBillKey.ToString());
                }
                else
                {
                }
            }
            catch (Exception e)
            {
                throw (e);
            }
        }
        #region ä¿®æ”¹å•据
        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
        {
            try
            {
                //保存前控制=========================================
                string HBillNote = "";
                DataSet ds = oCn.RunProcReturn("Exec h_p_Cg_PayableBill_BeforeSaveCtrl " + omodel.HInterID, "h_p_Cg_PayableBill_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 Cg_PayableBillMain  set " +
@@ -67,11 +131,12 @@
                DeleteRelation(ref sReturn, lngBillKey);
                //删除子表
                DeleteBillSub(lngBillKey);
                //删除子表2
                DeleteBillSub2(lngBillKey);
                //插入子表
                omodel.HInterID = lngBillKey;
                //插入子表
                foreach (Model.ClsCg_PayableBillSub oSub in DetailColl)
                foreach (Model.ClsCg_PayableSub oSub in DetailColl)
                {
                    string subSql = "insert into Cg_PayableSub" +
                        "(HInterID,HEntryID,HBillNo_bak,HMaterID,HUnitID,HQty,HPrice,HTaxPrice,HDiscountRate,HRelTaxPrice,HTaxRate,HTaxMoney" +
@@ -113,6 +178,66 @@
                        ")";
                    oCn.RunProc(subSql);
                }
                //更新订单关联数量
                AddNewRelation(ref sReturn, omodel.HInterID);
                //插入子表2
                foreach (Model.ClsCg_PayableSub oSub in DetailCol2)
                {
                    string subSql = "insert into Cg_PayableSub_Entry" +
                        "(HInterID,HEntryID,HBillNo_bak,HMaterID,HUnitID,HQty,HPrice,HTaxPrice,HDiscountRate,HRelTaxPrice,HTaxRate,HTaxMoney" +
                        ",HlineTotal,HlineTotalBB,HMoney,HMoneyBB,HRemark" +
                        ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                        ",HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                        ",HSeOrderTaxPrice,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo) " +
                        " values(" +
                       "" + omodel.HInterID + "" +
                       "," + oSub.HEntryID + "" +
                       ",'" + omodel.HBillNo + "'" +
                       "," + oSub.HMaterID + "" +
                       "," + oSub.HUnitID + "" +
                       "," + oSub.HQty + "" +
                       "," + oSub.HPrice + "" +
                       "," + oSub.HTaxPrice + "" +
                       "," + oSub.HDiscountRate + "" +
                       "," + oSub.HRelTaxPrice + "" +
                       "," + oSub.HTaxRate + "" +
                       "," + oSub.HTaxMoney + "" +
                       "," + oSub.HlineTotal + "" +
                       "," + oSub.HlineTotalBB + "" +
                       "," + oSub.HMoney + "" +
                       "," + oSub.HMoneyBB + "" +
                       ",'" + oSub.HRemark + "'" +
                       "," + oSub.HSourceInterID + "" +
                       "," + oSub.HSourceEntryID + "" +
                       ",'" + oSub.HSourceBillNo + "'" +
                       ",'" + oSub.HSourceBillType + "'" +
                       "," + oSub.HRelationQty + "" +
                       "," + oSub.HRelationMoney + "" +
                       "," + oSub.HPOOrderInterID + "" +
                       "," + oSub.HPOOrderEntryID + "" +
                       ",'" + oSub.HPOOrderBillNo + "'" +
                       "," + oSub.HSeOrderTaxPrice + "" +
                       "," + oSub.HSeOrderInterID + "" +
                       "," + oSub.HSeOrderEntryID + "" +
                       ",'" + oSub.HSeOrderBillNo + "'" +
                        ")";
                    oCn.RunProc(subSql);
                }
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("h_p_Cg_PayableBill_AfterSaveCtrl " + omodel.HInterID  ,"h_p_Cg_PayableBill_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();
@@ -132,9 +257,22 @@
        {
            try
            {
                DataSet ds;
                //DataSet ds;
                //保存前控制=========================================
                string HBillNote = "";
                DataSet ds = oCn.RunProcReturn("Exec h_p_Cg_PayableBill_BeforeSaveCtrl " + omodel.HInterID, "h_p_Cg_PayableBill_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();
                //检查主表内码是否重复,若重复则重新生成并继续检查,直到不再重复
@@ -150,6 +288,7 @@
                        break;
                    }
                }
                //插入主表
                string mainSql = "insert into Cg_PayableBillMain" +
@@ -187,7 +326,7 @@
                oCn.RunProc(mainSql);
                //插入子表
                foreach (Model.ClsCg_PayableBillSub oSub in DetailColl)
                foreach (Model.ClsCg_PayableSub oSub in DetailColl)
                {
                    string subSql = "insert into Cg_PayableSub" +
                        "(HInterID,HEntryID,HBillNo_bak,HMaterID,HUnitID,HQty,HPrice,HTaxPrice,HDiscountRate,HRelTaxPrice,HTaxRate,HTaxMoney" +
@@ -229,6 +368,66 @@
                        ")";
                    oCn.RunProc(subSql);
                }
                //插入子表Entry
                foreach (Model.ClsCg_PayableSub oSub in DetailCol2)
                {
                    string subSql = "insert into Cg_PayableSub_Entry" +
                        "(HInterID,HEntryID,HBillNo_bak,HMaterID,HUnitID,HQty,HPrice,HTaxPrice,HDiscountRate,HRelTaxPrice,HTaxRate,HTaxMoney" +
                        ",HlineTotal,HlineTotalBB,HMoney,HMoneyBB,HRemark" +
                        ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                        ",HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo" +
                        ",HSeOrderTaxPrice,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo) " +
                        " values(" +
                       "" + omodel.HInterID + "" +
                       "," + oSub.HEntryID + "" +
                       ",'" + omodel.HBillNo + "'" +
                       "," + oSub.HMaterID + "" +
                       "," + oSub.HUnitID + "" +
                       "," + oSub.HQty + "" +
                       "," + oSub.HPrice + "" +
                       "," + oSub.HTaxPrice + "" +
                       "," + oSub.HDiscountRate + "" +
                       "," + oSub.HRelTaxPrice + "" +
                       "," + oSub.HTaxRate + "" +
                       "," + oSub.HTaxMoney + "" +
                       "," + oSub.HlineTotal + "" +
                       "," + oSub.HlineTotalBB + "" +
                       "," + oSub.HMoney + "" +
                       "," + oSub.HMoneyBB + "" +
                       ",'" + oSub.HRemark + "'" +
                       "," + oSub.HSourceInterID + "" +
                       "," + oSub.HSourceEntryID + "" +
                       ",'" + oSub.HSourceBillNo + "'" +
                       ",'" + oSub.HSourceBillType + "'" +
                       "," + oSub.HRelationQty + "" +
                       "," + oSub.HRelationMoney + "" +
                       "," + oSub.HPOOrderInterID + "" +
                       "," + oSub.HPOOrderEntryID + "" +
                       ",'" + oSub.HPOOrderBillNo + "'" +
                       "," + oSub.HSeOrderTaxPrice + "" +
                       "," + oSub.HSeOrderInterID + "" +
                       "," + oSub.HSeOrderEntryID + "" +
                       ",'" + oSub.HSeOrderBillNo + "'" +
                        ")";
                    oCn.RunProc(subSql);
                }
                //更新订单关联数量
                AddNewRelation(ref sReturn, omodel.HInterID);
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("h_p_Cg_PayableBill_AfterSaveCtrl " + omodel.HInterID, "h_p_Cg_PayableBill_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;
@@ -318,7 +517,7 @@
                DetailColl.Clear();//清空
                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
                {
                    Model.ClsCg_PayableBillSub oSub = new Model.ClsCg_PayableBillSub();
                    Model.ClsCg_PayableSub oSub = new Model.ClsCg_PayableSub();
                    // å›ºå®šèµ‹å€¼===============================================
                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
@@ -361,6 +560,56 @@
                    DetailColl.Add(oSub);
                }
                //子表Entry
                DataSet DsSub2;
                DsSub2 = oCn.RunProcReturn("select * from Cg_PayableSub_Entry where HInterID = " + lngBillKey.ToString() + "order by HEntryID", "Cg_PayableSub_Entry ");
                DetailCol2.Clear();//清空
                for (int i = 0; i < DsSub2.Tables[0].Rows.Count; i++)
                {
                    Model.ClsCg_PayableSub oSub = new Model.ClsCg_PayableSub();
                    // å›ºå®šèµ‹å€¼===============================================
                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HInterID"]);
                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HEntryID"]);
                    oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HBillNo_bak"]);
                    oSub.HCloseMan = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HCloseMan"]);
                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub2.Tables[0].Rows[i]["HCloseType"]);
                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub2.Tables[0].Rows[i]["HEntryCloseDate"]);
                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HSourceInterID"]);
                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HSourceEntryID"]);
                    oSub.HSourceBillType = DsSub2.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
                    oSub.HSourceBillNo = DsSub2.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[i]["HRelationQty"]);
                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[i]["HRelationMoney"]);
                    oSub.HRemark = DsSub2.Tables[0].Rows[i]["HRemark"].ToString().Trim();
                    //===================================================
                    oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HMaterID"]);
                    oSub.HUnitID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HUnitID"]);
                    oSub.HQty = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HQty"]);
                    oSub.HPrice = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HPrice"]);
                    oSub.HTaxPrice = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HTaxPrice"]);
                    oSub.HDiscountRate = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HDiscountRate"]);
                    oSub.HRelTaxPrice = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HRelTaxPrice"]);
                    oSub.HTaxRate = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HTaxRate"]);
                    oSub.HTaxMoney = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HTaxMoney"]);
                    oSub.HMoney = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HMoney"]);
                    oSub.HMoneyBB = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HMoneyBB"]);
                    oSub.HlineTotal = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HlineTotal"]);
                    oSub.HlineTotalBB = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HlineTotalBB"]);
                    oSub.HPOOrderInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[0]["HPOOrderInterID"]);
                    oSub.HPOOrderEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[0]["HPOOrderEntryID"]);
                    oSub.HPOOrderBillNo = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[0]["HPOOrderBillNo"]);
                    oSub.HSeOrderTaxPrice = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[0]["HSeOrderTaxPrice"]);
                    oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[0]["HSeOrderInterID"]);
                    oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[0]["HSeOrderEntryID"]);
                    oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[0]["HSeOrderBillNo"]);
                    DetailCol2.Add(oSub);
                }
                sReturn = "显示单据成功!";
                return true;
            }