all(); $items = collect([]); foreach(($params['items'] ?? []) as $item) { if (is_numeric($item['id'])) { $items->push($item); } } $receita = ReceitaService::getReceitaDispensada($receitaId, $items); $receita->data_nascimento_paciente = (new Carbon($receita->data_nascimento_paciente))->format('d/m/Y'); $receita->data_reimpressao = Carbon::now()->format('d/m/Y'); $receita->itens->map(function ($item) { $item->vencimento_receita = $item->proxima_retirada ? ReceitaService::getVencimentoReceita($item)->format('d/m/Y') : null; $item->proxima_retirada = $item->proxima_retirada ? (new Carbon($item->proxima_retirada))->format('d/m/Y') : null; $lotes = collect(); SaidaItem::findOrFail($item->saida_item_id)->entradaItens ->each(function ($entradaItem) use ($lotes) { if ($entradaItem->lote != null) { $lotes->push("{$entradaItem->lote} ({$entradaItem->validade_lote->format('d/m/Y')})"); } }); $item->lotes = $lotes->all(); }); if ($receita->is_remedio_em_casa) { self::$title = self::TITLE_2; self::$template = self::TEMPLATE_2; } else { $dispensadoEm = Carbon::createFromFormat('d/m/Y H:i', $receita->dispensado_em); $receita->dispensado_em = $dispensadoEm->format('d/m/Y'); $receita->hora_atendimento = $dispensadoEm->format('H:i'); } $data = [ 'receita' => $receita, 'paciente' => [ 'nome' => $receita->nome_paciente, 'nomeSocial' => $receita->nome_social_paciente, 'prefereNomeSocial' => $receita->preferencia_nome_id === PreferenciaNome::NOME_SOCIAL ] ]; return Template::make(self::$title, self::$template)->withData($data)->getHtml(); } public function __invoke($receitaId) { return (new Pdf)->stream(self::getTemplate($receitaId), self::$title); } }