![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/Modules/Connector/Transformers/ |
<?php namespace Modules\Connector\Transformers; use App\Utils\Util; use Illuminate\Http\Resources\Json\JsonResource; class NewSellResource extends JsonResource { /** * Transform the resource into an array. * * @param \Illuminate\Http\Request * @return array */ public function toArray($request) { $array = parent::toArray($request); foreach ($array['sell_lines'] as $key => $value) { //check if mapping exists if (isset($value['sell_line_purchase_lines'])) { $purchase_lines = []; foreach ($value['sell_line_purchase_lines'] as $sell_line_purchase_line) { //check mapped purchase line if (isset($sell_line_purchase_line['purchase_line'])) { //get purchase details of the sell line $purchase_lines[] = [ 'purchase_price' => $sell_line_purchase_line['purchase_line']['purchase_price'], 'pp_inc_tax' => $sell_line_purchase_line['purchase_line']['purchase_price_inc_tax'], 'lot_number' => $sell_line_purchase_line['purchase_line']['lot_number'], ]; } } //unset mapping and set purchase details unset($array['sell_lines'][$key]['sell_line_purchase_lines']); $array['sell_lines'][$key]['purchase_price'] = $purchase_lines; } $product = $value['product']; $value['product_name'] = $product['name']; $value['product_custom_field_1'] = $product['product_custom_field1']; $value['product_type'] = $product['type']; $value['product_sku'] = $product['sku']; $value['category'] = ! empty($product['category']) ? array_diff_key($product['category'], array_flip($this->__excludeCommonFields())) : null; $value['sub_category'] = ! empty($product['sub_category']) ? array_diff_key($product['sub_category'], array_flip($this->__excludeCommonFields())) : null; $variation = $value['variations']; $value['product_variations'] = [ 'id' => $variation['id'], 'name' => $variation['name'], 'product_id' => $variation['product_id'], 'sub_sku' => $variation['sub_sku'], 'product_variation_id' => $variation['product_variation_id'], 'default_purchase_price' => $variation['default_purchase_price'], 'dpp_inc_tax' => $variation['dpp_inc_tax'], 'default_sell_price' => $variation['default_sell_price'], 'sell_price_inc_tax' => $variation['sell_price_inc_tax'], ]; $array['sell_lines'][$key] = array_diff_key($value, array_flip($this->__excludeSellLineFields())); } if (! empty($array['payment_lines'])) { foreach ($array['payment_lines'] as $key => $value) { $array['payment_lines'][$key] = array_diff_key($value, array_flip($this->__excludePaymentLineFields())); } } $commonUtil = new Util; $array['invoice_url'] = $commonUtil->getInvoiceUrl($array['id'], $array['business_id']); $array['payment_link'] = $commonUtil->getInvoicePaymentLink($array['id'], $array['business_id']); return array_diff_key($array, array_flip($this->__excludeSellFields())); return $array; } private function __excludeSellFields() { return [ 'res_waiter_id', 'res_order_status', 'sub_type', 'sub_status', 'adjustment_type', 'shipping_charges', 'shipping_custom_field_1', 'shipping_custom_field_2', 'shipping_custom_field_3', 'shipping_custom_field_4', 'shipping_custom_field_5', 'is_export', 'export_custom_fields_info', 'additional_expense_key_1', 'additional_expense_value_1', 'additional_expense_key_2', 'additional_expense_value_2', 'additional_expense_key_3', 'additional_expense_value_3', 'additional_expense_key_4', 'additional_expense_value_4', 'expense_category_id', 'expense_for', 'commission_agent', 'document', 'exchange_rate', 'transfer_parent_id', 'return_parent_id', 'opening_stock_product_id', 'created_by', 'mfg_parent_production_purchase_id', 'mfg_wasted_units', 'prefer_payment_method', 'prefer_payment_account', 'sales_order_ids', 'purchase_order_ids', 'custom_field_1', 'custom_field_2', 'custom_field_3', 'custom_field_4', 'import_batch', 'import_time', 'types_of_service_id', 'packing_charge', 'packing_charge_type', 'service_custom_field_1', 'service_custom_field_2', 'service_custom_field_3', 'service_custom_field_4', 'service_custom_field_5', 'service_custom_field_6', 'rp_earned', 'order_addresses', 'is_recurring', 'recur_interval', 'recur_interval_type', 'recur_repetitions', 'recur_stopped_on', 'recur_parent_id', 'pay_term_number', 'pay_term_type', ]; } private function __excludeSellLineFields() { return [ 'variation_id', 'mfg_waste_percent', 'mfg_ingredient_group_id', 'so_line_id', 'so_quantity_invoiced', 'res_service_staff_id', 'res_line_order_status', 'parent_sell_line_id', 'sub_unit_id', 'product', 'variations', ]; } private function __excludeCommonFields() { return [ 'created_at', 'updated_at', 'deleted_at', ]; } private function __excludePaymentLineFields() { return [ 'transaction_no', 'card_transaction_number', 'card_number', 'card_holder_name', 'card_month', 'card_year', 'card_security', 'cheque_number', 'bank_account_number', 'created_by', 'paid_through_link', 'gateway', 'is_advance', 'payment_for', 'parent_id', 'note', 'document', 'account_id', 'created_at', 'updated_at', ]; } }