public static function saveVenda() { $EstoqueDao = new EstoqueDao(); $out = array(); $modo_venda = $_POST['modo_venda']; $produtos = $_POST['produtos']; $venda = $_POST['venda']; $id_empreendimento = $venda['id_empreendimento']; $id_deposito = $venda['id_deposito']; $pagamentos = $_POST['pagamentos']; foreach ($produtos as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, $id_deposito); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array($value['id_produto']); } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($out))->send(); return; } /* Flight::response()->status(500) ->header('Content-Type', 'application/json') ->write(json_encode($arrayName)) ->send(); return ; */ $VendaDao = new VendaDao(); $VendaTO = new VendaTO(); $VendaTO->id_usuario = isset($venda['id_usuario']) ? $venda['id_usuario'] : NULL; $VendaTO->id_cliente = is_numeric($venda['id_cliente']) ? $venda['id_cliente'] : NULL; $VendaTO->venda_confirmada = isset($venda['venda_confirmada']) ? $venda['venda_confirmada'] : ''; $VendaTO->id_empreendimento = isset($venda['id_empreendimento']) ? $venda['id_empreendimento'] : ''; $VendaTO->id_status_venda = 4; $id_venda = $VendaDao->saveVenda($VendaTO); if (!$id_venda) { Flight::halt(500, 'erro ao inserir venda'); } $ItemVendaDao = new ItemVendaDao(); $ItemVendaTO = new ItemVendaTO(); foreach ($produtos as $key => $value) { $ItemVendaTO->id_venda = $id_venda; $ItemVendaTO->id_produto = $value['id_produto']; $ItemVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemVendaTO->qtd = $value['qtd']; $ItemVendaTO->valor_real_item = $value['valor_produto']; if (!$ItemVendaDao->saveItemVenda($ItemVendaTO)) { Flight::halt(500, 'erro ao inserir os itens da venda'); } if (!$EstoqueDao->baixaEstoquePDV($id_empreendimento, $id_venda, $value['id_produto'], $id_deposito, $value['qtd'])) { Flight::halt(500, 'error ao atualizar estoque'); } } $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); foreach ($pagamentos as $key => $value) { if ($value['id_tipo_movimentacao'] != 5) { $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : ""; $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } $UsuarioDao = new UsuarioDao(); $vlr_saldo_devedor = $UsuarioDao->getUsuarios(null, null, array('usu.id' => $venda['id_cliente'])); $vlr_saldo_devedor = $vlr_saldo_devedor['usuarios'][0]["vlr_saldo_devedor"]; Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_venda' => $id_venda, 'vlr_saldo_devedor' => $vlr_saldo_devedor)))->send(); }
public static function saveMovimentacaoSangria() { $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $MovimentacaoCaixaTO->id_abertura_caixa = isset($_POST['id_abertura_caixa']) ? $_POST['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($_POST['id_tipo_movimentacao']) ? $_POST['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : NULL; $conta_destino = isset($_POST['id_conta_bancaria_destino']) ? $_POST['id_conta_bancaria_destino'] : NULL; $valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : NULL; $obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL; $validator = new DataValidator(); $validator->set_msg('O ID da abertura de caixa e obrigatório')->set('id_abertura_caixa', $MovimentacaoCaixaTO->id_abertura_caixa)->is_required(); $validator->set_msg('O ID do plano é obrigatório')->set('id_plano_conta', $MovimentacaoCaixaTO->id_plano_conta)->is_required(); $validator->set_msg('O ID do tipo da movimentacao é obrigatório')->set('id_tipo_movimentacao', $MovimentacaoCaixaTO->id_tipo_movimentacao)->is_required(); $validator->set_msg('A Conta de destino é obrigatória')->set('conta_destino', $conta_destino)->is_required(); $validator->set_msg('O valor da retirada é obrigatório')->set('valor_retirada', $valor_pagamento)->is_required(); $AberturaCaixaDao = new AberturaCaixaDao(); $valor_em_caixa = $AberturaCaixaDao->vlrEmCaixa($MovimentacaoCaixaTO->id_abertura_caixa, 3); $valor_em_caixa = $valor_em_caixa['vlr_em_caixa']; if ($valor_em_caixa < (double) $valor_pagamento) { $validator->_errors['valor_nao_permitido'][] = 'Operação não permitida, o valor da sangria e maior que o valor em dinheiro no caixa'; } if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } try { $PagamentoFornecedorTO = new PagamentoFornecedorTO(); $PagamentoFornecedorDao = new PagamentoFornecedorDao(); $id_empreendimento = $_POST['id_empreendimento']; $Dao = new Dao(); $Dao->setTimeZone($id_empreendimento); $dta_movimentacao = date('Y-m-d H:i:s'); $PagamentoFornecedorTO->id_fornecedor = isset($_POST['id_fornecedor']) ? $_POST['id_fornecedor'] : ""; $PagamentoFornecedorTO->id_forma_pagamento = isset($_POST['id_forma_pagamento']) ? $_POST['id_forma_pagamento'] : ""; $PagamentoFornecedorTO->valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : ""; $PagamentoFornecedorTO->status_pagamento = isset($_POST['status_pagamento']) ? $_POST['status_pagamento'] : ""; $PagamentoFornecedorTO->data_pagamento = $dta_movimentacao; $PagamentoFornecedorTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : ""; $PagamentoFornecedorTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : ""; $PagamentoFornecedorTO->id_conta_bancaria = isset($_POST['id_conta_bancaria']) ? $_POST['id_conta_bancaria'] : ""; $PagamentoFornecedorTO->obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL; $PagamentoFornecedorTO->flg_transferencia_conta = 1; $id_lancamento_saida = $PagamentoFornecedorDao->savePagamentoFornecedor($PagamentoFornecedorTO); if (!$id_lancamento_saida) { Flight::halt(500, 'erro ao inserir pagamento ao fornecedor'); } $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $PagamentoClienteTO->id_cliente = isset($_POST['id_cliente']) ? $_POST['id_cliente'] : ""; $PagamentoClienteTO->id_forma_pagamento = isset($_POST['id_forma_pagamento']) ? $_POST['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($_POST['valor_pagamento']) ? $_POST['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = isset($_POST['status_pagamento']) ? $_POST['status_pagamento'] : ""; $PagamentoClienteTO->data_pagamento = $dta_movimentacao; $PagamentoClienteTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($_POST['id_plano_conta']) ? $_POST['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($_POST['id_conta_bancaria_destino']) ? $_POST['id_conta_bancaria_destino'] : ""; $PagamentoClienteTO->obs_pagamento = isset($_POST['obs_pagamento']) ? $_POST['obs_pagamento'] : NULL; $PagamentoClienteTO->flg_transferencia_conta = 1; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada; $MovimentacaoCaixaTO->id_lancamento_saida = $id_lancamento_saida; $MovimentacaoCaixaTO->dsc_movimentacao = isset($_POST['dsc_movimentacao']) ? $_POST['dsc_movimentacao'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_movimentacao; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } Flight::halt(201); } catch (Exception $e) { Flight::halt(500, $e->getMessage()); } }
public static function gravarMovimentacoes() { $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $ControlePagamentoVendaTO = new ControlePagamentoVendaTO(); $ControlePagamentoVendaDao = new ControlePagamentoVendaDao(); $MaquinetaDao = new MaquinetaDao(); $VendaDao = new VendaDao(); $AtendimentoDao = new AtendimentoDao(); $pagamentos = $_POST['pagamentos']; $id_venda = isset($_POST['id_venda']) ? $_POST['id_venda'] : NULL; $id_venda = empty($_POST['id_venda']) ? NULL : $id_venda; $id_cliente = $_POST['id_cliente']; $id_empreendimento = $_POST['id_empreendimento']; $id_atendimento = isset($_POST['id_atendimento']) ? $_POST['id_atendimento'] : NULL; $Dao = new Dao(); $Dao->setTimeZone($id_empreendimento); $dta_entrada = date('Y-m-d H:i:s'); $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada); if (!$id_controle_pagamento) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } foreach ($pagamentos as $key => $value) { $parcela = null; if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) { $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; if ($value['id_forma_pagamento'] == 2) { $PagamentoClienteTO->status_pagamento = 0; } else { if ($value['id_forma_pagamento'] == 4) { $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0; $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL; $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL; } else { $PagamentoClienteTO->status_pagamento = 1; } } $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL; $PagamentoClienteTO->flg_caixa_fechado = 0; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL; $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL; $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL; $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL; $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL; $PagamentoClienteTO->id_parcelamento = NULL; if ($value['id_forma_pagamento'] == 5) { $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']); $txa_maquineta = $maquineta['per_margem_debito']; $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; } else { $PagamentoClienteTO->id_maquineta = NULL; $PagamentoClienteTO->taxa_maquineta = NULL; } $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } else { if ($value['id_tipo_movimentacao'] != 5) { $repeat_parcelas = 0; $id_parcelamento = false; $arr_parcelas = $value['parcelas']; $n_parcelas = count($arr_parcelas); foreach ($arr_parcelas as $key_par => $parcela) { $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']); $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas); $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = 0; $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : ""; $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : ""; $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : ""; $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : ""; $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : ""; $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : ""; $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento']; $PagamentoClienteTO->flg_caixa_fechado = 0; if ($PagamentoClienteTO->id_forma_pagamento != 2) { $PagamentoClienteTO->id_banco = NULL; $PagamentoClienteTO->num_conta_corrente = NULL; $PagamentoClienteTO->num_cheque = NULL; $PagamentoClienteTO->flg_cheque_predatado = NULL; } $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada; $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; $MovimentacaoCaixaTO->id_item_venda = isset($parcela['id_item_venda']) ? $parcela['id_item_venda'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada; } $id_lancamento_entrada = $id_parcelamento; } } if ($parcela == null) { $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = $id_venda == NULL ? 'Pagamento' : 'Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_venda = $id_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; $MovimentacaoCaixaTO->id_item_venda = isset($value['id_item_venda']) ? $value['id_item_venda'] : NULL; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } } $UsuarioDao = new UsuarioDao(); if (is_numeric($id_cliente)) { $vlr_saldo_devedor = $UsuarioDao->getSaldoDevedor($id_empreendimento, $id_cliente); $vlr_saldo_devedor = $vlr_saldo_devedor["vlr_saldo_devedor"]; } else { $vlr_saldo_devedor = 0; } //$VendaDao->changeStatusVenda($id_venda,6); //$AtendimentoTO = new stdClass(); //$AtendimentoTO->id_status = 3 ; //$AtendimentoDao->updateAtendimento($AtendimentoTO,'id='.$id_atendimento); Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('vlr_saldo_devedor' => $vlr_saldo_devedor, 'id_controle_pagamento' => $id_controle_pagamento)))->send(); }
public static function gravarMovimentacoes($pagamentos, $id_pedido_venda, $id_cliente, $id_empreendimento) { $MovimentacaoCaixaTO = new MovimentacaoCaixaTO(); $MovimentacaoCaixaDao = new MovimentacaoCaixaDao(); $PagamentoClienteTO = new PagamentoClienteTO(); $PagamentoClienteDao = new PagamentoClienteDao(); $ControlePagamentoVendaTO = new ControlePagamentoVendaTO(); $ControlePagamentoVendaDao = new ControlePagamentoVendaDao(); $MaquinetaDao = new MaquinetaDao(); $pagamentos = $pagamentos; $id_pedido_venda = $id_pedido_venda; $id_cliente = $id_cliente; $id_empreendimento = $id_empreendimento; $Dao = new Dao(); $Dao->setTimeZone($id_empreendimento); $dta_entrada = date('Y-m-d H:i:s'); $id_controle_pagamento = $ControlePagamentoVendaDao->saveControlePagamento($dta_entrada); if (!$id_controle_pagamento) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } foreach ($pagamentos as $key => $value) { $parcela = null; if ($value['id_tipo_movimentacao'] != 5 && $value['id_forma_pagamento'] != 6) { $PagamentoClienteTO->id_cliente = isset($value['id_cliente']) ? $value['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($value['id_forma_pagamento']) ? $value['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($value['valor']) ? $value['valor_pagamento'] : ""; if ($value['id_forma_pagamento'] == 2) { $PagamentoClienteTO->status_pagamento = 0; } else { if ($value['id_forma_pagamento'] == 4) { $PagamentoClienteTO->status_pagamento = isset($value['status_pagamento']) ? $value['status_pagamento'] : 0; $PagamentoClienteTO->doc_boleto = isset($value['doc_boleto']) ? $value['doc_boleto'] : NULL; $PagamentoClienteTO->num_boleto = isset($value['num_boleto']) ? $value['num_boleto'] : NULL; } else { $PagamentoClienteTO->status_pagamento = 1; } } $PagamentoClienteTO->data_pagamento = isset($value['data_pagamento']) ? $value['data_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : ""; $PagamentoClienteTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($value['id_conta_bancaria']) ? $value['id_conta_bancaria'] : NULL; $PagamentoClienteTO->flg_caixa_fechado = 0; $PagamentoClienteTO->id_banco = isset($value['id_banco']) ? $value['id_banco'] : NULL; $PagamentoClienteTO->num_conta_corrente = isset($value['num_conta_corrente']) ? $value['num_conta_corrente'] : NULL; $PagamentoClienteTO->num_cheque = isset($value['num_cheque']) ? $value['num_cheque'] : NULL; $PagamentoClienteTO->flg_cheque_predatado = isset($value['flg_cheque_predatado']) ? $value['flg_cheque_predatado'] : NULL; $PagamentoClienteTO->id_vale_troca = (int) $value['id_forma_pagamento'] == 7 ? $value['id_vale_troca'] : NULL; $PagamentoClienteTO->agencia_transferencia = isset($value['agencia_transferencia']) ? $value['agencia_transferencia'] : NULL; $PagamentoClienteTO->conta_transferencia = isset($value['conta_transferencia']) ? $value['conta_transferencia'] : NULL; $PagamentoClienteTO->proprietario_conta_transferencia = isset($value['proprietario_conta_transferencia']) ? $value['proprietario_conta_transferencia'] : NULL; $PagamentoClienteTO->id_conta_transferencia_destino = isset($value['id_conta_transferencia_destino']) ? $value['id_conta_transferencia_destino'] : NULL; if ($value['id_forma_pagamento'] == 5) { $maquineta = $MaquinetaDao->getMaquineta($value['id_maquineta']); $txa_maquineta = $maquineta['per_margem_debito']; $PagamentoClienteTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; } else { $PagamentoClienteTO->id_maquineta = NULL; $PagamentoClienteTO->taxa_maquineta = NULL; } $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $value['id_cliente_lancamento']; $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } } else { if ($value['id_tipo_movimentacao'] != 5) { $repeat_parcelas = 0; $id_parcelamento = false; $arr_parcelas = $value['parcelas']; $n_parcelas = count($arr_parcelas); foreach ($arr_parcelas as $key_par => $parcela) { $maquineta = $MaquinetaDao->getMaquineta($parcela['id_maquineta']); $txa_maquineta = $MaquinetaDao->getTaxaMaquineta($parcela['id_maquineta'], $n_parcelas); $PagamentoClienteTO->id_cliente = isset($parcela['id_cliente']) ? $parcela['id_cliente'] : ""; $PagamentoClienteTO->id_controle_pagamento = $id_controle_pagamento; $PagamentoClienteTO->id_forma_pagamento = isset($parcela['id_forma_pagamento']) ? $parcela['id_forma_pagamento'] : ""; $PagamentoClienteTO->valor_pagamento = isset($parcela['valor_pagamento']) ? $parcela['valor_pagamento'] : ""; $PagamentoClienteTO->status_pagamento = 0; $PagamentoClienteTO->data_pagamento = isset($parcela['data_pagamento']) ? $parcela['data_pagamento'] : ""; $PagamentoClienteTO->obs_pagamento = isset($parcela['obs_pagamento']) ? $parcela['obs_pagamento'] : ""; $PagamentoClienteTO->id_empreendimento = isset($parcela['id_empreendimento']) ? $parcela['id_empreendimento'] : ""; $PagamentoClienteTO->id_banco = isset($parcela['id_banco']) ? $parcela['id_banco'] : ""; $PagamentoClienteTO->num_conta_corrente = isset($parcela['num_conta_corrente']) ? $parcela['num_conta_corrente'] : ""; $PagamentoClienteTO->num_cheque = isset($parcela['num_cheque']) ? $parcela['num_cheque'] : ""; $PagamentoClienteTO->flg_cheque_predatado = isset($parcela['flg_cheque_predatado']) ? $parcela['flg_cheque_predatado'] : ""; $PagamentoClienteTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : ""; $PagamentoClienteTO->id_conta_bancaria = isset($parcela['id_conta_bancaria']) ? $parcela['id_conta_bancaria'] : ""; $PagamentoClienteTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $PagamentoClienteTO->taxa_maquineta = $txa_maquineta; $PagamentoClienteTO->id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : NULL; $PagamentoClienteTO->id_cliente = is_numeric($PagamentoClienteTO->id_cliente) ? $PagamentoClienteTO->id_cliente : $parcela['id_cliente_lancamento']; $PagamentoClienteTO->flg_caixa_fechado = 0; if ($PagamentoClienteTO->id_forma_pagamento != 2) { $PagamentoClienteTO->id_banco = NULL; $PagamentoClienteTO->num_conta_corrente = NULL; $PagamentoClienteTO->num_cheque = NULL; $PagamentoClienteTO->flg_cheque_predatado = NULL; } $id_lancamento_entrada = $PagamentoClienteDao->savePagamentoCliente($PagamentoClienteTO); if (!$id_lancamento_entrada) { Flight::halt(500, 'erro ao inserir pagamento ao cliente'); } $MovimentacaoCaixaTO->id_abertura_caixa = isset($parcela['id_abertura_caixa']) ? $parcela['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($parcela['id_plano_conta']) ? $parcela['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($parcela['id_tipo_movimentacao']) ? $parcela['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($parcela['id_maquineta']) ? $parcela['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $id_lancamento_entrada; $valor_pagamento = isset($parcela['valor']) ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $parcela['id_tipo_movimentacao'] == 5 ? $parcela['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } $id_parcelamento = is_numeric($id_parcelamento) ? $id_parcelamento : $id_lancamento_entrada; } $id_lancamento_entrada = $id_parcelamento; } } if ($parcela == null) { $MovimentacaoCaixaTO->id_abertura_caixa = isset($value['id_abertura_caixa']) ? $value['id_abertura_caixa'] : NULL; $MovimentacaoCaixaTO->id_plano_conta = isset($value['id_plano_conta']) ? $value['id_plano_conta'] : NULL; $MovimentacaoCaixaTO->id_tipo_movimentacao = isset($value['id_tipo_movimentacao']) ? $value['id_tipo_movimentacao'] : NULL; $MovimentacaoCaixaTO->dsc_movimentacao = 'Pedido de Venda'; $MovimentacaoCaixaTO->id_maquineta = isset($value['id_maquineta']) ? $value['id_maquineta'] : NULL; $MovimentacaoCaixaTO->id_pedido_venda = $id_pedido_venda; $MovimentacaoCaixaTO->id_lancamento_entrada = $value['id_tipo_movimentacao'] != 5 ? $id_lancamento_entrada : NULL; $valor_pagamento = isset($value['valor']) ? $value['valor'] : NULL; $MovimentacaoCaixaTO->para_receber = $value['id_tipo_movimentacao'] == 5 ? $value['valor'] : NULL; $MovimentacaoCaixaTO->dta_movimentacao = $dta_entrada; if (!$MovimentacaoCaixaDao->saveMovimentacao($MovimentacaoCaixaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } } return true; }
public static function save() { $osTO = new OrdemServicoTO(); $osTO->__setAll($_POST); $validator = new DataValidator(); $validator->set_msg('O campo Cliente é obrigatório')->set('id_cliente', $osTO->cliente)->is_required(); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } $cliTO = new UsuarioTO(); $cliTO->__setAll($osTO->cliente); $osTO->cliente = $cliTO; $crtTO = new UsuarioTO(); $crtTO->__setAll($osTO->criador); $osTO->criador = $crtTO; if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $newObjTO = new ServicoTO(); $newObjTO->__setAll($servico); $osTO->servicos[$key] = $newObjTO; } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $newObjTO = new ProdutoOSTO(); $newObjTO->__setAll($produto); $osTO->produtos[$key] = $newObjTO; } } if (!$osTO->id) { // Grava a venda $venTO = new VendaTO(); $venTO->id_usuario = $osTO->criador->id; $venTO->id_cliente = $osTO->cliente->id; $venTO->venda_confirmada = $osTO->cod_status_servico == "4" ? 0 : 1; $venTO->id_empreendimento = $osTO->id_empreendimento; $venTO->id_status_venda = $osTO->cod_status_servico == "4" ? 5 : 6; $venDao = new VendaDao(); $venTO->id = $venDao->saveVenda($venTO); if (!$venTO->id) { Flight::halt(500, 'Erro ao salvar as informações da venda'); } else { $osTO->id_venda = $venTO->id; // Grava os servicos na venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $venTO->id; $itvTO->id_produto = NULL; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = 1; $itvTO->valor_real_item = $servico->vlr_procedimento; $itvTO->vlr_custo = 0; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = 0; $itvTO->id_procedimento = $servico->id; $itvTO->id_status_procedimento = $servico->cod_status_servico; $itvDao = new ItemVendaDao(); $osTO->servicos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->servicos[$key]->id) { Flight::halt(500, 'Erro ao associar o serviço [' . $servico->dsc_procedimento . '] na venda'); } } } // Grava os produtos na venda if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $venTO->id; $itvTO->id_produto = $produto->id_produto; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = $produto->qtd_pedido; $itvTO->valor_real_item = $produto->vlr_venda_varejo; $itvTO->vlr_custo = $produto->vlr_custo; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = $produto->margem_varejo; $itvDao = new ItemVendaDao(); $osTO->produtos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->produtos[$key]->id) { Flight::halt(500, 'Erro ao associar o produto [' . $produto->nome . '] na venda'); } } } // Grava a Ordem de Serviço $atdTO = new AtendimentoTO(); $atdTO->id_empreendimento = $osTO->id_empreendimento; $atdTO->id_paciente = $osTO->cliente->id; $atdTO->dta_entrada = $osTO->dta_ordem_servico; $atdTO->id_usuario_entrada = $osTO->criador->id; $atdTO->id_status = $osTO->cod_status_servico; $atdDao = new AtendimentoDao(); $atdTO->id = $atdDao->saveAtendimento($atdTO); if (!$atdTO->id) { Flight::halt(500, 'Erro ao salvar as informações do serviço'); } else { // Associa a Ordem de Serviço a Venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { if (!$atdDao->gravarAtendimentoVenda($atdTO->id, $venTO->id, $servico->id)) { Flight::halt(500, 'Erro ao associar o serviço a venda'); } } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { if (!$atdDao->gravarAtendimentoVenda($atdTO->id, $venTO->id, $produto->id)) { Flight::halt(500, 'Erro ao associar o produto a venda'); } } } } $status_code = 201; } } else { $venda_confirmada = $osTO->cod_status_servico == "4" ? 0 : 1; $id_status_venda = $osTO->cod_status_servico == "4" ? 5 : 6; $flg_excluido = $osTO->cod_status_servico == "5" ? 1 : 0; // Atualiza os dados da venda $venDao = new VendaDao(); if ($venDao->updateVendaData($osTO->cliente->id, $venda_confirmada, $id_status_venda, $flg_excluido, $osTO->id_venda)) { // Remove todos os servicos e produtos da venda $itvDao = new ItemVendaDao(); if ($itvDao->deleteItemsByIdVenda($osTO->id_venda)) { // Grava os servicos na venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $osTO->id_venda; $itvTO->id_produto = NULL; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = 1; $itvTO->valor_real_item = $servico->vlr_procedimento; $itvTO->vlr_custo = 0; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = 0; $itvTO->id_procedimento = $servico->id; $itvTO->id_status_procedimento = $servico->cod_status_servico; $osTO->servicos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->servicos[$key]->id) { Flight::halt(500, 'Erro ao associar o serviço [' . $servico->dsc_procedimento . '] na venda'); } } } // Grava os produtos na venda if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { $itvTO = new ItemVendaTO(); $itvTO->id_venda = $osTO->id_venda; $itvTO->id_produto = $produto->id_produto; $itvTO->desconto_aplicado = 0; $itvTO->valor_desconto = 0; $itvTO->qtd = $produto->qtd_pedido; $itvTO->valor_real_item = $produto->vlr_venda_varejo; $itvTO->vlr_custo = $produto->vlr_custo; $itvTO->perc_imposto_compra = 0; $itvTO->perc_desconto_compra = 0; $itvTO->perc_margem_aplicada = $produto->margem_varejo; $osTO->produtos[$key]->id = $itvDao->saveItemVenda($itvTO); if (!$osTO->produtos[$key]->id) { Flight::halt(500, 'Erro ao associar o produto [' . $produto->nome . '] na venda'); } } } // Atualiza os dados da Ordem de Serviço $atdTO = new StdClass(); $atdTO->id_paciente = $osTO->cliente->id; $atdTO->id_status = $osTO->cod_status_servico; $atdDao = new AtendimentoDao(); if ($atdDao->updateAtendimento($atdTO, 'id=' . $osTO->id)) { // Remove todos os servicos e produtos da ordem de serviço $atdDao->deleteItemsByIdAtendimento($osTO->id); // Associa a Ordem de Serviço a Venda if (count($osTO->servicos) > 0) { foreach ($osTO->servicos as $key => $servico) { if (!$atdDao->gravarAtendimentoVenda($osTO->id, $osTO->id_venda, $servico->id)) { Flight::halt(500, 'Erro ao associar o serviço a venda'); } } } if (count($osTO->produtos) > 0) { foreach ($osTO->produtos as $key => $produto) { if (!$atdDao->gravarAtendimentoVenda($osTO->id, $osTO->id_venda, $produto->id)) { Flight::halt(500, 'Erro ao associar o produto a venda'); } } } $status_code = 200; } else { Flight::halt(500, 'Erro ao atualizar os dados da ordem de serviço'); } } else { Flight::halt(500, 'Erro ao remover os servicos e produtos da venda'); } } else { Flight::halt(500, 'Erro ao atualizar os dados da venda'); } } // Grava a movimentação de caixa if ($osTO->cod_status_servico == "6") { $movCxaTO = new MovimentacaoCaixaTO(); $movCxaTO->id_abertura_caixa = $osTO->id_abertura_caixa; $movCxaTO->id_plano_conta = $osTO->id_plano_conta; $movCxaTO->id_tipo_movimentacao = 5; $movCxaTO->dsc_movimentacao = 'Venda'; $movCxaTO->id_venda = $osTO->id_venda; $movCxaTO->para_receber = $osTO->vlr_total_os; $movCxaTO->dta_movimentacao = $osTO->dta_ordem_servico; $movCxaDao = new MovimentacaoCaixaDao(); if (!$movCxaDao->saveMovimentacao($movCxaTO)) { Flight::halt(500, 'erro ao inserir movimentacao'); } } Flight::halt($status_code, 'Operação realizada com sucesso!'); }