Rapport-Laravel/resources/views/report/bfedudoctorwise.blade.php

855 lines
35 KiB
PHP

@extends('layouts.vertical', ['page_title' => 'Datatables'])
@section('css')
<!-- third party css -->
<link href="{{ asset('assets/libs/datatables/datatables.min.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/libs/bootstrap-datepicker/bootstrap-datepicker.min.css') }}" rel="stylesheet"
type="text/css" />
<link href="{{ asset('assets/libs/flatpickr/flatpickr.min.css') }}" rel="stylesheet" type="text/css" />
<script src="https://cdn.jsdelivr.net/npm/ag-grid-community/dist/ag-grid-community.min.js"></script>
<!-- third party css end -->
<meta name="csrf-token" content="{{ csrf_token() }}" />
<style type="text/css">
.ag-theme-alpine {
--ag-header-column-separator-display: block;
--ag-header-column-separator-height: 20%;
--ag-header-column-separator-width: 1px;
--ag-header-column-separator-color: rgb(0, 0, 0);
}
</style>
@endsection
@section('content')
<div id="pageloader">
<img src="http://cdnjs.cloudflare.com/ajax/libs/semantic-ui/0.16.1/images/loader-large.gif" alt="processing..." />
</div>
<!-- Start Content-->
<div class="container-fluid">
<!-- start page title -->
<div class="row">
<div class="col-md-6 p-2">
<h4 class="page-title">Educator - Doctor Wise Report</h4>
</div>
</div>
<!-- end page title -->
@if (session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger">
{{ session()->get('error') }}
</div>
@endif
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row justify-content-between">
<div class="col-auto filter-section">
<form class="d-flex flex-wrap align-items-center" id="report-form">
<label for="status-select" class="me-2">Team</label>
<div class="me-sm-3">
<select class="form-select my-1 my-lg-0" id="team" name="team">
<option selected="">All</option>
<option value="Respiratory 1">Respiratory 1</option>
<option value="Respiratory 2">Respiratory 2</option>
<option value="Respiratory Arise">Respiratory Arise</option>
<option value="Respiratory Team 4">Respiratory Team 4</option>
<option value="Neb 1">Neb 1</option>
<option value="Neb 2">Neb 2</option>
<option value="Neb Arise">Neb Arise</option>
<option value="Team 4 (OR)">Team 4 (OR)</option>
</select>
</div>
<label for="status-select" class="me-2">Brand</label>
<div class="me-sm-3">
<select class="form-select my-1 my-lg-0" id="brand" name="brand">
<option selected="">All</option>
<option value="Seroflo">Seroflo</option>
<option value="Levolin">Levolin</option>
<option value="Foracort">Foracort</option>
<option value="Maxiflo">Maxiflo</option>
<option value="Duolin">Duolin</option>
<option value="Aerocort">Aerocort</option>
<option value="Budecort">Budecort</option>
<option value="Montair LC">Montair LC</option>
<option value="Furamist">Furamist</option>
<option value="Budecort Respules">Budecort Respules</option>
<option value="Glycohale Respules">Glycohale Respules</option>
<option value="Levolin Respules">Levolin Respules</option>
<option value="Inhalex Respules">Inhalex Respules</option>
<option value="Foracort Respules">Foracort Respules</option>
<option value="Duolin Respules">Duolin Respules</option>
<option value="Endobloc">Endobloc</option>
<option value="Assurans">Assurans</option>
<option value="Pirfenex">Pirfenex</option>
</select>
</div>
<label for="status-select" class="me-2">Region</label>
<div class="me-sm-3">
<select class="form-select my-1 my-lg-0" id="region" name="region">
<option selected="">All</option>
<option value="Kerala">Kerala</option>
<option value="Eastern UP">Eastern UP</option>
<option value="Punjab">Punjab</option>
<option value="Rajasthan">Rajasthan</option>
<option value="Andhra Pradesh">Andhra Pradesh</option>
<option value="ROM 1">ROM 1</option>
<option value="Western UP">Western UP</option>
<option value="Chandigarh & HP">Chandigarh & HP</option>
<option value="West Bengal">West Bengal</option>
<option value="Haryana">Haryana</option>
<option value="Gujarat">Gujarat</option>
<option value="Jharkhand">Jharkhand</option>
<option value="Mumbai Total">Mumbai Total</option>
<option value="Madhya Pradesh">Madhya Pradesh</option>
<option value="Central UP">Central UP</option>
<option value="Karnataka">Karnataka</option>
<option value="Tamil Nadu">Tamil Nadu</option>
<option value="ROM 2">ROM 2</option>
<option value="Bihar">Bihar</option>
<option value="Orissa">Orissa</option>
<option value="Delhi Total">Delhi Total</option>
<option value="Chhattisgarh">Chhattisgarh</option>
<option value="Jammu">Jammu</option>
<option value="Assam">Assam</option>
<option value="Goa">Goa</option>
</select>
</div>
<label for="status-select" class="me-2">Select Month</label>
<div class="me-sm-3">
<select class="form-select my-1 my-lg-0" id="month" name="month">
<option selected="July 2023">July 2023</option>
</select>
</div>
</form>
</div>
<div class="col-auto">
<div class="text-lg-end my-1 my-lg-0">
<button class="btn btn-danger waves-effect waves-light" id="btn-fetch"><i
class="mdi mdi-search-web me-1"></i>Fetch</button>
</div>
</div><!-- end col-->
</div> <!-- end row -->
</div>
</div> <!-- end card -->
</div> <!-- end col-->
</div>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div id="myGrid" style="" class="ag-theme-alpine"></div>
</div> <!-- end card body-->
</div> <!-- end card -->
</div><!-- end col-->
</div>
<!-- end row-->
</div> <!-- container -->
<style type="text/css">
#pageloader {
background: rgba( 255, 255, 255, 0.8 );
display: none;
height: 100%;
position: fixed;
width: 100%;
z-index: 9999;
}
#pageloader img {
left: 50%;
margin-left: -32px;
margin-top: -32px;
position: absolute;
top: 50%;
}
.img-thumbnail {max-width: 100px}
.filter-section .form-select {max-width: 150px}
.filter-section .form-control {max-width: 120px}
.header-cell {background-color: #a6e1ec;text-align: center;}
.quarters-cell {background-color: #5bc0de;}
.row-header {}
.cell-span {background-color: #f4f7f8;}
</style>
@endsection
@section('script')
<!-- third party js -->
<script src="{{ asset('assets/libs/flatpickr/flatpickr.min.js') }}"></script>
<script src="{{ asset('assets/libs/datatables/datatables.min.js') }}"></script>
<script src="{{ asset('assets/libs/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.0/xlsx.full.min.js"></script>
<script type="text/javascript">
$('.datetime').flatpickr({
dateFormat: "Y-m-d"
});
var cellClassRules = {
'header-cell': 'data.section === "big-title"',
'quarters-cell': 'data.section === "quarters"',
};
function rowSpan(params) {
return 20;
}
const columnDefs = [{
headerName: 'Month',
field: 'month',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'RM',
field: 'rm_name',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'AM',
field: 'am_name',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'EDM',
field: 'em_name',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Zone',
field: 'zone',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'State Name',
field: 'state',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Mini Region Name',
field: 'region',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Work Location',
field: 'city',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Educator Code',
field: 'educator_code',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Educator Name',
field: 'educator_name',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Employee Type',
field: 'employee_type',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'New MSL Code',
field: 'msl_code',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Doctor Name',
field: 'name',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Doctor Speciality',
field: 'speciality',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'No. of Clinic',
field: 'activity-type-clinic',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'New Patient',
field: 'new-patient',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Old Patient',
field: 'old-patient',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'COD',
field: 'cod',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Synchrobreathe',
field: 'synchrobreathe',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Respules',
field: 'respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'New + MDI',
field: 'new-mdi',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Devices (Quantity)',
children: [{
headerName: 'Breathe O Meter',
field: 'devices-quantity-breathe-o-meter',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Rotahaler',
field: 'devices-quantity-rotahaler',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Huf Puf Kit',
field: 'devices-quantity-huf-puf-kit',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Infant Mask Device',
field: 'devices-quantity-infant-mask-device',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'New Baby Mask',
field: 'devices-quantity-new-baby-mask',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'New Revolizer',
field: 'devices-quantity-new-revolizer',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Zerostat Spacer',
field: 'devices-quantity-zerostat-spacer',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Zerostat VT Spacer',
field: 'devices-quantity-zerostat-vt-spacer',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Mini Zerostat Spacer',
field: 'devices-quantity-mini-zerostat-spacer',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
}
],
},
{
headerName: 'PPE Brand (Business)',
children: [{
headerName: 'Seroflo',
field: 'ppe-brand-business-seroflo',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Levolin',
field: 'ppe-brand-business-levolin',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Foracort',
field: 'ppe-brand-business-foracort',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Maxiflo',
field: 'ppe-brand-business-maxiflo',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Glycohale F',
field: 'ppe-brand-business-glycohale-f',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Duolin',
field: 'ppe-brand-business-duolin',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Aerocort',
field: 'ppe-brand-business-aerocort',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Budecort',
field: 'ppe-brand-business-budecort',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Montair LC',
field: 'ppe-brand-business-montair-lc',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Furamist',
field: 'ppe-brand-business-furamist',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Budecort Respules',
field: 'ppe-brand-business-budecort-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Glycohale Respules',
field: 'ppe-brand-business-glycohale-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Levolin Respules',
field: 'ppe-brand-business-levolin-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Inhalex Respules',
field: 'ppe-brand-business-inhalex-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Foracort Respules',
field: 'ppe-brand-business-foracort-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Duolin Respules',
field: 'ppe-brand-business-duolin-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Endobloc',
field: 'ppe-brand-business-endobloc',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Assurans',
field: 'ppe-brand-business-assurans',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Pirfenex',
field: 'ppe-brand-business-pirfenex',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
}
],
},
{
headerName: 'NI Brand (Business)',
children: [{
headerName: 'Seroflo SB',
field: 'ni-brand-business-seroflo-sb',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Seroflo Ciphaler',
field: 'ni-brand-business-seroflo-ciphaler',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Levolin SB',
field: 'ni-brand-business-levolin-sb',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Voltido',
field: 'ni-brand-business-voltido',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Foracort SB',
field: 'ni-brand-business-foracort-sb',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Maxiflo SB',
field: 'ni-brand-business-maxiflo-sb',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Glycohale FB',
field: 'ni-brand-business-glycohale-fb',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Nistami',
field: 'ni-brand-business-nistami',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Ablung',
field: 'ni-brand-business-ablung',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Nintib',
field: 'ni-brand-business-nintib',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Hyperneb Respules',
field: 'ni-brand-business-hyperneb-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Foratec Respules',
field: 'ni-brand-business-foratec-respules',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Seromune',
field: 'ni-brand-business-seromune',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
}
]
},
{
headerName: 'Team wise PPP & NI Brand Business',
children: [{
headerName: 'Team 1',
field: 'team-wise-ppp-and-ni-brand-business-team-1',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Team 2',
field: 'team-wise-ppp-and-ni-brand-business-team-2',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'COPD',
field: 'team-wise-ppp-and-ni-brand-business-copd',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Team 4',
field: 'team-wise-ppp-and-ni-brand-business-team-4',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Orals',
field: 'team-wise-ppp-and-ni-brand-business-orals',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Arise',
field: 'team-wise-ppp-and-ni-brand-business-arise',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Neb 1',
field: 'team-wise-ppp-and-ni-brand-business-neb-1',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Neb 2',
field: 'team-wise-ppp-and-ni-brand-business-neb-2',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'PH Care',
field: 'team-wise-ppp-and-ni-brand-business-ph-care',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
}
]
},
{
headerName: 'Team wise (Business)',
children: [{
headerName: 'Team 1',
field: 'team-wise-business-team-1',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Team 2',
field: 'team-wise-business-team-2',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'COPD',
field: 'team-wise-business-copd',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Team 4',
field: 'team-wise-business-team-4',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Orals',
field: 'team-wise-business-orals',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Arise',
field: 'team-wise-business-arise',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Neb 1',
field: 'team-wise-business-neb-1',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Neb 2',
field: 'team-wise-business-neb-2',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Ph Care',
field: 'team-wise-business-ph-care',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Misc',
field: 'team-wise-business-misc',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Neb Misc',
field: 'team-wise-business-neb-misc',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
},
{
headerName: 'Resp_Inh_Div',
field: 'team-wise-business-inhalation-device',
filter: 'agTextColumnFilter',
floatingFilter: true,
width: 170,
}
]
}
];
const rowData = [];
function onBtnExport() {
gridOptions.api.exportDataAsCsv();
}
const gridOptions = {
columnDefs: columnDefs,
pagination: true,
paginationPageSize: 50,
defaultColDef: {
resizable: true,
sortable: true,
},
rowData: rowData,
domLayout: 'autoHeight',
};
const gridDiv = document.querySelector('#myGrid');
new agGrid.Grid(gridDiv, gridOptions);
$('#btn-fetch').click(function(){
$("#pageloader").fadeIn();
$.ajax({
type: "GET",
url: '/report/ajaxdatabfedudoctorwise?month='+$('#month').val()+'&team='+$('#team').val()+'&brand='+$('#brand').val()+'&region='+$('#region').val(),
processData: false,
contentType: false,
success: function(data) {
gridOptions.api.setRowData(data);
$("#pageloader").fadeOut();
},
});
})
// fetch('https://did94hhhcgq1d.cloudfront.net/breathefree/bfdashboard/july/bfedudoctorwise.json')
// .then((resp) => resp.json())
// .then((data) => gridOptions.api.setRowData(data));
</script>
@endsection