From 6e2b929cf381e2320ba6e7dec56c0371124d2b51 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期六, 27 八月 2022 15:03:00 +0800
Subject: [PATCH] 提交

---
 zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs |  407 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 378 insertions(+), 29 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
index 08ec057..2fa29d2 100644
--- a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
@@ -18,6 +18,9 @@
 using CommonToolsCore;
 using Services;
 using System.Transactions;
+using System.Net.Http.Headers;
+using Newtonsoft.Json.Linq;
+using Microsoft.Extensions.Configuration;
 
 namespace zhengcaioa.Controllers.Finance
 {
@@ -32,9 +35,27 @@
         private readonly IFiAccountService _fiAccountService;
         private readonly IFiAccountRecordService _iFiAccountRecordService;
         private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
+        private readonly IProjectService _projectService;
+        private readonly IUserService _userService;
+        private readonly IFiCustomerrecievemoneyService _fiCustomerrecievemoneyService;
+        private readonly IConfiguration _configuration;
+        private readonly IHttpClientFactory _clientFactory;
+        private readonly IFiMemberService _iMemberService;
+        private readonly IPltPageService _pltPageService;
+        private readonly IFiBookService _fiBookService;
+        private readonly IFiMemberService _fiMemberService;
 
         public FiOrderrecievemoneyController(ILogger<FiOrderrecievemoneyController> logger, ILiaotianService liaotianService, IFiOrderrecievemoneyService fiOrderrecievemoneyService, ICooperOrderService cooperOrderService, IFiSubjectService ifiSubjectService
-            , IFiAccountService fiAccountService, IFiAccountRecordService iFiAccountRecordService, ICooperatecustomCustomerService cooperatecustomCustomerService)
+            , IFiAccountService fiAccountService, IFiAccountRecordService iFiAccountRecordService, ICooperatecustomCustomerService cooperatecustomCustomerService
+            , IProjectService projectService
+            , IUserService userService
+            , IFiCustomerrecievemoneyService fiCustomerrecievemoneyService
+              , IConfiguration configuration
+            , IHttpClientFactory clientFactory
+             , IFiMemberService iMemberService
+               , IPltPageService pltPageService
+            , IFiBookService fiBookService
+            , IFiMemberService fiMemberService)
         {
             _logger = logger;
             _liaotianService = liaotianService;
@@ -44,8 +65,15 @@
             _fiAccountService = fiAccountService;
             _iFiAccountRecordService = iFiAccountRecordService;
             _cooperatecustomCustomerService = cooperatecustomCustomerService;
-
-
+            _projectService = projectService;
+            _userService = userService;
+            _fiCustomerrecievemoneyService = fiCustomerrecievemoneyService;
+            _configuration = configuration;
+            _clientFactory = clientFactory;
+            _iMemberService = iMemberService;
+            _pltPageService = pltPageService;
+            _fiBookService = fiBookService;
+            _fiMemberService = fiMemberService;
         }
 
         public IActionResult Index()
@@ -62,7 +90,9 @@
             actionlist.Add(actionEntity);
             ViewData["ActionInfo"] = actionlist;
 
-
+            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/FiOrderrecievemoney/Index/");
+            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
+            ViewData["ActionInfo2"] = pageEntities2;
 
             ViewBag.OrderType = _liaotianService.GetSYScode("CooperVisit", "jtype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
           
@@ -105,7 +135,7 @@
             CooperOrderDTO cooperOrderDTO = _cooperOrderService.Get(OrderId);
             List<FiOrderrecievemoneyDTO> fiOrderrecievemoneyDTOs = _fiOrderrecievemoneyService.GetList(OrderId);
 
-            dto.Money = cooperOrderDTO.Money.Value - (cooperOrderDTO.Youhui??0);
+            dto.Money = cooperOrderDTO.Money.Value;
             if(fiOrderrecievemoneyDTOs!=null&& fiOrderrecievemoneyDTOs.Count > 0)
             {
                 dto.YishouMoney = fiOrderrecievemoneyDTOs.Sum(x => x.Recievemoney).Value;
@@ -124,9 +154,7 @@
             ViewBag.accounttype = _liaotianService.GetSYScode("fi_account", "accounttype");
             ViewBag.FiSubject = _ifiSubjectService.GetList().Where(x => x.Subjecttype == "01").ToList();
 
-
-
-
+            ViewBag.cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(cooperOrderDTO.Khdw);
 
             ViewData.Model = dto;
             return View();
@@ -145,7 +173,13 @@
             ResultEntity resultEntity = new ResultEntity();
                 var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
                 ViewData["curentuser"] = curentuser;
-            using (TransactionScope scope = new TransactionScope())
+            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
+           new TransactionOptions
+           {
+               IsolationLevel = IsolationLevel.ReadCommitted,
+               Timeout = TransactionManager.MaximumTimeout
+           }
+           ))
             {
                 data.RecStatus = "A";
                 if (String.IsNullOrEmpty(data.Id))
@@ -155,37 +189,146 @@
                 }
                 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;
+                if (data.PayType == "03")
+                {
+                    if(data.Recievemoney>((cooperatecustomCustomerDTO.Yufukuan ?? 0)+ (cooperatecustomCustomerDTO.Shouxinedu ?? 0) - (cooperatecustomCustomerDTO.Shenyushouxin ?? 0)))
+                    {
+                        resultEntity.Result = false;
+                        resultEntity.Message = "鍓╀綑棰勪粯娆惧拰鍓╀綑鎺堜俊涓嶈冻锛�";
+                        return new JsonResult(resultEntity);
+                    }
+                    else
+                    {
+                        if (data.Recievemoney > (cooperatecustomCustomerDTO.Yufukuan??0))
+                        {
+                            cooperatecustomCustomerDTO.Shenyushouxin = data.Recievemoney - (cooperatecustomCustomerDTO.Yufukuan??0);
+                            if (cooperatecustomCustomerDTO.Shenyushouxin> (cooperatecustomCustomerDTO.Shouxinedu??0))
+                            {
+                                resultEntity.Result = false;
+                                resultEntity.Message = "鍓╀綑鎺堜俊涓嶈冻锛�";
+                                return new JsonResult(resultEntity);
+                            }
+                            cooperatecustomCustomerDTO.Yufukuan = 0;
+                           
+                        }
+                        else
+                        {
+                            cooperatecustomCustomerDTO.Yufukuan = cooperatecustomCustomerDTO.Yufukuan - data.Recievemoney;
+                        }
+                        resultEntity = _cooperatecustomCustomerService.saveyufukuan(cooperatecustomCustomerDTO);
+                    }
+                }
+                
 
-                data1.AccountId = data.AccountId;
-                data1.Money = data.Recievemoney;
-                data1.PaymentUnit = cooperatecustomCustomerDTO.Name;
-                data1.OperationalMatters = "璁㈠崟鏀舵"+ cooperOrderDTO.OrderNo;
+                resultEntity = _fiOrderrecievemoneyService.save(data);
+
+                if (data.WeishouMoney <= data.Recievemoney && cooperOrderDTO.OrderType == "05" )
+                {
+                    //寮�閫氫細鍛�
+                    var fiMemberDTO = _iMemberService.Get(cooperOrderDTO.OrderType1);
+                    //寮�閫氫細鍛�
+                    string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
+                    string OAWriteChangeAsync = _configuration.GetSection("OAWriteChangeAsync").Value;
+
+                    Uri postUrl2 = new Uri(huiyuanurl + OAWriteChangeAsync);
+                    JObject questions2 = new JObject();
+                    questions2.Add("UserID", cooperatecustomCustomerDTO.HuiyuanId);
+                    questions2.Add("PhoneNumber", cooperatecustomCustomerDTO.Tel);
+                    questions2.Add("VIPName", fiMemberDTO.MemberType);
+                    questions2.Add("UserName", cooperatecustomCustomerDTO.Name);
+                    questions2.Add("FromName", "OA");
 
 
 
-                FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId);
+                    string requestJson2 = questions2.ToString();
+                    string result2 = string.Empty;
+
+                    using (HttpContent httpContent = new StringContent(requestJson2))
+                    {
+                        httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
 
 
-                data1.RecordTypeId = "1";//鏀跺叆
-                data1.Department = "";
+                        using (HttpClient httpClient = new HttpClient())
+                        {
+                            httpClient.Timeout = new TimeSpan(0, 0, 10);
+                            HttpResponseMessage responseMessage = httpClient.PostAsync(postUrl2, httpContent).Result;
+                            result2 = responseMessage.Content.ReadAsStringAsync().Result;
+                        }
+                    }
 
-                resultEntity = _iFiAccountRecordService.save(data1);
+                    _logger.LogInformation("result2:" + result2);
+                    JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
 
-                firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money;
-                firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money;
+                    if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
+                    {
+                        cooperatecustomCustomerDTO.HuiyuanId = jobjectresult["UserID"].ToString();
+                        _cooperatecustomCustomerService.save(cooperatecustomCustomerDTO);
+                        resultEntity.Result = true;
+                    }
+                    else
+                    {
+                        resultEntity.Result = false;
+                        resultEntity.Message = "鍐欏叆浼氬憳鏉冮檺澶辫触";
+                        return new JsonResult(resultEntity);
+                    }
 
-                resultEntity = _fiAccountService.save(firmAccount);
+
+
+                }
+                if (data.PayType != "03")
+                {
+                    var sysCodeDtls = _liaotianService.GetSYScode("CooperVisit", "jtype");
+                     var book = _fiBookService.Get(cooperOrderDTO.OrderType1);
+                    var member = _fiMemberService.Get(cooperOrderDTO.OrderType1);
+                    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;
+                    var ssss = sysCodeDtls.Where(x => x.CodeSn == cooperOrderDTO.OrderType).FirstOrDefault();
+                    if (ssss != null)
+                    {
+                        cooperOrderDTO.OrderTypeName = ssss.Comments;
+                    }
+                    if (book != null)
+                    {
+                        cooperOrderDTO.OrderType1 = book.BookName;
+                    }
+                    if (member != null)
+                    {
+                        cooperOrderDTO.OrderType1 = member.MemberType;
+                    }
+
+                    //data1.OperationalMatters = "璁㈠崟鏀舵" + cooperOrderDTO.OrderNo;
+
+                    data1.OperationalMatters = cooperOrderDTO.OrderTypeName + cooperOrderDTO.OrderType1 + cooperOrderDTO.OrderType2 + " 璁㈠崟鏀舵";
+                    data1.Remark = cooperOrderDTO.OrderNo;
+
+                    FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId);
+
+
+                    data1.RecordTypeId = "1";//鏀跺叆
+                    data1.Department = "";
+
+
+
+                    firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money;
+                    firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money;
+
+                    data1.AccountMoney = firmAccount.Balance;
+                    resultEntity = _iFiAccountRecordService.save(data1);
+                    resultEntity = _fiAccountService.save(firmAccount);
+                }
+
+                    
                 scope.Complete();
             }
 
@@ -205,5 +348,211 @@
             ViewData["curentuser"] = curentuser;
             return new JsonResult(_fiOrderrecievemoneyService.ModifyStatus(Id, curentuser.Id));
         }
+
+
+        public IActionResult IndexCustomer()
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+            List<ActionEntity> actionlist = new List<ActionEntity>();
+            ActionEntity actionEntity = new ActionEntity();
+            actionEntity.OpenType = 0;
+            actionEntity.ActionUrl = "";
+            actionEntity.ActionFun = "Search";
+            actionEntity.PageIco = "fa fa-search";
+            actionEntity.ActionName = "鏌ヨ";
+            actionlist.Add(actionEntity);
+            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/FiOrderrecievemoney/IndexCustomer/");
+            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
+            ViewData["ActionInfo2"] = pageEntities2;
+
+            ViewData["ActionInfo"] = actionlist;
+
+
+            ViewBag.khlx = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
+            ViewBag.khly = _liaotianService.GetSYScode("CooperatecustomCustomer", "khly").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
+            ViewBag.hyfl = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
+            ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
+            ViewBag.users = _userService.GetList().Where(x => x.IsYwjl == "A").Select(x => new { code = x.Id, label = x.UserName }).ToList();
+
+            var areaDTOs = _projectService.Getsheng().ToList();
+            foreach (var areaDTO in areaDTOs)
+            {
+                if (areaDTO.CodeId == "510000")
+                {
+                    areaDTOs.Remove(areaDTO);
+                    break;
+                }
+            }
+            var areaDTOsic = new Area();
+            areaDTOsic.CodeId = "510000";
+            areaDTOsic.Name = "鍥涘窛鐪�";
+            areaDTOsic.ParentId = "0     ";
+            areaDTOs.Insert(1, areaDTOsic);
+            ViewBag.ShengDropDown = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList();
+
+            return View();
+
+        }
+
+
+        public IActionResult EditCustomer(string id = null, string CustomerId = null)
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+
+            FiCustomerrecievemoneyDTO dto = new FiCustomerrecievemoneyDTO();
+            if (!String.IsNullOrEmpty(id))
+            {
+                dto = _fiCustomerrecievemoneyService.Get(id);
+            }
+            else
+            {
+                dto.PayTime = DateTime.Now;
+                dto.CustomerId = CustomerId;
+            }
+
+            var cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(CustomerId);
+
+            dto.CustomerName = cooperatecustomCustomerDTO.Name;
+            dto.Yufukuan = cooperatecustomCustomerDTO.Yufukuan??0;
+
+
+
+            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();
+        }
+
+
+        /// <summary>
+        /// 淇濆瓨
+        /// </summary>
+        /// <param name="data">宀椾綅瀹炰綋绫诲璞�</param>
+        /// <returns></returns>
+        /// 
+        [HttpPost]
+        public IActionResult SaveCustomer(FiCustomerrecievemoneyDTO data)
+        {
+            ResultEntity resultEntity = new ResultEntity();
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
+           new TransactionOptions
+           {
+               IsolationLevel = IsolationLevel.ReadCommitted,
+               Timeout = TransactionManager.MaximumTimeout
+           }
+           ))
+            {
+                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 = _fiCustomerrecievemoneyService.save(data);
+                CooperatecustomCustomerDTO cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(data.CustomerId);
+                if (cooperatecustomCustomerDTO.Shenyushouxin.HasValue)
+                {
+                    if(data.Recievemoney.Value> cooperatecustomCustomerDTO.Shenyushouxin.Value)
+                    {
+                        data.Recievemoney = data.Recievemoney.Value - cooperatecustomCustomerDTO.Shenyushouxin.Value;
+                        cooperatecustomCustomerDTO.Shenyushouxin = 0;
+                    }
+                    else
+                    {
+                        cooperatecustomCustomerDTO.Shenyushouxin = cooperatecustomCustomerDTO.Shenyushouxin.Value - data.Recievemoney.Value;
+                        data.Recievemoney = 0;
+                    }
+                }
+
+                if(cooperatecustomCustomerDTO.Yufukuan.HasValue)
+                    cooperatecustomCustomerDTO.Yufukuan = cooperatecustomCustomerDTO.Yufukuan.Value + data.Recievemoney.Value;
+                 else
+                    cooperatecustomCustomerDTO.Yufukuan = data.Recievemoney.Value;
+                resultEntity = _cooperatecustomCustomerService.saveyufukuan(cooperatecustomCustomerDTO);
+                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 ="瀹㈡埛棰勪粯娆撅細" + data.Remark;
+
+
+
+                FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId);
+
+
+                data1.RecordTypeId = "1";//鏀跺叆
+                data1.Department = "";
+
+
+
+                firmAccount.AllIncome = (firmAccount.AllIncome ?? 0) + data1.Money;
+                firmAccount.Balance = (firmAccount.Balance ?? 0) + data1.Money;
+
+                data1.AccountMoney = firmAccount.Balance;
+                resultEntity = _iFiAccountRecordService.save(data1);
+                resultEntity = _fiAccountService.save(firmAccount);
+                scope.Complete();
+            }
+
+            return new JsonResult(resultEntity);
+        }
+
+
+
+        public IActionResult IndexCustomerdtl(string CustomerId)
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+            List<ActionEntity> actionlist = new List<ActionEntity>();
+            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.CustomerId = CustomerId;
+
+
+
+
+
+            return View();
+
+        }
+
+
+
+
+        public IActionResult GetListCustomerdel(FiCustomerrecievemoneyDTOSearch search)
+        {
+            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+            ViewData["curentuser"] = curentuser;
+            //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
+            return new JsonResult(_fiCustomerrecievemoneyService.SearchByPaging(search));
+        }
+
     }
 }

--
Gitblit v1.9.1