Rev 36195 | 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="referer" content="no-referer"><meta name="referrer" content="no-referrer"><!--<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">--><link rel="shortcut icon" href="assets/images/icons/favicon.png"><title>Smart Dukaan - Partner Dashboard</title><!-- Bootstrap CSS --><!-- bootstrap theme --><!--external css--><!-- font icon --><link href="resources/css/elegant-icons-style.css" rel="stylesheet"/><link href="resources/css/font-awesome.min.css" rel="stylesheet"/><!-- full calendar css--><!-- owl carousel --><link rel="stylesheet" href="resources/css/owl.carousel.css"type="text/css"><link href="resources/css/jquery-jvectormap-1.2.2.css" rel="stylesheet"><!-- Custom styles --><link href="resources/css/widgets.css" rel="stylesheet"><link href="resources/css/multi.min.css?v=${cssVersion}" type="text/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" rel="stylesheet"/><link href="resources/css/jquery-ui-1.10.4.min.css" rel="stylesheet"><link type="text/css" href="resources/css/bootstrap.css"rel="stylesheet"><!--<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap/3/css/bootstrap.css" />--><link href="resources/css/bootstrap-theme.min.css" rel="stylesheet"><link rel="stylesheet" type="text/css"href="resources/js/daterangepicker/daterangepicker.css"/><link rel="stylesheet" type="text/css"href="resources/js/chosen.min.css"/><link href="resources/css/bootstrap-duallistbox.css" rel="stylesheet"/><link rel="stylesheet" type="text/css"href="resources/css/bootstrap-multiselect.css"/><link rel="stylesheet" type="text/css"href="resources/css/datatables.bootstrap.min.css"/><link rel='stylesheet'href='https://use.fontawesome.com/releases/v5.7.0/css/all.css'integrity='sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ'crossorigin='anonymous'><link rel="stylesheet" type="text/css" href="resources/css/bootstrap-tagsinput.css"><link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /><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><style type="text/css">.select2-container {display: block !important;}#sidebar {z-index: 999;}.loading {display: none;}.breadcrumb {padding: 0 15px;}.stars-outer {display: inline-block;position: relative;font-family: 'Mukta', FontAwesome, Hind;}.stars-outer::before {content: "\f006 \f006 \f006 \f006 \f006";}.stars-inner {position: absolute;top: 0;left: 0;white-space: nowrap;overflow: hidden;width: 0;}.stars-inner::before {content: "\f005 \f005 \f005 \f005 \f005";color: #f8ce0b;}.table-striped > tbody > tr:nth-child(odd) > td {background: white;background-color: #dae5f4;}.table-striped > tbody > tr:nth-child(even) > td {background: #f2f2f2;background-color: #b8d1f3;}.btn:hover {color: grey;text-decoration: none;}.btn-primary:hover {color: grey;text-decoration: none;}.sale-details {cursor: pointer;}.popover {min-width: 18%;}.fa-2x {font-size: 1.4em;}.cover {object-fit: cover;width: 100%;height: 90px;padding: 8px;}.info-box .notifications i {display: inline-block;margin-top: 0px;height: 25px;font-size: 16px;line-height: 25px;width: 25px;float: none;text-align: center;padding-right: 0px;color: #768399;}#preview {position: relative;color: #fff;float: left;width: 100%;-webkit-border-radius: 10px;-moz-border-radius: 10px;border-radius: 10px;clear: both;}#canvas-preview {width: 100%;position: relative;top: -15px;}#preview-textfield {position: absolute;top: -10px;left: 0;right: 0;text-align: center;font-size: 2em;font-weight: bold;color: white;font-family: 'Amaranth', sans-serif, 'Mukta';}</style><style>.team-messages {background: #fff;padding: 10px;margin-top: 10px;border-radius: 8px;margin-bottom: 4px;border: 1px solid #dae4f5;}.team-messages p {margin-bottom: 4px;}.tm-title {font-size: 17px;font-weight: 500;margin: 5px;}.tm-subtitle {font-size: 12px;color: #888;margin-bottom: 8px;}.timeline-wrapper {position: relative;padding-top: 5px;height: 670px;overflow: auto;}.timeline-row {display: flex;align-items: flex-start;margin-bottom: 8px;}.timeline-time {font-size: 10px;color: #999;text-align: right;padding-right: 5px;position: relative;right: 10px;}.timeline-card {background: #fff;border: 1px solid #e7e2e2;border-left: 2px solid #ba9b9b;border-radius: 4px;padding: 6px 8px;padding-top: 2px;width: 100%;position: relative;box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);}.card-header {display: flex;align-items: center;margin-bottom: 4px;}.header-text {font-size: 16px;text-transform: capitalize;width: 100%;}.card-body {font-size: 16px;color: #555;}.bulletin-attachments {position: absolute;bottom: 10px;right: 12px;font-size: 12px;}.bulletin-attachments a {margin-left: 8px;color: #007bff;text-decoration: none;}.bulletin-attachments a:hover {text-decoration: underline;}.bulletin-tabs {display: flex;list-style: none;padding: 0;border-bottom: 1px solid #ddd;}.bulletin-tabs li {padding: 8px 14px;cursor: pointer;font-size: 13px;}.bulletin-tabs li.active {font-weight: 600;border-bottom: 2px solid #3b6cff;}.bulletin-tab-content {display: none;}h3 {font-size: 21px;}#bulletinDate {border-radius: 20px;padding: 4px 12px;border: 1px solid #ddd;background: #f5f7fb;font-size: 12px;position: relative;bottom: 5px;}</style><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);console.log(response)});}function getWarehouseBrandStock(warehouseId) {doGetAjaxRequestHandler(context + "/getWarehouseWiseBrandStock?warehouseId=" + warehouseId,function (response) {$('#' + "main-content").html(response);console.log(response)});}function getWarehouseWiseBrandPartnerSale(brand) {doGetAjaxRequestHandler(context + "/getWarehouseWiseBrandPartnerSale?brand=" + brand,function (response) {$('#' + "main-content").html(response);console.log(response)});}function getWarehouseWiseBrandActivatedModel(brand) {doGetAjaxRequestHandler(context + "/getActivatedModelWarehouseWise?brand=" + brand,function (response) {$('#' + "main-content").html(response);console.log(response)});}function getWarehouseWiseAccessoriesBrandPartnerSale(brand) {doGetAjaxRequestHandler(context + "/getWarehouseWiseAccesoriesBrandPartnerSale?brand=" + brand,function (response) {$('#' + "main-content").html(response);console.log(response)});}</script><script type="text/javascript">function getWarehouseWiseData() {doGetAjaxRequestHandler(context + "/getWarehouseWiseData",function (response) {$('#' + "main-content").html(response);console.log(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 style="background-color: #f7f7f7"><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"><div class="log-arrow-up"></div><li class="eborder-top"><a class="change-auth-user-password"href="javascript:void(0);"><i class=""></i>Change Password</a></li><li><a href="${rc.contextPath}/mobileapp"><i class="icon_key_alt" id="logout"></i>SD Mobile App</a></li>## <li><a href="${rc.contextPath}/logout"><i## class="icon_key_alt" id="logout"></i> Log Out</a></li><script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script><li><a href="javascript:void(0);" onclick="signOut();"><iclass="icon_key_alt" id="logout"></i> Log Out</a></li><!-- <li> <a href="#" language='english' class="active">English</a><a href="#" language='hindi'>Hindi</a></li>--><li><!-- <li> <a href"@{?lang=en}" class="active">English</a>--><!-- <a href='javascript:;' onclick='changelanguage("en");'>English ></a><a href='javascript:;' onclick='changelanguage("hi");'>Hindi ></a><a href="ref"@{?lang=hi}">Hindi</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"><li class="active"><a class="dashboardload"href="${rc.contextPath}/dashboard"> <i class="icon_house_alt"></i><span>Dashboard</span></a></li>#foreach($menuItem in $menu)<li class="sub-menu"><a href="javascript:;" class=""> <iclass="icon_document_alt"></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">Home</a></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 style="margin-top: -2px; margin-bottom: 24px"><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 style="margin-top: -2px; margin-bottom: 24px"><strong>Warehouse Wise Report</strong></h3></div><div class="col-lg-5" style="padding-left: 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<button class="btn btn-primary clickshwograph"style="display: none" type="button">Submit</button><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 style="margin: 8px 0 15px 0;border-top: 1px solid #dddcdc;"><div id="bulletin-list-container">#parse("bulletin-list.vm")</div></div>#*#if($warehousePartnerDetailMap)<div class="row chartfilterlmsContainer" style="margin: 5px"></div><div class="row col-lg-12"><ul class="nav nav-tabs"><li class="brand_month_sales"><a class="bms">BWMS</a></li><li class="brand_month_purchase"><a class="bmp">BWMP</a></li></ul><div class="row chartLmsContainer" style="margin:5px"></div></div>#end*#</div>#if($warehousePartnerDetailMap)<div class="col-lg-6"><ul class="nav nav-tabs" style="margin: 5px"><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" style="margin: 5px"></div></div>#end</div><div class="row"><div class="col-lg-6"><div class="row" style="margin-left:5px"><h3 style="margin-top: -2px; margin-bottom:4px"><strong>Sale MileStone</strong></h3></div><div class="row saleMilestoneContainer" style="margin: 5px"></div></div><div class="col-lg-6"><div class="row" style="margin-left:5px"><h3 style="margin-top: -2px; margin-bottom: 4px"><strong>Purchase MileStone</strong></h3></div><div class="row purchaseMilestoneContainer" style="margin: 5px"></div></div></div><div class="row">#if($authUserTicketCount)<div class="col-lg-6"><div class="row col-lg-8"><h3 style="margin-top: -2px; margin-bottom: 24px"><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 style="margin-top: -2px; margin-bottom: 24px"><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 style="margin-top: -2px; margin-bottom: 10px"><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="row info-box white-bg"><div class="col-lg-7"><h3 style="margin-top: -2px; margin-bottom: 10px"><strong>My Messages</strong></h3></div><div class="col-lg-5"><div class="btn-group message-filter" style="float: 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 style="margin-top: -2px; margin-bottom: 10px"><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 style="margin-top: -2px; margin-bottom: 10px"><strong>My Messages</strong></h3></div><div class="col-lg-5"><div class="btn-group message-filter" style="float: 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.©2017, 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>//knob$(function () {/*$(".knob").knob({'draw' : function () {$(this.i).val(this.cv + '%')}});*/$.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()));}});});$(function () {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");}});$(function () {loaderDialogObj = bootbox.dialog({message: '<div class="container text-center"><i class="fa fa-spin fa-spinner"></i>Loading...</div>',show: false});});$(document).ready(function () {$(".clickshwograph").click();$(".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></body></html><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");}});}// refresh when date changes$('#bulletinDate').on('change', refreshBulletinsList);// load today on page load$(document).ready(function () {let today = new Date().toISOString().split('T')[0];$('#bulletinDate').val(today);refreshBulletinsList();});</script>