Added customer_nr to database and invoice templates.
Used standard DATEV format(10000 – 69999) Fixes #31
This commit is contained in:
@@ -20,4 +20,20 @@ public function index()
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,8 +243,9 @@ public function exportXml($id)
|
||||
// string $name __BT-44, From MINIMUM__ The full name of the buyer
|
||||
// string|null $id __BT-46, From BASIC WL__ An identifier of the buyer. In many systems, buyer identification is key information. Multiple buyer IDs can be assigned or specified. They can be differentiated by using different identification schemes. If no scheme is given, it should be known to the buyer and buyer, e.g. a previously exchanged, seller-assigned identifier of the buyer
|
||||
// string|null $description __BT-X-334, From EXTENDED__ Further legal information about the buyer
|
||||
// TODO: use invoice customerNr
|
||||
$document->setDocumentBuyer($invoice->customer->company_name, "###KUNDENNUMMER");
|
||||
if ($invoice->customer->company_name && $invoice->customer->customer_nr) {
|
||||
$document->setDocumentBuyer($invoice->customer->company_name, $invoice->customer->customer_nr);
|
||||
}
|
||||
|
||||
// Set contact of the buyer party
|
||||
//
|
||||
|
||||
@@ -16,6 +16,7 @@ class Customer extends Model
|
||||
protected $fillable = [
|
||||
'type',
|
||||
'company_name',
|
||||
'customer_nr',
|
||||
'vat_id',
|
||||
'tax_id', // Tax identification number
|
||||
'global_id', // Global Location Number (GLN) or other identification
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace Database\Factories;
|
||||
use App\Models\PaymentTerms;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
use App\Http\Controllers\CustomerController;
|
||||
|
||||
class CustomerFactory extends Factory
|
||||
{
|
||||
@@ -13,6 +14,7 @@ public function definition()
|
||||
return [
|
||||
'type' => $this->faker->randomElement(['private', 'business']),
|
||||
'company_name' => $this->faker->company(),
|
||||
'customer_nr' => CustomerController::generateCustomerNumber(),
|
||||
'vat_id' => $this->faker->numerify('DE##########'),
|
||||
'tax_id' => $this->faker->numerify('DE##########'),
|
||||
'global_id' => $this->faker->numerify('############'),
|
||||
|
||||
@@ -11,6 +11,7 @@ public function up()
|
||||
$table->id();
|
||||
$table->enum('type', ['private', 'business']);
|
||||
$table->string('company_name', 100)->nullable();
|
||||
$table->integer('customer_nr', false, true)->nullable();
|
||||
$table->string('vat_id', 50)->nullable();
|
||||
$table->string('tax_id', 50)->nullable();
|
||||
$table->string('global_id', 50)->nullable();
|
||||
|
||||
Vendored
+1
@@ -92,6 +92,7 @@ export interface Customer {
|
||||
id: number;
|
||||
type: string;
|
||||
companyName: string | null;
|
||||
customerNr: number | null;
|
||||
vatId: string | null;
|
||||
contacts: Contact[];
|
||||
email?: string;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<!-- TODO: billing_data verwenden, nicht Kundendaten -->
|
||||
<!DOCTYPE html lang="de">
|
||||
<html>
|
||||
|
||||
@@ -81,6 +80,14 @@
|
||||
{{ $invoice['nr'] }}
|
||||
</td>
|
||||
</tr>
|
||||
@if($invoice['customer']['customerNr'])
|
||||
<tr>
|
||||
<th>Kunden-Nr.</th>
|
||||
<td>
|
||||
{{ $invoice['customer']['customerNr'] }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user