1
wangbin
2024-07-08 4548e24916ac5f63eef736cabdcd634864f8de16
WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -50,9 +50,9 @@
                //}
                //string sql = "select * from h_v_IF_POOrderBillList where 1 = 1 ";
                //if (sWhere=="" || sWhere == null)
                //if (sWhere == "" || sWhere == null)
                //{
                //    ds = oCN.RunProcReturn(sql+ " order by hmainid desc", "h_v_IF_POOrderBillList");
                //    ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList  order by hmainid desc", "h_v_IF_POOrderBillList");
                //}
                //else
                //{
@@ -776,6 +776,17 @@
                long HCORRESPONDORGID = mainList2[0].HCORRESPONDORGID == null ? 0 : mainList2[0].HCORRESPONDORGID;   //对应组织
                long HPROVIDERCONTACTID = mainList2[0].HPROVIDERCONTACTID == null ? 0 : mainList2[0].HPROVIDERCONTACTID;//供货方联系人
                //进行 会计期间 结账 的判断和控制
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    objJsonResult.Message = s;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "h_v_IF_POOrderBillList");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
@@ -891,65 +902,62 @@
            List<ClsCg_POOrderBillSub> DetailColl2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsCg_POOrderBillSub>>(msg3);
            string HSourceBillNo = DetailColl2[0].HSourceBillNo == null ? "''" : DetailColl2[0].HSourceBillNo;
            string HSourceBillType = DetailColl2[0].HSourceBillType == null ? "''" : DetailColl2[0].HSourceBillType;
            double HRelationQty = DetailColl2[0].HRelationQty == null ? 0 : DetailColl2[0].HRelationQty;
            double HBackRelationQty = DetailColl2[0].HBackRelationQty == null ? 0 : DetailColl2[0].HBackRelationQty;
            long HPropertyID = DetailColl2[0].HPropertyID == null ? 0 : DetailColl2[0].HPropertyID;
            string HBatChNo = DetailColl2[0].HBatChNo == null ? "''" : DetailColl2[0].HBatChNo;
            long HAuxPropID = DetailColl2[0].HAuxPropID == null ? 0 : DetailColl2[0].HAuxPropID;
            string HMTONo = DetailColl2[0].HMTONo == null ? "''" : DetailColl2[0].HMTONo;
            long HERPInterID = DetailColl2[0].HERPInterID == null ? 0 : DetailColl2[0].HERPInterID;
            long HERPEntryID = DetailColl2[0].HERPEntryID == null ? 0 : DetailColl2[0].HERPEntryID;
            long HWHID = DetailColl2[0].HWHID == null ? 0 : DetailColl2[0].HWHID;
            string HSeOrderBillNo = DetailColl2[0].HSeOrderBillNo == null ? "''" : DetailColl2[0].HSeOrderBillNo;
            string HRemark = DetailColl2[0].HRemark == null ? "''" : DetailColl2[0].HRemark;
            string HSourceInterID = DetailColl2[0].HSourceInterID == null ? "''" : DetailColl2[0].HSourceInterID;
            string HSourceEntryID = DetailColl2[0].HSourceEntryID == null ? "''" : DetailColl2[0].HSourceEntryID;
            long HSEQ = DetailColl2[0].HSEQ == null ? 0 : DetailColl2[0].HSEQ;//行号
            long HSTOCKORGID = DetailColl2[0].HSTOCKORGID == null ? 0 : DetailColl2[0].HSTOCKORGID;//收料组织
            long HRECEIVEDEPTID = DetailColl2[0].HRECEIVEDEPTID == null ? 0 : DetailColl2[0].HRECEIVEDEPTID;//收料部门
            string HSUPPLIERLOT = DetailColl2[0].HSUPPLIERLOT == null ? "''" : DetailColl2[0].HSUPPLIERLOT;//供应商批号
            long HBOMID = DetailColl2[0].HBOMID == null ? 0 : DetailColl2[0].HBOMID;//BOM版本
            long HSTOCKUNITID = DetailColl2[0].HSTOCKUNITID == null ? 0 : DetailColl2[0].HSTOCKUNITID;//库存单位
            long HBASEUNITID = DetailColl2[0].HBASEUNITID == null ? 0 : DetailColl2[0].HBASEUNITID;//基本单位
            string HBFLOWID = DetailColl2[0].HBFLOWID == null ? "''" : DetailColl2[0].HBFLOWID; //业务流程
            long HGIVEAWAY = DetailColl2[0].HGIVEAWAY == null ? 0 : DetailColl2[0].HGIVEAWAY;   //是否赠品
            string HROWTYPE = DetailColl2[0].HROWTYPE == null ? "''" : DetailColl2[0].HROWTYPE;//产品类型
            double HBASEUNITQTY = DetailColl2[0].HBASEUNITQTY == null ? 0 : DetailColl2[0].HBASEUNITQTY;//基本单位数量
            double HSTOCKBASEQTY = DetailColl2[0].HSTOCKBASEQTY == null ? 0 : DetailColl2[0].HSTOCKBASEQTY; //库存基本数量
            string HREQTRACENO = DetailColl2[0].HREQTRACENO == null ? "''" : DetailColl2[0].HREQTRACENO;//需求跟踪号
            double HTAXNETPRICE = DetailColl2[0].HTAXNETPRICE == null ? 0 : DetailColl2[0].HTAXNETPRICE; //含税净价
            double HPRICECOEFFICIENT = DetailColl2[0].HPRICECOEFFICIENT == null ? 0 : DetailColl2[0].HPRICECOEFFICIENT;//价格系数
            long HTAXCOMBINATION = DetailColl2[0].HTAXCOMBINATION == null ? 0 : DetailColl2[0].HTAXCOMBINATION;//税组合
            long HPRICEUNITID = DetailColl2[0].HPRICEUNITID == null ? 0 : DetailColl2[0].HPRICEUNITID;//计价单位
            long HPRICELISTENTRY = DetailColl2[0].HPRICELISTENTRY == null ? 0 : DetailColl2[0].HPRICELISTENTRY;//分录价目表
            long HPAYORGID = DetailColl2[0].HPAYORGID == null ? 0 : DetailColl2[0].HPAYORGID;//付款组织
            long HSETTLEMODEID = DetailColl2[0].HSETTLEMODEID == null ? 0 : DetailColl2[0].HSETTLEMODEID;//结算方式
            long HSETTLECURRID = DetailColl2[0].HSETTLECURRID == null ? 0 : DetailColl2[0].HSETTLECURRID;//结算币别
            long HEXCHANGETYPEID = DetailColl2[0].HEXCHANGETYPEID == null ? 0 : DetailColl2[0].HEXCHANGETYPEID;//汇率类型
            long HPAYCONDITIONID = DetailColl2[0].HPAYCONDITIONID == null ? 0 : DetailColl2[0].HPAYCONDITIONID;//付款条件
            double HEXCHANGERATE = DetailColl2[0].HEXCHANGERATE == null ? 0 : DetailColl2[0].HEXCHANGERATE;//汇率
            long HLOCALCURRID = DetailColl2[0].HLOCALCURRID == null ? 0 : DetailColl2[0].HLOCALCURRID;//本位币
            long HISINCLUDEDTAX = DetailColl2[0].HISINCLUDEDTAX == null ? 0 : DetailColl2[0].HISINCLUDEDTAX;//是否含税
            long HISPRICEEXCLUDETAX = DetailColl2[0].HISPRICEEXCLUDETAX == null ? 0 : DetailColl2[0].HISPRICEEXCLUDETAX;//价外税
            long HTAXRATEID = DetailColl2[0].HTAXRATEID == null ? 0 : DetailColl2[0].HTAXRATEID;//税率名称
            double HCOSTPERCENT = DetailColl2[0].HCOSTPERCENT == null ? 0 : DetailColl2[0].HCOSTPERCENT;//计入成本比例%
            double HCOSTAMOUNT = DetailColl2[0].HCOSTAMOUNT == null ? 0 : DetailColl2[0].HCOSTAMOUNT;//计入成本金额
            long HVAT = DetailColl2[0].HVAT == null ? 0 : DetailColl2[0].HVAT;//增值税
            long HSELLERWITHHOLDING = DetailColl2[0].HSELLERWITHHOLDING == null ? 0 : DetailColl2[0].HSELLERWITHHOLDING;//卖方代扣代缴
            long HBUYERWITHHOLDING = DetailColl2[0].HBUYERWITHHOLDING == null ? 0 : DetailColl2[0].HBUYERWITHHOLDING;//买方代扣代缴
            string HMATERIALDESC = DetailColl2[0].HMATERIALDESC == null ? "''" : DetailColl2[0].HMATERIALDESC; //物料说明
            int i = 0;
            foreach (ClsCg_POOrderBillSub oSub in DetailColl)
            {
                string HSourceBillNo = DetailColl2[i].HSourceBillNo == null ? "''" : DetailColl2[i].HSourceBillNo;
                string HSourceBillType = DetailColl2[i].HSourceBillType == null ? "''" : DetailColl2[i].HSourceBillType;
                double HRelationQty = DetailColl2[i].HRelationQty;
                double HBackRelationQty = DetailColl2[i].HBackRelationQty;
                long HPropertyID = DetailColl2[i].HPropertyID;
                string HBatChNo = DetailColl2[i].HBatChNo == null ? "''" : DetailColl2[i].HBatChNo;
                long HAuxPropID = DetailColl2[i].HAuxPropID;
                string HMTONo = DetailColl2[i].HMTONo == null ? "''" : DetailColl2[i].HMTONo;
                long HERPInterID = DetailColl2[i].HERPInterID;
                long HERPEntryID = DetailColl2[i].HERPEntryID;
                long HWHID = DetailColl2[i].HWHID;
                string HSeOrderBillNo = DetailColl2[i].HSeOrderBillNo == null ? "''" : DetailColl2[i].HSeOrderBillNo;
                string HRemark = DetailColl2[i].HRemark == null ? "''" : DetailColl2[i].HRemark;
                string HSourceInterID = DetailColl2[i].HSourceInterID == null ? "''" : DetailColl2[i].HSourceInterID;
                string HSourceEntryID = DetailColl2[i].HSourceEntryID == null ? "''" : DetailColl2[i].HSourceEntryID;
                long HSEQ = DetailColl2[i].HSEQ;//行号
                long HSTOCKORGID = DetailColl2[i].HSTOCKORGID;//收料组织
                long HRECEIVEDEPTID = DetailColl2[i].HRECEIVEDEPTID;//收料部门
                string HSUPPLIERLOT = DetailColl2[i].HSUPPLIERLOT;//供应商批号
                long HBOMID = DetailColl2[i].HBOMID;//BOM版本
                long HSTOCKUNITID = DetailColl2[i].HSTOCKUNITID;//库存单位
                long HBASEUNITID = DetailColl2[i].HBASEUNITID;//基本单位
                string HBFLOWID = DetailColl2[i].HBFLOWID == null ? "''" : DetailColl2[i].HBFLOWID; //业务流程
                long HGIVEAWAY = DetailColl2[i].HGIVEAWAY;   //是否赠品
                string HROWTYPE = DetailColl2[i].HROWTYPE == null ? "''" : DetailColl2[i].HROWTYPE;//产品类型
                double HBASEUNITQTY = DetailColl2[i].HBASEUNITQTY;//基本单位数量
                double HSTOCKBASEQTY = DetailColl2[i].HSTOCKBASEQTY; //库存基本数量
                string HREQTRACENO = DetailColl2[i].HREQTRACENO == null ? "''" : DetailColl2[i].HREQTRACENO;//需求跟踪号
                double HTAXNETPRICE = DetailColl2[i].HTAXNETPRICE; //含税净价
                double HPRICECOEFFICIENT = DetailColl2[i].HPRICECOEFFICIENT;//价格系数
                long HTAXCOMBINATION = DetailColl2[i].HTAXCOMBINATION;//税组合
                long HPRICEUNITID = DetailColl2[i].HPRICEUNITID;//计价单位
                long HPRICELISTENTRY = DetailColl2[i].HPRICELISTENTRY;//分录价目表
                long HPAYORGID = DetailColl2[i].HPAYORGID;//付款组织
                long HSETTLEMODEID = DetailColl2[i].HSETTLEMODEID;//结算方式
                long HSETTLECURRID = DetailColl2[i].HSETTLECURRID;//结算币别
                long HEXCHANGETYPEID = DetailColl2[i].HEXCHANGETYPEID;//汇率类型
                long HPAYCONDITIONID = DetailColl2[i].HPAYCONDITIONID;//付款条件
                double HEXCHANGERATE = DetailColl2[i].HEXCHANGERATE;//汇率
                long HLOCALCURRID = DetailColl2[i].HLOCALCURRID;//本位币
                long HISINCLUDEDTAX = DetailColl2[i].HISINCLUDEDTAX;//是否含税
                long HISPRICEEXCLUDETAX = DetailColl2[i].HISPRICEEXCLUDETAX;//价外税
                long HTAXRATEID = DetailColl2[i].HTAXRATEID;//税率名称
                double HCOSTPERCENT = DetailColl2[i].HCOSTPERCENT;//计入成本比例%
                double HCOSTAMOUNT = DetailColl2[i].HCOSTAMOUNT;//计入成本金额
                long HVAT = DetailColl2[i].HVAT;//增值税
                long HSELLERWITHHOLDING = DetailColl2[i].HSELLERWITHHOLDING;//卖方代扣代缴
                long HBUYERWITHHOLDING = DetailColl2[i].HBUYERWITHHOLDING;//买方代扣代缴
                string HMATERIALDESC = DetailColl2[i].HMATERIALDESC == null ? "''" : DetailColl2[i].HMATERIALDESC; //物料说明
                i++;
                if (oSub.HQty <= 0 || oSub.HQty == null)
                if (oSub.HQty <= 0 || oSub.HQty == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -1118,6 +1126,7 @@
            }
        }
        #endregion
        /// <summary>
        ///删除功能
        /// </summary>
@@ -1128,7 +1137,7 @@
        {
            try
            {
                string HBillNo = "";
                //删除前控制=========================================      
                string sql1 = "exec h_p_Cg_POOrderBill_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
@@ -1152,8 +1161,19 @@
                }
                //==================================================================================  
                //进行 会计期间 结账 的判断和控制
                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;
                }
                string sReturn = "";
                oCN.BeginTran();
                oCN.BeginTran();
                oCN.RunProc("Delete From Cg_POOrderBillMain where HInterID = " + HInterID);
                oCN.RunProc("Delete From Cg_POOrderBillSub where HInterID = " + HInterID);
                oCN.Commit();
@@ -1211,7 +1231,7 @@
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList where hmainid =" + HInterID, "h_v_IF_POOrderBillList");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
@@ -1380,6 +1400,17 @@
                    }
                    //==================================================================================      
                    //进行 会计期间 结账 的判断和控制
                    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;
                    }
                    //审核提交
                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POOrderBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                    {
@@ -1419,6 +1450,18 @@
                        return objJsonResult;
                    }
                    //=========================================================
                    //进行 会计期间 结账 的判断和控制
                    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;
                    }
                    //反审核提交AbandonCheck
                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Cg_POOrderBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
@@ -2256,6 +2299,105 @@
        }
        #endregion
        #region 采购订单需要我审批流审批的
        [Route("Cg_POOrderBill/NeedChecklist")]
        [HttpGet]
        public object NeedChecklist(string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
               //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查看!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //搜索需要审核的
                string sql = "  select a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流名称,c.HCheckFlowID,m.HName as 审批项目名称,c.HCheckItemID,c.HChecker as 审批流审核人,c.HCheckNote as 审批流审核建议,c.HCheckDate 审批流审核日期   from h_v_Cg_POOrderBillList AS a LEFT JOIN Xt_BillCheckFlowStatus AS c ON a.hmainid = c.HBillInterID and a.单据类型 = c.HBillTypeID" +
                    " LEFT JOIN Xt_CheckFlowMain as m ON m.HInterID = c.HCheckFlowID" +
                    " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" +
                    " where c.HCheckDate is NUll and c.HChecker = '" + user + "'";
                ds = oCN.RunProcReturn(sql, "h_v_Cg_POOrderBillList");
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 采购订单已经审批流审批的
        [Route("Cg_POOrderBill/Checkedlist")]
        [HttpGet]
        public object Checkedlist(string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Cg_POOrderBillQuery", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查看!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //搜索需要审核的
                string sql = "  select a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流名称,c.HCheckFlowID,m.HName as 审批项目名称,c.HCheckItemID,c.HChecker as 审批流审核人,c.HCheckNote as 审批流审核建议,c.HCheckDate 审批流审核日期   from h_v_Cg_POOrderBillList AS a LEFT JOIN Xt_BillCheckFlowStatus AS c ON a.hmainid = c.HBillInterID and a.单据类型 = c.HBillTypeID" +
                    " LEFT JOIN Xt_CheckFlowMain as m ON m.HInterID = c.HCheckFlowID" +
                    " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" +
                    " where c.HCheckDate is  not NUll and c.HChecker = '" + user + "'";
                ds = oCN.RunProcReturn(sql, "h_v_Cg_POOrderBillList");
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}