KUJUNTI.ID MINISH3LL
Path : /var/www/html/jewelry-pos/app/Exports/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/jewelry-pos/app/Exports/BuyBackExport.php


<?php

namespace App\Exports;

use App\Models\Sale;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;

class BuyBackExport implements FromQuery , WithHeadings , WithMapping
{
    /**
    * @return \Illuminate\Support\Collection
    */
//    public function collection()
//    {
//        //
//    }

    private $no = 0;
    private $search;
    private $start_date;
    private $end_date;
    private $date;

    public function __construct($search,$start_date,$end_date)
    {
        $this->search = $search;
        $this->start_date = $start_date;
        $this->end_date = $end_date;
    }

    /**
     * @return \Illuminate\Support\Collection
     */

    public function headings(): array
    {
        return [
            'no',
            __('message.invoice no'),
            __('message.product category'),
            __('message.name'),
            __('message.buy back price'),
            __('message.customer'),
            __('message.customer phone'),
            __('message.user'),
            __('message.qty'),
            __('message.weight'),
            __('message.gold weight'),
            __('message.wages'),
            __('message.original wages'),
            __('message.diamond size'),
            __('message.buy back'),
            __('message.buy back note'),
            __('message.date buy back'),
        ];
    }
    public function query()
    {
        $start_date = $this->start_date ?? date('Y-m-d');
        $end_date = $this->end_date ?? date('Y-m-d');
        $dates = explode(' - ', $this->date);
        if ($this->date) {
            $start_date = $dates[0];
            $end_date = $dates[1];
        }
        $search = $this->search;
        if($search){
            $sales = Sale::where('invoice_no' , 'like' , '%' . $search . '%')->where('already_buy_back' , true??1)->orderBy('id' , 'desc');
        }else{
            $sales = Sale::whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"])->where('already_buy_back' , true??1)->orderBy('id' , 'desc');
        }
        return $sales;
    }

    public function map($sale): array
    {
        $this->no++;
        return [
            $this->no,
            $sale->invoice_no??'',
            $sale->productCategory->name??'',
            $sale->name??'',
            number_format($sale->buy_back_price , 2),
            $sale->member->name??'',
            $sale->member->phone??'',
            $sale->user->name??'',
            $sale->qty??0,
            $sale->weight,
            $sale->goldWeight(),
            number_format($sale->wages ,2),
            number_format($sale->original_wages , 2),
            htmlspecialchars(trim(strip_tags($sale->diamond_size))),
            $sale->already_buy_back==1?__('message.yes'):__('message.no'),
            $sale->buy_back_note,
            date('d-M-Y H:i' , strtotime($sale->date_buy_back)),
        ];
    }

}

© KUJUNTI.ID