Files
hpt_inventory/resources/views/v_invoice/invoice.blade.php
2026-06-15 11:25:16 +07:00

283 lines
18 KiB
PHP

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
@include('layout.header')
<link href="{{url(env("APP_URL").'storage/assets/libs/bootstrap-datepicker/css/bootstrap-datepicker.min.css')}}" rel="stylesheet" type="text/css" />
<style>
#modal-repayment .form-group label {
line-height: 0.4rem !important;
}
#modal-repayment .select2-container .select2-selection--single, #modal-repayment .select2-selection--multiple {
min-height: 30px !important;
}
#modal-repayment .select2-selection__arrow {
height: 30px !important;
}
#modal-repayment .form-control, #modal-repayment .select2-container--default .select2-selection--single, #modal-repayment .select2-container--default .select2-selection--single .select2-search__field, .typeahead, .tt-query, .tt-hint {
padding: 0.4rem 1.375rem;
}
</style>
</head>
<body>
<div class="container-scroller">
@include('layout.navbar')
<!-- partial -->
@include('layout.breadscrum')
<div class="container-fluid page-body-wrapper">
@include('layout.sidebar')
<!-- partial -->
<div class="main-panel">
<div class="content-wrapper">
<div class="row">
<div class="col-md-12 grid-margin stretch-card">
<div class="card" style="min-height: 80vh">
<div class="card-body">
<h4 class="card-title"><i class="mdi mdi-dots-vertical menu-icon"></i> {{__('invoice.table_title')}}</h4>
<div class="row">
<div class="col-sm-12">
<div class="col-sm-12 inv-search">
<form method="get" action="{{url('invoice')}}">
<div class="row">
<div class="col-sm-12 col-md-6 col-lg-3 pr-0">
<div class="form-group mb-1">
<label for="start-invoice-date">{{__('invoice.table_date_filter')}}</label>
<div class="input-group">
<input id="start-invoice-date" value="{{isset($_GET['from_date']) ? $_GET['from_date'] : ''}}" name="from_date" class="form-control rounded-top-left-25 rounded-bottom-left-25 rounded-right-0" onfocus="(this.type='date')" onblur="(this.type='text')" placeholder="{{__('general.type_date_placeholder')}}">
<input id="to-invoice-date" value="{{isset($_GET['to_date']) ? $_GET['to_date'] : ''}}" name="to_date" class="form-control rounded-left-0 rounded-right-0" onfocus="(this.type='date')" onblur="(this.type='text')" placeholder="{{__('general.type_date_placeholder')}}">
</div>
</div>
</div>
<div class="col-sm-12 col-md-3 col-lg-2 pr-0">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('report.doctor_physician_filter')}}</label>
<select class="form-control rounded-left-0 rounded-right-0" name="physician">
<option></option>
@foreach($physicians as $physician)
<option {{$physician->id==@$_GET['physician'] ? 'selected':''}} value="{{$physician->id}}">{{$physician->name_en}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-sm-12 col-md-6 col-lg-5">
<div class="form-group mb-1">
<label for="lab-name-en">{{__('invoice.table_textable_filter')}}</label>
<div class="input-group">
<input type="text" class="form-control rounded-right-0 rounded-left-0" value="{{isset($_GET['kword']) ? $_GET['kword'] : ''}}" name="kword" id="kword" placeholder="{{__('invoice.table_textable_filter_placeholder')}}">
<div class="input-group-append">
<button class="btn btn-sm btn-inverse-secondary rounded-bottom-right-25 rounded-top-right-25 px-3" title="Search" type="submit"><i class="fa fa-search"></i> {{__('general.btn_search')}}</button>
<!--@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['create_invoice']))-->
<!--<a href="{{url('invoice/new')}}" class="btn btn-info rounded-0 waves-effect px-3 ml-5"><i class="typcn typcn-plus"></i>{{__('general.btn_add_new')}}</a>-->
<!--@endif-->
</div>
</div>
</div>
</div>
</div>
</form> <hr class="my-3 d-none">
</div>
<div class="col-sm-12 p-0 mb-1 mt-3">
{{-- @if(!in_array(Session::get('base_organization_id'),[37,19]))--}}
{{-- <button type="button" onclick="paddAll()" class="btn btn-danger rounded-0 btn-xs" id="mark-as-paid" disabled>Mark as paid</button>--}}
{{-- @endif--}}
<div class="table-responsive">
<table class="table table-bordered table-hover" id="department_dt">
<thead>
<tr class="bg-gradient-light">
<th class="py-2 text-center" width="20px">{{__('invoice.table_no')}}</th>
<th class="py-2 text-center" width="80px">{{__('invoice.table_action')}}</th>
<th class="py-2">{{__('invoice.table_invoice_code')}}</th>
<th class="py-2" width="150px">{{__('invoice.table_patient_name')}}</th>
{{-- <th class="py-2" width="120px">{{__('sample.physician_name')}}</th>--}}
<th class="py-2" width="100px">{{__('invoice.table_sample_number')}}</th>
<th class="py-2 text-center" width="120px">{{__('invoice.table_invoice_date')}}</th>
<th class="py-2 text-center" width="150px">{{__('invoice.table_total_cost')}}</th>
<th class="py-2" width="150px">{{__('invoice.table_discount')}}</th>
<th class="py-2 text-center" width="150px">{{__('invoice.table_net_cost')}}</th>
<th class="py-2 text-center" width="150px">{{__('invoice.form_paid_amount')}}</th>
<th class="py-2 text-center" width="150px">{{__('invoice.table_owe')}}</th>
</tr>
</thead>
<tbody>
@foreach($invoices as $k=>$invoice)
<tr>
<td class="py-1 text-center">{{($k+1) + (($_GET['page'] ?? 1) * 20) - 20}}</td>
<td class="py-1 text-right">
<div class="btn-group" role="group" aria-label="Basic example" >
@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['create_repayment']) && round($invoice->total - ($invoice->total * ($invoice->discount/100)),0)> round($invoice->repayments->sum('cash_repayment_amount') + $invoice->repayments->sum('bank_repayment_amount') + $invoice->deposit + $invoice->bank_deposit,0))
<button data-toggle="modal" data-action="new" data-invoice-id="{{$invoice->id}}" data-target="#modal-repayment" data-backdrop="static" type="button" style="padding: 0px 2px; font-size:10px;" class="btn btn-sm btn-inverse-success mr-2 py-1" title="Click here to paid"><i class="mdi mdi-currency-usd"></i></button>
@endif
@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['view_invoice']))
<a href="{{url('invoice/edit/'.$invoice->id.'?print')}}" class="btn btn-sm btn-inverse-warning mr-2 py-1" title="Print"><i class="mdi mdi-printer"></i></a>
@endif
@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['update_invoice']))
<a href="{{url('invoice/edit/'.$invoice->id)}}" class="btn btn-sm btn-inverse-info mr-2 py-1" title="{{__('general.btn_edit')}}"><i class="typcn typcn-edit"></i></a>
@endif
@if($invoice->record_status_id==0)
@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['update_invoice','view_invoice']))
<button type="button" class="btn btn-sm btn-inverse-primary" onclick="restoreData({{$invoice->id}})"><i class="typcn typcn-plus"></i></button>
@endif
@else
@if(\App\Http\Controllers\Helper\GlobalController::user_can(Auth::user()->role_id, ['delete_invoice']))
<button type="button" class="btn btn-sm btn-inverse-danger py-1" title="{{__('general.btn_delete')}}" onclick="deleteData({{$invoice->id}})"><i class="mdi mdi-close-circle"></i></button>
@endif
@endif
</div>
</td>
<td class="py-1">{{$invoice->invoice_code}}</td>
<td class="py-1">{{$invoice->sample->patient->name_en}}</td>
{{-- <td class="py-1">{{$invoice->sample->physician->name_en}}</td>--}}
<td class="py-1">{{$invoice->sample->sample_number}}</td>
<td class="py-1 text-center">{{date('d-m-Y',strtotime($invoice->invoice_date))}}</td>
<td class="py-1 text-right">{{$invoice->total}}</td>
<td class="py-1 text-right">{{$invoice->discount}}</td>
<td class="py-1 text-right">{{$invoice->gross_total}}</td>
<td class="py-1 text-right">{{$invoice->deposit + $invoice->bank_deposit}}</td>
{{-- <td class="py-1 text-right">{{$invoice->bank_deposit}}</td>--}}
<td class="py-1 text-right">
{{number_format($invoice->balance,2)}}
</td>
{{-- <td class="py-1 text-right">--}}
{{-- {{$invoice->repayments->sum('cash_repayment_amount') + $invoice->repayments->sum('bank_repayment_amount')}}--}}
{{-- </td>--}}
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="float-right mt-3">
{!! $invoices->appends($_GET)->links('pagination.custom') !!}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@include('v_invoice.report_filter')
@include('modal.repayment')
@include('layout.footer')
</div>
</div>
</div>
@include('layout.common_script')
<script src="{{url(env("APP_URL").'storage/assets/libs/bootstrap-datepicker/js/bootstrap-datepicker.min.js')}}"></script>
<script>
var base_url = "{{url('invoice')}}";
let invoice_id = 0;
let repayment_base_url = "{{url('repayment')}}";
let report_type_tittle = "{{__('invoice.report_type')}}";
let report_type_daily = "{{__('invoice.daily')}}";
let report_type_monthly = "{{__('invoice.monthly')}}";
let report_type_yearly = "{{__('invoice.yearly')}}";
let repayment_modal_title = "{{__('invoice.repayment')}}";
let currency = {{$labSettings->currency}};
$(".datepicker").datepicker({
format:'dd-mm-yyyy',
autoclose: true
});
$(".monthpicker").datepicker({
format:'mm-yyyy',
autoclose: true
});
$(".yearpicker").datepicker({
format:'yyyy',
autoclose: true
});
var inv_ids = []
function checkAll(parentId, targetClass) {
var checkedState = $('#'+parentId).is(':checked');
var checkboxes = document.getElementsByClassName(targetClass);
inv_ids = []
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = checkedState;
if(checkboxes[i].checked){
inv_ids.push(checkboxes[i].getAttribute('value'))
}
else{
inv_ids = []
}
}
if(inv_ids.length>=1) $('#mark-as-paid').prop('disabled', false)
else $('#mark-as-paid').prop('disabled', true)
}
function checkOne(parentId) {
var checkedState = $('#'+parentId).is(':checked');
if(checkedState){
inv_ids.push($('#'+parentId).val())
}
else{
inv_ids = inv_ids.filter(val => val!=$('#'+parentId).val());
}
if(inv_ids.length>=1) $('#mark-as-paid').prop('disabled', false)
else $('#mark-as-paid').prop('disabled', true)
}
function paid(id){
var success = false
Swal.fire({
text: 'Are you sure want to paid this invoice?',
icon: 'question',
showCancelButton: true,
cancelButtonClass:'danger',
confirmButtonText: 'Ok, Paid',
cancelButtonText: 'Cancel'
}).then((result) => {
if (result.value) {
$.ajax({
url: base_url + '/'+id+'/paid',
method:'POST',
dataType:"JSON",
data:{
"_token": csrf_token
},
success:function(response){
handleMessage(response.success, response.message)
setTimeout(function () {location.reload()}, messageDuration)
success = true
}
})
}
});
return success;
}
</script>
<script src="{{url(env("APP_URL").'storage/assets/js/admin/invoice.js?time='.time())}}"></script>
<script src="{{url(env("APP_URL").'storage/assets/js/admin/repayment.js?time='.time())}}"></script>
</body>
</html>