|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/peoplebee.in/___accounts-admin/app/Helpers/ |
Upload File : |
<?php
namespace App\Helpers;
use Postal;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Request;
// use App\Models\LogActivity as LogActivityModel;
use carbon\carbon;
use App\Models\accounting\{
AccountInvoice,
AccountItem,
AccountPurchaseBill,
AccountExpenseDetail,
AccountCreditNote,
AccountDebitNote,
AccountPaymentReceive,
AccountAdvancePayment
};
class ReportHelper
{
public static function openingStock($start_date, $end_date, $admin_id)
{
$total_item_value = 0;
$items = AccountItem::where("admin_id",$admin_id)->get();
if($items->count() != 0)
{
foreach($items as $item)
{
$item_quantity = $item->quantity - $item->sold;
$total_item_value += $item_quantity * $item->sales_unit_price;
}
return $total_item_value;
}
return 0;
}
public static function cash($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$received_cash = AccountPaymentReceive::where('admin_id',$admin_id)
->where("payment_method","=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where("type","received")->sum('amount');
$payment_cash = AccountPaymentReceive::where('admin_id',$admin_id)
->where("payment_method","=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where("type","payment")->sum('amount');
$receive_ad = AccountAdvancePayment::where("admin_id",$admin_id)
->where("payment_method","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where('type','received')
->sum('amount');
$pay_ad = AccountAdvancePayment::where("admin_id",$admin_id)
->where("payment_method","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where('type','payment')
->sum('amount');
$receive = $received_cash + $receive_ad;
$payment = $payment_cash + $pay_ad;
if($receive>=$payment)
{
$data["cash"] = $receive - $payment;
$data["cash_type"] = "dr";
return $data;
}
else
{
$data["cash"] = $payment - $receive;
$data["cash_type"] = "cr";
return $data;
}
}
public static function bank($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$received_cash = AccountPaymentReceive::where('admin_id',$admin_id)
->where("payment_method","!=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where("type","received")->sum('amount');
$payment_cash = AccountPaymentReceive::where('admin_id',$admin_id)
->where("payment_method","!=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where("type","payment")->sum('amount');
$receive_ad = AccountAdvancePayment::where("admin_id",$admin_id)
->where("payment_method","!=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where('type','received')
->sum('amount');
$pay_ad = AccountAdvancePayment::where("admin_id",$admin_id)
->where("payment_method","!=","cash")
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)
->where('type','payment')
->sum('amount');
$receive = $received_cash + $receive_ad;
$payment = $payment_cash + $pay_ad;
if($receive>=$payment)
{
$data["bank"] = $receive - $payment;
$data["bank_type"] = "dr";
return $data;
}
else
{
$data["bank"] = $payment - $receive;
$data["bank_type"] = "cr";
return $data;
}
}
public static function client($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = request('start_date', $currentMonthStart);
$end_date = request('end_date', $currentMonthEnd);
$invoice_total = AccountInvoice::where("admin_id",$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('.created_at','<=',$end_date)->sum("grand_total");
$payment_received = AccountPaymentReceive::where('admin_id',$admin_id)
->where("type","received")
->whereDate('created_at','>=',$start_date)
->whereDate('.created_at','<=',$end_date)->sum("amount");
$advance_received = AccountAdvancePayment::where("admin_id",$admin_id)
->where('type','received')
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum("amount");
$debtor = $invoice_total - ($payment_received + $advance_received);
return $debtor;
}
public static function vendor($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = request('start_date', $currentMonthStart);
$end_date = request('end_date', $currentMonthEnd);
$total_bill = AccountPurchaseBill::where("admin_id",$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('.created_at','<=',$end_date)->sum("grand_total");
$payment_received = AccountPaymentReceive::where('admin_id',$admin_id)
->where("type","payment")
->whereDate('created_at','>=',$start_date)
->whereDate('.created_at','<=',$end_date)->sum("amount");
$advance_received = AccountAdvancePayment::where("admin_id",$admin_id)
->where('type','payment')
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum("amount");
$creditor = $total_bill - ($payment_received + $advance_received);
return $creditor;
}
public static function sales($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$sales = AccountInvoice::where('admin_id',$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum('grand_total');
return $sales;
}
public static function salesReturn($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$sales = AccountCreditNote::where('admin_id',$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum('grand_total');
return $sales;
}
public static function purchaseReturn($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$p_return = AccountDebitNote::where('admin_id',$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum('grand_total');
return $p_return;
}
public static function purchase($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$purchase = AccountPurchaseBill::where('admin_id',$admin_id)
->whereDate('created_at','>=',$start_date)
->whereDate('created_at','<=',$end_date)->sum('grand_total');
return $purchase;
}
public static function expenses($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$expense = AccountExpenseDetail::where('admin_id',$admin_id)
->whereDate('date','>=',$start_date)
->whereDate('date','<=',$end_date)
->sum("grand_total");
return $expense;
}
public static function net_profit($sdate=null,$edate=null,$admin_id)
{
$currentMonthStart = date('Y-m-01');
$currentMonthEnd = date('Y-m-t');
$start_date = $sdate ? $sdate : $currentMonthStart;
$end_date = $edate ? $edate : $currentMonthEnd;
$purchase = self::purchase($start_date,$end_date,$admin_id);
$expenses = self::expenses($start_date,$end_date,$admin_id);
$sales = self::sales($start_date,$end_date,$admin_id);
$credit_note = self::salesReturn($start_date,$end_date,$admin_id);
$debit_note = self::purchaseReturn($start_date,$end_date,$admin_id);
$net_profit = ($sales+$debit_note) - ($purchase + $credit_note + $expenses);
return $net_profit;
}
}