[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: profit_loss.blade.php
@extends('layouts.app') @section('title', __('report.profit_loss')) @section('content') <!-- Content Header (Page header) --> <section class="content-header"> <h1 class="tw-text-xl md:tw-text-3xl tw-font-bold tw-text-black">@lang('report.profit_loss') </h1> </section> <!-- Main content --> <section class="content"> <div class="print_section"> <h2>{{ session()->get('business.name') }} - @lang('report.profit_loss')</h2> </div> <div class="row no-print"> <div class="col-md-3 col-md-offset-7 col-xs-6"> <div class="input-group"> <span class="input-group-addon bg-light-blue"><i class="fa fa-map-marker"></i></span> <select class="form-control select2" id="profit_loss_location_filter"> @foreach ($business_locations as $key => $value) <option value="{{ $key }}">{{ $value }}</option> @endforeach </select> </div> </div> <div class="col-md-2 col-xs-6"> <div class="form-group pull-right"> <div class="input-group"> <button type="button" class="tw-dw-btn tw-dw-btn-primary tw-text-white tw-dw-btn-sm" id="profit_loss_date_filter"> <span> <i class="fa fa-calendar"></i> {{ __('messages.filter_by_date') }} </span> <i class="fa fa-caret-down"></i> </button> </div> </div> </div> </div> <div class="row"> <div id="pl_data_div"> </div> </div> <div class="row no-print"> <div class="col-sm-12 tw-mb-2"> {{-- <button type="button" class="btn btn-primary pull-right" aria-label="Print" onclick="window.print();" ><i class="fa fa-print"></i> @lang( 'messages.print' )</button> --}} <button class="tw-dw-btn tw-dw-btn-primary tw-text-white pull-right" aria-label="Print" onclick="window.print();"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-printer"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M17 17h2a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-14a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h2" /> <path d="M17 9v-4a2 2 0 0 0 -2 -2h-6a2 2 0 0 0 -2 2v4" /> <path d="M7 13m0 2a2 2 0 0 1 2 -2h6a2 2 0 0 1 2 2v4a2 2 0 0 1 -2 2h-6a2 2 0 0 1 -2 -2z" /> </svg> @lang('messages.print') </button> </div> </div> <div class="row no-print"> <div class="col-md-12"> <!-- Custom Tabs --> <div class="nav-tabs-custom"> <ul class="nav nav-tabs"> <li class="active"> <a href="#profit_by_products" data-toggle="tab" aria-expanded="true"><i class="fa fa-cubes" aria-hidden="true"></i> @lang('lang_v1.profit_by_products')</a> </li> <li> <a href="#profit_by_categories" data-toggle="tab" aria-expanded="true"><i class="fa fa-tags" aria-hidden="true"></i> @lang('lang_v1.profit_by_categories')</a> </li> <li> <a href="#profit_by_brands" data-toggle="tab" aria-expanded="true"><i class="fa fa-diamond" aria-hidden="true"></i> @lang('lang_v1.profit_by_brands')</a> </li> <li> <a href="#profit_by_locations" data-toggle="tab" aria-expanded="true"><i class="fa fa-map-marker" aria-hidden="true"></i> @lang('lang_v1.profit_by_locations')</a> </li> <li> <a href="#profit_by_invoice" data-toggle="tab" aria-expanded="true"><i class="fa fa-file-alt" aria-hidden="true"></i> @lang('lang_v1.profit_by_invoice')</a> </li> <li> <a href="#profit_by_date" data-toggle="tab" aria-expanded="true"><i class="fa fa-calendar" aria-hidden="true"></i> @lang('lang_v1.profit_by_date')</a> </li> <li> <a href="#profit_by_customer" data-toggle="tab" aria-expanded="true"><i class="fa fa-user" aria-hidden="true"></i> @lang('lang_v1.profit_by_customer')</a> </li> <li> <a href="#profit_by_day" data-toggle="tab" aria-expanded="true"><i class="fa fa-calendar" aria-hidden="true"></i> @lang('lang_v1.profit_by_day')</a> </li> <li> <a href="#profit_by_service_staff" data-toggle="tab" aria-expanded="true"><i class="fa fa-user-secret" aria-hidden="true"></i> @lang('lang_v1.profit_by_service_staff')</a> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="profit_by_products"> @include('report.partials.profit_by_products') </div> <div class="tab-pane" id="profit_by_categories"> @include('report.partials.profit_by_categories') </div> <div class="tab-pane" id="profit_by_brands"> @include('report.partials.profit_by_brands') </div> <div class="tab-pane" id="profit_by_locations"> @include('report.partials.profit_by_locations') </div> <div class="tab-pane" id="profit_by_invoice"> @include('report.partials.profit_by_invoice') </div> <div class="tab-pane" id="profit_by_date"> @include('report.partials.profit_by_date') </div> <div class="tab-pane" id="profit_by_customer"> @include('report.partials.profit_by_customer') </div> <div class="tab-pane" id="profit_by_service_staff"> @include('report.partials.profit_by_service_staff') </div> <div class="tab-pane" id="profit_by_day"> </div> </div> </div> </div> </div> </section> <!-- /.content --> @stop @section('javascript') <script src="{{ asset('js/report.js?v=' . $asset_v) }}"></script> <script type="text/javascript"> $(document).ready(function() { profit_by_products_table = $('#profit_by_products_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/product", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'product', name: 'product' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_products_table .footer_total').html(__currency_trans_from_en( total_profit)); } }); $('a[data-toggle="tab"]').on('shown.bs.tab', function(e) { var target = $(e.target).attr('href'); if (target == '#profit_by_categories') { if (typeof profit_by_categories_datatable == 'undefined') { profit_by_categories_datatable = $('#profit_by_categories_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/category", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'category', name: 'C.name' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_categories_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_categories_datatable.ajax.reload(); } } else if (target == '#profit_by_brands') { if (typeof profit_by_brands_datatable == 'undefined') { profit_by_brands_datatable = $('#profit_by_brands_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/brand", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'brand', name: 'B.name' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_brands_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_brands_datatable.ajax.reload(); } } else if (target == '#profit_by_locations') { if (typeof profit_by_locations_datatable == 'undefined') { profit_by_locations_datatable = $('#profit_by_locations_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/location", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'location', name: 'L.name' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_locations_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_locations_datatable.ajax.reload(); } } else if (target == '#profit_by_invoice') { if (typeof profit_by_invoice_datatable == 'undefined') { profit_by_invoice_datatable = $('#profit_by_invoice_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/invoice", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'invoice_no', name: 'sale.invoice_no' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_invoice_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_invoice_datatable.ajax.reload(); } } else if (target == '#profit_by_date') { if (typeof profit_by_date_datatable == 'undefined') { profit_by_date_datatable = $('#profit_by_date_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/date", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'transaction_date', name: 'sale.transaction_date' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_date_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_date_datatable.ajax.reload(); } } else if (target == '#profit_by_customer') { if (typeof profit_by_customers_table == 'undefined') { profit_by_customers_table = $('#profit_by_customer_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/customer", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'customer', name: 'CU.name' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_customer_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_customers_table.ajax.reload(); } } else if (target == '#profit_by_service_staff') { if (typeof profit_by_service_staffs_table == 'undefined') { profit_by_service_staffs_table = $('#profit_by_service_staff_table').DataTable({ processing: true, serverSide: true, fixedHeader:false, "ajax": { "url": "/reports/get-profit/service_staff", "data": function(d) { d.start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); d.end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); d.location_id = $('#profit_loss_location_filter').val(); } }, columns: [{ data: 'staff_name', name: 'U.first_name' }, { data: 'gross_profit', "searchable": false }, ], footerCallback: function(row, data, start, end, display) { var total_profit = 0; for (var r in data) { total_profit += $(data[r].gross_profit).data('orig-value') ? parseFloat($(data[r].gross_profit).data('orig-value')) : 0; } $('#profit_by_service_staff_table .footer_total').html( __currency_trans_from_en(total_profit)); }, }); } else { profit_by_service_staffs_table.ajax.reload(); } } else if (target == '#profit_by_day') { var start_date = $('#profit_loss_date_filter') .data('daterangepicker') .startDate.format('YYYY-MM-DD'); var end_date = $('#profit_loss_date_filter') .data('daterangepicker') .endDate.format('YYYY-MM-DD'); var location_id = $('#profit_loss_location_filter').val(); var url = '/reports/get-profit/day?start_date=' + start_date + '&end_date=' + end_date + '&location_id=' + location_id; $.ajax({ url: url, dataType: 'html', success: function(result) { $('#profit_by_day').html(result); profit_by_days_table = $('#profit_by_day_table').DataTable({ "searching": false, 'paging': false, 'ordering': false, }); var total_profit = sum_table_col($('#profit_by_day_table'), 'gross-profit'); $('#profit_by_day_table .footer_total').text(total_profit); __currency_convert_recursively($('#profit_by_day_table')); }, }); } else if (target == '#profit_by_products') { profit_by_products_table.ajax.reload(); } $("a.btn").removeClass("btn btn-default buttons-excel buttons-html5"); }); }); </script> @endsection
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.85 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285