using Model; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using WebAPI.Models; using SyntacticSugar.constant; namespace WebAPI.Controllers { //销售核销 public class Xs_SellOutBillList_SecController : ApiController { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public DBUtility.ClsPub.Enum_BillStatus BillStatus; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; #region 通用查询方法 [Route("CommonModel/searchMethod")] [HttpGet] public object searchMethod(string sql,string user,string ModRightNameCheck) { try { //判断查询权限 if (ModRightNameCheck !=null&&ModRightNameCheck != "") { if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限查询!"; objJsonResult.data = null; return objJsonResult; } } ds = oCN.RunProcReturn(sql, sql); //获取列信息 List columnNameList = new List(); //定义声明变量 ,把通过 new List()创建的 实例,赋值给变量 foreach (DataColumn col in ds.Tables[0].Columns)//遍历ds中第一个表(Tables[0])的所有列(Columns)每次循环中,col变量会持有当前列的引用 { Type dataType = col.DataType; //获取当前数据类型传入 自定义变量datadataType string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //字符串拼接 // 将列名和数据类型信息拼接成一个JSON格式的字符串 columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList;//将columnNameList赋值给objJsonResult的list属性 return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 通用方法 [Route("CommonModel/commonMethod")] [HttpGet] public object commonMethod(string sql, string user, string ModRightNameCheck) { try { //判断查询权限 if (ModRightNameCheck != null && ModRightNameCheck != "") { if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限查询!"; objJsonResult.data = null; return objJsonResult; } } oCN.RunProc(sql); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 加入单据到待核销队列 [Route("Xs_SellOutBillList_Sec/addBillToWaitSecList")] [HttpGet] public object addBillToWaitSecList(int hmainid, string user) { try { string sql = "select * from Kf_ICStockBillMain where HBillType = '1205' and HInterID = " + hmainid; ds = oCN.RunProcReturn(sql, "Kf_ICStockBillMain"); string sql1 = "insert into Xs_SellOutBillList_Sec(HMaker,HMakeDate,HMainSourceInterID,MainSourceBillNo,HMainSourceBillType) " + " values(" + "'" + user + "'" + "," + "getdate()" + "" + "," + hmainid + "" + ",'" + ds.Tables[0].Rows[0]["HBillNo"].ToString() + "'" + ",'" + "1205" + "'" + ")"; oCN.RunProc(sql1); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 核销生成应收单 [Route("Xs_SellOutBillList_Sec/SecToReceivableBill")] [HttpGet] public object SecToReceivableBill(string hmainidList, string user) { oCN.BeginTran(); try { //将待核销列表中的数据标记为已核销 string sql0 = $"update Xs_SellOutBillList_Sec set HSecEmp = '{user}',HSecTime = getdate() where HMainSourceInterID in ({hmainidList})"; oCN.RunProc(sql0); //生成应付单 string sql = $"select * from h_v_IF_SellOutBillList_EditInit where hmainid in ({ hmainidList})"; ds = oCN.RunProcReturn(sql, "h_v_IF_SellOutBillList_EditInit"); DAL.ClsXs_ReceivableBill oBill = new DAL.ClsXs_ReceivableBill(); oBill.omodel.HInterID = DBUtility.ClsPub.CreateBillID("1426", ref DBUtility.ClsPub.sExeReturnInfo); oBill.omodel.HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("1426", ref DBUtility.ClsPub.sExeReturnInfo,false); oBill.omodel.HDate = DateTime.Now; oBill.omodel.HPeriod = DateTime.Now.Month; oBill.omodel.HYear = DateTime.Now.Year; oBill.omodel.HMainSourceInterID = 0; oBill.omodel.HMainSourceEntryID = 0; oBill.omodel.HMainSourceBillNo = ""; oBill.omodel.HMainSourceBillType = "1205"; oBill.omodel.HMaker = user; oBill.omodel.HMakeDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); oBill.omodel.HSSID = 0; oBill.omodel.HSellSID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSellSID"]); oBill.omodel.HReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); oBill.omodel.HCusID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSupID"]); oBill.omodel.HCurID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HCurID"]); oBill.omodel.HExRate = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["汇率"]); oBill.omodel.HEmpID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HEmpID"]); oBill.omodel.HMangerID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HManagerID"]); oBill.omodel.HDeptID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); oBill.omodel.HExplanation = ""; oBill.omodel.HInnerBillNo = ""; oBill.omodel.HRemark = ""; oBill.omodel.HPriceType = ""; oBill.omodel.HProjectID = 0; for(int i = 0; i < ds.Tables[0].Rows.Count; i++) { Model.ClsXs_ReceivableBillSub oItemSub = new Model.ClsXs_ReceivableBillSub(); oItemSub.HInterID = oBill.omodel.HInterID; oItemSub.HEntryID = (i + 1); oItemSub.HBillNo_bak = oBill.omodel.HBillNo; oItemSub.HMaterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["HMaterID"]); oItemSub.HUnitID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["HUnitID"]); oItemSub.HQty = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["数量"]); oItemSub.HPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["单价"]); oItemSub.HTaxPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税单价"]); oItemSub.HDiscountRate = 1; oItemSub.HRelTaxPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税单价"]); oItemSub.HTaxRate = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["税率"]); oItemSub.HTaxMoney = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["税率"]) * DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["金额"]); oItemSub.HlineTotal = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["价税合计"]); oItemSub.HlineTotalBB = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["价税合计"]) * oBill.omodel.HExRate; oItemSub.HMoney = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["金额"]); oItemSub.HMoneyBB = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["金额"]) * oBill.omodel.HExRate; oItemSub.HRemark = ""; oItemSub.HSourceInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["hmainid"]); oItemSub.HSourceEntryID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["hsubid"]); oItemSub.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[i]["单据号"]); oItemSub.HSourceBillType = "1205"; oItemSub.HRelationQty = 0; oItemSub.HRelationMoney = 0; oBill.DetailColl.Add(oItemSub); } bool bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); if (bResult) { oCN.Commit(); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "核销成功!"; objJsonResult.data = 1; return objJsonResult; } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "核销失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }