Rev 36681 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport"content="width=device-width, initial-scale=1, maximum-scale=1"><meta name="description" content="Smart Dukaan Partner Dashboard"><meta name="author" content="smartdukaan"><meta name="google-signin-client_id"content="$googleApiKey"><meta name="referrer" content="no-referrer"><link rel="shortcut icon" href="assets/images/icons/favicon.png"><title>Smart Dukaan - Partner Dashboard</title><!-- vendor css --><link href="resources/css/elegant-icons-style.css" rel="stylesheet"><link href="resources/css/font-awesome.min.css" rel="stylesheet"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css"integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ"crossorigin="anonymous"><link href="resources/css/bootstrap.css" rel="stylesheet"><link href="resources/css/bootstrap-theme.min.css" rel="stylesheet"><link href="resources/css/jquery-ui-1.10.4.min.css" rel="stylesheet"><link href="resources/css/owl.carousel.css" rel="stylesheet"><link href="resources/css/jquery-jvectormap-1.2.2.css" rel="stylesheet"><link href="resources/css/datatables.bootstrap.min.css" rel="stylesheet"><link href="resources/css/bootstrap-multiselect.css" rel="stylesheet"><link href="resources/css/bootstrap-duallistbox.css" rel="stylesheet"><link href="resources/css/bootstrap-tagsinput.css" rel="stylesheet"><link href="resources/js/daterangepicker/daterangepicker.css" rel="stylesheet"><link href="resources/js/chosen.min.css" rel="stylesheet"><link href="resources/css/multi.min.css?v=${cssVersion}" rel="stylesheet"><link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet"><!-- app css --><link href="resources/css/widgets.css" rel="stylesheet"><link href="resources/css/style.css?v=${cssVersion}" rel="stylesheet"><link href="resources/css/card.css?v=${cssVersion}" rel="stylesheet"><link href="resources/css/style-responsive.css?v=${cssVersion}" rel="stylesheet"><script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script><script>function signOut() {var auth2 = gapi.auth2.getAuthInstance();auth2.signOut().then(function () {window.location.href = "${rc.contextPath}/logout";console.log('User signed out.');});}function onLoad() {gapi.load('auth2', function () {gapi.auth2.init();});}</script><script type="text/javascript">const isRBM = $isRBM;isAdmin = true;function injectSmartChatScript(email, token) {if (document.querySelector('script[src="https://chat.smartdukaan.com/embed.js"]')) {return;}const script = document.createElement('script');script.src = "https://chat.smartdukaan.com/embed.js";script.setAttribute("data-role", "INTERNAL");script.setAttribute("data-token", token);if (email) script.setAttribute("data-email", email);script.async = true;document.body.appendChild(script);}document.addEventListener("DOMContentLoaded", () => {if (isRBM) {injectSmartChatScript("$authEmail", "eyJhbGciOiJIUzI1NiJ9.eyJyb2xlSWRzIjpbIjEiLCIyIiwiMyJdLCJpc3MiOiJwcm9maXRtYW5kaSIsImV4cCI6MTc3Nzg5OTk3MywicmV0YWlsZXJJZCI6MTc1MTM5Mjg3LCJpYXQiOjE3NzI3MTU5NzMsInVzZXJJZCI6NDAyMjJ9.aeUDKRtsemF4y1mLdWQBaWUBV2HFxoHARbc2JAZwc3U");}});function getWarehousePartners(warehouseId) {doGetAjaxRequestHandler(context + "/getWarehousePartners?warehouseId=" + warehouseId,function (response) { $('#main-content').html(response); });}function getWarehouseBrandStock(warehouseId) {doGetAjaxRequestHandler(context + "/getWarehouseWiseBrandStock?warehouseId=" + warehouseId,function (response) { $('#main-content').html(response); });}function getWarehouseWiseBrandPartnerSale(brand) {doGetAjaxRequestHandler(context + "/getWarehouseWiseBrandPartnerSale?brand=" + brand,function (response) { $('#main-content').html(response); });}function getWarehouseWiseBrandActivatedModel(brand) {doGetAjaxRequestHandler(context + "/getActivatedModelWarehouseWise?brand=" + brand,function (response) { $('#main-content').html(response); });}function getWarehouseWiseAccessoriesBrandPartnerSale(brand) {doGetAjaxRequestHandler(context + "/getWarehouseWiseAccesoriesBrandPartnerSale?brand=" + brand,function (response) { $('#main-content').html(response); });}function getWarehouseWiseData() {doGetAjaxRequestHandler(context + "/getWarehouseWiseData",function (response) {$('#main-content').html(response);if (response == 'true') {window.location.href = $('.dashboardload').attr('href');}});}function getPartnersStat() {doGetAjaxRequestHandler(context + "/getPartnersStatData",function (response) {if (response == 'true') {window.location.href = $('.dashboardload').attr('href');}});}</script></head><body><div class="loading"><img src="resources/images/icons/loading.gif"></div><!-- container section start --><section id="container"><header class="header dark-bg"><div class="toggle-nav"><div class="icon-reorder tooltips"data-original-title="Toggle Navigation" data-placement="bottom"><i class="icon_menu"></i></div></div><div class="top-nav notification-row"><!-- notification dropdown start--><ul class="nav pull-right top-menu"><!-- user login dropdown start--><li class="dropdown"><a data-toggle="dropdown"class="dropdown-toggle" href="#"> <span class="profile-ava"><img class="avatar-custom" id="photo" alt="" src=""></span> <span class="username" id="fofo_name"></span> <b class="caret"></b></a><ul class="dropdown-menu extended logout"><li class="eborder-top"><a class="change-auth-user-password"href="javascript:void(0);">Change Password</a></li><li><a href="${rc.contextPath}/mobileapp"><i class="icon_key_alt"></i>SD Mobile App</a></li><li><a href="${rc.contextPath}/mobileapp?appType=react"><i class="icon_key_alt"></i>SD MobileApp V2</a></li><li><a href="javascript:void(0);" onclick="signOut();"><iclass="icon_key_alt"></i> Log Out</a></li></ul></li><!-- user login dropdown end --></ul><!-- notificatoin dropdown end--></div></header><!--header end--><!--sidebar start this--><aside><div id="sidebar" class="nav-collapse "><!-- sidebar menu start--><ul class="sidebar-menu" style="padding-bottom:80px;"><li><a href="${rc.contextPath}/dashboard"><i class="fa fa-home"></i><span>HOME</span></a></li>#foreach($menuItem in $menu)<li class="sub-menu"><a href="javascript:;" class=""> <iclass="#if($menuItem.getIconClass() && $menuItem.getIconClass() != '')$menuItem.getIconClass()#else icon_document_alt#end"></i> <span>$menuItem.getDisplayText()</span><span class="menu-arrow arrow_carrot-right"></span></a><ul class="sub">#foreach($subMenu in $menuItem.getSubMenus())<li><a class="$subMenu.getActionClass()"href="javascript:void(0);">$subMenu.getDisplayText()</a></li> #end</ul></li> #end</ul><!-- sidebar menu end--></div></aside><!--sidebar end--><!--main content start--><section id="main-content"><section class="wrapper"><!--overview start--><div class="row"><div class="col-lg-12"><h3 class="page-header"><i class="fa fa-laptop"></i>#springMessage("app.title")</h3><ol class="breadcrumb"><li><i class="fa fa-home"></i><ahref="${rc.contextPath}/dashboard">#springMessage("home.home")</a></li><li><i class="fa fa-laptop"></i>Dashboard</li></ol></div></div><!-- overview end -->#if($warehousePartnerDetailMap)<div class="row"><div class="col-lg-6"><div class="row"><div class="col-lg-7"><h3 class="section-title mb-lg"><strong>Partner Wise Report</strong></h3></div><div class="col-lg-5"><span style="margin-right: 10px">Last Fetch :- $rctPartneStat.getLastCreatedTimestamp().format($dateTimeFormatter)</span></div></div><table class="table table-striped table-advance table-hover"><tbody><tr><th>W/H Location</th><th>Partners</th><th>LMS</th><th>LMTD</th><th>MTD</th><th>Today Tertiary</th><th>Tickets</th></tr>#foreach($name in $warehousePartnerDetailMap.keySet())<tr onclick="getWarehousePartners($name)"><td>$warehouseMap.get($name)</td><td>$warehousePartnerDetailMap.get($name).getCount()</td><td class="currency">$warehousePartnerDetailMap.get($name).getLms()</td><td class="currency">$warehousePartnerDetailMap.get($name).getLmtd()</td><td class="currency">$warehousePartnerDetailMap.get($name).getMtd()</td><td class="currency">$warehousePartnerDetailMap.get($name).getTodayTertiary()</td><td>$warehousePartnerDetailMap.get($name).getTicket()</td></tr>#end</tbody></table></div><div class="col-lg-6"><div class="row"><div class="col-lg-7"><h3 class="section-title mb-lg"><strong>Warehouse Wise Report</strong></h3></div><div class="col-lg-5" class="pl-0"><span>Last fetch :-$reporticoDate.getLastCreatedTimestamp().format($dateTimeFormatter)</span><button class="btn btn-sm btn-primary fetchWarehouseData"onclick="getWarehouseWiseData()" type="button"><i class="fa fa-refresh"></i></button></div></div><table class="table table-striped table-advance table-hover"><tbody><tr><th>W/H Location</th><th>Total Stock</th><th>Total Value</th><th>Pending Indent</th><th>Tertiary</th></tr>#foreach($key in $warehouseStockMap.keySet())<tronclick="getWarehouseBrandStock($warehouseStockMap.get($key).getWarehouseId())"><td>$warehouseMap.get($key)</td>#if($warehouseStockMap.get($key).getStockQty())<td>$warehouseStockMap.get($key).getStockQty()</td><td class="currency">$warehouseStockMap.get($key).getStockValue()</td>#else<td>0</td><td>0</td> #end#if($warehouseStockMap.get($key).getPendingIndent())<td>$warehouseStockMap.get($key).getPendingIndent()</td> #else<td>0</td> #end<td>$warehouseStockMap.get($key).getTertiary()</td></tr>#end</tbody></table></div></div>#end<div class="row"><div class="col-lg-6"><div class="team-messages"><h3 class="tm-title">Bulletin <span class="tm-subtitle"> (Today Important Updates)</span> <inputtype="date" id="bulletinDate" style="float:right;"></h3><hr class="divider"><div id="bulletin-list-container">#parse("bulletin-list.vm")</div></div></div>#if($warehousePartnerDetailMap)<div class="col-lg-6"><ul class="nav nav-tabs" class="m-sm"><li class="mobile_based"><a class="ba">Mobile</a></li><li class="accessories_based"><a class="la">Accessories</a></li><li class="activation_summary"><a class="as">Activation Summary</a></li><li class="activation_updation"><a class="au">Activation Updation</a></li></ul><div class="row reportContainer" class="m-sm"></div></div>#end</div><div class="row"><div class="col-lg-6"><div class="row" class="ml-sm"><h3 class="section-title mb-sm"><strong>Sale MileStone</strong></h3></div><div class="row saleMilestoneContainer" class="m-sm"></div></div><div class="col-lg-6"><div class="row" class="ml-sm"><h3 class="section-title mb-sm"><strong>Purchase MileStone</strong></h3></div><div class="row purchaseMilestoneContainer" class="m-sm"></div></div></div><div class="row">#if($authUserTicketCount)<div class="col-lg-6"><div class="row col-lg-8"><h3 class="section-title mb-lg"><strong>Auth User Tickets</strong></h3></div><table class="table table-striped table-advance table-hover"style="width: 65%"><tbody><tr><th>Auth User</th><th>Tickets</th></tr>#foreach($authUserTicket in $authUserTicketCount.entrySet())<tr><td>$authUserTicket.getKey().getName()</td><td>$authUserTicket.getValue()</td></tr>#end</tbody></table></div>#end<div class="col-lg-6"><h3 class="section-title mb-lg"><strong>Loan Summary</strong></h3><table class="table table-striped table-advance table-hover loan-summary-table"style="width: 50%"><tbody><thead><tr><th></th><th>Count</th><th>Value</th></tr></thead><tr><th>Total Loan</th><td class="loan" data-type="TOTAL_LOAN" data-toggle="modal"data-target="#loanSummaryModal">$loanSummary.getPendingLoansLoanAggregation().getPartnerCount()</td><td class="currency">$loanSummary.getPendingLoansLoanAggregation().getTotalValue()</td></tr><tr><th>Default Loan</th><td class="loan" data-type="DEFAULT_LOAN" data-toggle="modal"data-target="#loanSummaryModal">$loanSummary.getDefaultLoansAggregation().getPartnerCount()</td><td class="currency">$loanSummary.getDefaultLoansAggregation().getTotalValue()</td></tr><tr><th>Due Loan</th><td class="loan" data-type="DUE_LOAN" data-toggle="modal"data-target="#loanSummaryModal">$loanSummary.getDueLoansAggregation().getPartnerCount()</td><td class="currency">$loanSummary.getDueLoansAggregation().getTotalValue()</td></tr></tbody></table></div><div class="col-lg-12"><h3><strong>State wise loan summary</strong></h3><select id="stateDropdown" class="form-control" style="width:200px;"><option value="">Select State</option>#foreach($entry in $stateWiseLoanSummaryMap.entrySet())<option value="$entry.key">$entry.key</option>#end</select><br/></div><!-- ================= OVERALL SUMMARY ================= --><div class="col-lg-3"><div id="overallSummaryView" style="display:none;"><table class="table table-striped table-hover loan-summary-table"><thead><tr><th>Category</th><th>Count</th><th>Value</th></tr></thead><tbody><tr><th colspan="3">Overall<button class="btn btn-sm btn-primary pull-right" id="btnShow15"style="padding: 2px 4px;">Show 15-29</button></th></tr><tr><td>Pending</td><td id="total-pending-count"class="state-wise-loan"data-fromdays=""data-todays=""data-statename=""data-type="TOTAL_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="total-pending-value"></td></tr><tr><td>Default</td><td id="total-default-count"class="state-wise-loan"data-fromdays=""data-todays=""data-statename=""data-type="DEFAULT_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="total-default-value"></td></tr><tr><td>Due</td><td id="total-due-count"class="state-wise-loan"data-fromdays=""data-todays=""data-statename=""data-type="DUE_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="total-due-value"></td></tr></tbody></table></div><!-- ================= 15–29 DAYS ================= --><div id="days15View"><table class="table table-striped table-hover loan-summary-table"><thead><tr><th>Category</th><th>Count</th><th>Value</th></tr></thead><tbody><tr><th colspan="3">15-29 days<button class="btn btn-sm btn-primary pull-right" id="btnShowOverall"style="padding: 2px 4px;">Show Overall</button></th></tr><tr><td>Pending</td><td id="days15-pending-count"class="state-wise-loan"data-fromdays="15"data-todays="29"data-statename=""data-type="TOTAL_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days15-pending-value"></td></tr><tr><td>Default</td><td id="days15-default-count"class="state-wise-loan"data-fromdays="15"data-todays="29"data-statename=""data-type="DEFAULT_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days15-default-value"></td></tr><tr><td>Due</td><td id="days15-due-count"class="state-wise-loan"data-fromdays="15"data-todays="29"data-statename=""data-type="DUE_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days15-due-value"></td></tr></tbody></table></div></div><!-- ================= 30–59 DAYS ================= --><div class="col-lg-3"><table class="table table-striped table-hover loan-summary-table"><thead><tr><th>Category</th><th>Count</th><th>Value</th></tr></thead><tbody><tr><th colspan="3">30-59 days</th></tr><tr><td>Pending</td><td id="days30-pending-count"class="state-wise-loan"data-fromdays="30"data-todays="59"data-statename=""data-type="TOTAL_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days30-pending-value"></td></tr><tr><td>Default</td><td id="days30-default-count"class="state-wise-loan"data-fromdays="30"data-todays="59"data-statename=""data-type="DEFAULT_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days30-default-value"></td></tr><tr><td>Due</td><td id="days30-due-count"class="state-wise-loan"data-fromdays="30"data-todays="59"data-statename=""data-type="DUE_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days30-due-value"></td></tr></tbody></table></div><!-- ================= 60–179 DAYS ================= --><div class="col-lg-3"><table class="table table-striped table-hover loan-summary-table"><thead><tr><th>Category</th><th>Count</th><th>Value</th></tr></thead><tbody><tr><th colspan="3">60-179 days</th></tr><tr><td>Pending</td><td id="days60-pending-count"class="state-wise-loan"data-fromdays="60"data-todays="179"data-statename=""data-type="TOTAL_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days60-pending-value"></td></tr><tr><td>Default</td><td id="days60-default-count"class="state-wise-loan"data-fromdays="60"data-todays="179"data-statename=""data-type="DEFAULT_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days60-default-value"></td></tr><tr><td>Due</td><td id="days60-due-count"class="state-wise-loan"data-fromdays="60"data-todays="179"data-statename=""data-type="DUE_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days60-due-value"></td></tr></tbody></table></div><!-- ================= 180+ DAYS ================= --><div class="col-lg-3"><table class="table table-striped table-hover loan-summary-table"><thead><tr><th>Category</th><th>Count</th><th>Value</th></tr></thead><tbody><tr><th colspan="3">Above 180 days</th></tr><tr><td>Pending</td><td id="days180-pending-count"class="state-wise-loan"data-fromdays="180"data-todays=""data-statename=""data-type="TOTAL_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days180-pending-value"></td></tr><tr><td>Default</td><td id="days180-default-count"class="state-wise-loan"data-fromdays="180"data-todays=""data-statename=""data-type="DEFAULT_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days180-default-value"></td></tr><tr><td>Due</td><td id="days180-due-count"class="state-wise-loan"data-fromdays="180"data-todays=""data-statename=""data-type="DUE_LOAN"data-toggle="modal"data-target="#loanSummaryModal"></td><td id="days180-due-value"></td></tr></tbody></table></div></div>#if($authUserTicketCount)<div class="row"><div class="col-lg-6"><div class="row col-lg-12"><h3 class="section-title"><strong>Reports</strong></h3></div><div class="row col-lg-12 info-box white-bg"><div class="list-group reports-table">#foreach($reporticoProjectEntry in$reporticoProjectMap.entrySet()) #foreach($reporticoUrlInfo in$reporticoProjectEntry.getValue()) <ahref="${rc.contextPath}/reports/${reporticoProjectEntry.getKey()}${reporticoUrlInfo.getUrl()}"class="list-group-item"#if($reporticoUrlInfo.getParamsList())data-paramslist="$vmUtils.htmlJson($reporticoUrlInfo.getParamsList())"#end><h4 class="list-group-item-heading">$reporticoUrlInfo.getTitle()</h4><p class="list-group-item-text">$reporticoUrlInfo.getDescription()</p></a> #end #end</div></div></div><div class="col-lg-6"><div class="row info-box white-bg"><div class="col-lg-7"><h3 class="section-title"><strong>My Messages</strong></h3></div><div class="col-lg-5"><div class="btn-group message-filter" class="pull-right"><button data-messagetype="notification" type="button"class="btn btn-default" aria-label="Notifications"title="Notifications"><span class="glyphicon glyphicon-bell" aria-hidden="true"></span></button><button data-messagetype="announcement" type="button"class="btn btn-default" aria-label="Announcements"title="Announcements"><span class="glyphicon glyphicon-bullhorn" aria-hidden="true"></span></button><button data-messagetype="scheme" type="button"class="btn btn-default" aria-label="SmartDukaan Schemes"title="SmartDukaan Schemes"><span class="glyphicon glyphicon-tags" aria-hidden="true"></span></button><button data-messagetype="marketing" type="button"class="btn btn-default" aria-label="SmartDukaan Schemes"title="SmartDukaan Schemes"><span class="glyphicon glyphicon-picture" aria-hidden="true"></span></button></div></div><div class="col-lg-12 row notification-container"style="max-height: 500px; overflow-y: scroll;"></div></div></div></div>#end #if(!$authUserTicketCount)<div class="row"><div class="col-lg-6"><div class="row col-lg-4"><h3 class="section-title"><strong>Reports</strong></h3></div><div class="row col-lg-12 info-box white-bg"><table class="table table-striped reports-table"style="display: none"><tbody><div class="list-group">#foreach($reporticoProjectEntry in$reporticoProjectMap.entrySet()) #foreach($reporticoUrlInfo in$reporticoProjectEntry.getValue()) <ahref="${rc.contextPath}/reports/${reporticoProjectEntry.getKey()}${reporticoUrlInfo.getUrl()}"class="list-group-item"#if($reporticoUrlInfo.getParamsList())data-paramslist="$vmUtils.htmlJson($reporticoUrlInfo.getParamsList())"#end><h4 class="list-group-item-heading">$reporticoUrlInfo.getTitle()</h4><p class="list-group-item-text">$reporticoUrlInfo.getDescription()</p></a> #end #end</div></tbody></table></div></div><div class="col-lg-6"><div class="col-lg-12"><div class="row col-lg-12 info-box white-bg"><div class="col-lg-7"><h3 class="section-title"><strong>My Messages</strong></h3></div><div class="col-lg-5"><div class="btn-group message-filter" class="pull-right"><button data-messagetype="notification" type="button"class="btn btn-default" aria-label="Notifications"title="Notifications"><span class="glyphicon glyphicon-bell" aria-hidden="true"></span></button><button data-messagetype="announcement" type="button"class="btn btn-default" aria-label="Announcements"title="Announcements"><span class="glyphicon glyphicon-bullhorn" aria-hidden="true"></span></button><button data-messagetype="scheme" type="button"class="btn btn-default" aria-label="SmartDukaan Schemes"title="SmartDukaan Schemes"><span class="glyphicon glyphicon-tags" aria-hidden="true"></span></button><button data-messagetype="marketing" type="button"class="btn btn-default" aria-label="SmartDukaan Schemes"title="SmartDukaan Schemes"><span class="glyphicon glyphicon-picture" aria-hidden="true"></span></button></div></div><div class="col-lg-12 row notification-container"style="max-height: 500px; overflow-y: scroll;"></div></div></div></div></div>#end</section><div class="text-center"><div class="credits"><p>All rights reserved. © Smart Dukaan</p></div></div></section><script type="text/javascript">context = "${rc.contextPath}";webApiScheme = "$webApiScheme";webApiRoot = "$webApiRoot";webApiHost = "$webApiHost";webApiPort = "$webApiPort";#if($retailers)retailers = $retailers;#end#if($warehouses)warehouses = $warehouses;#end#if($authId)authId = $authId;#end</script>#parse("include-scripts.vm")<script>$(function () {$.fn.dataTable.moment('DD/MM/YYYY');$.fn.dataTable.moment('DD/MM/YYYY hh:mm');$('.currency').each(function (index, ele) {if (!isNaN(parseInt($(ele).html()))) {$(ele).html(numberToComma($(ele).html()));}});var profile = localStorage.getItem('profile');if (profile) {$("#photo").attr("src", JSON.parse(profile).image_url);$("#fofo_name").text(JSON.parse(profile).name);} else {$("#photo").attr("src", "");$("#fofo_name").text("Welcome, User");}loaderDialogObj = bootbox.dialog({message: '<div class="container text-center"><i class="fa fa-spin fa-spinner"></i>Loading...</div>',show: false});});$(document).ready(function () {$(".mobile_based").click();$('div.message-filter').on('click', 'button', function () {messageType = $(this).data("messagetype");if ($(this).hasClass('btn-pressed')) {messageType = "";$('div.message-filter').find('button').removeClass('btn-pressed').addClass('btn-default');} else {$('div.message-filter').find('button').removeClass('btn-pressed').addClass('btn-default');$(this).addClass('btn-pressed').removeClass('btn-default');}notifyTypeChange(messageType);});notifyTypeChange("");});$(document).on("click", ".mobile_based",function () {$(".ba").css("color", "blue");$(".ba").css("background-color", "white");$(".la").css("color", "white");$(".la").css("background-color", "#C0C0C0");$(".as").css("color", "white");$(".as").css("background-color", "#C0C0C0");$(".au").css("color", "white");$(".au").css("background-color", "#C0C0C0");doGetAjaxRequestHandler(context + "/getMobileBrandWise", function (response) {$('.reportContainer').html(response);});});$(document).on("click", ".accessories_based",function () {$(".ba").css("color", "white");$(".ba").css("background-color", "#C0C0C0");$(".la").css("color", "blue");$(".la").css("background-color", "white");$(".as").css("color", "white");$(".as").css("background-color", "#C0C0C0");$(".au").css("color", "white");$(".au").css("background-color", "#C0C0C0");doGetAjaxRequestHandler(context + "/getAccessoriesBrandWise", function (response) {$('.reportContainer').html(response);});});$(document).on("click", ".activation_summary",function () {$(".as").css("color", "blue");$(".as").css("background-color", "white");$(".ba").css("color", "white");$(".ba").css("background-color", "#C0C0C0");$(".la").css("color", "white");$(".la").css("background-color", "#C0C0C0");$(".au").css("color", "white");$(".au").css("background-color", "#C0C0C0");doGetAjaxRequestHandler(context + "/getActivatedModelByBrand", function (response) {$('.reportContainer').html(response);});});$(document).on("click", ".activation_updation",function () {$(".as").css("color", "white");$(".as").css("background-color", "#C0C0C0");$(".au").css("color", "blue");$(".au").css("background-color", "white");$(".ba").css("color", "white");$(".ba").css("background-color", "#C0C0C0");$(".la").css("color", "white");$(".la").css("background-color", "#C0C0C0");doGetAjaxRequestHandler(context + "/getActivatedImeiUpdationDate", function (response) {$('.reportContainer').html(response);});});doGetAjaxRequestHandler(context + "/getSaleCountByMilestone", function (response) {$('.saleMilestoneContainer').html(response);});doGetAjaxRequestHandler(context + "/getPurchaseCountByMileStone", function (response) {$('.purchaseMilestoneContainer').html(response);});doGetAjaxRequestHandler(context + "/getMobileLMSFilter", function (response) {$('.chartfilterlmsContainer').html(response);});$('.loan-summary-table').on('click', '.loan', function () {console.log($(this));let loanSummaryType = $(this).data("type");doGetAjaxRequestHandler(`${context}/getPartnerWiseLoanSummary?loanSummaryType=${loanSummaryType}`, function (response) {$('#loanSummaryModal .modal-content').html(response);});});$(document).on('click', ".brand_month_sales", function () {$(".bms").css("color", "blue");$(".bms").css("background-color", "white");$(".bmp").css("color", "white");$(".bmp").css("background-color", "#C0C0C0");var warehouseId = $('#warehouseMap').val();var filterType = $('#monthDateFilter').val();var fofoIds = $('#fofo-users').val();if (typeof fofoIds === 'string') {fofoIds = fofoIds.split(',').map(id => parseInt(id.trim()));}const data = {warehouseId: warehouseId,date: getDatesFromPicker($('input[name="dateRange"]')).startDate,endDate: getDatesFromPicker($('input[name="dateRange"]')).endDate,fofoIds: fofoIds,filterType: filterType};doPostAjaxRequestWithJsonHandler(context + "/getMobileLMSGraph", JSON.stringify(data), function (response) {$('.chartLmsContainer').html(response);});});$('#fofo-users').multiselect({includeSelectAllOption: true,multiple: true,maxHeight: 200,buttonWidth: '180px',numberDisplayed: 1,nonSelectedText: 'Users',nSelectedText: ' - Users Selected',allSelectedText: 'All Users Selected',enableFiltering: true,enableCaseInsensitiveFiltering: true});function changelanguage(val) {console.log(val);document.documentElement.setAttribute('lang', val)var url = window.location.host;alert(url);//var path = window.location.path;alert(path);//window.location.href =url+"/dashboard?lang="+val;window.open(url + "/dashboard?lang=" + val, "_self");}</script><script>var stateLoanData = {#foreach($entry in $stateWiseLoanSummaryMap.entrySet())"$entry.key": {// ------------------- Main Summary -------------------pendingLoans: {partnerCount: $entry.value.pendingLoansLoanAggregation.partnerCount,totalValue: $entry.value.pendingLoansLoanAggregation.totalValue},defaultLoans: {partnerCount: $entry.value.defaultLoansAggregation.partnerCount,totalValue: $entry.value.defaultLoansAggregation.totalValue},dueLoans: {partnerCount: $entry.value.dueLoansAggregation.partnerCount,totalValue: $entry.value.dueLoansAggregation.totalValue},// ------------------ 15–29 Days -------------------range15to29: {pending: {partnerCount: $entry.value.range15to29.pending.partnerCount,totalValue: $entry.value.range15to29.pending.totalValue},defaults: {partnerCount: $entry.value.range15to29.defaults.partnerCount,totalValue: $entry.value.range15to29.defaults.totalValue},dues: {partnerCount: $entry.value.range15to29.dues.partnerCount,totalValue: $entry.value.range15to29.dues.totalValue}},// ------------------ 30–59 Days -------------------range30to59: {pending: {partnerCount: $entry.value.range30to59.pending.partnerCount,totalValue: $entry.value.range30to59.pending.totalValue},defaults: {partnerCount: $entry.value.range30to59.defaults.partnerCount,totalValue: $entry.value.range30to59.defaults.totalValue},dues: {partnerCount: $entry.value.range30to59.dues.partnerCount,totalValue: $entry.value.range30to59.dues.totalValue}},// ------------------ 60–179 Days -------------------range60to179: {pending: {partnerCount: $entry.value.range60to179.pending.partnerCount,totalValue: $entry.value.range60to179.pending.totalValue},defaults: {partnerCount: $entry.value.range60to179.defaults.partnerCount,totalValue: $entry.value.range60to179.defaults.totalValue},dues: {partnerCount: $entry.value.range60to179.dues.partnerCount,totalValue: $entry.value.range60to179.dues.totalValue}},// ------------------ 180+ Days -------------------range180Plus: {pending: {partnerCount: $entry.value.range180Plus.pending.partnerCount,totalValue: $entry.value.range180Plus.pending.totalValue},defaults: {partnerCount: $entry.value.range180Plus.defaults.partnerCount,totalValue: $entry.value.range180Plus.defaults.totalValue},dues: {partnerCount: $entry.value.range180Plus.dues.partnerCount,totalValue: $entry.value.range180Plus.dues.totalValue}}}#if($foreach.hasNext),#end#end};$(document).ready(function () {var defaultState = "Delhi";setTimeout(function () {if (stateLoanData[defaultState]) {$("#stateDropdown").val(defaultState);$("#stateDropdown").trigger("change");}}, 100);$("#stateDropdown").on("change", function () {var selectedState = $(this).val();if (!selectedState) {$("td[id]").text("");return;}var data = stateLoanData[selectedState];$(".state-wise-loan").attr("data-statename", selectedState);// ---------------- Main Summary ----------------$("#total-pending-count").text(data.pendingLoans.partnerCount);$("#total-pending-value").text(Number(data.pendingLoans.totalValue).toFixed(2));$("#total-default-count").text(data.defaultLoans.partnerCount);$("#total-default-value").text(Number(data.defaultLoans.totalValue).toFixed(2));$("#total-due-count").text(data.dueLoans.partnerCount);$("#total-due-value").text(Number(data.dueLoans.totalValue).toFixed(2));// ---------------- 15–29 Days ----------------$("#days15-pending-count").text(data.range15to29.pending.partnerCount);$("#days15-pending-value").text(Number(data.range15to29.pending.totalValue).toFixed(2));$("#days15-default-count").text(data.range15to29.defaults.partnerCount);$("#days15-default-value").text(Number(data.range15to29.defaults.totalValue).toFixed(2));$("#days15-due-count").text(data.range15to29.dues.partnerCount);$("#days15-due-value").text(Number(data.range15to29.dues.totalValue).toFixed(2));// ---------------- 30–59 Days ----------------$("#days30-pending-count").text(data.range30to59.pending.partnerCount);$("#days30-pending-value").text(Number(data.range30to59.pending.totalValue).toFixed(2));$("#days30-default-count").text(data.range30to59.defaults.partnerCount);$("#days30-default-value").text(Number(data.range30to59.defaults.totalValue).toFixed(2));$("#days30-due-count").text(data.range30to59.dues.partnerCount);$("#days30-due-value").text(Number(data.range30to59.dues.totalValue).toFixed(2));// ---------------- 60–179 Days ----------------$("#days60-pending-count").text(data.range60to179.pending.partnerCount);$("#days60-pending-value").text(Number(data.range60to179.pending.totalValue).toFixed(2));$("#days60-default-count").text(data.range60to179.defaults.partnerCount);$("#days60-default-value").text(Number(data.range60to179.defaults.totalValue).toFixed(2));$("#days60-due-count").text(data.range60to179.dues.partnerCount);$("#days60-due-value").text(Number(data.range60to179.dues.totalValue).toFixed(2));// ---------------- 180+ Days ----------------$("#days180-pending-count").text(data.range180Plus.pending.partnerCount);$("#days180-pending-value").text(Number(data.range180Plus.pending.totalValue).toFixed(2));$("#days180-default-count").text(data.range180Plus.defaults.partnerCount);$("#days180-default-value").text(Number(data.range180Plus.defaults.totalValue).toFixed(2));$("#days180-due-count").text(data.range180Plus.dues.partnerCount);$("#days180-due-value").text(Number(data.range180Plus.dues.totalValue).toFixed(2));});});$('.loan-summary-table').on('click', '.state-wise-loan', function () {console.log($(this));let loanSummaryType = $(this).data("type");let stateName = $("#stateDropdown").val();let fromDays = $(this).data("fromdays");let toDays = $(this).data("todays");doGetAjaxRequestHandler(`${context}/getPartnerStateWiseLoanSummary?loanSummaryType=${loanSummaryType}&stateName=${stateName}&fromDays=${fromDays}&toDays=${toDays}`, function (response) {$('#loanSummaryModal .modal-content').html(response);});});// Show 15–29 days view$("#btnShow15").click(function () {$("#overallSummaryView").hide();$("#days15View").show();});// Show overall view$("#btnShowOverall").click(function () {$("#days15View").hide();$("#overallSummaryView").show();});</script><div id="report-modal" class="modal" role="dialog"data-backdrop="static" data-keyboard="false"><div class="modal-dialog"><!-- Modal content--><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal">×</button><h4 class="modal-title"></h4></div><div class="modal-body"></div><div class="modal-footer"><button type="button" data-dismiss="modal"class="btn btn-default download-report">Download</button></div></div></div></div></section><div id="loanSummaryModal" class="modal" role="dialog"><div class="modal-dialog modal-lg"><div class="modal-content"></div></div></div><div class="modal" id="todayBulletinOfferDescription"><div class="modal-dialog modal-lg"><div class="modal-content"></div></div></div><script>function refreshBulletinsList() {var selectedDate = $('#bulletinDate').val();$.ajax({url: context + "/dasboard/getDateWiseBulletins",type: "GET",data: {date: selectedDate},success: function (response) {$('#bulletin-list-container').fadeOut(200, function () {$(this).html(response).fadeIn(200);});},error: function () {alert("Failed to load bulletins");}});}$('#bulletinDate').on('change', refreshBulletinsList);$(document).ready(function () {let today = new Date().toISOString().split('T')[0];$('#bulletinDate').val(today);refreshBulletinsList();});</script></body></html>