public function baixaEstoqueClinica($id_empreendimento, $produtos, $id_deposito, $id_cliente, $id_usuario, $id_profissional, $flg_saida_manual = 0) { $EstoqueSaidaTO = new EstoqueSaidaTO(); $EstoqueSaidaDao = new EstoqueSaidaDao(); $EstoqueSaidaTO->id_empreendimento = $id_empreendimento; $EstoqueSaidaTO->id_cliente = $id_cliente; $EstoqueSaidaTO->id_usuario = $id_usuario; $EstoqueSaidaTO->id_profissional = $id_profissional; $EstoqueSaidaTO->flg_saida_manual = $flg_saida_manual; $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO); foreach ($produtos as $key => $produto) { $estoque = parse_arr_values($this->getEstoque(null, null, array("orderby" => " etq.qtd_item DESC,dta_validade ASC ", "etq.id_deposito" => $id_deposito, "prd.id" => $produto['id'], "etq.qtd_item" => array('exp' => '>0'))), 'all'); $estoque = $estoque['produtos']; $estoque_saida = array(); $qtd_saida_restante = $produto['qtd_saida']; foreach ($estoque as $key => $value) { $qtd_item = $value['qtd_item']; if ($qtd_item >= $qtd_saida_restante) { $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => $qtd_item - $qtd_saida_restante, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_saida_restante, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']); break; } else { $qtd_saida_restante = abs($qtd_item - $qtd_saida_restante); $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => $qtd_item - $qtd_saida_restante, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_item, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']); } } $sql = ""; $ItemEstoqueSaidaTO = new ItemEstoqueSaidaTO(); $ItemEstoqueSaidaDao = new ItemEstoqueSaidaDao(); foreach ($estoque_saida as $key => $value) { $ItemEstoqueSaidaTO->id_estoque_saida = $id_estoque_saida; $ItemEstoqueSaidaTO->id_deposito = $value['id_deposito']; $ItemEstoqueSaidaTO->id_produto = $value['id_produto']; $ItemEstoqueSaidaTO->dta_validade = $value['dta_validade']; $ItemEstoqueSaidaTO->qtd_item = $value['qtd_saida']; $id_item_estoque_saida = $ItemEstoqueSaidaDao->saveItemEstoqueSaida($ItemEstoqueSaidaTO); if (!$id_item_estoque_saida) { return false; } $dadosTrigger = new StdClass(); $dadosTrigger->qtd_saida = $value['qtd_saida']; $dadosTrigger->acao_movimentacao = 'SAIDA'; $dadosTrigger->id_tipo_movimentacao_estoque = 11; $dadosTrigger->id_estoque_saida = $id_estoque_saida; $dadosTrigger->id_item_estoque_saida = $id_item_estoque_saida; $dadosTrigger->id_responsavel = $id_usuario; $dadosTrigger->id_empreendimento = $id_empreendimento; $TRGTblEstoqueAUTO = new TRGTblEstoqueAUTO(); $TRGTblEstoqueAUTO->__setAll($dadosTrigger); $varTriggerSql = ""; if (!empty($dadosTrigger)) { foreach ($TRGTblEstoqueAUTO as $keyTrigger => $valueTrigger) { if ($valueTrigger == null) { $varTriggerSql .= "SET @{$keyTrigger} = NULL;"; } else { $varTriggerSql .= "SET @{$keyTrigger} = '{$valueTrigger}';"; } } } $sql = 'UPDATE tbl_estoque SET qtd_item = ' . $value['qtd_item'] . ', dta_ultima_atualizacao = NOW() WHERE id = ' . $value['id'] . ';'; $this->rumQuery($varTriggerSql); $update = $this->conn->prepare($sql); if (!$update->execute()) { return false; } } } return true; }
public static function excluiEstoqueProduto() { $produtos = isset($_POST['produtos']) ? $_POST['produtos'] : array(); $id_empreendimento = $_POST['id_empreendimento']; $id_usuario = $_POST['id_usuario']; $ids_estoque_produto = null; foreach ($produtos as $produto) { if (!is_array($ids_estoque_produto)) { $ids_estoque_produto = array(); } $ids_estoque_produto[] = $produto['id_estoque_produto']; } $validator = new DataValidator(); $validator->set_msg('Informe ao menos um item para excluir')->set('id_estoque_produto', $ids_estoque_produto)->is_required(); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } try { $estoque_dao = new EstoqueDao(); $EstoqueSaidaTO = new EstoqueSaidaTO(); $EstoqueSaidaDao = new EstoqueSaidaDao(); $conn = Conexao::getInstance(); if (!$conn->inTransaction()) { $conn->beginTransaction(); } $ret = $estoque_dao->excluiEstoqueProduto($ids_estoque_produto); $EstoqueSaidaTO->id_empreendimento = $id_empreendimento; $EstoqueSaidaTO->id_usuario = $id_usuario; $EstoqueSaidaTO->flg_limpeza_estoque = 1; $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO); if (!$id_estoque_saida) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!!!'); } foreach ($produtos as $produto) { $ItemEstoqueSaidaTO = new ItemEstoqueSaidaTO(); $ItemEstoqueSaidaDao = new ItemEstoqueSaidaDao(); $ItemEstoqueSaidaTO->id_estoque_saida = $id_estoque_saida; $ItemEstoqueSaidaTO->id_deposito = $produto['id_deposito']; $ItemEstoqueSaidaTO->id_produto = $produto['id_produto']; $ItemEstoqueSaidaTO->dta_validade = $produto['dta_validade']; $ItemEstoqueSaidaTO->qtd_item = $produto['qtd_saida']; if (!$ItemEstoqueSaidaDao->saveItemEstoqueSaida($ItemEstoqueSaidaTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!!'); } } if ($ret) { Flight::halt(200, 'Estoque atualizado com sucesso!'); } else { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Ocorreu um erro. Tente novamente mais tarde!'); } } catch (PDOException $e) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, $e->getMessage()); } }
public static function baixaEstoque($id_empreendimento, $id_usuario, $produtos, $id_transferencia_estoque, $validade = false) { $EstoqueSaidaTO = new EstoqueSaidaTO(); $EstoqueSaidaDao = new EstoqueSaidaDao(); $EstoqueDao = new EstoqueDao(); $EstoqueSaidaTO->id_empreendimento = $id_empreendimento; $EstoqueSaidaTO->id_usuario = $id_usuario; $EstoqueSaidaTO->id_transferencia_estoque = $id_transferencia_estoque; $id_estoque_saida = $EstoqueSaidaDao->saveEstoqueSaida($EstoqueSaidaTO); foreach ($produtos as $key => $produto) { if ((int) $produto['qtd_transferida'] > 0) { $busca = array("orderby" => " etq.qtd_item DESC,dta_validade ASC ", "etq.id_deposito" => $produto['id_deposito_saida'], "prd.id" => $produto['id_produto'], "etq.qtd_item" => array('exp' => '>0')); if ($validade) { $busca['etq.dta_validade'] = $produto['dta_validade']; } $estoque = parse_arr_values($EstoqueDao->getEstoque(null, null, $busca), 'all'); $estoque = $estoque['produtos']; $estoque_saida = array(); $qtd_saida_restante = $produto['qtd_transferida']; foreach ($estoque as $key => $value) { $qtd_item = $value['qtd_item']; if ($qtd_item >= $qtd_saida_restante) { $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => $qtd_item - $qtd_saida_restante, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_saida_restante, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']); break; } else { $qtd_saida_restante = abs($qtd_item - $qtd_saida_restante); $estoque_saida[] = array('id' => $value['id'], 'qtd_item' => 0, 'dta_validade' => $value['dta_validade'], 'qtd_saida' => $qtd_item, 'id_deposito' => $value['id_deposito'], 'id_produto' => $value['id_produto']); } } $sql = ""; $ItemEstoqueSaidaTO = new ItemEstoqueSaidaTO(); $ItemEstoqueSaidaDao = new ItemEstoqueSaidaDao(); foreach ($estoque_saida as $key => $value) { $ItemEstoqueSaidaTO->id_estoque_saida = $id_estoque_saida; $ItemEstoqueSaidaTO->id_deposito = $value['id_deposito']; $ItemEstoqueSaidaTO->id_produto = $value['id_produto']; $ItemEstoqueSaidaTO->dta_validade = $value['dta_validade']; $ItemEstoqueSaidaTO->qtd_item = $value['qtd_saida']; $id_item_estoque_saida = $ItemEstoqueSaidaDao->saveItemEstoqueSaida($ItemEstoqueSaidaTO); if (!$id_item_estoque_saida) { return false; } $dadosTrigger = new StdClass(); $dadosTrigger->qtd_saida = $value['qtd_saida']; $dadosTrigger->acao_movimentacao = 'SAIDA'; $dadosTrigger->id_tipo_movimentacao_estoque = 5; $dadosTrigger->id_estoque_saida = $id_estoque_saida; $dadosTrigger->id_item_estoque_saida = $id_item_estoque_saida; $dadosTrigger->id_responsavel = $id_usuario; $dadosTrigger->id_empreendimento = $id_empreendimento; $dadosTrigger->id_transferencia = $id_transferencia_estoque; $varTriggerSql = ""; $TRGTblEstoqueAUTO = new TRGTblEstoqueAUTO(); $TRGTblEstoqueAUTO->__setAll($dadosTrigger); if (!empty($dadosTrigger)) { foreach ($TRGTblEstoqueAUTO as $keyTrigger => $valueTrigger) { if ($valueTrigger == null) { $varTriggerSql .= "SET @{$keyTrigger} = NULL;"; } else { $varTriggerSql .= "SET @{$keyTrigger} = '{$valueTrigger}';"; } } } $sql = 'UPDATE tbl_estoque SET qtd_item = ' . $value['qtd_item'] . ', dta_ultima_atualizacao = NOW() WHERE id = ' . $value['id'] . ';'; $EstoqueDao->rumQuery($varTriggerSql, false); $EstoqueDao->rumQuery($sql, false); } /*foreach ($estoque_saida as $key => $value) { $sql .= 'UPDATE tbl_estoque SET qtd_item = '.$value['qtd_item'].', dta_ultima_atualizacao = NOW() WHERE id = '.$value['id'].';'; } $EstoqueDao->rumQuery($sql);*/ } } return true; }