[CCBLActionFilter]
public async Task<ActionResult> Create()
{
LoanMaster loanMaster = new LoanMaster();
await InitCommonAsync(loanMaster);
return View(loanMaster);
}
[HttpPost]
[ValidateAntiForgeryToken]
[CCBLActionFilter]
public async Task<ActionResult> Create(LoanMaster loanMaster, Guid[] Client, int[] IncomeSource)
{
try
{
if (ModelState.IsValid)
{
//if (loanMaster.LoanBusinessType.LoanBorrowerTypeID == (int)EnumBorrowerType.Individual)
//{
//}
await _loanMasterService._InsertLoan(loanMaster);
foreach (var item1 in Client)
{
LoanMasterClientRelation data = new LoanMasterClientRelation
{
ID = Guid.NewGuid(),
LoanMasterID = loanMaster.ID,
LoanClientMasterID = item1,
};
if (IncomeSource != null)
{
foreach (var item in IncomeSource)
{
LoanMasterIncomeType data1 = new LoanMasterIncomeType
{
LoanMasterID = loanMaster.ID,
LoanIncomeSourceID = item,
};
await _loanMasterIncomeTypesRepo.Insert(data1);
}
}
await _loanMasterClientRelationRepo.InsertAsync(data);
await _loanMasterClientRelationRepo.SaveAsync();
}
FlashBag.setMessage(true, "Loan Successfully Created");
return RedirectToAction("Details", new { id = loanMaster.ID });
}
}
//else
catch (DbEntityValidationException e)
{
StringBuilder sb = new StringBuilder();
foreach (var eve in e.EntityValidationErrors)
{
sb.AppendFormat("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
sb.AppendFormat("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
ModelState.AddModelError("", sb.ToString());
}
catch (Exception ex)
{
ModelState.AddModelError("", ex.Message);
}
await InitCommonAsync(loanMaster);
return View(loanMaster);
}
----------------------------
@model WorkFlow.Infrastructure.Model.LoanMaster
@{
ViewBag.Title = "Create";
}
<div class="container">
<div class="toolbar row">
<div class="col-sm-6 hidden-xs">
<div class="page-header">
<h1>
Loan
<small>Create</small>
</h1>
</div>
</div>
<div class="col-sm-6 col-xs-12">
<div class="toolbar-tools pull-right">
<!-- start: TOP NAVIGATION MENU -->
<ul class="nav navbar-right">
<li class="back">
<a href="@Url.Action("Index")">
<i class="fa fa-chevron-left">
</i> BACK
</a>
</li>
<li>
<a href="#searchData" data-toggle="collapse">
<i class="fa fa-list"></i>
Search Panel
</a>
</li>
</ul>
</div>
</div>
</div>
@using (Html.BeginForm("Create", "LoanMasters", FormMethod.Post, new { id = "Loan", enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.EditorForModel()
}
</div>
@section Scripts{
<script>
let urlLoanMastersBusinessType = '@Url.Action("BusinessType", "LoanMasters")';
let urlLoanMastersClientList = '@Url.Action("ClientList", "LoanMasters")';
let urlLoanMastersApprovingList = '@Url.Action("ApprovingList", "LoanMasters")';
</script>
<script src='@Url.Content("~/Scripts/LoanMaster/LoanMaster.js")'></script>
}
-----------------------------------
//ajax for getting bussiness type according to borrower type
[HttpPost]
public ActionResult BusinessType(int typeid)
{
try
{
var Datalist = _loanBusinessTypeRepo.GetListc().Where(x => x.LoanBorrowerTypeID == typeid).Select(x => new { x.ID, x.BusinessTypeTitle }).OrderBy(x => x.BusinessTypeTitle).ToList();
return Json(new { msg = true, clientaccount = Datalist }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
-------------------------
//ajax for getting client according to borrower type
public ActionResult ClientList(int browwerid)
{
var clientlist = _loanClientMasterRepo.GetList().Where(x => x.LoanBorrowerTypeID == browwerid)
.Select(x => new { x.BindField, x.DisplayField }).ToList();
return Json(new { msg = true, client = clientlist }, JsonRequestBehavior.AllowGet);
}
----------------------------------------------
---------------------------------------------
//ajax for getting bussiness type according to borrower type
[HttpPost]
public async Task<ActionResult> ApprovingList(string branchCode, int? businessTypeID)
{
try
{
var branch = branchCode;
var onlyBusinessTypeGroup = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.LoanBusinessTypeID == businessTypeID).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).OrderBy(x => x.StepNumber);
var approvinglist = (object)null;
if (branch.StartsWith("001"))
{
//stepnumber
List<int> stepNumberToAvoid = new List<int> { 2, 3, 4 };
approvinglist = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.ShowDDL == true && !stepNumberToAvoid.Contains(x.StepNumber) && x.StepNumber != 5).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).Union(onlyBusinessTypeGroup).OrderBy(x => x.StepNumber);
return Json(new { msg = true, approvinglist = approvinglist }, JsonRequestBehavior.AllowGet);
}
else
{
approvinglist = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.ShowDDL == true && x.StepNumber != 5).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).Union(onlyBusinessTypeGroup).OrderBy(x => x.StepNumber);
return Json(new { msg = true, approvinglist = approvinglist }, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
-----------------------
----------------
let Borrower = $('#BorrowerType option:selected').val();
const objLiteral = {
init: function () {
ModalAlert_SetMessage("Fetching data! Please wait....");
$("#Client").empty();
$(".LoanBusinessType").empty();
$(".ApprovingStep").empty();
//$('.IncomeSource').prop('disabled', true);
//$('.EASRM').prop('disabled', true);
this.interaction();
},
interaction: function () {
let Borrower = $('#BorrowerType option:selected').val();
if (Borrower == '1') {
$('#IncomeSource').prop('required', true);
$(".IncomeSource").show();
$("#EASRM").removeAttr("required");
$(".EASRM").hide();
}
else if (Borrower == '2') {
$('#EASRM').prop('required', true);
$(".EASRM").show();
$("#IncomeSource").removeAttr('required');
$(".IncomeSource").hide();
}
$('#BorrowerType').on('change', function (event) {
event.preventDefault();
var Borrower = $('#BorrowerType option:selected').val();
console.log("Borrower=" + Borrower);
if (Borrower == "") {
$("#Client").empty().trigger('change');
$(".LoanBusinessType").empty().trigger('change');
$(".ApprovingStep").empty().trigger('change');
$("#LoanBusinessTypeID").append('<option value=""> -- SELECT -- </option>');
$("#Client").append('<option value=""> -- SELECT -- </option>');
$(".ApprovingStep").append('<option value=""> -- SELECT -- </option>');
}
else {
console.log('Borrower: ' + Borrower);
if (Borrower == '1') {
$('#IncomeSource').prop('required', true);
$(".IncomeSource").show();
$("#EASRM").removeAttr("required");
$(".EASRM").hide();
}
else if (Borrower == '2') {
$('#EASRM').prop('required', true);
$(".EASRM").show();
$("#IncomeSource").removeAttr('required');
$(".IncomeSource").hide();
}
objLiteral.AjaxBusinessTypes(Borrower);
objLiteral.AjaxClientList(Borrower);
}
});
$('#LoanBusinessTypeID').on('change', function (event) {
event.preventDefault();
let BusinessType = $("#LoanBusinessTypeID option:selected").text();
objLiteral.AjaxApprovingList($("#BranchCode option:selected").val(), $("#LoanBusinessTypeID option:selected").val());
});
},
HideShowSection: function (typeid) {
if (typeid === '1') {
$("#IncomeSource").prop('disabled', false);
$("#EASRM").prop('disabled', true);
}
else if (typeid === '2') {
$("#IncomeSource").prop('disabled', true);
$("#EASRM").prop('disabled', false);
}
},
AjaxBusinessTypes: function (typeid) {
ModalAlert(true);
$.ajax({
type: 'POST',
dataType: 'json',
data: { typeid: typeid },
url: urlLoanMastersBusinessType,
success: function (msg) {
$('#LoanBusinessTypeID').empty();
$("#LoanBusinessTypeID").append('<option value=""> -- SELECT -- </option>');
$.each(msg.clientaccount, function (i, member) {
$("#LoanBusinessTypeID").append('<option value="'
+ member.ID + '">'
+ member.BusinessTypeTitle + '</option>');
});
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(jqXhr.responseText);
console.log(jqXhr.textStatus);
console.log(jqXhr.errorThrown);
ModalAlert_SetMessage("Error occurred");
ModalAlert(true);
},
complete: function () {
ModalAlert(false);
}
})
},
AjaxClientList: function (browwerid) {
ModalAlert(true);
$("#Client").empty();
$.ajax({
type: 'POST',
dataType: 'json',
data: { browwerid: browwerid },
url: urlLoanMastersClientList, //string variables
success: function (msg) {
console.log(msg);
$("#Client").append('<option value=""> -- SELECT -- </option>');
$.each(msg.client, function (i, member) {
$("#Client").append('<option value="'
+ member.BindField + '">'
+ member.DisplayField + '</option>');
});
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(jqXhr.responseText);
console.log(jqXhr.textStatus);
console.log(jqXhr.errorThrown);
ModalAlert_SetMessage("Error occurred");
ModalAlert(true);
},
complete: function () {
ModalAlert(false);
}
})
},
AjaxApprovingList: function (branchCode, businessTypeID) {
console.log(branchCode, businessTypeID);
ModalAlert(true);
$.ajax({
type: 'POST',
dataType: 'json',
data: { branchCode: branchCode, businessTypeID: businessTypeID },
url: urlLoanMastersApprovingList, //string variables
success: function (msg) {
$("#ApprovingStep").empty().append('<option value=""> -- SELECT -- </option>');
$.each(msg.approvinglist, function (i, member) {
$("#ApprovingStep").append('<option value="'
+ member.ID + '">'
+ member.GroupName + '</option>');
});
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(jqXhr.responseText);
console.log(jqXhr.textStatus);
console.log(jqXhr.errorThrown);
ModalAlert_SetMessage("Error occurred");
ModalAlert(true);
},
complete: function () {
ModalAlert(false);
}
})
}
}
$(document).ready(function () {
objLiteral.init();
});
//$(document).ready(function () {
// $('#LoanBusinessTypeID').html('');
// $('#Client').html('');
// $('#ApprovingStep').html('');
// $('#BorrowerType').on('change', function () {
// let Borrower = $('#BorrowerType option:selected').val();
// console.log("Borrower=" + Borrower);
// businessType(Borrower);
// Clientdatalist(Borrower);
// });
// function businessType(typeid) {
// }
// function Clientdatalist(browwerid) {
// }
// //fix approving authority
// $('#LoanBusinessTypeID').on('change', function () {
// let BusinessType = $("#LoanBusinessTypeID option:selected").text();
// console.log("BusinessType=" + BusinessType);
// Approving(BusinessType);
// });
// function Approving(BusinessType) {
// //$("#LoanBusinessTypeID").empty().trigger('change');
// }
//});
////JQUERY VALIDATION
//$(document).ready(function () {
// console.log("Validation Check");
// $.validator.setDefaults({
// debug: true,
// success: "valid",
// ignore: "*:not([name])",
// //.ignore, .select2 - input,
// //ignore: ''
// });
// //<input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-9" id="s2id_autogen9">
// $xyz = false;
// $abc = $("#Loan").validate({
// onfocus: function (element) {
// this.element(element);
// console.log("element=" + element);
// errorElement: 'span';
// },
// rules: {
// LoanSubscriptionTypeID: {
// required: true,
// },
// BorrowerType: {
// required: true,
// },
// LoanBusinessTypeID: {
// required: true,
// },
// Client: {
// required: true,
// },
// LoanFundTypeID: {
// required: true,
// },
// LimitAmount: {
// required: true,
// },
// ApprovingStep: {
// required: true,
// }
// },
// messages: {
// LoanSubscriptionTypeID: "Subscription Type is Required",
// BorrowerType: "Borrower Type is Required",
// LoanBusinessTypeID: "Business Type is Required",
// Client: "Client is Required",
// LoanFundTypeID: "Fund Type is Required",
// LimitAmount: "Limit Amount is Required",
// ApprovingStep: "Approving Step is Required",
// },
// showErrors: function (errorMap, errorList) {
// this.defaultShowErrors();
// // label.parent().addClass('error');
// $xyz = false;
// },
// success: function (errorElement, element) {
// errorElement.parent().removeClass('error');
// errorElement.remove();
// },
// submitHandler: function (form) {
// if ($(form).valid())
// form.submit();
// return false; // prevent normal form posting
// }
// });
//});
Comments
Post a Comment