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;
}
}