public function getTotalVenda($id) { $venda = $this->venda->find($id); $total = 0; foreach ($venda->venda_itens as $vi) { $total += $vi->quantidade * $vi->preco_venda; } return $total; }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, $id) { $venda = Venda::find($id); if (isset($request->fp['entrada'])) { $this->insertLancamentos($venda, $request->fp['entrada']); } if (isset($request->fp['desconto'])) { $this->insertDescontos($venda, $request->fp['desconto']); } if (isset($request->fp['boleto'])) { $this->insertBoletos($venda, $request->fp['boleto']); } if (isset($request->fp['cheque'])) { $this->insertCheques($venda, $request->fp['cheque']); } flash()->success('Lançamento salvo com sucesso'); if ($request->btn == 'save') { return redirect('/vendas'); } if ($request->btn == 'finalizar') { // Altera o status da venda para concluĂdo $venda->status = 2; $venda->save(); return redirect('/vendas'); } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Venda::find(); $query->joinWith(['clienteIdcliente', 'lojaIdloja']); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } if ($this->dataVendaPeriodo) { //2015-07-15 - 2015-07-22 $dataInicial = substr($this->dataVendaPeriodo, 0, 10); $dataFinal = substr($this->dataVendaPeriodo, -10); $query->andFilterWhere(['between', 'data', $dataInicial . ' 00:00:00', $dataFinal . ' 23:59:59']); } if ($this->clienteNome) { $query->joinWith(['clienteIdcliente']); $query->andFilterWhere(['like', 'cliente.nome', $this->clienteNome]); } if ($this->lojaId) { $query->andFilterWhere(['loja.idloja' => $this->lojaId]); } $query->andFilterWhere(['idvenda' => $this->idvenda, 'data' => $this->data, 'desconto' => $this->desconto, 'valortotal' => $this->valortotal, 'cliente_idcliente' => $this->cliente_idcliente, 'vendedor_idvendedor' => $this->vendedor_idvendedor, 'forma_pagamento_idforma_pagamento' => $this->forma_pagamento_idforma_pagamento, 'loja_idloja' => $this->loja_idloja]); return $dataProvider; }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, $id) { $venda = Venda::find($id); if ($request->item) { foreach ($request->item as $item) { if ($item['id'] != '') { VendaItem::find($item['id'])->update($item); } else { $venda->venda_itens()->create($item); } Produto::removeEstoque($item['produto_id'], $item['quantidade']); } } flash()->success('Venda salva com sucesso'); if ($request->btn == 'save') { return redirect('/vendas'); } if ($request->btn == 'new') { return redirect('/vendas/create'); } if ($request->btn == 'lancamento') { return redirect("/vendas/{$id}/lancamentos/create"); } }
public function actionSinteticoVenda() { #VENDA $searchModelVenda = new VendaSearch(); //$searchModel->dataVendaPeriodo = date('Y-m-d') .' - '.date('Y-m-d') ; //'2015-07-15 - 2015-07-22' if (Yii::$app->user->identity->perfil != 'Administrador') { $searchModelVenda->loja_idloja = Yii::$app->user->identity->loja_idloja; } $query = Venda::find()->select(['fp.forma_pagamento as formaPagamentoNome, SUM(valortotal - desconto) as valorFinalVenda'])->innerJoin('forma_pagamento fp', 'venda.forma_pagamento_idforma_pagamento=fp.idforma_pagamento')->groupBy('forma_pagamento_idforma_pagamento'); $dataProviderVenda = new ActiveDataProvider(['query' => $query]); $searchModelVenda->load(Yii::$app->request->queryParams); if ($searchModelVenda->dataVendaPeriodo) { //2015-07-15 - 2015-07-22 $dataInicial = substr($searchModelVenda->dataVendaPeriodo, 0, 10); $dataFinal = substr($searchModelVenda->dataVendaPeriodo, -10); $query->andFilterWhere(['between', 'data', $dataInicial . ' 00:00:00', $dataFinal . ' 23:59:59']); } $query->andFilterWhere(['loja_idloja' => $searchModelVenda->loja_idloja]); #TIPO PRODUTOS $searchModelTipoProduto = new VendaHasProdutoSearch(); $query2 = VendaHasProduto::find()->select('pc.categoria as nomeProdutoTipo, SUM(quantidade) as quantidade')->innerJoin('produto p', 'venda_has_produto.produto_idproduto=p.idproduto')->innerJoin('produto_categoria pc', 'p.produto_categoria_idproduto_categoria=pc.idproduto_categoria')->innerJoin('venda v', 'venda_has_produto.venda_idvenda=v.idvenda')->groupBy('pc.idproduto_categoria'); //VarDumper::dump($query2->all(),10,true);die; $dataProviderVendaHasProduto = new ActiveDataProvider(['query' => $query2]); if ($searchModelVenda->dataVendaPeriodo) { //2015-07-15 - 2015-07-22 $dataInicial = substr($searchModelVenda->dataVendaPeriodo, 0, 10); $dataFinal = substr($searchModelVenda->dataVendaPeriodo, -10); $query2->andFilterWhere(['between', 'v.data', $dataInicial . ' 00:00:00', $dataFinal . ' 23:59:59']); } $query2->andFilterWhere(['v.loja_idloja' => $searchModelVenda->loja_idloja]); return $this->render('sinteticoVendas', ['dataProviderVenda' => $dataProviderVenda, 'searchModelVenda' => $searchModelVenda, 'dataProviderVendaHasProduto' => $dataProviderVendaHasProduto]); }
private function getValorTotalLancamentos($venda_id) { $venda = Venda::find($venda_id); $total_venda = VendaItem::where('venda_id', $venda_id); $total_venda->select(DB::raw('sum(quantidade * preco_venda) as total')); $total_venda = $total_venda->get(); $retorno = Lancamento::where('venda_id', $venda_id); $total = $total_venda[0]->total; $saldo = $retorno->sum('valor'); return ['total_geral' => $total, 'saldo' => $saldo, 'descontos' => $retorno->sum('desconto')]; }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(VendasRequest $request, $id) { $venda = Venda::find($id)->update($request->all()); //dd($request->adiantamento); flash()->success('Venda atualizada com sucesso'); return redirect('/vendas'); }