From f83fb19d3f31c2c48390da94740c68ffd07a6f12 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期五, 07 一月 2022 10:09:14 +0800
Subject: [PATCH] 订单收款改造

---
 zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs |  118 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 88 insertions(+), 30 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
index f911f40..6deabc1 100644
--- a/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/Finance/FiOrderrecievemoneyController.cs
@@ -131,9 +131,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();
@@ -152,7 +150,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))
@@ -162,39 +166,73 @@
                 }
                 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.PayType != "03")
+                {
+                    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 = "";
 
 
 
-                FiAccountDTO firmAccount = _fiAccountService.Get(data1.AccountId);
+                    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);
+                }
 
-                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();
             }
 
@@ -308,7 +346,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))
@@ -321,6 +365,20 @@
 
                 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

--
Gitblit v1.9.1