public function actionAdicionarProduto($id) { $pedido = $this->findModel($id); $model = new \app\models\PedidoProduto(); $model->pedi_codigo = $id; if ($model->load(Yii::$app->request->post())) { if ($model->prod_codigo != null) { $produto = \app\models\Produto::findOne($model->prod_codigo); $model->pepr_nome = $produto->prod_nome; $model->pepr_valor = $produto->prod_valor; $pedidoProduto = \app\models\PedidoProduto::findOne(['prod_codigo' => $model->prod_codigo]); if ($pedidoProduto != null) { $pedidoProduto->pepr_quantidade += $model->pepr_quantidade; if ($pedidoProduto->save()) { Yii::$app->session->setFlash('success', 'Produto alterado com sucesso!'); return $this->redirect(['view', 'id' => $pedidoProduto->pedi_codigo]); } } } if ($model->save()) { Yii::$app->session->setFlash('success', 'Produto adicionado com sucesso!'); return $this->redirect(['view', 'id' => $model->pedi_codigo]); } } return $this->render('adicionarProduto', ['model' => $model, 'pedido' => $pedido]); }
public function addItem(Request $request, $id) { $compra = Compra::find($id); $item = CompraItem::create(['compra_id' => $compra->id, 'produto_id' => $request->item['produto_id'], 'quantidade' => $request->item['quantidade']]); $produto = Produto::find($item->produto->id); $dados = ['produto' => $produto->nome, 'referencia' => $produto->referencia, 'quantidade' => $request->item['quantidade'], 'compra_id' => $id, 'id' => $item->id]; return $dados; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Produto::find(); $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; } $query->andFilterWhere(['prod_codigo' => $this->prod_codigo, 'cate_codigo' => $this->cate_codigo, 'fabr_codigo' => $this->fabr_codigo, 'prod_valor' => $this->prod_valor, 'prod_estoque' => $this->prod_estoque]); $query->andFilterWhere(['like', 'prod_nome', $this->prod_nome]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Produto::find(); $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; } $query->andFilterWhere(['id' => $this->id, 'grupo' => $this->grupo, 'qtde' => $this->qtde, 'prc_custo' => $this->prc_custo, 'prc_venda' => $this->prc_venda]); $query->andFilterWhere(['like', 'descricao', $this->descricao])->andFilterWhere(['like', 'foto', $this->foto]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Produto::find(); $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; } $query->andFilterWhere(['preco' => $this->preco]); $query->andFilterWhere(['like', 'desc_tam', $this->desc_tam]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Produto::find(); $query->joinWith(['produtoCategoriaIdprodutoCategoria']); $dataProvider = new ActiveDataProvider(['query' => $query]); $dataProvider->sort->attributes['produtoCategoriaIdprodutoCategoria'] = ['asc' => ['produto_categoria.categoria' => SORT_ASC], 'desc' => ['produto_categoria.categoria' => SORT_DESC]]; //$this->load($params); if (!($this->load($params) && $this->validate())) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['idproduto' => $this->idproduto, 'valor_venda' => $this->valor_venda, 'produto_categoria_idproduto_categoria' => $this->produto_categoria_idproduto_categoria]); $query->andFilterWhere(['like', 'status', $this->status])->andFilterWhere(['like', 'referencia', $this->referencia])->andFilterWhere(['like', 'modelo', $this->modelo])->andFilterWhere(['like', 'fabricante', $this->fabricante])->andFilterWhere(['like', 'produto_categoria.categoria', $this->produtoCategoriaIdprodutoCategoria]); return $dataProvider; }
public function store(Request $request, $id) { $compra = Compra::find($id); $saldo = []; foreach ($compra->compra_itens as $key => $it) { if ($it->quantidade > $request->item[$key]['quantidade']) { $saldo[$key]['produto_id'] = $it->produto_id; $saldo[$key]['preco_compra'] = $it->preco_compra; $saldo[$key]['quantidade'] = $it->quantidade - $request->item[$key]['quantidade']; } } $new_compra = new Compra(); if (count($saldo) > 0) { $new_compra->fornecedor_id = $compra->fornecedor_id; $new_compra->user_id = Auth::user()->id; $new_compra->data_compra = date('d/m/Y'); $new_compra->save(); foreach ($saldo as $s) { $it = new CompraItem(); $it->compra_id = $new_compra->id; $it->produto_id = $s['produto_id']; $it->quantidade = $s['quantidade']; $it->save(); } } DB::beginTransaction(); try { foreach ($request->item as $item) { $p = Produto::find($item['produto_id']); $p->estoque += $item['quantidade']; $p->save(); } $compra->status = 2; $compra->save(); DB::commit(); } catch (\Exception $e) { DB::rollBack(); throw $e; } if ($this->reenviaEmail($new_compra)) { flash()->success('Confirmação de compra efetuada com sucesso e e-mail com itens que faltaram reenviado para o fornecedor'); } else { flash()->success('Confirmação de compra efetuada com sucesso, mas email não foi enviado, envie o mesmo manualmente.'); } return redirect()->route('compras.index'); }
/** * Calcula o lucro do Pedido * @param $idPedido * @return float */ public function calculaValorLucroPedido($idPedido) { $itensPedido = Itempedido::find()->where(['idPedido' => $idPedido])->all(); $lucroTotal = 0; if (count($itensPedido) > 0) { foreach ($itensPedido as $ip) { $produto = Produto::findOne($ip->idProduto); if ($produto != null) { $quantidade = $ip->quantidade; $valorProduto = $produto->valorVenda; $precoCustoProduto = $produto->calculoPrecoProduto($produto->idProduto); $diferenca = $valorProduto * $quantidade - $precoCustoProduto * $quantidade; $lucroTotal += $diferenca; } } } return number_format($lucroTotal, 2); }
/** * Updates an existing Itempedido model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $idPedido * @param integer $idProduto * @return mixed */ public function actionUpdate($idPedido, $idProduto) { $model = $this->findModel($idPedido, $idProduto); $oldIdProduto = $idProduto; $oldQtdProdutoVenda = $model->quantidade; $pedidos = ArrayHelper::map(Pedido::find()->all(), 'idPedido', 'idPedido'); $produtosvenda = ArrayHelper::map(Produto::find()->where(['isInsumo' => 0])->all(), 'idProduto', 'nome'); if ($model->load(Yii::$app->request->post())) { $itempedido = Yii::$app->request->post()['Itempedido']; $produtoVenda = Produto::find()->where(['idProduto' => $itempedido['idProduto']])->one(); $model->total = $produtoVenda->valorVenda * $itempedido['quantidade']; $model->save(); $itempedido = Yii::$app->request->post()['Itempedido']; Insumos::atualizaQtdNoEstoqueUpdate($itempedido['idProduto'], $oldIdProduto, $itempedido['quantidade'], $oldQtdProdutoVenda); return $this->redirect(['view', 'idPedido' => $model->idPedido, 'idProduto' => $model->idProduto]); } else { return $this->render('update', ['model' => $model, 'produtosvenda' => $produtosvenda, 'pedidos' => $pedidos]); } }
/** * Recupera a foto do produto * @param $idProduto * @return string */ public function actionGetFotoProduto($idProduto) { if (isset($idProduto)) { $produto = Produto::findOne($idProduto); if ($produto != null) { return Json::encode([$produto->nome, base64_encode($produto->foto)]); } else { return Json::encode(false); } } throw new NotFoundHttpException('Passe o id do Produto.'); }
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\helpers\ArrayHelper; use app\models\Produto; /* @var $this yii\web\View */ /* @var $model app\models\PedidoProduto */ /* @var $form yii\widgets\ActiveForm */ $produtos = ArrayHelper::getColumn(Produto::find()->all(), function ($element) { return $element['desc_tam']; }); $produtos = array_combine($produtos, $produtos); ?> <div class="pedido-produto-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'produto_desc_tam')->dropDownList($produtos, ['prompt' => 'Selecione...'])->label('Descrição'); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Adicionar' : 'Atualizar', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div>
/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $produtos = Produto::orderBy('nome')->get(); return view('orcamentos.create', compact('produtos')); }
/** * Atualiza a quantidade de estoque do Produto * @param $idProdVnd * @param int $qtdProdVnd * @return bool */ public function atualizaQtdNoEstoqueDelete($idProdVnd, $qtdProdVnd = 1) { $insumos = Insumo::find()->where(['idProdutoVenda' => $idProdVnd])->all(); $itensDeletados = true; foreach ($insumos as $key => $ins) { $qtdInsumo = $ins->quantidade * $qtdProdVnd; $produto = Produto::find()->where(['idProduto' => $ins->idprodutoInsumo])->one(); $produto->quantidadeEstoque += $qtdInsumo; if (!$produto->save()) { $itensDeletados = false; } } if ($itensDeletados) { return true; } return false; }
/** * Retorna os itens do pedido para o index de Pedido * @return array|null */ public function getItensPedido() { $itensPedido = Itempedido::findAll($this->idPedido); $aux = []; if (count($itensPedido) > 0) { //Guarda os nomes e quantidades dos itens pedido $aux = []; foreach ($itensPedido as $ip) { $produto = Produto::findOne($ip->idProduto); if ($produto != null) { array_push($aux, [$produto->nome, $ip->quantidade]); } } return $aux; } else { return null; } }
public function getProduto() { return $this->hasOne(Produto::className(), ['idProduto' => 'idProduto']); }
/** * Verifica a quantidade no estoque antes de efetuar um * pedido * @param $qtdProdutoPedido int * @return bool */ public function verificaQtdEstProdutoPedido($qtdProdutoPedido) { $produto = Produto::findOne($this->idProduto); if ($produto != null & $qtdProdutoPedido > 0) { if ($produto->quantidadeEstoque - $qtdProdutoPedido > $produto->quantidadeMinima) { return true; } else { return false; } } else { return false; } }
/** * Finds the Produto model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Produto the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Produto::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
AppAsset::register($this); $formatter = \Yii::$app->formatter; $caixa = new Caixa(); $Compraproduto = new Compraproduto(); //Pega a instaância do caixa aberto $caixa = $caixa->getCaixaAberto(); //Rechpera o nome da loja $loja = Loja::find()->where(['user_id' => Yii::$app->user->getId()])->one(); //Busca os produtos com estoque mínimo $qtdProdutoMinimo = Produto::find()->where("quantidadeMinima >= quantidadeEstoque AND isInsumo = 1")->all(); //Verifica se o nome da Loja está cadastrado if (count($loja) > 0) { $nomeLoja = $loja->nome; $url = Url::toRoute(['/loja/view', 'id' => Yii::$app->user->getId()]); } else { $nomeLoja = 'Cadastre sua loja'; $url = Url::toRoute(['/loja/create']); } ?> <?php $this->beginPage() ?> <!DOCTYPE html> <html lang="<?= Yii::$app->language ?>">
public static function addEstoque($id, $qtd) { $produto = Produto::find($id); $produto->estoque += $qtd; $produto->save(); }
public function selectProdutos(Request $request) { $value = $request->produto; $produtos = Produto::where('nome', 'like', "{$value}%")->limit(50)->get(['nome', 'id', 'preco_venda', 'referencia']); return $produtos; }
/** * Retorna um array de json de produtos que contem o no nome o texto digitado na busca * @param null $q * @param null $idProduto * @return array */ public function actionProdutoList($q = null, $idProduto = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $query = new Query(); $query->select('idProduto AS id, nome AS text')->from('produto')->where(['like', 'nome', $q])->andWhere(['isInsumo' => 1])->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($idProduto > 0) { $out['results'] = ['id' => $idProduto, 'text' => Produto::findOne($idProduto)->nome]; } return $out; }
<div class="pedido-create"> <h1><?php echo Html::encode($this->title); ?> </h1> <div class="pedido-form"> <?php $form = ActiveForm::begin(['enableClientValidation' => false]); ?> <?php $rows = \app\models\Produto::find()->all(); $data = ArrayHelper::map($rows, 'prod_codigo', 'prod_nome'); echo $form->field($model, 'prod_codigo')->dropDownList($data, ['prompt' => 'Selecione um produto']); ?> <?php echo $form->field($model, 'pepr_quantidade')->textInput(['maxlength' => true]); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Adicionar' : 'Alterar', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div>
public function addProduto(Request $request) { $itens = $request->itens; //$venda = Venda::find($itens->venda_id); $produto = VendaItem::create($itens); Produto::removeEstoque($produto['produto_id'], $produto['quantidade']); //echo $produto->id; $total_venda = Venda::totalVenda($itens['venda_id']); $dados = ['total' => $total_venda[0]->total, 'id' => $produto->id]; return $dados; }
/** * Recupera a foto do produto * @param $idProduto * @return string */ public function actionGetFotoProduto($idProduto) { if (isset($idProduto)) { $produto = Produto::findOne($idProduto); if ($produto != null) { return Json::encode([$produto->nome, base64_encode($produto->foto)]); } else { return Json::encode(false); } } }
/** * Deletes an existing Categoria model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed */ public function actionDelete($id) { //Guarda a mensagem $mensagem = ""; $transaction = \Yii::$app->db->beginTransaction(); try { //Verifica se a categoria a ser deletada não é //a padrão(SEM CATEGORIA) if ($id != Categoria::SEM_CATEGORIA) { $produtosDaCategoria = Produto::find()->where(['idCategoria' => $id])->all(); if (count($produtosDaCategoria) > 0) { foreach ($produtosDaCategoria as $prod) { //Muda a categoria do produto para "Sem categoria" $prod->idCategoria = Categoria::SEM_CATEGORIA; $prod->save(); } } } if ($this->findModel($id)->delete()) { $transaction->commit(); } } catch (\Exception $exception) { $transaction->rollBack(); $mensagem = "Ocorreu uma falha inesperada ao tentar salvar "; } $searchModel = new CategoriaSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'mensagem' => $mensagem]); }
/** * @return \yii\db\ActiveQuery */ public function getProdutoIdprodutos() { return $this->hasMany(Produto::className(), ['idproduto' => 'produto_idproduto'])->viaTable('venda_has_produto', ['venda_idvenda' => 'idvenda']); }
/** * @return \yii\db\ActiveQuery */ public function getProdutos() { return $this->hasMany(Produto::className(), ['grupo' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getProdutos() { return $this->hasMany(Produto::className(), ['fabr_codigo' => 'fabr_codigo']); }
/** * @return \yii\db\ActiveQuery */ public function getProdutos() { return $this->hasMany(Produto::className(), ['produto_categoria_idproduto_categoria' => 'idproduto_categoria']); }
/** * @return \yii\db\ActiveQuery */ public function getProdCodigo() { return $this->hasOne(Produto::className(), ['prod_codigo' => 'prod_codigo']); }