コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: ProdutoSearch.php プロジェクト: RayCosta/lukids
 /**
  * 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;
 }
コード例 #3
0
ファイル: ProdutoSearch.php プロジェクト: albraga/meveana
 /**
  * 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;
 }
コード例 #4
0
ファイル: ProdutoSearch.php プロジェクト: 6758144/Project-PHP
 /**
  * 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;
 }
コード例 #5
0
ファイル: ProdutoSearch.php プロジェクト: alissoncti/sgo
 /**
  * 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;
 }
コード例 #6
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');
 }
コード例 #7
0
 /**
  * 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]);
     }
 }
コード例 #8
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>
コード例 #9
0
 /**
  * Updates an existing Compra model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelCompra = $this->findModel($id);
     $conta = Conta::findOne($modelCompra->idconta);
     $mensagem = "";
     //Informa ao usuário mensagens de erro na view
     $compraProduto = new Compraproduto();
     $produtos = ArrayHelper::map(Produto::find()->where(['isInsumo' => 1])->orderBy('nome ASC')->all(), 'idProduto', 'nome');
     $produtosDaCompras = Compraproduto::find()->where(['idCompra' => $id])->all();
     //Recebe o valor total da compra
     $valorTotalDaCompra = 0;
     $novoProduto = new Produto();
     $produtosValorAlterado = [];
     $arrayFinal = [];
     $arrayIds = [];
     if (Yii::$app->request->post()) {
         $itensInseridos = true;
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         //            try {
         $compraProdutoAux = Yii::$app->request->post()['Compraproduto'];
         $compraProdutos = Compraproduto::find()->where(['idCompra' => $id])->all();
         if (count($compraProdutos) > 0) {
             foreach ($compraProdutos as $cp) {
                 $cp->delete();
             }
         }
         for ($i = 0; $i < count($compraProdutoAux['idProduto']); $i++) {
             $cp = new Compraproduto();
             $cp->idCompra = $id;
             $cp->idProduto = $compraProdutoAux['idProduto'][$i];
             $cp->quantidade = $compraProdutoAux['quantidade'][$i];
             $cp->valorCompra = Yii::$app->request->post()['compraproduto-valorcompra-disp'][$i];
             if ($cp->comparaPrecoProduto($cp)) {
                 $lp = $novoProduto->getListaInsumos($cp->idProduto);
                 foreach ($lp as $key) {
                     $produto = Yii::$app->db->createCommand('SELECT idProduto, nome FROM produto WHERE idProduto = :id ', ['id' => $key['idprodutoVenda']])->queryOne();
                     array_push($produtosValorAlterado, $produto);
                 }
             }
             for ($j = 0; $j < count($produtosValorAlterado); $j++) {
                 array_push($arrayIds, $produtosValorAlterado[$j]['idProduto']);
             }
             if (!$cp->save(false)) {
                 $mensagem = "Não foi possível salvar os dados de algum";
                 $transaction->rollBack();
                 //desfaz alterações no BD
                 $itensInseridos = false;
                 break;
                 //encerra o laço for
             } else {
                 $valorTotalDaCompra += floatval($cp->valorCompra);
             }
         }
         $arrayIds = array_unique($arrayIds);
         foreach ($arrayIds as $idProduto) {
             $produto = Yii::$app->db->createCommand('SELECT idProduto, nome FROM produto WHERE idProduto = :id ', ['id' => $idProduto])->queryOne();
             array_push($arrayFinal, $produto);
         }
         $modelCompra->valor = $valorTotalDaCompra;
         if (!$modelCompra->save(false)) {
             $mensagem = "Não foi possível salvar os dados ";
             $transaction->rollBack();
             //desfaz alterações no BD
             $itensInseridos = false;
         } else {
             $conta->valor = $modelCompra->valor;
             if (!$conta->save(false)) {
                 $mensagem = "Não foi possível salvar os dados ";
                 $transaction->rollBack();
                 //desfaz alterações no BD
                 $itensInseridos = false;
             }
         }
         if ($itensInseridos) {
             $transaction->commit();
             return $this->redirect(['view', 'id' => $modelCompra->idconta, 'produtosValorAlterado' => $arrayFinal]);
         }
         /*} catch (\Exception $exception) {
               $transaction->rollBack();
               $mensagem = "Ocorreu uma falha inesperada ao tentar salvar ";
           }*/
     }
     return $this->render('update', ['modelCompra' => $modelCompra, 'compraProduto' => $compraProduto, 'produtos' => $produtos, 'produtosDaCompras' => $produtosDaCompras, 'mensagem' => $mensagem]);
 }
コード例 #10
0
 /**
  * Updates an existing Pedido model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelPedido = $this->findModel($id);
     $mensagem = "";
     //Informa ao usuário mensagens de erro na view
     $situacaopedido = ArrayHelper::map(Situacaopedido::find()->all(), 'idSituacaoPedido', 'titulo');
     $produtosVenda = ArrayHelper::map(Produto::find()->where(['isInsumo' => 0])->all(), 'idProduto', 'nome');
     $itensPedido = Itempedido::find()->where(['idPedido' => $id])->all();
     $formasPagamento = ArrayHelper::map(Formapagamento::find()->all(), 'idTipoPagamento', 'titulo');
     $antigaSituacao = $modelPedido->idSituacaoAtual;
     $historicoSituacao = Historicosituacao::findOne([$modelPedido->idPedido, $modelPedido->idSituacaoAtual, Yii::$app->getUser()->id]);
     $historicoSituacao = Historicosituacao::find()->where(['idPedido' => $modelPedido->idPedido, 'user_id' => Yii::$app->getUser()->id])->orderBy('dataHora')->one();
     //Recebe todas as mesas registradas
     $mesa = ArrayHelper::map(Mesa::find()->all(), 'idMesa', 'numeroDaMesa');
     if ($modelPedido->load(Yii::$app->request->post()) && count($itensPedido) > 0) {
         //Carrega demais modelos
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             //Tenta salvar um registro de Pedido:
             if ($modelPedido->save()) {
                 //Carrega os dados dos itens do Pedido:
                 $itemPedidoPost = Yii::$app->request->post()['Itempedido'];
                 $itensInseridos = true;
                 for ($i = 0; $i < count($itensPedido); $i++) {
                     $itemPedido = Itempedido::findOne(['idPedido' => $id, 'idProduto' => $itensPedido[$i]->idProduto]);
                     if ($itemPedido != null || $modelPedido->idSituacaoAtual == Pedido::CANCELADO) {
                         $itemPedido->removerItemPedido();
                     }
                 }
                 //AQUI
                 for ($i = 0; $i < count($itemPedidoPost['idProduto']); $i++) {
                     $itemPedido = new Itempedido();
                     $itemPedido->idProduto = $itemPedidoPost['idProduto'][$i];
                     $itemPedido->quantidade = $itemPedidoPost['quantidade'][$i];
                     $produtoVenda = Produto::find()->where(['idProduto' => $itemPedido->idProduto])->one();
                     $itemPedido->total = floatval(number_format($produtoVenda->valorVenda * $itemPedido->quantidade, 2));
                     $itemPedido->idPedido = $modelPedido->idPedido;
                     //Tenta salvar os itens do Pedido:
                     if ($modelPedido->idSituacaoAtual != Pedido::CANCELADO) {
                         //Verifica a quantidade em estoque de insumos
                         $verificaEstoque = $itemPedido->verificaQtdEstProdutoPedido($itemPedido->idProduto, $itemPedido->quantidade);
                         if (count($verificaEstoque) <= 0) {
                             if ($itemPedido->save()) {
                                 Insumo::atualizaQtdNoEstoqueInsert($itemPedido->idProduto, $itemPedido->quantidade);
                             } else {
                                 $mensagem = "Não foi possível salvar os dados de algum item do Pedido";
                                 $transaction->rollBack();
                                 //desfaz alterações no BD
                                 $itensInseridos = false;
                                 break;
                                 //encerra o laço for
                             }
                         } else {
                             $insumosFaltando = "";
                             foreach ($verificaEstoque as $i => $insumo) {
                                 $insumosFaltando .= $insumo->nome;
                                 if ($i < count($verificaEstoque) - 1) {
                                     $insumosFaltando .= ", ";
                                 }
                             }
                             $mensagem = "<b>Pedido não foi alterado com sucesso! </b>Quantidade dos insumos(" . $insumosFaltando . ")\n                              ficarão abaixo da quantidade mínima de insumos em estoque.";
                             $transaction->rollBack();
                             //desfaz alterações no BD
                             $itensInseridos = false;
                             break;
                             //encerra o laço for
                         }
                     }
                 }
                 if ($antigaSituacao != $modelPedido->idSituacaoAtual || $historicoSituacao->user_id != Yii::$app->getUser()->id) {
                     $modelPedido->cadastrarNovaHistoricoSituacaoPedido($modelPedido->idPedido, $modelPedido->idSituacaoAtual, Yii::$app->getUser()->id);
                 }
                 if ($modelPedido->idSituacaoAtual == Pedido::CONCLUIDO) {
                     $caixa = new Caixa();
                     $caixa = $caixa->getCaixaAberto();
                     if ($caixa != null) {
                         $caixa = Caixa::findOne($caixa->idcaixa);
                         $caixa->valoremcaixa += floatval($modelPedido->totalPedido);
                         $caixa->valorapurado += floatval($modelPedido->totalPedido);
                         $caixa->valorlucro += number_format($caixa->calculaValorLucroPedido($modelPedido->idPedido), 2);
                         if (!$caixa->save()) {
                             $mensagem = "Não foi possível salvar os dados  do Pedido";
                             $transaction->rollBack();
                             //desfaz alterações no BD
                             $itensInseridos = false;
                         }
                     } else {
                         $mensagem = "Não foi possível concluir o Pedido, pois Caixa não está aberto";
                         $transaction->rollBack();
                         //desfaz alterações no BD
                         $itensInseridos = false;
                     }
                 }
                 //Testa se todos os itens foram inseridos (ou tudo ou nada):
                 if ($itensInseridos) {
                     $transaction->commit();
                     return $this->redirect(['view', 'id' => $modelPedido->idPedido]);
                 }
             } else {
                 $mensagem = "Não foi possível salvar os dados do Pedido";
             }
         } catch (\Exception $exception) {
             $transaction->rollBack();
             $mensagem = "Ocorreu uma falha inesperada ao tentar salvar o Pedido";
         }
     }
     return $this->render('update', ['modelPedido' => $modelPedido, 'situacaopedido' => $situacaopedido, 'produtosVenda' => $produtosVenda, 'itemPedido' => $itensPedido, 'formasPagamento' => $formasPagamento, 'mensagem' => $mensagem, 'mesa' => $mesa]);
 }
コード例 #11
0
 /**
  * @param $idProdutoVenda
  * @return mixed
  */
 public function searchQuantidadeProdutosEmVendas($idProdutoVenda)
 {
     //Guarda o mês anterior
     $mes = date('m') - 1;
     //Guarda o último dia do mês
     $lastDayOfMonth = date('t', strtotime(date('Y') . '-' . $mes . '-' . date('d')));
     //Busca os produtos vendidos(produzidos) no período mensal(Do primeiro até o último dia do mês atual)
     $query = Produto::find()->joinWith('itempedidos')->joinWith('itempedidos.pedido')->joinWith('itempedidos.pedido.pagamento')->joinWith('itempedidos.pedido.pagamento.contasareceber')->joinWith('itempedidos.pedido.pagamento.contasareceber.conta')->where(['produto.idProduto' => $idProdutoVenda])->andWhere(['between', 'dataHora', date('Y') . '-' . $mes . '-' . '01', date('Y') . '-' . $mes . '-' . $lastDayOfMonth]);
     //Guarda a soma dos produtos vendidos(produzidos) no período mensal(Do primeiro até o último dia do mês)
     $sumQuantidade = $query->sum('quantidade');
     return $sumQuantidade;
 }
コード例 #12
0
ファイル: main.php プロジェクト: aryangomes/applanchonete
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 ?>">
コード例 #13
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getNomeProduto()
 {
     return Produto::find()->where(['idProduto' => $this->idProduto])->one()->nome;
 }
コード例 #14
0
 /**
  * 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]);
 }
コード例 #15
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>
コード例 #16
0
 /**
  * Recupera todos os produtos
  */
 public function actionGetProduto()
 {
     $produtos = ArrayHelper::map(Produto::find()->all(), 'nome', 'idProduto');
     echo Json::encode($produtos);
 }
コード例 #17
0
ファイル: Produto.php プロジェクト: aryangomes/applanchonete
 /**
  * @return array|null
  * Gera a lista dos produtos cadastrados
  */
 public static function getListToDropDownList()
 {
     $options = [];
     $optGroups = Categoria::find()->all();
     foreach ($optGroups as $categoria) {
         $produtosCategoria = [];
         $produtos = Produto::find()->where(['idCategoria' => $categoria->idCategoria])->all();
         foreach ($produtos as $p) {
             $key = $p->idProduto;
             $produtosCategoria[$key] = $p->nome;
         }
         $options[$categoria->nome] = $produtosCategoria;
     }
     return $options;
 }
コード例 #18
0
ファイル: Insumo.php プロジェクト: aryangomes/applanchonete
 /**
  * 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;
 }
コード例 #19
0
 /**
  * Updates an existing Cardapio model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $modelCardapio = $this->findModel($id);
     $modelItemCardapio = new Itemcardapio();
     $mensagem = "";
     $itensCardapio = Itemcardapio::find()->where(['idCardapio' => $id])->orderBy('ordem ASC')->all();
     $produtos = ArrayHelper::map(Produto::find()->where(['isInsumo' => 0])->all(), 'idProduto', 'nome');
     if ($modelCardapio->load(Yii::$app->request->post())) {
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             $itensInseridos = true;
             if ($modelCardapio->save()) {
                 if (Itemcardapio::deleteAll(['idCardapio' => $id]) > 0) {
                     $itensCardapio = Yii::$app->request->post()['Itemcardapio'];
                     for ($i = 0; $i < count($itensCardapio['idProduto']); $i++) {
                         $itemCardapio = new Itemcardapio();
                         $itemCardapio->idCardapio = $modelCardapio->idCardapio;
                         $itemCardapio->idProduto = $itensCardapio['idProduto'][$i];
                         $itemCardapio->ordem = $itensCardapio['ordem'][$i];
                         if (!$itemCardapio->save()) {
                             $itensInseridos = false;
                         }
                     }
                     if ($itensInseridos) {
                         $transaction->commit();
                         return $this->redirect(['view', 'id' => $modelCardapio->idCardapio]);
                     } else {
                         $mensagem = "Não foi possível salvar os dados";
                         $transaction->rollBack();
                         //desfaz alterações no BD
                     }
                 }
             }
         } catch (\Exception $exception) {
             $transaction->rollBack();
             $mensagem = "Ocorreu uma falha inesperada ao tentar salvar";
         }
     }
     //Seta o fuso horário brasileiro
     date_default_timezone_set('America/Sao_Paulo');
     return $this->render('update', ['modelCardapio' => $modelCardapio, 'modelItemCardapio' => $modelItemCardapio, 'mensagem' => $mensagem, 'itensCardapio' => $itensCardapio, 'produtos' => $produtos]);
 }
コード例 #20
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(ProdutosRequest $request, $id)
 {
     $produto = Produto::find($id);
     $produto->update($request->all());
     if ($request->fornecedor) {
         foreach ($request->fornecedor as $value) {
             // Vefirica se os campos não são vazios
             if ($value['fornecedor_id'] != '? undefined:undefined ?' || $value['preco_compra'] != '') {
                 // Se já tiver um cadastro atualiza
                 if ($value['id'] != '') {
                     FornecedorProduto::find($value['id'])->update($value);
                 } else {
                     $produto->fornecedor_produtos()->create($value);
                 }
             }
         }
     }
     flash()->success('Produto atualizado com sucesso');
     return redirect('/produtos');
 }
コード例 #21
0
ファイル: Produto.php プロジェクト: rjunioramorim/mibsis
 public static function addEstoque($id, $qtd)
 {
     $produto = Produto::find($id);
     $produto->estoque += $qtd;
     $produto->save();
 }
コード例 #22
0
 /**
  * Updates an existing Insumos model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($idprodutoVenda, $idprodutoInsumo)
 {
     $model = $this->findModel($idprodutoVenda, $idprodutoInsumo);
     $produtosvenda = ArrayHelper::map(Produto::find()->where(['isInsumo' => 0])->all(), 'idProduto', 'nome');
     $insumos = ArrayHelper::map(Produto::find()->where(['isInsumo' => 1])->all(), 'idProduto', 'nome');
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'idprodutoVenda' => $model->idprodutoVenda, 'idprodutoInsumo' => $model->idprodutoInsumo]);
     } else {
         return $this->render('update', ['model' => $model, 'insumos' => $insumos, 'produtosvenda' => $produtosvenda]);
     }
 }