using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using AngleSharp.Html.Parser; using DTO; using IServices; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Bot.Builder.Integration.AspNet.Core; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; using zhengcaioa.Models; using zhengcaioa.IService; using CommonToolsCore; using Services; using System.Transactions; namespace zhengcaioa.Controllers.Finance { [CheckLogin] public class FiOrderrecievemoneyController : Controller { private readonly ILogger _logger; private readonly ILiaotianService _liaotianService; private readonly IFiOrderrecievemoneyService _fiOrderrecievemoneyService; private readonly ICooperOrderService _cooperOrderService; private readonly IFiSubjectService _ifiSubjectService; private readonly IFiAccountService _fiAccountService; private readonly IFiAccountRecordService _iFiAccountRecordService; private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; public FiOrderrecievemoneyController(ILogger logger, ILiaotianService liaotianService, IFiOrderrecievemoneyService fiOrderrecievemoneyService, ICooperOrderService cooperOrderService, IFiSubjectService ifiSubjectService , IFiAccountService fiAccountService, IFiAccountRecordService iFiAccountRecordService, ICooperatecustomCustomerService cooperatecustomCustomerService) { _logger = logger; _liaotianService = liaotianService; _fiOrderrecievemoneyService = fiOrderrecievemoneyService; _cooperOrderService = cooperOrderService; _ifiSubjectService = ifiSubjectService; _fiAccountService = fiAccountService; _iFiAccountRecordService = iFiAccountRecordService; _cooperatecustomCustomerService = cooperatecustomCustomerService; } public IActionResult Index() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Search"; actionEntity.PageIco = "fa fa-search"; actionEntity.ActionName = "查询"; actionlist.Add(actionEntity); ViewData["ActionInfo"] = actionlist; ViewBag.OrderType = _liaotianService.GetSYScode("CooperVisit", "jtype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.Fkzt = _liaotianService.GetSYScode("fi_Orderrecievemoney", "rec_status").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); return View(); } public IActionResult GetList(FiOrderrecievemoneyDTOSearch search) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); return new JsonResult(_fiOrderrecievemoneyService.SearchByPaging(search)); } public IActionResult Edit(string id = null,string OrderId = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; FiOrderrecievemoneyDTO dto = new FiOrderrecievemoneyDTO(); if (!String.IsNullOrEmpty(id)) { dto = _fiOrderrecievemoneyService.Get(id); } else { dto.PayTime = DateTime.Now; dto.OrderId = OrderId; } CooperOrderDTO cooperOrderDTO = _cooperOrderService.Get(OrderId); List fiOrderrecievemoneyDTOs = _fiOrderrecievemoneyService.GetList(OrderId); dto.Money = cooperOrderDTO.Money.Value - (cooperOrderDTO.Youhui??0); if(fiOrderrecievemoneyDTOs!=null&& fiOrderrecievemoneyDTOs.Count > 0) { dto.YishouMoney = fiOrderrecievemoneyDTOs.Sum(x => x.Recievemoney).Value; } else { dto.YishouMoney = 0; } dto.WeishouMoney = dto.Money - dto.YishouMoney; ViewBag.PayType = _liaotianService.GetSYScode("fi_account", "accounttype"); ViewBag.accounttype = _liaotianService.GetSYScode("fi_account", "accounttype"); ViewBag.FiSubject = _ifiSubjectService.GetList().Where(x => x.Subjecttype == "01").ToList(); ViewData.Model = dto; return View(); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult Save(FiOrderrecievemoneyDTO data) { ResultEntity resultEntity = new ResultEntity(); var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; using (TransactionScope scope = new TransactionScope()) { data.RecStatus = "A"; if (String.IsNullOrEmpty(data.Id)) { data.Creater = curentuser.Id; data.Createtime = DateTime.Now; } data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; resultEntity = _fiOrderrecievemoneyService.save(data); CooperOrderDTO cooperOrderDTO = _cooperOrderService.Get(data.OrderId); CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(cooperOrderDTO.Khdw); FiAccountRecordDTO data1 = new FiAccountRecordDTO(); data1.RecStatus = "A"; data1.Creater = curentuser.Id; data1.Createtime = DateTime.Now; data1.Modifier = curentuser.Id; data1.Modifytime = DateTime.Now; data1.SubjectId = data.SubjectId; data1.AccountId = data.AccountId; data1.Money = data.Recievemoney; data1.PaymentUnit = cooperatecustomCustomerDTO.Name; data1.OperationalMatters = "订单收款"+ cooperOrderDTO.OrderNo; FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId); data1.RecordTypeId = "1";//收入 data1.Department = ""; resultEntity = _iFiAccountRecordService.save(data1); firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money; firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money; resultEntity = _fiAccountService.save(firmAccount); scope.Complete(); } return new JsonResult(resultEntity); } /// /// 删除主信息 /// /// 实体 /// /// public IActionResult Nullify(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return new JsonResult(_fiOrderrecievemoneyService.ModifyStatus(Id, curentuser.Id)); } } }