File "OrderRepeatResource.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Resources/Admin/OrderRepeatResource.php
File size: 4.39 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Resources\Admin;
use App\Models\Status;
use Illuminate\Http\Resources\Json\JsonResource;
class OrderRepeatResource extends JsonResource
{
public function toArray($request)
{
$orderItems = [];
foreach ($this->items as $item) {
$variations = $customization_array = [];
foreach ($item->itemVariations as $variation){
$variations[] = [
'id' => $variation->variation?->id,
'type' => $variation->variation?->type,
'value' => $variation->variation?->value,
];
}
foreach ($item->orderItemCustomizations as $customization){
$customization_array['url'][] = $customization->mediaUrl;
}
$product = $item->product;
$productVariations = [];
foreach ($product->variations ?? [] as $variation){
$v = $variation->variation;
if($v){
$productVariations[$v->type][] = ['id' => $v->id, 'value' => $v->value];
}
}
$productPrices = [];
foreach ($product->prices ?? [] as $price){
$combinations = $ranges = [];
foreach ($price->combinations ?? [] as $combination){
$combinations[] = [
'variation_id' => $combination->variation_id,
];
}
foreach ($price->priceRanges ?? [] as $range){
$ranges[] = [
'qty_from' => $range->qty_from,
'qty_to' => $range->qty_to,
'price' => $range->price,
];
}
$productPrices[$price->id] = [
'price_id' => $price->id,
'supplier_prod_number' => $price->supplier_prod_number,
'product_sketch' => $price->product_sketch_media,
'min_price' => $price->min_price,
'max_price' => $price->max_price,
'combination' => $combinations,
'ranges' => $ranges,
];
}
$productDetails = [
'id' => $product->id,
'sku' => $product->sku,
'name' => $product->name,
'description' => $product->description,
'category' => $product->category?->name,
'featured_image' => $product->featured_image ? [
$product->featured_image->url,
$product->featured_image->thumbnail,
$product->featured_image->preview
] :[],
'gallery_images' => $product->gallery_images,
'variations' => $productVariations,
'product_prices' => $productPrices
];
$orderItems[] = [
'item_id' => $item->id,
'product_id' => $item->product_id,
'price_id' => $item->price_id,
'quantity' => $item->quantity,
'price' => $item->price,
'customization' => $customization_array,
'product_customization' => json_decode($item->customization ?? "[]"),
'template' => null, //$item->template_media,
'image' => $item->imageUrl,
'variations' => $variations,
'notes' => $item->notes,
'approved_consent' => $item->approved_consent ? 'Yes': 'No',
'product_detail' => $productDetails
];
}
return [
'user_id' => $this->user_id,
'order_type' => $this->order_type,
'payment_type' => $this->payment_type,
'current_status_id' => $this->current_status_id,
'shipping_address_id' => $this->shipping_address_id,
'billing_address_id' => $this->billing_address_id,
'rush_order' => $this->rush_order,
'waive_off_sales_tax' => $this->waive_off_sales_tax,
'waive_off_sales_tax_reason' => $this->waive_off_sales_tax_reason,
'resale_number' => $this->resale_number,
'products' => $orderItems,
];
}
}