file_content = $file_content; $this->file_name = $file_name; } /** * Execute the job. * * @return Expense * @throws \Exception */ public function handle(): Expense { if (str_contains($this->file_name, ".xml")){ switch (true) { case stristr($this->file_content, "urn:cen.eu:en16931:2017"): case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"): case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_2.1"): case stristr($this->file_content, "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_2.0"): return (new ZugferdEDocument($this->file_content, $this->file_name))->run(); default: throw new Exception("E-Invoice standard not supported"); } } else { throw new Exception("File type not supported"); } } }