getInvoiceConfigs($faker) as $invoiceConfig) { $template = new InvoiceTemplate(); // name, title, renderer, calculator, numberGenerator, company, vat, dueDays, address, paymentTerms $template ->setName($invoiceConfig[0]) ->setTitle($invoiceConfig[1]) ->setRenderer($invoiceConfig[2]) ->setCalculator($invoiceConfig[3]) ->setNumberGenerator($invoiceConfig[4]) ->setCompany($invoiceConfig[5]) ->setVat($invoiceConfig[6]) ->setDueDays($invoiceConfig[7]) ->setPaymentTerms($invoiceConfig[8]) ->setAddress($this->generateAddress($faker)) ->setContact($this->generateContact($faker)) ->setPaymentDetails($this->generatePaymentDetails($faker)) ; $template->setVatId($faker->creditCardNumber()); $manager->persist($template); $manager->flush(); } } private function getInvoiceConfigs(Generator $faker) { $paymentTerms = 'I would like to thank you for your confidence and will gladly be there for you in the future.' . PHP_EOL . 'Please transfer the total amount within 14 days to the given account and use the invoice number ' . 'as reference.' ; $paymentTerms_alt = $faker->firstName() . ', thank you very much. We really appreciate your business.' . PHP_EOL . 'Please send payments before the due date. I would like to thank you for your confidence and will gladly be there for you in the future.' ; $paymentTerms_de = 'Bitte überweisen Sie den Gesamtbetrag innerhalb von 14 Tagen nach Erhalt der Rechnung auf das unten genannte Konto. Verwenden Sie bitte als Betreff Ihrer Überweisung die Rechnungsnummer.' . PHP_EOL . PHP_EOL . 'Ich bedanke mich für das entgegengebrachte Vertrauen. Gerne bin ich auch künftig für Sie da.' . PHP_EOL . PHP_EOL . 'Mit freundlichen Grüßen,' . PHP_EOL . 'Max Müller' ; // name, title, renderer, calculator, numberGenerator, company, vat, dueDays, address, paymentTerms return [ ['Invoice (PDF)', 'Invoice', 'default-pdf', 'default', 'default', $faker->company(), 16, 10, $paymentTerms], ['Invoice (HTML)', 'Company name', 'default', 'default', 'default', $faker->company(), 19, 30, $paymentTerms], ['Freelancer (HTML, short)', 'Invoice', 'freelancer', 'short', 'default', $faker->company(), 19, 14, $paymentTerms_de], ['Timesheet (HTML)', 'Timesheet', 'timesheet', 'default', 'default', $faker->company(), 19, 7, $paymentTerms_alt], ['Company invoice (DOCX)', 'Invoice', 'company', 'default', 'default', 'Kimai Inc.', 19, 14, $paymentTerms_alt], ]; } protected function generatePaymentDetails(Generator $faker): string { return 'Acme Bank' . PHP_EOL . 'BIC: ' . $faker->swiftBicNumber() . PHP_EOL . 'IBAN: ' . $faker->iban('DE') ; } protected function generateContact(Generator $faker): string { return 'Phone: ' . $faker->phoneNumber() . PHP_EOL . 'Email: ' . $faker->safeEmail() . PHP_EOL . 'Web: www.' . $faker->domainName() ; } protected function generateAddress(Generator $faker): string { return $faker->streetAddress() . PHP_EOL . $faker->postcode() . ' ' . $faker->city() . ', ' . $faker->country() ; } }