diff --git a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php index 631db0008..52956a274 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/DashboardController.php @@ -2,12 +2,13 @@ namespace Webkul\Admin\Http\Controllers; -use Illuminate\Support\Facades\DB; use Carbon\Carbon; -use Webkul\Sales\Repositories\OrderRepository; -use Webkul\Sales\Repositories\OrderItemRepository; +use Illuminate\Support\Facades\DB; use Webkul\Customer\Repositories\CustomerRepository; use Webkul\Product\Repositories\ProductInventoryRepository; +use Webkul\Sales\Repositories\InvoiceRepository; +use Webkul\Sales\Repositories\OrderItemRepository; +use Webkul\Sales\Repositories\OrderRepository; class DashboardController extends Controller { @@ -32,6 +33,13 @@ class DashboardController extends Controller */ protected $orderItemRepository; + /** + * InvoiceRepository object + * + * @var \Webkul\Sales\Repositories\InvoiceRepository + */ + protected $invoiceRepository; + /** * CustomerRepository object * @@ -86,6 +94,7 @@ class DashboardController extends Controller public function __construct( OrderRepository $orderRepository, OrderItemRepository $orderItemRepository, + InvoiceRepository $invoiceRepository, CustomerRepository $customerRepository, ProductInventoryRepository $productInventoryRepository ) @@ -98,6 +107,8 @@ class DashboardController extends Controller $this->orderItemRepository = $orderItemRepository; + $this->invoiceRepository = $invoiceRepository; + $this->customerRepository = $customerRepository; $this->productInventoryRepository = $productInventoryRepository; @@ -149,6 +160,11 @@ class DashboardController extends Controller 'current' => $current = $this->currentOrders()->avg('base_grand_total_invoiced') - $this->currentOrders()->avg('base_grand_total_refunded'), 'progress' => $this->getPercentageChange($previous, $current), ], + 'total_unpaid_invoices' => [ + 'previous' => $previous = $this->getPendingInvoicesBetweenDate($this->lastStartDate, $this->lastEndDate), + 'current' => $current = $this->getPendingInvoicesBetweenDate($this->startDate, $this->endDate), + 'progress' => $this->getPercentageChange($previous, $current), + ], 'top_selling_categories' => $this->getTopSellingCategories(), 'top_selling_products' => $this->getTopSellingProducts(), 'customer_with_most_sales' => $this->getCustomerWithMostSales(), @@ -260,12 +276,12 @@ class DashboardController extends Controller public function setStartEndDate() { $this->startDate = request()->get('start') - ? Carbon::createFromTimeString(request()->get('start') . " 00:00:01") - : Carbon::createFromTimeString(Carbon::now()->subDays(30)->format('Y-m-d') . " 00:00:01"); + ? Carbon::createFromTimeString(request()->get('start') . " 00:00:01") + : Carbon::createFromTimeString(Carbon::now()->subDays(30)->format('Y-m-d') . " 00:00:01"); $this->endDate = request()->get('end') - ? Carbon::createFromTimeString(request()->get('end') . " 23:59:59") - : Carbon::now(); + ? Carbon::createFromTimeString(request()->get('end') . " 23:59:59") + : Carbon::now(); if ($this->endDate > Carbon::now()) { $this->endDate = Carbon::now(); @@ -275,7 +291,6 @@ class DashboardController extends Controller $this->lastEndDate = clone $this->startDate; $this->lastStartDate->subDays($this->startDate->diffInDays($this->endDate)); - // $this->lastEndDate->subDays($this->lastStartDate->diffInDays($this->lastEndDate)); } /** @@ -298,6 +313,15 @@ class DashboardController extends Controller return $this->getOrdersBetweenDate($this->startDate, $this->endDate); } + private function getPendingInvoicesBetweenDate($start, $end) + { + return $this->invoiceRepository + ->where('invoices.created_at', '>=', $start) + ->where('invoices.created_at', '<=', $end) + ->where('state', 'pending') + ->sum('grand_total'); + } + /** * Returns orders between two dates * diff --git a/packages/Webkul/Admin/src/Resources/views/dashboard/index.blade.php b/packages/Webkul/Admin/src/Resources/views/dashboard/index.blade.php index f4a3578f0..842bc68d5 100755 --- a/packages/Webkul/Admin/src/Resources/views/dashboard/index.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/dashboard/index.blade.php @@ -125,6 +125,32 @@ +
+
+ {{ __('admin::app.dashboard.total-unpaid-invoices') }} +
+ +
+ {{ core()->formatBasePrice($statistics['total_unpaid_invoices']['current']) }} + + + @if ($statistics['total_unpaid_invoices']['progress'] < 0) + + {{ __('admin::app.dashboard.decreased', [ + 'progress' => -number_format($statistics['total_unpaid_invoices']['progress'], 1) + ]) + }} + @else + + {{ __('admin::app.dashboard.increased', [ + 'progress' => number_format($statistics['total_unpaid_invoices']['progress'], 1) + ]) + }} + @endif + +
+
+