1
zrg
2025-10-17 82de67c48acaf472a6f8bb8b53f3f4feec9f5e54
WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
@@ -282,7 +282,7 @@
                       ,HAddress,HSupID,HCurID,HWHID,HEmpID,HManagerID,HSecManagerID,HKeeperID,HDeptID,HExplanation,HRemark
                        ,HInnerBillNo,HSTOCKORGID,HOWNERID,HMaker,HMakeDate,HProjectID,HInvoiceBillNo)
                        values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1201 + "','" +
                    1201 + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress +
                    HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress +
                    "'," + HSupID + "," + HCurID + "," + HWHID + "," + HEmpID + "," + HManagerID + "," + 
                    HSecManagerID + ","+ HKeeperID +"," + HDeptID + ",'" + HExplanation + "','" + HRemark
                    + "','" + HInnerBillNo + "'," + HSTOCKORGID + "," + HOWNERID + ",'" + HMaker + "',getdate(),"+ HProjectID + ",'"+ HInvoiceBillNo + "')";
@@ -413,14 +413,14 @@
            {
                ClsKf_ICStockBillSub oSub = (ClsKf_ICStockBillSub)list[i1];
                i++;
                if (oSub.HQty <= 0 || oSub.HQty == null)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "第" + i + "行,数量不能为0或者小于0";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //if (oSub.HQty <= 0 || oSub.HQty == null)
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "第" + i + "行,数量不能为0或者小于0";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (oSub.HMaterID == 0)
                {
@@ -631,7 +631,7 @@
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillList where hmainid =" + HInterID, "h_v_Kf_POStockInBillList");
                ds = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillEdit where hmainid =" + HInterID, "h_v_Kf_POStockInBillList");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
@@ -728,7 +728,7 @@
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已关闭!不能再次审核!";
                        objJsonResult.Message = "单据已关闭!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
@@ -736,7 +736,7 @@
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已作废!不能再次审核!";
                        objJsonResult.Message = "单据已作废!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
@@ -1360,6 +1360,43 @@
            {
                ds = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillList where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_Kf_POStockInBillList");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到源单信息!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 采购入库单  根据主内码与子内码获取采购入库单数据
        [Route("Kf_POStockInBill/loadKf_POStockInBillEdit_Push")]
        [HttpGet]
        public object loadKf_POStockInBillEdit_Push(long HInterID, long HSubID)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillEdit where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_Kf_POStockInBillEdit");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
@@ -2030,7 +2067,7 @@
                }
                string sql = "select * from h_v_Kf_POStockInBillQuerySub where hmainid =  " + hmainid;
                ds = oCN.RunProcReturn(sql + " order by hsubid desc", "h_v_Kf_POStockInBillQuerySub");
                ds = oCN.RunProcReturn(sql + " order by hsubid ASC", "h_v_Kf_POStockInBillQuerySub");
                foreach (DataColumn col in ds.Tables[0].Columns)
@@ -2058,5 +2095,165 @@
        }
        #endregion
        #region 采购入库单 审核同步 调用API
        [Route("Kf_POStockInBill/Kf_POStockInBillSaveApi")]
        [HttpPost]
        public object Kf_POStockInBillSaveApi([FromBody] JObject sMainSub)
        {
            try
            {
                oCN.BeginTran();
                LogService.Write("采购入库单同步,保存方法执行:" + sMainSub.ToString());
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<ClsKf_ICStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsKf_ICStockBillMain>>(model);
                List<ClsKf_ICStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsKf_ICStockBillSub>>(entry);
                // 判断 数据库中是否存在id和单据号相等的单据,存在,则重建,只有id号相等,则申请新的id号
                var ds1 = oCN.RunProcReturn($@"
                select hmainid HInterID, 单据号 HBillNO from h_v_Kf_POStockInBillList where hmainid = {mainList[0].HInterID}
                ", "h_v_Kf_POStockInBillList");
                if (ds1.Tables[0].Rows.Count > 0 && ds1.Tables[0].Rows[0]["HInterID"] != null)
                {
                    if (string.Equals(ds1.Tables[0].Rows[0]["HBillNo"].ToString(), mainList[0].HBillNo, StringComparison.OrdinalIgnoreCase))
                    {
                        string sql = string.Empty;
                        sql = $"delete Kf_ICStockBillMain where HinterID = {mainList[0].HInterID}";
                        oCN.RunProc(sql);
                        sql = $"delete Kf_ICStockBillSub where HinterID = {mainList[0].HInterID}";
                        oCN.RunProc(sql);
                    }
                    else
                    {
                        // 重新申请HInterID
                        var HInterID_Exch = DBUtility.ClsPub.CreateBillID("1201", ref DBUtility.ClsPub.sExeReturnInfo);
                        mainList[0].HInterID = HInterID_Exch;
                        foreach (var oSub in subList)
                        {
                            oSub.HInterID = HInterID_Exch;
                        }
                    }
                }
                // 主表
                // 主表插入
                oCN.RunProc($@"Insert Into Kf_ICStockBillMain
                (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus
                ,HAddress,HSupID,HCurID,HWHID,HEmpID,HManagerID,HSecManagerID,HKeeperID,HDeptID,HExplanation,HRemark
                ,HInnerBillNo,HSTOCKORGID,HOWNERID,HMaker,HMakeDate,HProjectID,HInvoiceBillNo
                ,HChecker, HCheckDate)
                values(
                '{mainList[0].HInterID}',
                '{mainList[0].HYear}',
                '{mainList[0].HPeriod}',
                '{mainList[0].HBillType}',
                '{mainList[0].HBillSubType}',
                '{mainList[0].HDate}',
                '{mainList[0].HBillNo}',
                {mainList[0].HBillStatus},
                '{mainList[0].HAddress}',
                '{mainList[0].HSupID}',
                '{mainList[0].HCurID}',
                '{mainList[0].HWHID}',
                '{mainList[0].HEmpID}',
                '{mainList[0].HManagerID}',
                '{mainList[0].HSecManagerID}',
                '{mainList[0].HKeeperID}',
                '{mainList[0].HDeptID}',
                '{mainList[0].HExplanation}',
                '{mainList[0].HRemark}',
                '{mainList[0].HInnerBillNo}',
                {mainList[0].HSTOCKORGID},
                '{mainList[0].HOWNERID}',
                '{mainList[0].HMaker}',
                '{mainList[0].HMakeDate}',
                '{mainList[0].HProjectID}',
                '{mainList[0].HInvoiceBillNo}',
                '{mainList[0].HChecker}',
                '{mainList[0].HCheckDate}'
                )
            ");
                // 子表插入
                foreach (var osub in subList)
                {
                    oCN.RunProc($@"Insert into Kf_ICStockBillSub
                    (HInterID,HEntryID,HMaterID,HUnitID,HQtyMust,HQty,HPrice
                    ,HMoney,HOrderPrice,HWHID,HSPID,HRelationQty,HBatchNo
                    ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                    ,HPOOrderInterID,HPOOrderEntryID ,HPOOrderBillNo
                    ,HPropertyID,HSecUnitID,HSecUnitRate,HPlanMode,HRemark,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo
                    ,HTaxRate,HTaxPrice,HlineTotal)
                    values (
                        '{osub.HInterID}',
                        '{osub.HEntryID}',
                        '{osub.HMaterID}',
                        '{osub.HUnitID}',
                        '{osub.HQtyMust}',
                        '{osub.HQty}',
                        '{osub.HPrice}',
                        '{osub.HMoney}',
                        '{osub.HOrderPrice}',
                        '{osub.HWHID}',
                        '{osub.HSPID}',
                        '{osub.HRelationQty}',
                        '{osub.HBatchNo}',
                        '{osub.HSourceInterID}',
                        '{osub.HSourceEntryID}',
                        '{osub.HSourceBillNo}',
                        '{osub.HSourceBillType}',
                        '{osub.HPOOrderInterID}',
                        '{osub.HPOOrderEntryID}',
                        '{osub.HPOOrderBillNo}',
                        '{osub.HPropertyID}',
                        '{osub.HSecUnitID}',
                        '{osub.HSecUnitRate}',
                        '{osub.HPlanMode}',
                        '{osub.HRemark}',
                        '{osub.HSeOrderInterID}',
                        '{osub.HSeOrderEntryID}',
                        '{osub.HSeOrderBillNo}',
                        '{osub.HTaxRate}',
                        '{osub.HTaxPrice}',
                        '{osub.HlineTotal}'
                    )
                    ");
                }
                //采购入库单新增回填采购入库关联数量
                oCN.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockIn_Add " + mainList[0].HInterID);
                //采购入库单新增回填收料通知单关联数量
                oCN.RunProc("exec h_p_Cg_UpDateRelation_POInStockToPOStockIn_Add " + mainList[0].HInterID);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据保存成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                LogService.Write("采购入库单同步异常,保存方法执行完成异常:" + e.Message.ToString());
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}