public static function saveAtendimento()
 {
     $AtendimentoTO = new AtendimentoTO();
     $AtendimentoDao = new AtendimentoDao();
     $VendaDao = new VendaDao();
     try {
         $AtendimentoTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : NULL;
         $AtendimentoTO->id_paciente = isset($_POST['id_paciente']) ? $_POST['id_paciente'] : NULL;
         $AtendimentoTO->dta_entrada = isset($_POST['dta_entrada']) ? $_POST['dta_entrada'] : NULL;
         $AtendimentoTO->dta_inicio_atendimento = isset($_POST['dta_inicio_atendimento']) ? $_POST['dta_inicio_atendimento'] : NULL;
         $AtendimentoTO->dta_fim_atendimento = isset($_POST['dta_fim_atendimento']) ? $_POST['dta_fim_atendimento'] : NULL;
         $AtendimentoTO->id_usuario_entrada = isset($_POST['id_usuario_entrada']) ? $_POST['id_usuario_entrada'] : NULL;
         $AtendimentoTO->id_status = isset($_POST['id_status']) ? $_POST['id_status'] : NULL;
         $AtendimentoTO->id_profissional_atendimento = isset($_POST['id_profissional_atendimento']) ? $_POST['id_profissional_atendimento'] : NULL;
         $AtendimentoTO->dta_inicio_procedimento = isset($_POST['dta_inicio_procedimento']) ? $_POST['dta_inicio_procedimento'] : NULL;
         $AtendimentoTO->dta_fim_procedimento = isset($_POST['dta_fim_procedimento']) ? $_POST['dta_fim_procedimento'] : NULL;
         $AtendimentoTO->id_atendimento_origem = isset($_POST['id_atendimento_origem']) ? $_POST['id_atendimento_origem'] : NULL;
         $id_item_venda = isset($_POST['id_item_venda']) ? $_POST['id_item_venda'] : false;
         $id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : false;
         $id_status_procedimento = isset($_POST['id_status_procedimento']) ? $_POST['id_status_procedimento'] : false;
         $procedimentos = isset($_POST['procedimentos']) ? $_POST['procedimentos'] : false;
         $validator = new DataValidator();
         $validator->set_msg('Campo obrigatório')->set('id_empreendimento', $AtendimentoTO->id_empreendimento)->is_required();
         $validator->set_msg('Campo obrigatório')->set('id_paciente', $AtendimentoTO->id_paciente)->is_required();
         $validator->set_msg('Campo obrigatório')->set('dta_entrada', $AtendimentoTO->dta_entrada)->is_required();
         $validator->set_msg('Campo obrigatório')->set('id_usuario_entrada', $AtendimentoTO->id_usuario_entrada)->is_required();
         $validator->set_msg('Campo obrigatório')->set('id_status', $AtendimentoTO->id_status)->is_required();
         if (!$validator->validate()) {
             Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
             return;
         }
         $last_id = $AtendimentoDao->saveAtendimento($AtendimentoTO);
         if ($id_item_venda && $id_venda) {
             $AtendimentoDao->gravarAtendimentoVenda($last_id, $id_venda, $id_item_venda);
         }
         if ($id_item_venda && $id_status_procedimento) {
             $ItemVendaDao = new ItemVendaDao();
             $ItemVendaTO = new stdClass();
             $ItemVendaTO->id_status_procedimento = 2;
             $ItemVendaDao->updateItemVenda($ItemVendaTO, "id = " . $id_item_venda);
         }
         if ($procedimentos) {
             foreach ($procedimentos as $key => $value) {
                 $AtendimentoDao->gravarAtendimentoProcedimento($last_id, $value['id']);
             }
         }
         if (!empty($AtendimentoTO->id_atendimento_origem)) {
             $AtendimentoOrigemTO = new stdClass();
             $AtendimentoOrigemTO->id_status = 3;
             $AtendimentoDao->updateAtendimento($AtendimentoOrigemTO, 'id=' . $AtendimentoTO->id_atendimento_origem);
             if ($id_venda) {
                 $VendaDao->changeStatusVenda($id_venda, 6);
             }
         }
         Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array("id_atendimento" => $last_id)))->send();
     } catch (Exception $e) {
         jsonException($e, 500);
     }
 }
 public static function baixaEstoque()
 {
     $itens_saida = $_POST['itens_saida'];
     $id_venda = $_POST['id_venda'];
     $id_empreendimento = $_POST['id_empreendimento'];
     $EstoqueDao = new EstoqueDao();
     //print_r($_POST);die;
     foreach ($itens_saida as $key => $value) {
         if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $value['id_produto'], $value['id_deposito'], $value['qtd'])) {
             Flight::halt(500, 'error ao atualizar estoque');
         }
     }
     /*Flight::response()->status(406)
       ->header('Content-Type', 'application/json')
       ->write(json_encode(array('entrada'=>$_POST['estoque_validades'],'saida'=>$itens_saida)))
       ->send();*/
     $VendaDao = new VendaDao();
     if (!$VendaDao->changeStatusVenda($_POST['id_venda'], 2)) {
         Flight::halt(500, 'erro ao atualizar venda');
     }
 }
 public static function changeStatusVenda()
 {
     $ConfiguracaoDao = new ConfiguracaoDao();
     $ItemVendaDao = new ItemVendaDao();
     $VendaDao = new VendaDao();
     $id_venda = $_POST['id_venda'];
     $id_status = $_POST['id_status'];
     $id_empreendimento = $_POST['id_empreendimento'];
     if ($VendaDao->changeStatusVenda($id_venda, $id_status)) {
         $dados_send_mail = $ConfiguracaoDao->getConfigSendMail(array(array('id' => $id_empreendimento)));
         if ($dados_send_mail) {
             foreach ($dados_send_mail as $emp) {
                 $venda = $VendaDao->getVenda($id_venda);
                 $venda['itens'] = $ItemVendaDao->getItens($id_venda, null, null, null);
                 $send = array(array('nome' => $venda['nome_cliente'], 'email' => $venda['email_cliente']));
                 $emp['venda'] = $venda;
                 sendMail($emp['empreendimento']['nome_empreendimento'] . ' - Alteração no status do pedido', 'modelo-alteracao-status-pedido.php', $send, $emp);
             }
         }
         Flight::halt(200);
     } else {
         Flight::halt(500);
     }
 }
 public static function requestUpdateVendaStatus()
 {
     try {
         /*$json = '
         		{"newOrderStatus":{"name":"Pagamento aceito","template":"payment","send_email":"1","module_name":"","invoice":"1","color":"#32CD32","unremovable":"1","logable":"1","delivery":"0","hidden":"0","shipped":"0","paid":"1","pdf_invoice":"1","pdf_delivery":"0","deleted":"0","id":2,"id_shop_list":null,"force_id":false},"id_order":9,"cookie":{},"cart":{"id":11,"id_shop_group":"1","id_shop":"1","id_address_delivery":"5","id_address_invoice":"5","id_currency":"1","id_customer":"2","id_guest":"2","id_lang":"2","recyclable":"0","gift":"0","gift_message":"","mobile_theme":"0","date_add":"2016-10-05 06:34:07","secure_key":"a24bacb3d454dcd53813e624d60bc9f1","id_carrier":"3","date_upd":"2016-10-05 06:35:06","checkedTos":false,"pictures":null,"textFields":null,"delivery_option":"a:1:{i:5;s:2:\"3,\";}","allow_seperated_package":"0","id_shop_list":null,"force_id":false},"altern":3}
         		';
         		$_POST = json_decode($json,true);
         		$_POST['id_empreendimento'] = 6 ;*/
         $dados = $_POST;
         $VendaDao = new VendaDao();
         $PagamentoClienteDao = new PagamentoClienteDao();
         $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao();
         if (strtolower($dados['newOrderStatus']['id']) != '2') {
             return;
         }
         $id_order = $dados['id_order'];
         $refVenda = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_vendas', 'id_item_referencia' => $id_order, 'tipo' => 'venda', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0));
         $refPag = $ReferenciaIntegracaoDao->get(array('sistema_integrado' => 'PrestaShop', 'tabela' => 'tbl_pagamentos_venda', 'id_item_referencia' => $id_order, 'tipo' => 'pagamento', 'id_empreendimento' => $dados['id_empreendimento'], 'flg_excluido' => 0));
         $VendaDao->changeStatusVenda($refVenda['id_item'], 6);
         $PagamentoClienteDao->updateStatus($refPag['id_item'], 1, date('Y-m-d H:i:s'));
     } catch (Exception $e) {
         $log = new KLogger("logs/logErrorPrestaShop.txt", KLogger::DEBUG);
         $log->LogError($e->getMessage() . '- file:' . $e->getFile() . ' - line:' . $e->getLine());
         $log->LogDebug(json_encode($_POST));
         $log->LogJunp();
         Flight::halt(500, $e->getMessage());
     }
 }