public static function saveOrdemProducao() { $OrdemProducaoTO = new OrdemProducaoTO(); $OrdemProducaoDao = new OrdemProducaoDao(); $OrdemProducaoTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : ''; $OrdemProducaoTO->id_responsavel = isset($_POST['id_responsavel']) ? $_POST['id_responsavel'] : ''; $OrdemProducaoTO->id_status = isset($_POST['id_status']) ? $_POST['id_status'] : 1; $OrdemProducaoTO->id_deposito = isset($_POST['id_deposito']) ? $_POST['id_deposito'] : ''; $itens = isset($_POST['itens']) && is_array($_POST['itens']) ? $_POST['itens'] : false; $Dao = new Dao(); $Dao->setTimeZone($OrdemProducaoTO->id_empreendimento); $OrdemProducaoTO->dta_create = date('Y-m-d H:m:i'); $validator = new DataValidator(); $validator->set_msg('O Responsavel é obrigatório')->set('id_responsavel', $OrdemProducaoTO->id_responsavel)->is_required(); $validator->set_msg('O Depósito é obrigatório')->set('nme_deposito', $OrdemProducaoTO->id_deposito)->is_required(); if ($itens == false) { $validator->_errors['itens'][] = 'É obrigatório informar ao menos um produto a ser produzido'; } if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } try { $id_ordem_producao = $OrdemProducaoDao->saveOrdemProducao($OrdemProducaoTO); if (!$id_ordem_producao) { Flight::halt(500, 'Erro ao cadastrar ordem de producão'); } $ItensOrdemProducaoTO = new ItensOrdemProducaoTO(); $ItensOrdemProducaoDao = new ItensOrdemProducaoDao(); foreach ($itens as $key => $value) { $ItensOrdemProducaoTO->id_ordem_producao = $id_ordem_producao; $ItensOrdemProducaoTO->id_produto = $value['id']; $ItensOrdemProducaoTO->qtd = $value['qtd']; if (!$ItensOrdemProducaoDao->saveItensOrdemProducao($ItensOrdemProducaoTO)) { Flight::halt(500, 'Erro ao cadastrar itens ordem de producão'); } } if (!$OrdemProducaoDao->savechangeOrdemProducao($id_ordem_producao, $OrdemProducaoTO->id_status, $OrdemProducaoTO->dta_create)) { Flight::halt(500, 'Erro ao cadastrar mudança de status'); } Flight::halt(201); } catch (Exception $e) { Flight::halt(500, $e->getMessage()); } }
public static function addItemComanda() { $ItemVendaTO = new ItemVendaTO(); $MesaDao = new MesaDao(); $ItemVendaTO->__setAll($_POST); $Conexao = new Conexao(); $Conexao::getInstance(); $EstoqueDao = new EstoqueDao(); if (isset($_POST['flg_produto_composto'])) { $flg_produto_composto = (int) $_POST['flg_produto_composto'] == 1 ? true : false; } try { if (!$flg_produto_composto) { $out = array(); $qtd = (int) $_POST['qtd']; $estoque = $EstoqueDao->getQtdProduto($_POST['id_empreendimento'], $_POST['id_produto'], null, $_POST['id_deposito'], null); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array((double) $_POST['id_produto']); } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out)))->send(); return; } } $Conexao->beginTransaction(); if ($flg_produto_composto) { $OrdemProducaoTO = new OrdemProducaoTO(); $OrdemProducaoDao = new OrdemProducaoDao(); $OrdemProducaoTO->id_empreendimento = $_POST['id_empreendimento']; $OrdemProducaoTO->id_responsavel = $_POST['id_usuario']; $OrdemProducaoTO->id_status = 1; $OrdemProducaoTO->id_deposito = $_POST['id_deposito']; $OrdemProducaoTO->dta_create = $_POST['dta_create']; $id_ordem_producao = $OrdemProducaoDao->saveOrdemProducao($OrdemProducaoTO); if (!$id_ordem_producao) { $Conexao->rollback(); Flight::halt(500, 'Erro ao cadastrar ordem de producão'); } $ItensOrdemProducaoTO = new ItensOrdemProducaoTO(); $ItensOrdemProducaoDao = new ItensOrdemProducaoDao(); $ItensOrdemProducaoTO->id_ordem_producao = $id_ordem_producao; $ItensOrdemProducaoTO->id_produto = $_POST['id_produto']; $ItensOrdemProducaoTO->qtd = $_POST['qtd']; $ItensOrdemProducaoTO->observacoes = isset($_POST['observacoes']) && !empty($_POST['observacoes']) ? $_POST['observacoes'] : ""; if (!$ItensOrdemProducaoDao->saveItensOrdemProducao($ItensOrdemProducaoTO)) { $Conexao->rollback(); Flight::halt(500, 'Erro ao cadastrar itens da ordem de producão'); } $ItemVendaTO->id_ordem_producao = $id_ordem_producao; } $MesaDao->addItemComanda($ItemVendaTO); $mesa = $MesaDao->getResumoMesa($_POST['id_mesa']); $saida = array('ordem_producao' => null, 'mesa' => $mesa); if (isset($id_ordem_producao)) { $ordem_producao = $MesaDao->getOrdemProducao($id_ordem_producao); $saida['ordem_producao'] = $ordem_producao; } Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode($saida))->send(); } catch (Exception $e) { jsonException($e); } }