Files
Caramel-CRM/app/Http/Controllers/CustomerController.php
T

55 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Customer;
use App\Support\ApiDataTransformer;
use Pest\ArchPresets\Custom;
class CustomerController extends Controller
{
public function index()
{
$customers = Customer::with(['contacts' => function ($query) {
$query->orderBy('is_primary', 'desc');
}, 'paymentTerms'])->get();
return $customers->map(function ($customer) {
$customerArray = $customer->toArray();
$customerArray['payment_terms'] = $customer->paymentTerms->toArray();
unset($customerArray['payment_terms_id']);
return ApiDataTransformer::snakeToCamel($customerArray);
});
}
public function single($id)
{
$customer = Customer::with(['contacts' => function ($query) {
$query->orderBy('is_primary', 'desc');
}, 'paymentTerms'])->findOrFail($id);
$customerArray = $customer->toArray();
if ($customer->paymentTerms) {
$customerArray['payment_terms'] = $customer->paymentTerms->toArray();
unset($customerArray['payment_terms_id']);
}
return ApiDataTransformer::snakeToCamel($customerArray);
}
/**
* Generate a random available customer number
*/
public static function generateCustomerNumber()
{
$newNumber = null;
while (!$newNumber) {
// DATEV standard
$randomNumber = rand(10000, 69999);
$customer = Customer::firstWhere('customer_nr', $randomNumber);
if ($customer) {
return $randomNumber;
}
}
}
}