'TEST-SUPP-' . uniqid(), 'filename' => 'inline-supplier-test.pdf', 'storage_path' => '', 'mime_type' => 'application/pdf', 'file_hash' => hash('sha256', 'inline-supplier-' . uniqid()), 'beleg_datum' => date('Y-m-d'), 'belegtyp' => 'Eingangsrechnung', ]); $this->assertGreaterThan(0, $belegId, 'Beleg angelegt'); // Kein Lieferant initial $beleg = Beleg::find($belegId); $this->assert($beleg['supplier_name'] === null || $beleg['supplier_name'] === '', 'Kein Lieferant initial'); // Lieferant setzen $supplierId = Supplier::findOrCreate('Testfirma GmbH'); $this->assertGreaterThan(0, $supplierId, 'Supplier angelegt oder gefunden'); Beleg::updateSupplier($belegId, $supplierId); $beleg = Beleg::find($belegId); $this->assertEquals('Testfirma GmbH', $beleg['supplier_name'], 'Lieferant nach updateSupplier gesetzt'); // Lieferant auf null zurücksetzen (löschen) Beleg::updateSupplier($belegId, null); $beleg = Beleg::find($belegId); $this->assert( $beleg['supplier_name'] === null || $beleg['supplier_name'] === '', 'Lieferant nach Nullsetzung leer' ); // updateSupplier darf bei gesperrtem Beleg nichts ändern \Steuerkram\Database::execute('UPDATE belege SET locked=1 WHERE id=?', [$belegId]); $supplierId2 = Supplier::findOrCreate('Gesperrte Firma'); Beleg::updateSupplier($belegId, $supplierId2); $beleg = Beleg::find($belegId); $this->assert( $beleg['supplier_name'] === null || $beleg['supplier_name'] === '', 'Lieferant bei gesperrtem Beleg unverändert' ); } }