public function updateProdutoOrcamento($produtos, $orcamento) { $retorno = true; // removo os produtos que não estão nessa listagem OrcamentoProduto::where('orcamento', $orcamento)->whereNotIn('produto', $produtos)->delete(); // loop nos produtos informados foreach ($produtos as $produto) { // incluo se o produto não existir if (OrcamentoProduto::where('orcamento', $orcamento)->where('produto', $produto)->count() == 0) { $orcamentoProduto = new OrcamentoProduto(); $orcamentoProduto->orcamento = $orcamento; $orcamentoProduto->produto = $produto; if (!$orcamentoProduto->save()) { $retorno = false; break; } } } return $retorno; }
/** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { // configurando o titulo e os breadcrumbs $titulo = 'Orçamentos'; $breadcrumb = [['nome' => 'Listagem de Orçamentos', 'ultimo' => true]]; // obtendo os dados do orçamento $orcamento = $this->orcamento->obterOrcamentoTecnico($id); // obtendo os produtos do orçamento $orcamento_produtos = OrcamentoProduto::where('orcamento', $id)->get(['produto']); // obtendos os produtos $produtos = Produto::where('ativo', 1)->get(); // retorno return view('projetista.form')->with('orcamento', $orcamento[0])->with('orcamento_produtos', $orcamento_produtos)->with('produtos', $produtos)->with('paginaTitulo', $titulo)->with('paginaBreadcrumb', $breadcrumb); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { // buscando o orçamento $orcamento = Orcamento::findOrNew($id); // caso não encontre o orçamento redireciona para a tela de atendimento if (empty($orcamento->id)) { return redirect('atendimento/orcamentos')->with('flash_message', 'Orçamento não encontrado!')->with('flash_type', 'warning'); } // deletando os produtos do orçamento if (!OrcamentoProduto::where('orcamento', $orcamento->id)->delete()) { $mensagem = 'Ocorreu um erro ao tentar excluir os produtos do orçamento.'; $tipo = 'error'; } else { // deletando o orçamento if ($orcamento->delete()) { $mensagem = 'Orçamento excluído com sucesso!'; $tipo = 'success'; } else { $mensagem = 'Ocorreu um erro ao tentar excluir o orçamento.'; $tipo = 'error'; } } // retornando com as mensagens return redirect('atendimento/orcamentos')->with('flash_message', $mensagem)->with('flash_type', $tipo); }