minor fixes
This commit is contained in:
@@ -14,6 +14,27 @@ class Customers
|
||||
{
|
||||
use Basic;
|
||||
|
||||
public static function init()
|
||||
{
|
||||
return [
|
||||
'sale_channels' => SaleChannels::getOptions(),
|
||||
];
|
||||
}
|
||||
|
||||
public static function getSaleChannelIds($customerId = false)
|
||||
{
|
||||
$channels = self::getSaleChannels($customerId);
|
||||
|
||||
return $channels ? $channels->pluck('id')->toArray() : false;
|
||||
}
|
||||
|
||||
public static function getSaleChannels($customerId = false)
|
||||
{
|
||||
$customer = $customerId ? self::get($customerId) : self::getAuth();
|
||||
|
||||
return $customer ? $customer->sale_channels : SaleChannels::getDefault();
|
||||
}
|
||||
|
||||
public static function getSaleChannel()
|
||||
{
|
||||
return SaleChannels::getDefault();
|
||||
@@ -60,7 +81,7 @@ class Customers
|
||||
$filename = self::makeAvatarFilename($customer);
|
||||
$name = $customer->first_name.' '.$customer->last_name;
|
||||
$avatar = new Avatar();
|
||||
|
||||
|
||||
return $avatar->create($name)
|
||||
->setBackground('#F2B90F')
|
||||
->setForeground('#335012')
|
||||
@@ -129,22 +150,25 @@ class Customers
|
||||
|
||||
public static function edit($id)
|
||||
{
|
||||
$customer = self::get($id, ['delivery_addresses', 'invoice_addresses']);
|
||||
$customer = self::get($id, ['delivery_addresses', 'invoice_addresses', 'sale_channels']);
|
||||
$data = $customer->toArray();
|
||||
$data['deliveries'] = $customer->deliveries->pluck('id')->toArray();
|
||||
$data['sale_channels'] = $customer->sale_channels->pluck('id')->toArray();
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function storeFull($data)
|
||||
{
|
||||
$deliveries = $data['deliveries'];
|
||||
$invoices = $data['invoices'];
|
||||
unset($data['deliveries']);
|
||||
unset($data['invoices']);
|
||||
// $invoices = $data['invoices'];
|
||||
$saleChannels = $data['sale_channels'];
|
||||
// unset($data['invoices']);
|
||||
unset($data['sale_channels']);
|
||||
$customer = self::store($data);
|
||||
self::storeAddresses($customer, $deliveries);
|
||||
self::storeAddresses($customer, $invoices);
|
||||
if ($customer) {
|
||||
// self::storeAddresses($customer->id, $deliveries);
|
||||
// self::storeAddresses($customer->id, $invoices);
|
||||
self::storeSaleChannels($customer->id, $saleChannels);
|
||||
}
|
||||
|
||||
return $customer->id;
|
||||
}
|
||||
@@ -163,31 +187,37 @@ class Customers
|
||||
return $customer->deliveries()->sync($deliveries);
|
||||
}
|
||||
|
||||
public static function storeAddresses($customer, $addresses)
|
||||
public static function storeAddresses($customerId, $addresses)
|
||||
{
|
||||
foreach ($addresses as $address) {
|
||||
$address['customer_id'] = $customer->id;
|
||||
$address['customer_id'] = $customerId;
|
||||
CustomerAddresses::store($address);
|
||||
}
|
||||
}
|
||||
|
||||
public static function storeSaleChannels($customerId, $saleChannels)
|
||||
{
|
||||
$oldSaleChannels = self::getSaleChannelIds($customerId);
|
||||
$deleteSaleChannels = array_diff($oldSaleChannels, $saleChannels);
|
||||
$newSaleChannels = array_diff($saleChannels, $oldSaleChannels);
|
||||
|
||||
$data = ['customer_id' => $customerId];
|
||||
foreach ($newSaleChannels as $saleChannelId) {
|
||||
$data['sale_channel_id'] = $saleChannelId;
|
||||
CustomerSaleChannels::store($data);
|
||||
}
|
||||
foreach ($deleteSaleChannels as $saleChannelId) {
|
||||
CustomerSaleChannels::destroyByCustomerAndSaleChannel($customerId, $saleChannelId);
|
||||
}
|
||||
}
|
||||
|
||||
public static function create($data)
|
||||
{
|
||||
return Customer::create([
|
||||
'uuid' => Str::uuid(),
|
||||
'active' => true,
|
||||
'first_name' => $data['first_name'],
|
||||
'last_name' => $data['last_name'],
|
||||
'company' => $data['company'],
|
||||
'tva' => $data['tva'],
|
||||
'phone' => $data['phone'],
|
||||
'address' => $data['address'],
|
||||
'address2' => $data['address2'],
|
||||
'zipcode' => $data['zipcode'],
|
||||
'city' => $data['city'],
|
||||
'email' => $data['email'],
|
||||
'password' => bcrypt($data['password']),
|
||||
]);
|
||||
$data['uuid'] = Str::uuid();
|
||||
$data['active'] = true;
|
||||
$data['password'] = bcrypt($data['password']);
|
||||
|
||||
return Customer::create($data);
|
||||
}
|
||||
|
||||
public static function getStorage($filename = false)
|
||||
|
||||
Reference in New Issue
Block a user