using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using Common.Model; using CoreEntity.DAL; using CoreEntity.Entity; using JCSoft.WX.Framework.Api; using LigerRM.Common; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using PublicLibrary.Json; using PublicLibrary.Model; using SupplierWeb.Codes.mvc; using ZcPeng.PublicLibrary; namespace SupplierWeb.Controllers { [Route("web/payplan")] [ApiController] public class PayPlanController : BaseController { public PayPlanController(IMemoryCache cache, IApiClient client) : base(cache, client) { } ////添加内部管理人员账户,采购员账号 [AuthPermission] [HttpPost, Route("add")] public JsonResult add([FromBody]dynamic data, Int32 IsDelete = 0 ) { string SaleManId = string.Empty; string ContactId = string.Empty; string SuppliersId = string.Empty; decimal PTaxAmount = 0; string Remark = string.Empty; string PayType = string.Empty; List apgoodsmt = new List(0); if (data != null) { //Newtonsoft.Json.Linq.JArray ContactId = data.ContactId; SuppliersId = data.SuppliersId; PTaxAmount = data.PTaxAmount; Remark = data.Remark; PayType = data.PayType; if (data.apgoodsmt != null) { var list = JsonConvert.SerializeObject(data.apgoodsmt); apgoodsmt = JsonConvert.DeserializeObject>(list); } else apgoodsmt = new List { }; //apgoodsmt = data.apgoodsmt == null ? new List < APGoodsMT > { } : data.apgoodsmt.ToObject>(); ; } string result = string.Empty; //采购员默认第一个单的采购 Object obj = null; string result1 = ""; APGoodsMT apgmt = null; if (apgoodsmt != null && apgoodsmt.Count > 0) { apgmt = apgoodsmt[0]; var success1 = DataAccess.GetOneValue("select SaleManId from PurInMT where BillNo = " + apgoodsmt[0].BillNo, out obj, out result1); SaleManId = obj.ToString(); } else { return Json(new { success = false, msg = "没有选择应付单据" }); } //整单付款 //一次只能选同一个供应商申请付款 bool success = PlanMTDAL.addPayPlan( SaleManId, ContactId, SuppliersId, 0, Remark, PayType, apgoodsmt, out result, apgmt.EntId, apgmt.OrgId, apgmt.DeptId); return Json(new { success = success, msg = result, result1 = result1 }); } [HttpPost] [Route("getData")] public JsonResult GetData(string[] filters, Int32 pageIndex, Int32 pageSize, string sortField, Int32 sortDirection, string[] sumFields, [FromBody] dynamic data) { List filterList = new List(); if (data != null) { if (data.filters.Count > 0) { var list = JsonConvert.SerializeObject(data.filters); filterList = JsonConvert.DeserializeObject>(list); } pageIndex = data.pageIndex; pageSize = data.pageSize; sortField = data.sortField; sortDirection = data.sortDirection; sumFields = data.sumFields.ToObject(); } var isAce = sortDirection == 0; var queryCondition = string.Empty; var param = new List(0); var start = (pageIndex - 1) * pageSize; var end = (start + 1 + pageSize); var dt = new DataTable(); if (filterList != null) { queryCondition = QueryFilter.getFilterSqlParam(filterList.ToArray(), out param, new PlanMT(), "C."); } sortField = "C." + sortField; var sql = $"select * from " + $"(select *,row_number() over (order by " + sortField + " " + sortDirection + ") as rowNum " + $"from PlanMT C " + $"where 1 = 1 {queryCondition}" + $") R" + $" where rowNum > {start} and rowNum < {end}"; DataAccess.GetValues(sql, ref dt, param.ToArray(), out var msg); IList result = new List(); if (dt != null && dt.Rows.Count > 0) { result = ModelConvertHelper.ConvertToModel(dt); } var jsonData = JsonConvert.SerializeObject(result); var countSql = $"select count(1) from " + $"(select * from PlanMT C " + $"where 1 = 1 {queryCondition}) R"; var count = DataAccess.GetRowCountDefine(countSql, param.ToArray(), out var msg1); return Json(new { items = result, sum = new { }, totalCount = count, msg }); } [HttpPost] [Route("getDataBill")] public JsonResult GetDataBill(string[] filters, Int32 pageIndex, Int32 pageSize, string sortField, Int32 sortDirection, string[] sumFields, [FromBody] dynamic data) { List filterList = new List(); if (data != null) { if (data.filters.Count > 0) { var list = JsonConvert.SerializeObject(data.filters); filterList = JsonConvert.DeserializeObject>(list); } pageIndex = data.pageIndex; pageSize = data.pageSize; sortField = data.sortField; sortDirection = data.sortDirection; sumFields = data.sumFields.ToObject(); } var isAce = sortDirection == 0; var queryCondition = string.Empty; var param = new List(0); var start = (pageIndex - 1) * pageSize; var end = (start + 1 + pageSize); var dt = new DataTable(); if (filterList != null) { queryCondition = QueryFilter.getFilterSqlParam(filterList.ToArray(), out param, new PlanBillDT(), "C."); } sortField = "C." + sortField; var sql = $"select * from " + $"(select *,row_number() over (order by " + sortField + " " + sortDirection + ") as rowNum " + $"from PlanBillDT C " + $"where 1 = 1 {queryCondition}" + $") R" + $" where rowNum > {start} and rowNum < {end}"; DataAccess.GetValues(sql, ref dt, param.ToArray(), out var msg); IList result = new List(); if (dt != null && dt.Rows.Count > 0) { result = ModelConvertHelper.ConvertToModel(dt); } var jsonData = JsonConvert.SerializeObject(result); var countSql = $"select count(1) from " + $"(select * from PlanBillDT C " + $"where 1 = 1 {queryCondition}) R"; var count = DataAccess.GetRowCountDefine(countSql, param.ToArray(), out var msg1); return Json(new { items = result, sum = new { }, totalCount = count, msg }); } [HttpPost] [Route("getDataDT")] public JsonResult GetDataDT(string[] filters, Int32 pageIndex, Int32 pageSize, string sortField, Int32 sortDirection, string[] sumFields, [FromBody] dynamic data) { List filterList = new List(); if (data != null) { if (data.filters.Count > 0) { var list = JsonConvert.SerializeObject(data.filters); filterList = JsonConvert.DeserializeObject>(list); } pageIndex = data.pageIndex; pageSize = data.pageSize; sortField = data.sortField; sortDirection = data.sortDirection; sumFields = data.sumFields.ToObject(); } var isAce = sortDirection == 0; var queryCondition = string.Empty; var param = new List(0); var start = (pageIndex - 1) * pageSize; var end = (start + 1 + pageSize); var dt = new DataTable(); if (filterList != null) { queryCondition = QueryFilter.getFilterSqlParam(filterList.ToArray(), out param, new PlanGoodsDT(), "C."); } sortField = "C." + sortField; var sql = $"select * from " + $"(select *,row_number() over (order by " + sortField + " " + sortDirection + ") as rowNum " + $"from PlanGoodsDT C " + $"where 1 = 1 {queryCondition}" + $") R" + $" where rowNum > {start} and rowNum < {end}"; DataAccess.GetValues(sql, ref dt, param.ToArray(), out var msg); IList result = new List(); if (dt != null && dt.Rows.Count > 0) { result = ModelConvertHelper.ConvertToModel(dt); } var jsonData = JsonConvert.SerializeObject(result); var countSql = $"select count(1) from " + $"(select * from PlanMT C " + $"where 1 = 1 {queryCondition}) R"; var count = DataAccess.GetRowCountDefine(countSql, param.ToArray(), out var msg1); return Json(new { items = result, sum = new { }, totalCount = count, msg }); } } }