예제 #1
0
 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;
 }
예제 #3
0
 /**
  * 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;
 }
예제 #4
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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;
 }
예제 #6
0
 /**
  * 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;
 }
예제 #7
0
 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');
 }
예제 #8
0
 /**
  * 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.');
 }
예제 #11
0
파일: _form.php 프로젝트: albraga/meveana
<?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'));
 }
예제 #13
0
 /**
  * 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;
 }
예제 #14
0
 /**
  * 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;
     }
 }
예제 #15
0
 public function getProduto()
 {
     return $this->hasOne(Produto::className(), ['idProduto' => 'idProduto']);
 }
예제 #16
0
 /**
  * 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;
     }
 }
예제 #17
0
 /**
  * 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.');
     }
 }
예제 #18
0
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 ?>">
예제 #19
0
 public static function addEstoque($id, $qtd)
 {
     $produto = Produto::find($id);
     $produto->estoque += $qtd;
     $produto->save();
 }
예제 #20
0
 public function selectProdutos(Request $request)
 {
     $value = $request->produto;
     $produtos = Produto::where('nome', 'like', "{$value}%")->limit(50)->get(['nome', 'id', 'preco_venda', 'referencia']);
     return $produtos;
 }
예제 #21
0
 /**
  * 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;
 }
예제 #22
0
<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>
예제 #23
0
 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;
 }
예제 #24
0
 /**
  * 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]);
 }
예제 #26
0
파일: Venda.php 프로젝트: alissoncti/sgo
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProdutoIdprodutos()
 {
     return $this->hasMany(Produto::className(), ['idproduto' => 'produto_idproduto'])->viaTable('venda_has_produto', ['venda_idvenda' => 'idvenda']);
 }
예제 #27
0
파일: Grupo.php 프로젝트: RayCosta/lukids
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProdutos()
 {
     return $this->hasMany(Produto::className(), ['grupo' => 'id']);
 }
예제 #28
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProdutos()
 {
     return $this->hasMany(Produto::className(), ['fabr_codigo' => 'fabr_codigo']);
 }
예제 #29
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProdutos()
 {
     return $this->hasMany(Produto::className(), ['produto_categoria_idproduto_categoria' => 'idproduto_categoria']);
 }
예제 #30
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getProdCodigo()
 {
     return $this->hasOne(Produto::className(), ['prod_codigo' => 'prod_codigo']);
 }