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 +++++++++++++++++------
 zhengcaioa/zhengcaioa/Views/FiOrderrecievemoney/Edit.cshtml                |  139 ++++++++++++++++++---------
 2 files changed, 182 insertions(+), 75 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
diff --git a/zhengcaioa/zhengcaioa/Views/FiOrderrecievemoney/Edit.cshtml b/zhengcaioa/zhengcaioa/Views/FiOrderrecievemoney/Edit.cshtml
index d8a351f..6c7751b 100644
--- a/zhengcaioa/zhengcaioa/Views/FiOrderrecievemoney/Edit.cshtml
+++ b/zhengcaioa/zhengcaioa/Views/FiOrderrecievemoney/Edit.cshtml
@@ -11,6 +11,8 @@
 
     List<SysCodeDtl> accounttype = ViewData["accounttype"] as List<SysCodeDtl>; //璐︽埛绫诲瀷
 
+    CooperatecustomCustomerDTO cooperatecustomCustomerDTO = ViewData["cooperatecustomCustomerDTO"] as CooperatecustomCustomerDTO; //瀹㈡埛 
+
 }
 @{
     Layout = null;
@@ -108,7 +110,7 @@
                                     <label class="text-left col-sm-1 col-md-1 control-label"> @Model.YishouMoney.ToString("F2") </label>
                                     <label class="text-left col-sm-1 col-md-1 control-label">   </label>
                                     <label class="text-right col-sm-1 col-md-1 control-label">鏈敹娆撅紙鍏冿級</label>
-                                    <label id="WeishouMoney"  class="text-left col-sm-1 col-md-1 control-label"> @Model.WeishouMoney.ToString("F2") </label>
+                                    <label id="WeishouMoney" class="text-left col-sm-1 col-md-1 control-label"> @Model.WeishouMoney.ToString("F2") </label>
                                     <label class="text-left col-sm-1 col-md-1 control-label">  </label>
                                 </div>
                                 <div class="clearfix layer-area" style="padding-bottom:15px;">
@@ -117,31 +119,46 @@
                                         <input class="form-control" label="鏀舵閲戦锛堝厓锛�" name="Recievemoney" id="Recievemoney" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="number" value="@Model.WeishouMoney.ToString("F2")" oninput="if(value.length>8)value=value.slice(0,18)" onkeyup="value=value.toString().match(/^\d+(?:\.\d{0,2})?/)">
 
                                     </div>
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <label class="text-right col-sm-1 col-md-1 control-label">鏀舵鏂瑰紡<i class="red">*</i></label>
-                                    <div class="col-sm-2 col-md-2">
-                                        <select id="PayType" class="form-control" name="PayType" data-placeholder="閫夋嫨 搴忓垪 ...">
-                                            @foreach (var item in PayType)
-                                            {
-                                                @if (!item.CodeSn.Equals(Model.PayType))
-                                                {
-                                                    <option value="@item.CodeSn" hassubinfo="true">
-                                                        @item.Comments
-                                                    </option>
-                                                }
-                                                else
-                                                {
-                                                    <option value="@item.CodeSn" hassubinfo="true" selected="selected">
-                                                        @item.Comments
-                                                    </option>
-                                                }
+                                    <div class="col-sm-10 col-md-10">
+                                        @for (int i = 0; i < PayType.Count; i++)
+                                        {
+                                            <input type="radio" name="PayType" id="PayType@(i)" value="@(PayType[i].CodeSn)" onclick="CheckedChanging(this.value)" truetype="radio">
+                                            <label for="PayType@(i)">@(PayType[i].Comments)</label>
+                                        }
 
-                                            }
-                                            }
+                                        <input type="radio" name="PayType" id="PayType2" value="03" onclick="CheckedChanging(this.value)" checked="checked" truetype="radio">
+                                        <label for="PayType2">棰勪粯娆�</label>
 
-                                        </select>
+                                        (鍓╀綑棰勪粯娆撅細<span id="nowCustomMoney" class="moneystyle">锟((cooperatecustomCustomerDTO.Yufukuan??0).ToString("f2"))</span>锛屽墿浣欐巿淇★細<span id="nowCredit" class="moneystyle">锟((cooperatecustomCustomerDTO.Shouxinedu??0 - cooperatecustomCustomerDTO.Shenyushouxin??0).ToString("f2"))</span>)
+
+
+                                        @*<select id="PayType" class="form-control" name="PayType" data-placeholder="閫夋嫨 搴忓垪 ...">
+            @foreach (var item in PayType)
+            {
+                @if (!item.CodeSn.Equals(Model.PayType))
+                {
+                    <option value="@item.CodeSn" hassubinfo="true">
+                        @item.Comments
+                    </option>
+                }
+                else
+                {
+                    <option value="@item.CodeSn" hassubinfo="true" selected="selected">
+                        @item.Comments
+                    </option>
+                }
+
+            }
+            }
+
+        </select>*@
 
                                     </div>
-
+                                </div>
+                                <div class="clearfix layer-area" style="padding-bottom:15px;">
                                     <label class="text-right col-sm-1 col-md-1 control-label">鏀舵鏃ユ湡<i class="red">*</i></label>
                                     <div class="col-sm-2 col-md-2">
                                         <input id="PayTime" class="form-control" label="鏀舵鏃ユ湡" name="PayTime" labtype="txt" addvisible="true" editvisible="true" reg="" ismust="true" type="text" value="@Model.PayTime.ToString("yyyy/MM/dd")" readonly="readonly">
@@ -153,7 +170,7 @@
 
                                 </div>
 
-                                <div class="clearfix layer-area" style="padding-bottom:15px;">
+                                <div class="clearfix layer-area" style="padding-bottom:15px;" id="AccountSubject">
 
                                     <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">璐︽埛鍚嶇О<i class="red">*</i></label>
                                     <div class="col-sm-2 col-md-2" grouptype="Vdata">
@@ -164,7 +181,7 @@
                                         </select>
 
                                     </div>
-                                
+
 
                                     <label grouptype="Vdata" class="text-right col-sm-1 col-md-1 control-label">绉戠洰鍚嶇О<i class="red">*</i></label>
                                     <div class="col-sm-2 col-md-2" grouptype="Vdata">
@@ -260,28 +277,27 @@
         // 淇濆瓨宀椾綅淇℃伅
         var savePosition = function () {
 
-
+            if ($("input[name='PayType']:checked").val()!= '03') {
+                if ($("#AccountId").val() == '') {
+                    toastr.warning("鏀舵璐︽埛涓嶈兘涓虹┖");
+                    return;
+                }
+                if ($("#SubjectId").val() == '') {
+                    toastr.warning("鏀舵绉戠洰涓嶈兘涓虹┖");
+                    return;
+                }
+            }
 
             if ($("#Recievemoney").val() == '') {
                 toastr.warning("鏀舵閲戦涓嶈兘涓虹┖");
                 return;
             }
-            if ($("#PayType").val() == '') {
-                toastr.warning("鏀舵鏂瑰紡涓嶈兘涓虹┖");
-                return;
-            }
+            
             if ($("#PayTime").val() == '') {
                 toastr.warning("鏀舵鏃ユ湡涓嶈兘涓虹┖");
                 return;
             }
-            if ($("#AccountId").val() == '') {
-                toastr.warning("鏀舵璐︽埛涓嶈兘涓虹┖");
-                return;
-            }
-            if ($("#SubjectId").val() == '') {
-                toastr.warning("鏀舵绉戠洰涓嶈兘涓虹┖");
-                return;
-            }
+            
             if (parseFloat($("#Recievemoney").val()) < 0) {
                 toastr.warning("鏀舵閲戦涓嶈兘灏忎簬0");
                 return;
@@ -333,12 +349,13 @@
                 }
             });
         }
-
-
-
-        $("#PayType").change(function () {
-
-            var PayType = $("#PayType").val();
+        function CheckedChanging(obj) {
+            var PayType = obj;
+            if (PayType == "03") {
+                $("#AccountSubject").hide();
+            } else {
+                $("#AccountSubject").show();
+            }
             $.ajax({
                 type: "GET",
                 url: "/FiAccountIncome/getAccount?Accounttype=" + PayType,
@@ -346,7 +363,7 @@
                 global: false,
                 data: "",
                 success: function (data) {
-                   
+
                     var city = $("#AccountId");
                     city.find('option').remove();
                     var aaa = '<option value="" hassubinfo="true">璇烽�夋嫨</option>';
@@ -365,9 +382,41 @@
                     parent.layer.msg('澶辫触', { icon: 5 });
                 }
             });
-        });
+        }
+        CheckedChanging(03);
 
-        $("#PayType").trigger("change");
+        //$("#PayType").change(function () {
+
+        //    var PayType = $("#PayType").val();
+        //    $.ajax({
+        //        type: "GET",
+        //        url: "/FiAccountIncome/getAccount?Accounttype=" + PayType,
+        //        dataType: "json",
+        //        global: false,
+        //        data: "",
+        //        success: function (data) {
+                   
+        //            var city = $("#AccountId");
+        //            city.find('option').remove();
+        //            var aaa = '<option value="" hassubinfo="true">璇烽�夋嫨</option>';
+        //            city.append(aaa);
+        //            if (data.length > 0) {
+        //                for (var i = 0; i < data.length; i++) {
+
+        //                    var o = '<option value="' + data[i].Id + '" hassubinfo="true">' + data[i].Accountname + '</option>';
+        //                    city.append(o);
+        //                }
+        //            }
+        //        },
+        //        error: function () {
+
+
+        //            parent.layer.msg('澶辫触', { icon: 5 });
+        //        }
+        //    });
+        //});
+
+        //$("#PayType").trigger("change");
 
 
         function _pageAutoClose() {

--
Gitblit v1.9.1