HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/zelfverkopen.komma.pro/app/KommaApp/Customers/CustomerService.php
<?php


namespace App\KommaApp\Customers;

use App\Helpers\KommaHelpers;
use App\KommaApp\Customers\Models\Customer;
use Illuminate\Foundation\Http\FormRequest;

class CustomerService
{

    private $defaultCountryId = 155;

    /**
     * create new customer to the database
     *
     * @param  FormRequest  $request
     * @param  bool  $useSellerAddressByDefault
     * @return Customer
     */
    public function createCustomer(FormRequest $request, bool $useSellerAddressByDefault = false)
    {
        $customerRequest = $request->except('_token');
        $customerAddress = $this->getCustomerAddressFromRequest($customerRequest, $useSellerAddressByDefault);

        $customer = Customer::create([
            'status'    => Customer::CUSTOMER_STATUS_ACTIVE,
            'gender'    => $customerRequest['sellerSalutation'],
            'last_name' => $customerRequest['sellerLastName'],
            'email'     => $customerRequest['sellerEmail'],
            'phone'     => $customerRequest['sellerPhone'],

            'zip'                   => $customerAddress['zip'],
            'house_number'          => $customerAddress['house_number'],
            'house_number_addition' => $customerAddress['house_number_addition'],
            'street'                => $customerAddress['street'],
            'city'                  => $customerAddress['city'],
            'country_id'            => $customerAddress['country_id'],
        ]);

        return $customer;
    }

    /**
     * Get the customer address from the request
     * because it can variate of other selling address is defined
     *
     * @param $customerRequest
     * @param  bool  $useSellerAddressByDefault
     * @return array
     */
    private function getCustomerAddressFromRequest($customerRequest, bool $useSellerAddressByDefault)
    {

        $customerAddress = [];

        if (isset($customerRequest['sellerOtherAddressToSell']) && $customerRequest['sellerOtherAddressToSell'] == 'on' || $useSellerAddressByDefault) {
            $customerAddress['zip'] = $customerRequest['sellerHouseForSaleZip'];
            $customerAddress['house_number'] = $customerRequest['sellerHouseForSaleHouseNumber'];
            $customerAddress['house_number_addition'] = $customerRequest['sellerHouseForSaleAddition'];
            $customerAddress['street'] = $customerRequest['sellerHouseForSaleStreetName'];
            $customerAddress['city'] = $customerRequest['sellerHouseForSaleCity'];
            $customerAddress['country_id'] = $this->defaultCountryId;
        }else {
            $customerAddress['zip'] = $customerRequest['houseForSaleZip'];
            $customerAddress['house_number'] = $customerRequest['houseForSaleHouseNumber'];
            $customerAddress['house_number_addition'] = $customerRequest['houseForSaleAddition'];
            $customerAddress['street'] = $customerRequest['houseForSaleStreetName'];
            $customerAddress['city'] = $customerRequest['houseForSaleCity'];
            $customerAddress['country_id'] = $this->defaultCountryId;
        }

        return $customerAddress;
    }
}