chenhaozhe
2025-10-26 1948124877478db58b27841f9398aed97ef13053
WebAPI/Controllers/XSGL/Kf_SellOutBillController.cs
@@ -2033,6 +2033,48 @@
        }
        #endregion
        #region 销售出库单 价格查询
        [Route("Kf_SellOutBill/GetKf_CheckSellOutBill_BalanceQuery")]
        [HttpGet]
        public object GetKf_CheckSellOutBill_BalanceQuery(string HInterID, string user)
        {
            try
            {
                //判断查询权限
                if (!DBUtility.ClsPub.Security_Log("Kf_SellOutBill_Money", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DataSet ds2 = oCN.RunProcReturn("exec h_p_Kf_CheckSellOutBill_CrediControl " + HInterID, "h_p_Kf_CheckSellOutBill_BalanceQuery");
                if (ds2 == null)
                {
                    throw new Exception("无返回值!");
                }else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds2.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 样品销售出库 审核/反审核
        /// <summary>
        /// </summary>
@@ -2311,5 +2353,107 @@
            }
        }
        #endregion
        #region [销售出库单同步插件]
        [Route("Kf_SellOutBill/SaveKf_SellOutBillApi")]
        [HttpPost]
        public object SaveKf_SellOutBillApi([FromBody] JObject sMainSub)
        {
            try
            {
                LogService.Write("销售出库单同步:" + sMainSub.ToString());
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<Model.ClsKf_SellOutBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsKf_SellOutBillMain>>(model);
                List< Model.ClsKf_SellOutBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List< Model.ClsKf_SellOutBillSub>> (entry);
                string sql = string.Empty;
                oCN.BeginTran();
                // 判断 数据库中是否存在id和单据号相等的打单据,存在,则重建,只有id号相等,则申请新的id号
                var ds1 = oCN.RunProcReturn($@"select HInterID,HBillNO from Kf_ICStockBillMain where HInterID= {mainList[0].HInterID}", "Kf_ICStockBillMain");
                var HInterID_Old = mainList[0].HInterID;
                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))
                    {
                        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("1205", ref DBUtility.ClsPub.sExeReturnInfo);
                        mainList[0].HInterID = HInterID_Exch;
                        foreach (var oSub in subList)
                        {
                            oSub.HInterID = HInterID_Exch;
                        }
                    }
                }
                //主表
                sql = @"insert into Kf_ICStockBillMain
              (HInterID, HYear, HPeriod, HBillNo, HBillType, HBillSubType, HMainSourceBillType, HDate,
               HSupID, HWHID, HSCWHID, HEmpID, HManagerID, HSecManagerID, HKeeperID, HDeptID,
               HCurID, HSeOrderBillNo, HExplanation, HRemark, HInnerBillNo, HRedBlueFlag, HBillStatus, HMaker,
               HMakeDate, HChecker, HCheckDate, HUpDater, HUpDateDate, HDeleteMan, HDeleteDate, HOWNERID,
               HOWNERTYPEID, HERPInterID, HERPBillType, HERPBillNo, HPRDORGID, HSTOCKORGID)
               values(" + mainList[0].HInterID + ", " + mainList[0].HYear + ", " + mainList[0].HPeriod + ", '" + mainList[0].HBillNo + "', '" + mainList[0].HBillType + "', '" + mainList[0].HBillSubType + "', '" + mainList[0].HMainSourceBillType + "', '" + mainList[0].HDate + "'" +
               "," + mainList[0].HSupID + ", " + mainList[0].HWHID + ", " + mainList[0].HSCWHID + ", " + mainList[0].HEmpID + ", " + mainList[0].HManagerID + ", " + mainList[0].HSecManagerID + ", " + mainList[0].HKeeperID + ", " + mainList[0].HDeptID + "" +
               "," + mainList[0].HCurID + ", '" + mainList[0].HSeOrderBillNo + "', '" + mainList[0].HExplanation + "', '" + mainList[0].HRemark + "', '" + mainList[0].HInnerBillNo + "', '" + mainList[0].HRedBlueFlag + "', " + mainList[0].HBillStatus + ", '" + mainList[0].HMaker + "'" +
               ",'" + mainList[0].HMakeDate + "', '" + mainList[0].HChecker + "', '" + mainList[0].HCheckDate + "', '" + mainList[0].HUpDater + "', '" + mainList[0].HUpDateDate + "', '" + mainList[0].HDeleteMan + "', '" + mainList[0].HDeleteDate + "', " + mainList[0].HOWNERID + "" +
               ",'" + mainList[0].HOWNERTYPEID + "', " + mainList[0].HERPInterID + ", '" + mainList[0].HERPBillType + "', '" + mainList[0].HERPBillNo + "', " + mainList[0].HPRDORGID + ", " + mainList[0].HSTOCKORGID + ")";
                LogService.Write("销售出库单主表同步:" + sql);
                oCN.RunProc(sql);
                //保存子表
                foreach (var oSub in subList)
                {
                    sql = $@"insert into Kf_ICStockBillSub
                  (HInterID, HEntryID, HMTONo, HPlanMode, HRemark, HExpressNumber, HMaterID, HUnitID,
                   HBatchNo, HPropertyID, HWHID, HSPID, HSCWHID, HSCSPID, HQtyMust, HQty,
                   HPrice, HMoney, HTaxPrice, HTaxRate, HTaxMoney, HRelationQty, HRelationMoney, HSourceInterID,
                   HSourceEntryID, HSourceBillNo, HSourceBillType, HERPInterID, HERPEntryID, HERPBillNo_Sub, HPOOrderInterID, HPOOrderEntryID,
                   HPOOrderBillNo, HSeOrderInterID, HSeOrderEntryID, HSeOrderBillNo, HICMOInterID, HICMOEntryID,
                   HICMOBillNo, HWWOrderInterID, HWWOrderEntryID, HWWOrderBillNo, HProduceDate, HExpiryDate, HOWNERID, HOWNERTYPEID,
                   HKEEPERID, HKEEPERTYPEID)
                    values('{mainList[0].HInterID }', '{oSub.HEntryID}', '{oSub.HMTONo}', '{oSub.HPlanMode}', '{oSub.HRemark}', '{oSub.HExpressNumber}', '{oSub.HMaterID}', '{oSub.HUnitID}',
                           '{oSub.HBatchNo}', '{oSub.HPropertyID}', '{oSub.HWHID}', '{oSub.HSPID}', '{oSub.HSCWHID}', '{oSub.HSCSPID}', '{oSub.HQtyMust}', '{oSub.HQty}',
                           '{oSub.HPrice}', '{oSub.HMoney}', '{oSub.HTaxPrice}', '{oSub.HTaxRate}', '{oSub.HTaxMoney}', '{oSub.HRelationQty}', '{oSub.HRelationMoney}', '{oSub.HSourceInterID}',
                           '{oSub.HSourceEntryID}', '{oSub.HSourceBillNo}', '{oSub.HSourceBillType}', '{oSub.HERPInterID}', '{oSub.HERPEntryID}', '{oSub.HERPBillNo_Sub}', '{oSub.HPOOrderInterID}', '{oSub.HPOOrderEntryID}',
                           '{oSub.HPOOrderBillNo}', '{oSub.HSeOrderInterID}', '{oSub.HSeOrderEntryID}', '{oSub.HSeOrderBillNo}', '{oSub.HICMOInterID}', '{oSub.HICMOEntryID}',
                           '{oSub.HICMOBillNo}', '{oSub.HWWOrderInterID}', '{oSub.HWWOrderEntryID}', '{oSub.HWWOrderBillNo}', '{oSub.HProduceDate}', '{oSub.HExpiryDate}', '{oSub.HOWNERID}', '{oSub.HOWNERTYPEID}',
                           '{oSub.HKEEPERID}', '{oSub.HKEEPERTYPEID}')";
                    LogService.Write("销售出库单子表同步:" + sql);
                    oCN.RunProc(sql);
                }
                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
    }
}