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