@php
$invoiceSalesAmount = 0;
$invoiceCostAmount = 0;
$variationOrderSalesAmount = 0;
$variationOrderCostAmount = 0;
$supplierInvoiceCostAmout = 0;
$project = \App\Models\Project::find(request()->route('id'));
$invoice = \App\Models\Invoice::where('project_id', $project->id)
->where('status', '!=', 'void')
->orderBy('created_at', 'desc')
->first();
if ($invoice) {
$invoiceItem = \App\Models\InvoiceItem::where('invoice_id', $invoice->id)
->orderBy('created_at', 'desc')
->first();
$invoiceItemLists = \App\Models\InvoiceItemList::where('invoice_id', $invoice->id)
->where('invoice_item_id', $invoiceItem->id)
->get();
$invoiceAmount =
\App\Models\InvoiceItemList::where('invoice_id', $invoice->id)
->where('invoice_item_id', $invoiceItem->id)
->where('tier_level', 1)
->sum('amount') ?? 0;
if ($invoiceItemLists->count() > 0) {
foreach ($invoiceItemLists as $invoiceItemList) {
if ($invoiceItemList->tier_level == 1) {
$invoiceSalesAmount += $invoiceItemList->amount;
}
if (!empty($invoiceItemLists->margin)) {
foreach ($invoiceItemLists->margin as $invoiceItemMargin) {
$invoiceCostAmount +=
$invoiceItemLists->quantity *
($invoiceItemMargin->price * $invoiceItemMargin->quantity);
}
}
}
}
}
// Check Variation
if ($invoice) {
$invoiceVariationOrders = \App\Models\InvoiceVariationOrder::where('invoice_id', $invoice->id)
->where('invoice_item_id', $invoiceItem->id)
->get();
if ($invoiceVariationOrders->count() > 0) {
foreach ($invoiceVariationOrders as $invoiceVariationOrder) {
$variationOrder = \App\Models\VariationOrder::find(
$invoiceVariationOrder->variation_order_id,
);
if ($variationOrder->status == 'accepted' || $variationOrder->status == 'approved') {
$variationOrderItem = \App\Models\VariationOrderItem::where(
'variation_order_id',
$variationOrder->id,
)
->where('revision', 'like', '%REV%')
->orderBy('created_at', 'desc')
->first();
$variationOrderItemLists = \App\Models\VariationOrderItemList::where(
'variation_order_item_id',
$variationOrderItem->id,
)
->with('margin')
->get();
if ($variationOrderItemLists->count() > 0) {
foreach ($variationOrderItemLists as $variationOrderItemList) {
if ($variationOrderItemList->tier_level == 1) {
$variationOrderSalesAmount += $variationOrderItemList->amount;
}
if (!empty($variationOrderItemList->margin)) {
foreach ($variationOrderItemList->margin as $variationOrderItemMargin) {
$variationOrderCostAmount +=
$variationOrderItemList->quantity *
($variationOrderItemMargin->price *
$variationOrderItemMargin->quantity);
}
}
}
if ($variationOrder->discount) {
$variationOrderSalesAmount =
$variationOrderSalesAmount - $variationOrder->discount;
}
}
}
}
}
}
// Check Supplier Invoice
// $supplierInvoices = \App\Models\SupplierInvoice::where('project_id', $project->id)
//->where('is_approved', true)
//->get();
$supplierInvoices = \App\Models\SupplierInvoice::where('project_id', $project->id)
->where('status', '!=', 'Reject')
->get();
if ($supplierInvoices->count() > 0) {
foreach ($supplierInvoices as $supplierInvoice) {
$supplierInvoiceCostAmout += $supplierInvoice->amount;
}
}
$totalSales = $invoiceSalesAmount + $variationOrderSalesAmount;
$totalCost = $supplierInvoiceCostAmout;
$totalProfit = $totalSales - $totalCost;
@endphp
Total
Sales
${{ number_format($totalSales, 2) }}
Total
Cost
${{ number_format($totalCost, 2) }}
Total
Profit
${{ number_format($totalProfit, 2) }}
@if ($supplierInvoiceCostAmout == 0)
The profit result is not actual profit because supplier Invoice not found
@endif
@if (!\Auth::user()->can('report-project-commission-export-all-user'))
@php
$memberCommissions = \App\Models\ProjectMemberCommission::where('project_id', $project->id)
->where('user_id', \Auth::id())
->get();
@endphp
@else
@php
$memberCommissions = \App\Models\ProjectMemberCommission::where(
'project_id',
$project->id,
)->get();
@endphp
@endif
@forelse ($memberCommissions as $memberCommission)
@php
$user = \App\Models\User::find($memberCommission->user_id);
if ($loop->last) {
$boxUserMarginBottom = '';
}
@endphp
{{-- @if ($memberCommissions->count() > 1) --}}
@php
$percentageCalculation =
($memberCommission->commission / 100) * ($user->commission / 100) * 100;
$commissionCalculation = ($percentageCalculation / 100) * $totalProfit;
$commission =
$totalProfit *
($memberCommission->user->commission / 100) *
($memberCommission->commission / 100);
@endphp
{{-- @else
@php
$percentageCalculation = $memberCommission->user->commission;
$commissionCalculation = ($memberCommission->commission / 100) * $totalProfit;
$commission = $totalProfit*($memberCommission->user->commission/100);
@endphp
@endif --}}
{{ $user->name }} {{ $memberCommission->is_owner ? '(PIC)' : '' }}
${{ number_format($commission, 2) }}
| Personal Commission |
: |
{{ $user->commission }}% |
| Project Commission Shared |
: |
{{ $memberCommission->commission }}% |
| Percentage Calculation |
: |
{{ $percentageCalculation }}% |
@empty
@endforelse
Invoice
@if ($invoice)
Amount:
${{ number_format($invoiceAmount, 2) }}
@endif
Variation Orders
@if ($invoice)
@foreach ($invoiceVariationOrders as $invoiceVariationOrder)
@php
$variationOrderAmount = 0;
$variationOrderItem = \App\Models\VariationOrderItem::where(
'variation_order_id',
$variationOrder->id,
)
->where('revision', 'like', '%REV%')
->orderBy('created_at', 'desc')
->first();
$variationOrderItemLists = \App\Models\VariationOrderItemList::where(
'variation_order_id',
$variationOrder->id,
)
->where('variation_order_item_id', $variationOrderItem->id)
->orderBy('created_at', 'asc')
->get();
if ($variationOrderItemLists->count() > 0) {
foreach ($variationOrderItemLists as $variationOrderItemList) {
if ($variationOrderItemList->tier_level == 1) {
$variationOrderAmount += $variationOrderItemList->amount;
}
}
}
@endphp
{{ $variationOrder->running_no }}
@if (!empty($variationOrder->discount) && $variationOrder->discount > 0.0)
Goodwill Discount : ${{ $variationOrder->discount }}
@endif
@php
$statusVO = $variationOrder->status;
@endphp
@if ($statusVO == 'requested')
{{ $statusVO }}
@elseif ($statusVO == 'accepted' || $statusVO == 'approved')
{{ $statusVO }}
@elseif ($statusVO == 'void')
{{ $statusVO }}
@else
{{ $statusVO }}
@endif
Amount:
@if (!empty($variationOrder->discount) && $variationOrder->discount > 0.0)
${{ number_format($variationOrderAmount, 2) }}
@php
$variationOrderAmount = $variationOrderAmount - $variationOrder->discount;
@endphp
@endif
${{ number_format($variationOrderAmount, 2) }}
@if ($statusVO !== 'approved' && $statusVO !== 'accepted')
Note: status VO not Accepted/Approved, not be calculated in total amount VO
and
Invoice
@endif
@endforeach
@endif