Path : /var/www/html/jewelry-pos/app/Exports/ |
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/SaleReportExport.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 SaleReportExport implements FromQuery , WithMapping , WithHeadings { /** * @return \Illuminate\Support\Collection */ // public function collection() // { // // } private $no = 0; private $search; private $start_date; private $end_date; private $date; private $product_category_id; public function __construct($search,$start_date,$end_date,$product_category_id) { $this->search = $search; $this->start_date = $start_date; $this->end_date = $end_date; $this->product_category_id = $product_category_id; } /** * @return \Illuminate\Support\Collection */ public function headings(): array { return [ 'no', __('message.part number'), __('message.product category'), __('message.name'), __('message.sales price'), __('message.usd price'), __('message.khr price'), __('message.thb price'), __('message.cost'), __('message.selling cost'), __('message.selling rate'), __('message.qty'), __('message.discount'), __('message.weight'), __('message.gold weight'), __('message.wages'), __('message.original wages'), __('message.selling purity'), __('message.purity upgrade to'), __('message.diamond size'), __('message.description'), __('message.supplier rate'), // __('message.image'), __('message.user'), __('message.created at'), ]; } 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('part_number' , 'like' , '%' . $search . '%')->orderBy('id' , 'desc'); } else{ $sales= Sale::query(); } if($start_date){ $sales = $sales->whereBetween('created_at', [$start_date . " 00:00:00", $end_date . " 23:59:59"]); } $product_category_id = $this->product_category_id; if($product_category_id != 0){ $sales = $sales->where('product_category_id' , $product_category_id); } return $sales; } public function map($sale): array { $this->no++; if($sale->fixed_price || $sale->productCategory->fixed_price){ $this->fixed_price = __('message.yes'); $wages_in_weight = $sale->wages_in_weight; $original_wages_in_weight = $sale->original_wages_in_weight; }else{ $this->fixed_price = __('message.no'); $wages_in_weight = $sale->wages; $original_wages_in_weight = $sale->original_wages; } return [ $this->no, $sale->part_number, $sale->productCategory->name??'', $sale->name??'', number_format($sale->sales_price , 2), number_format($sale->usd_amount , 2), number_format($sale->khr_amount , 2), number_format($sale->thb_amount , 2), number_format($sale->cost() , 2), number_format($sale->selling_cost , 2), number_format($sale->selling_rate , 4), $sale->qty??0, number_format($sale->discount , 2), $sale->weight, $sale->goldWeight(), $wages_in_weight, $original_wages_in_weight, $sale->purity_upgrade_to??'', $sale->selling_purity??'', htmlspecialchars(trim(strip_tags($sale->diamond_size))), htmlspecialchars(trim(strip_tags($sale->description))), $sale->supplier_rate, // $sale->image, $sale->user->name??'', $sale->created_at->format('d/m/y H:i'), ]; } }