public static function saveFornecedor() { $FornecedorTO = new FornecedorTO(); $FornecedorDao = new FornecedorDao(); $FornecedorTO->nome_fornecedor = isset($_POST['nome_fornecedor']) ? $_POST['nome_fornecedor'] : ''; $FornecedorTO->id_empreendimento = isset($_POST['id_empreendimento']) ? $_POST['id_empreendimento'] : ''; $validator = new DataValidator(); $validator->set_msg('O nome do fornecedor é obrigatório')->set('nome_fornecedor', $FornecedorTO->nome_fornecedor)->is_required(); $validator->set_msg('o codigo do empreendimento é obrigatório')->set('id_empreendimento', $FornecedorTO->id_empreendimento)->is_num(); if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } if ($FornecedorDao->saveFornecedor($FornecedorTO)) { Flight::halt(201); } else { Flight::halt(500, 'erro ao inserir Fornecedor'); } }
public static function deleteFornecedor($id) { $FornecedorDao = new FornecedorDao(); if (is_numeric($id)) { if ($FornecedorDao->deleteFornecedor($id)) { Flight::halt(200, ''); } else { Flight::halt(500, 'erro ao excluir'); } } else { Flight::halt(406, 'parametro recusado'); } }
public static function getPagamentosAgenda() { $FornecedorDao = new FornecedorDao(); $id_empreendimento = $_GET['id_empreendimento']; $first_date = $_GET['start']; $last_date = $_GET['end']; $agenda = $FornecedorDao->getPagamentosAgenda($id_empreendimento, $first_date, $last_date); if ($agenda) { Flight::json($agenda); } else { Flight::halt(404, 'Não há resultado para a busca'); } }
public static function saveEmpreendimento() { date_default_timezone_set('America/Sao_Paulo'); // Preparando objetos $EmpreendimentoTO = new EmpreendimentoTO(); $EmpreendimentoTO->nome_empreendimento = isset($_POST['nome_empreendimento']) ? $_POST['nome_empreendimento'] : ''; $EmpreendimentoTO->flg_teste = isset($_POST['flg_teste']) && ((int) $_POST['flg_teste'] == 1 || (int) $_POST['flg_teste'] == 0) ? (int) $_POST['flg_teste'] : NULL; $EmpreendimentoTO->qtd_dias_teste = isset($_POST['qtd_dias_teste']) ? $_POST['qtd_dias_teste'] : NULL; $EmpreendimentoTO->dta_cadastro = date('Y-m-d H:i:s'); $EmpreendimentoTO->num_cnpj = isset($_POST['num_cnpj']) ? $_POST['num_cnpj'] : ''; $EmpreendimentoTO->num_inscricao_estadual = isset($_POST['num_inscricao_estadual']) ? $_POST['num_inscricao_estadual'] : ''; $EmpreendimentoTO->nme_razao_social = isset($_POST['nme_razao_social']) ? $_POST['nme_razao_social'] : ''; $EmpreendimentoTO->nme_fantasia = isset($_POST['nme_fantasia']) ? $_POST['nme_fantasia'] : ''; $EmpreendimentoTO->nme_logradouro = isset($_POST['nme_logradouro']) ? $_POST['nme_logradouro'] : ''; $EmpreendimentoTO->num_logradouro = isset($_POST['num_logradouro']) ? $_POST['num_logradouro'] : ''; $EmpreendimentoTO->nme_bairro_logradouro = isset($_POST['nme_bairro_logradouro']) ? $_POST['nme_bairro_logradouro'] : ''; $EmpreendimentoTO->cod_cidade = isset($_POST['cod_cidade']) ? $_POST['cod_cidade'] : NULL; $EmpreendimentoTO->cod_estado = isset($_POST['cod_estado']) ? $_POST['cod_estado'] : NULL; $EmpreendimentoTO->cod_regime_tributario = isset($_POST['cod_regime_tributario']) && is_numeric($_POST["cod_regime_tributario"]) ? $_POST['cod_regime_tributario'] : NULL; $EmpreendimentoTO->cod_regime_pis_cofins = isset($_POST['cod_regime_pis_cofins']) && is_numeric($_POST["cod_regime_pis_cofins"]) ? $_POST['cod_regime_pis_cofins'] : NULL; $EmpreendimentoTO->cod_tipo_empresa = isset($_POST['cod_tipo_empresa']) && is_numeric($_POST["cod_tipo_empresa"]) ? $_POST['cod_tipo_empresa'] : NULL; $EmpreendimentoTO->flg_contribuinte_icms = isset($_POST['flg_contribuinte_icms']) ? (int) $_POST['flg_contribuinte_icms'] : 0; $EmpreendimentoTO->flg_contribuinte_ipi = isset($_POST['flg_contribuinte_ipi']) ? (int) $_POST['flg_contribuinte_ipi'] : 0; $EmpreendimentoTO->cod_zoneamento = isset($_POST['cod_zoneamento']) && is_numeric($_POST["cod_zoneamento"]) ? $_POST['cod_zoneamento'] : NULL; $EmpreendimentoTO->num_percentual_credito_simples = isset($_POST['num_percentual_credito_simples']) && is_numeric($_POST["num_percentual_credito_simples"]) ? $_POST['num_percentual_credito_simples'] : NULL; $EmpreendimentoTO->num_cep = isset($_POST['num_cep']) ? $_POST['num_cep'] : NULL; $EmpreendimentoTO->num_inscricao_estadual_st = isset($_POST['num_inscricao_estadual_st']) ? $_POST['num_inscricao_estadual_st'] : NULL; $UsuarioEmpreendimentoTO = new UsuarioEmpreendimentoTO(); $UsuarioEmpreendimentoTO->id_usuario = isset($_POST['id_usuario']) ? $_POST['id_usuario'] : ''; $regime_especial = isset($_POST['regime_especial']) ? $_POST['regime_especial'] : array(); // Validação de campos obrigatórios $validator = new DataValidator(); $validator->set_msg('O nome do Empreendimento é obrigatório')->set('nome_empreendimento', $EmpreendimentoTO->nome_empreendimento)->is_required(); $validator->set_msg('O ID do usuario é obrigatório')->set('id_usuario', $UsuarioEmpreendimentoTO->id_usuario)->is_required(); if ($EmpreendimentoTO->flg_teste == 1) { $validator->set_msg('A quantidade de dias para teste é obrigatória')->set('qtd_dias_teste', $EmpreendimentoTO->qtd_dias_teste)->is_required()->set_msg('Este campo é obrigatóriamente numérico')->is_num()->set_msg('Este campo deve ser obrigatóriamente maior que 0 (zero)')->min_value(1, true); } else { $EmpreendimentoTO->qtd_dias_teste = null; } if (!$validator->validate()) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send(); return; } try { $EmpreendimentoDao = new EmpreendimentoDao(); $last_id_empreendimento = $EmpreendimentoDao->saveEmpreendimento($EmpreendimentoTO); if (!$last_id_empreendimento) { Flight::halt(500, 'erro ao salvar empreendimento'); } else { $RegimeEspecialDao = new RegimeEspecialDao(); $RegimeEspecialDao->saveRegimeEmpreendimento($regime_especial, $last_id_empreendimento); $arrConfigs = array(); $arrConfigs['id_plano_fechamento_caixa'] = "-1"; $arrConfigs['id_plano_caixa'] = "-1"; $arrConfigs['id_fornecedor_movimentacao_caixa'] = "-1"; $arrConfigs['id_cliente_movimentacao_caixa'] = "-1"; $arrConfigs['path_logo_rel'] = "-1"; $arrConfigs['id_produto_debito_anterior_cliente'] = "-1"; $arrConfigs['id_conta_bancaria_padrao_fechamento_automatico'] = "-1"; $arrConfigs['id_usuario_venda_vitrine'] = "-1"; $arrConfigs['time_zone'] = "America/Sao_Paulo"; // salvar id_cliente_movimentacao_caixa = CLIENTE LOJA FÍSICA $cliMovCaixaTO = new ClienteTO(); $cliMovCaixaTO->nome = "CLIENTE LOJA FÍSICA"; $cliMovCaixaTO->id_perfil = 6; $cliMovCaixaTO->id_empreendimento = $last_id_empreendimento; $cliMovCaixaDao = new ClienteDao(); $last_id_cliMovCaixa = $cliMovCaixaDao->saveCliente($cliMovCaixaTO); if (!$last_id_cliMovCaixa) { Flight::halt(500, 'erro ao criar [CLIENTE LOJA FÍSICA] padrão para o empreendimento [$last_id_empreendimento]'); } $UsuarioEmpreendimentoTO->id_usuario = $last_id_cliMovCaixa; $UsuarioEmpreendimentoTO->id_empreendimento = $last_id_empreendimento; if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) { Flight::halt(500, 'erro ao associar [CLIENTE LOJA FÍSICA] ao empreendimento'); } $arrConfigs['id_cliente_movimentacao_caixa'] = $last_id_cliMovCaixa; // salvar id_usuario_venda_vitrine = CLIENTE LOJA VIRTUAL $cliVenVitrineTO = new ClienteTO(); $cliVenVitrineTO->nome = "CLIENTE LOJA VIRTUAL"; $cliVenVitrineTO->id_perfil = 6; $cliVenVitrineTO->id_empreendimento = $last_id_empreendimento; $cliVenVitrineDao = new ClienteDao(); $last_id_cliVenVitrine = $cliVenVitrineDao->saveCliente($cliVenVitrineTO); if (!$last_id_cliVenVitrine) { Flight::halt(500, 'erro ao criar [CLIENTE LOJA VIRTUAL] padrão para o empreendimento [$last_id_empreendimento]'); } $UsuarioEmpreendimentoTO->id_usuario = $last_id_cliVenVitrine; $UsuarioEmpreendimentoTO->id_empreendimento = $last_id_empreendimento; if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) { Flight::halt(500, 'erro ao associar [CLIENTE LOJA VIRTUAL] ao empreendimento'); } $arrConfigs['id_usuario_venda_vitrine'] = $last_id_cliVenVitrine; // salvar id_fornecedor_movimentacao_caixa = CLIENTE LOJA FÍSICA $forMovCaixaTO = new FornecedorTO(); $forMovCaixaTO->nome_fornecedor = "FORNECEDOR MOVIMENTACÃO DE CAIXA "; $forMovCaixaTO->id_empreendimento = $last_id_empreendimento; $forMovCaixaDao = new FornecedorDao(); $last_id_forMovCaixa = $forMovCaixaDao->saveFornecedor($forMovCaixaTO); if (!$last_id_forMovCaixa) { Flight::halt(500, 'erro ao criar [CLIENTE LOJA VIRTUAL] padrão para o empreendimento [$last_id_empreendimento]'); } $arrConfigs['id_fornecedor_movimentacao_caixa'] = $last_id_forMovCaixa; // id_produto_debito_anterior_cliente = DÉBITO ANTERIOR $prodDebAnteriorTO = new ProdutoTO(); $prodDebAnteriorTO->nome = "DÉBITO ANTERIOR"; $prodDebAnteriorDao = new ProdutoDao(); $last_id_prodDebAnterior = $prodDebAnteriorDao->saveProduto($prodDebAnteriorTO); if (!$last_id_prodDebAnterior) { Flight::halt(500, 'erro ao criar [DÉBITO ANTERIOR] padrão para o empreendimento [$last_id_empreendimento]'); } $ProdutoEmpreendimentoTO = new ProdutoEmpreendimentoTO(); $ProdutoEmpreendimentoTO->id_produto = $last_id_prodDebAnterior; $ProdutoEmpreendimentoTO->id_empreendimento = $last_id_empreendimento; if (!$prodDebAnteriorDao->produtoEmpreendimento($ProdutoEmpreendimentoTO)) { Flight::halt(500, 'Erro ao associar o produto [DÉBITO ANTERIOR] o id_empreendimento'); } $arrConfigs['id_produto_debito_anterior_cliente'] = $last_id_prodDebAnterior; // id_conta_bancaria_padrao_fechamento_automatico = CAIXA INTERNO $ContaBancariaTO = new ContaBancariaTO(); $ContaBancariaDao = new ContaBancariaDao(); $ContaBancariaTO->dsc_conta_bancaria = 'Caixa interno'; $ContaBancariaTO->id_tipo_conta = 3; $ContaBancariaTO->id_empreendimento = $last_id_empreendimento; $ContaBancariaTO->id_banco = 104; $lastIdContaBancaria = $ContaBancariaDao->saveConta($ContaBancariaTO); if (!$lastIdContaBancaria) { Flight::halt(500, 'erro ao criar conta [CAIXA INTERNO] padrão para fechamento de caixa'); } $arrConfigs['id_conta_bancaria_padrao_fechamento_automatico'] = $lastIdContaBancaria; //Cadastrando Plano de contas if (!$EmpreendimentoDao->PlanoContaEmpreendimento($last_id_empreendimento)) { Flight::halt(500, 'erro ao criar Plano de contas'); } $arrConfigs['id_plano_caixa'] = $EmpreendimentoDao->getIdPlanoCaixa($last_id_empreendimento); $arrConfigs['id_plano_fechamento_caixa'] = $EmpreendimentoDao->getIdPlanoFechamentoCaixa($last_id_empreendimento); //Cadastrando cores if (!$EmpreendimentoDao->InsertCores($last_id_empreendimento)) { Flight::halt(500, 'erro ao criar cores'); } //Cadastrando chave de configurações foreach ($arrConfigs as $key => $value) { $configDao = new ConfiguracaoDao(); if (!$configDao->saveKey($key, $value, $last_id_empreendimento)) { Flight::halt(500, 'erro ao criar [$key][$value] padrão para o empreendimento [$last_id_empreendimento]'); die; } } $empreendimento_usuario = array(array('id_usuario' => 222, 'id_empreendimento' => $last_id_empreendimento), array('id_usuario' => 498, 'id_empreendimento' => $last_id_empreendimento)); foreach ($empreendimento_usuario as $key => $value) { $UsuarioEmpreendimentoTO->id_empreendimento = $value['id_empreendimento']; $UsuarioEmpreendimentoTO->id_usuario = $value['id_usuario']; if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) { Flight::halt(500, 'erro ao vincular usuarios ao empreendimento'); } } Flight::halt(201); } } catch (Exception $e) { Flight::halt(500, $e->getMessage()); } }
public function getProdutosPedido($offset, $limit, $busca) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $id_empreendimento = null; if (array_key_exists('tpe->id_empreendimento', $busca)) { $id_empreendimento = $busca['tpe->id_empreendimento']; } if (!array_key_exists('pro->flg_excluido', $busca)) { $busca['(pro->flg_excluido']['exp'] = '=0 OR pro.flg_excluido IS NULL)'; } $sql = "SELECT DISTINCT\n\t\t\t\t\tpro.id as id_produto,\n\t\t\t\t\tpro.*,\n\t\t\t\t\tpro.nome AS nome_produto, \n\t\t\t\t\ttcp.nome_cor AS nome_cor ,\n\t\t\t\t\ttt.nome_tamanho AS nome_tamanho,\n\t\t\t\t\tROUND(( ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0) )) - ( ( ifnull(tpp.vlr_custo,2) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0) )) * ifnull(tpp.perc_desconto_compra,0) ) ,2) AS vlr_custo_real,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_atacado,0)),2) AS vlr_venda_atacado,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_intermediario,0)),2) AS vlr_venda_intermediario,\n\t\t\t\t\tROUND(ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) + (ROUND((ifnull(tpp.vlr_custo,0) + (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_imposto_compra,0))) - (ifnull(tpp.vlr_custo,0) * ifnull(tpp.perc_desconto_compra,0)),2) * ifnull(perc_venda_varejo,0)),2) AS vlr_venda_varejo,\n\t\t\t\t\t\n\t\t\t\t\tfab.nome_fabricante,\n\t\t\t\t\ttpp.vlr_custo,\n\t\t\t\t\ttpp.perc_imposto_compra,\n\t\t\t\t\ttpp.perc_desconto_compra,\n\t\t\t\t\ttpp.perc_venda_atacado,\n\t\t\t\t\ttpp.perc_venda_intermediario,\n\t\t\t\t\ttpp.perc_venda_varejo,\n\t\t\t\t\ttpp.dta_ultima_atualizacao,\n\t\t\t\t\tnull AS qtd,\n\t\t\t\tif(tcep.nome_campo = 'flg_tira','tira','acessorio') AS tipo_produto\n\t\t\t\tFROM tbl_produtos \t\t\t\t\t\tAS pro\n\t\t\t\tLEFT JOIN tbl_fabricante \t\t\t\tAS fab ON pro.id_fabricante = fab.id\n\t\t\t\tLEFT JOIN tbl_produto_empreendimento \tAS tpe ON tpe.id_produto = pro.id\n\t\t\t\tLEFT JOIN tbl_preco_produto \t\t\tAS tpp ON (tpp.id_produto = pro.id AND tpe.id_empreendimento = tpp.id_empreendimento)\n\t\t\t\tLEFT JOIN tbl_cor_produto AS tcp ON tcp.id = pro.id_cor \n\t\t\t\tLEFT JOIN tbl_tamanho AS tt ON tt.id = pro.id_tamanho\n\t\t\t\tLEFT JOIN tbl_valor_campo_extra_produto AS tvcep ON pro.id = tvcep.id_produto\n\t\t\t\tLEFT JOIN tbl_campo_extra_produto AS tcep ON tvcep.id_campo = tcep.id\n\t\t\t\tLEFT JOIN tbl_estoque \t\t\t\t\tAS est ON est.id_produto = pro.id "; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where; } //WHERE (tcep.nome_campo IN ('flg_tira','flg_tira_piercing') AND tvcep.valor_campo = '1') $sql .= " GROUP BY pro.id "; $sql .= " "; if ($limit > 0) { $pag = $offset / $limit + 1; $Paginacao = new PaginacaoController($sql); $Paginacao->num_paginas = 10; $Paginacao->resultados_pagina = $limit; $Paginacao->paginarResultado($pag); $links_paginacao = $Paginacao->paginasDisponiveis($pag); $sql = $Paginacao->_sql_paginacao; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $FornecedorDao = new FornecedorDao(); $EstoqueDao = new EstoqueDao(); $saida['produtos'] = $select->fetchAll(PDO::FETCH_ASSOC); foreach ($saida['produtos'] as $key => $value) { $vlr_custo = (double) $value['vlr_custo_real']; $perc_venda_atacado = (double) $value['perc_venda_atacado']; $perc_venda_intermediario = (double) $value['perc_venda_intermediario']; $perc_venda_varejo = (double) $value['perc_venda_varejo']; $saida['produtos'][$key]['id_produto'] = (int) $saida['produtos'][$key]['id_produto']; $saida['produtos'][$key]['qtd_minima_estoque'] = (int) $saida['produtos'][$key]['qtd_minima_estoque']; $saida['produtos'][$key]['vlr_custo_real'] = (double) $saida['produtos'][$key]['vlr_custo_real']; $saida['produtos'][$key]['vlr_custo'] = (double) $saida['produtos'][$key]['vlr_custo']; $saida['produtos'][$key]['vlr_venda_atacado'] = $vlr_custo + $vlr_custo * $perc_venda_atacado; $saida['produtos'][$key]['vlr_venda_intermediario'] = $vlr_custo + $vlr_custo * $perc_venda_intermediario; $saida['produtos'][$key]['vlr_venda_varejo'] = $vlr_custo + $vlr_custo * $perc_venda_varejo; $saida['produtos'][$key]['perc_imposto_compra'] = (double) $saida['produtos'][$key]['perc_imposto_compra']; $saida['produtos'][$key]['perc_desconto_compra'] = (double) $saida['produtos'][$key]['perc_desconto_compra']; $saida['produtos'][$key]['perc_venda_atacado'] = (double) $saida['produtos'][$key]['perc_venda_atacado']; $saida['produtos'][$key]['perc_venda_intermediario'] = (double) $saida['produtos'][$key]['perc_venda_intermediario']; $saida['produtos'][$key]['perc_venda_varejo'] = (double) $saida['produtos'][$key]['perc_venda_varejo']; if (!is_null($id_empreendimento)) { $saida['produtos'][$key]['qtd_item'] = $EstoqueDao->getQtdProduto($id_empreendimento, $value['id_produto'], null, null); } $saida['produtos'][$key]['fornecedores'] = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $value['id'])); } if (isset($links_paginacao)) { return array("tiras" => $saida['produtos'], "paginacao" => $links_paginacao); } else { return $saida['produtos']; } } else { return false; } } else { return false; } }
public static function requestDeleteFornecedor() { try { $fornecedor = $_POST['fornecedor']; $id_empreendimento = $_POST['id_empreendimento']; $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop'; $ReferenciaIntegracaoTO->tabela = 'tbl_fornecedores'; $ReferenciaIntegracaoTO->id_item_referencia = $fornecedor['id']; $ReferenciaIntegracaoTO->tipo = 'fornecedor'; $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento; $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true); if ($referencia) { $FornecedorDao = new FornecedorDao(); if (!$FornecedorDao->deleteFornecedor($referencia['id_item'])) { throw new Exception('Erro ao deletar fornecedor', 1); } $obj = new stdClass(); $obj->flg_excluido = 1; $ReferenciaIntegracaoDao->updateRef($obj, 'id=' . $referencia['id']); } else { throw new Exception('Não existe uma referencia para o fornecedor #' . $fornecedor['id'], 1); } } catch (Exception $e) { $log = new KLogger("logs/logErrorPrestaShop.txt", KLogger::DEBUG); $log->LogError($e->getMessage() . ' - line:' . $e->getLine()); $log->LogDebug(json_encode($_POST)); $log->LogJunp(); Flight::halt(500, $e->getMessage()); } }
public function requestsaveProdutoFornecedores($id_item, $id_item_referencia, $id_empreendimento, $arr) { $FornecedorDao = new FornecedorDao(); $ProdutoDao = new ProdutoDao(); $ProdutoFornecedorDao = new ProdutoFornecedorDao(); $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $fornecedores = $FornecedorDao->getFornecedoresByProduto(array('prd.id' => $id_item)); $fornecedores = $fornecedores ? $fornecedores : array(); $ids = array(); $arr = is_array($arr) ? $arr : array(); foreach ($arr as $key => $value) { $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop'; $ReferenciaIntegracaoTO->tabela = 'tbl_fornecedores'; $ReferenciaIntegracaoTO->id_item_referencia = $value; $ReferenciaIntegracaoTO->tipo = 'fornecedor'; $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento; $referencia = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true); if ($referencia) { $ids[] = $referencia['id_item']; $find = getArrayINarray('id_fornecedor', $referencia['id_item'], $fornecedores); if ($find == false) { $ProdutoFornecedorTO = new ProdutoFornecedorTO(); $ProdutoFornecedorTO->id_produto = $id_item; $ProdutoFornecedorTO->id_fornecedor = $referencia['id_item']; if (!$ProdutoDao->fornecedorProduto($ProdutoFornecedorTO)) { throw new Exception('erro ao vincular fornecedoor ao enpreendimento ', 1); } } } } foreach ($fornecedores as $value) { if (!in_array($value['id_fornecedor'], $ids)) { $ProdutoFornecedorDao->deleteItem('id=' . $value['id_produto_fornecedor']); } } }
public static function save($isIndividual) { $ConfiguracaoDao = new ConfiguracaoDao(); if ($isIndividual === "true") { if ($ConfiguracaoDao->existsKey($_POST['nome'], $_POST['id_empreendimento'])) { if (!$ConfiguracaoDao->updateKey($_POST['nome'], $_POST['valor'], $_POST['id_empreendimento'])) { Flight::halt(500, 'erro ao atualizar chave de configuração'); } } else { if (!$ConfiguracaoDao->saveKey($_POST['nome'], $_POST['valor'], $_POST['id_empreendimento'])) { Flight::halt(500, 'erro ao cadastrar chave de configuração'); } } } else { $chaves = isset($_POST['chaves']) ? $_POST['chaves'] : null; if ($chaves == null) { Flight::halt(406); } $id_empreendimento = $chaves[0]['id_empreendimento']; foreach ($chaves as $key => $value) { $nome = isset($value['nome']) ? $value['nome'] : NULL; $valor = isset($value['valor']) ? $value['valor'] : NULL; $id_empreendimento = isset($value['id_empreendimento']) ? $value['id_empreendimento'] : NULL; if ($nome === "id_plano_caixa") { $cfg = $ConfiguracaoDao->getConfiguracoes($id_empreendimento, "id_plano_caixa"); if ($cfg && $cfg != null) { $pgtoClienteDao = new PagamentoClienteDao(); $pgtoClienteDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_caixa'], $valor); $pgtoFornecedorDao = new PagamentoFornecedorDao(); $pgtoFornecedorDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_caixa'], $valor); } } if ($nome === "id_plano_fechamento_caixa") { $cfg = $ConfiguracaoDao->getConfiguracoes($id_empreendimento, "id_plano_fechamento_caixa"); if ($cfg && $cfg != null) { $pgtoClienteDao = new PagamentoClienteDao(); $pgtoClienteDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_fechamento_caixa'], $valor); $pgtoFornecedorDao = new PagamentoFornecedorDao(); $pgtoFornecedorDao->updatePlanoContaPagamento($id_empreendimento, $cfg['id_plano_fechamento_caixa'], $valor); } } if ($ConfiguracaoDao->existsKey($nome, $value['id_empreendimento'])) { if (!$ConfiguracaoDao->updateKey($nome, $valor, $id_empreendimento)) { Flight::halt(500, 'erro ao atualizar chave de configuração'); } } else { if (!$ConfiguracaoDao->saveKey($nome, $valor, $id_empreendimento)) { Flight::halt(500, 'erro ao cadastrar chave de configuração'); } } } if (!$ConfiguracaoDao->existsKey('id_fornecedor_movimentacao_caixa', $value['id_empreendimento'])) { $FornecedorTO = new FornecedorTO(); $FornecedorDao = new FornecedorDao(); $FornecedorTO->nome_fornecedor = 'fornecedor de movimentação de caixa'; $FornecedorTO->id_empreendimento = $value['id_empreendimento']; $id_fornecedor = $FornecedorDao->saveFornecedor($FornecedorTO); if ($id_fornecedor) { if (!$ConfiguracaoDao->saveKey('id_fornecedor_movimentacao_caixa', $id_fornecedor, $value['id_empreendimento'])) { Flight::halt(500, 'erro ao cadastrar chave de movimentação'); } } else { Flight::halt(500, 'erro ao inserir Fornecedor de movimentação'); } } if (!$ConfiguracaoDao->existsKey('id_cliente_movimentacao_caixa', $value['id_empreendimento'])) { $ClienteTO = new ClienteTO(); $ClienteDao = new ClienteDao(); $ClienteTO->nome = 'cliente de movimentação de caixa'; $id_cliente = $ClienteDao->saveCliente($ClienteTO); if (!$id_cliente) { Flight::halt(500, 'erro ao inserir cliente de movimentação'); } $EmpreendimentoDao = new EmpreendimentoDao(); $UsuarioEmpreendimentoTO = new UsuarioEmpreendimentoTO(); $UsuarioEmpreendimentoTO->id_usuario = $id_cliente; $UsuarioEmpreendimentoTO->id_empreendimento = $value['id_empreendimento']; if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) { Flight::halt(500, 'erro ao lincar usuario ao empreendimento'); } if (!$ConfiguracaoDao->saveKey('id_cliente_movimentacao_caixa', $id_cliente, $value['id_empreendimento'])) { Flight::halt(500, 'erro ao cadastrar chave de movimentação'); } } } Flight::halt(201); }
public static function importarNFe() { try { // Iniciando uma transação no banco de dados, caso já não acha uma ativa $conn = Conexao::getInstance(); if (!$conn->inTransaction()) { $conn->beginTransaction(); } $filename = ''; $xml = null; // Verifica se o arquivo XML foi carregado if (isset($_FILES['arquivo-nota'])) { $filename = $_FILES['arquivo-nota']['tmp_name']; } else { Flight::halt(406, 'Nenhum arquivo selecionado!'); } // Carrega os dados do arquivo XML $xml = simplexml_load_file($filename); // Captura as informações de totais da NF-e $vTotalNF = (double) $xml->NFe->infNFe->total->ICMSTot->vNF; $vTotalProd = (double) $xml->NFe->infNFe->total->ICMSTot->vProd; // Calcula o % de imposto aplicado na NF-e $prcImposto = round(($vTotalNF / $vTotalProd - 1) * 100, 2); // Pequisa se fornecedor existe no BD $paramsPesquisaFornecedor = array(); $paramsPesquisaFornecedor['frn->id_empreendimento'] = $_GET['id_empreendimento']; $paramsPesquisaFornecedor['frn->num_cnpj'] = $xml->NFe->infNFe->emit->CNPJ; $fornecedorDao = new FornecedorDao(); $data['nNF'] = (string) $xml->NFe->infNFe->ide->nNF; $data['fornecedor'] = array(); $aux = $fornecedorDao->getFornecedores(null, null, $paramsPesquisaFornecedor); $data['fornecedor']['dados'] = $aux['fornecedores'][0]; $data['fornecedor']['flg_localizado'] = $data['fornecedor']['dados'] != null; // Captura a lista de itens da NF-e $itensNF = $xml->NFe->infNFe->det; // Percorre a lista de itens da NF-e produrando os mesmo no BD $data['itensBD'] = array(); foreach ($itensNF as $key => $value) { // Captura os dados do produto informados na NF-e $item = array(); $item['id_produto'] = null; $item['codigo_barra'] = !empty($value->prod->cEAN) ? (string) $value->prod->cEAN : (string) $value->prod->cEANTrib; $item['cod_ncm'] = !empty($value->prod->NCM) ? (string) $value->prod->NCM : ''; $item['dsc_unidade_medida'] = !empty($value->prod->uCom) ? (string) $value->prod->uCom : (string) $value->prod->uTrib; $item['num_cest'] = !empty($value->prod->CEST) ? (string) $value->prod->CEST : ''; $item['nome_produto'] = (string) $value->prod->xProd; $item['custo'] = (double) $value->prod->vUnCom; $item['qtd'] = (int) $value->prod->qCom; $item['imposto'] = $prcImposto; $item['vlr_imposto'] = (double) ($item['custo'] * $prcImposto) / 100; $item['flg_localizado'] = false; $item['nome_fabricante'] = ''; $item['peso'] = ''; $item['margem_atacado'] = 0; $item['margem_intermediario'] = 0; $item['margem_varejo'] = 0; if (!empty($item['codigo_barra'])) { // Pesquisa se o produto existe no BD $paramsPesquisaProduto = array(); $paramsPesquisaProduto['tpe->id_empreendimento'] = $_GET['id_empreendimento']; $paramsPesquisaProduto['pro->codigo_barra'] = $item['codigo_barra']; $produtoDao = new ProdutoDao(); $aux = $produtoDao->getProdutos(null, null, $paramsPesquisaProduto); $produto = $produtoDao->getProdutos(null, null, $paramsPesquisaProduto)['produtos'][0]; if ($produto) { // Se o produto foi localizado no BD... // Captura os dados do cadastro do produto no BD $item['id_produto'] = $produto['id_produto']; $item['nome_produto'] = $produto['nome']; $item['nome_fabricante'] = $produto['nome_fabricante']; $item['peso'] = $produto['peso']; //$item['custo'] = (($produto['vlr_custo']) ? $produto['vlr_custo'] : $item['custo']); $item['custo'] = $item['custo']; $item['margem_atacado'] = $produto['perc_venda_atacado']; $item['margem_intermediario'] = $produto['perc_venda_intermediario']; $item['margem_varejo'] = $produto['perc_venda_varejo']; $item['flg_localizado'] = true; $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoDao = new PrecoProdutoDao(); $PrecoProdutoTO->id_produto = $produto['id']; $PrecoProdutoTO->id_empreendimento = $_GET['id_empreendimento']; $PrecoProdutoTO->vlr_custo = $item['custo']; $PrecoProdutoTO->perc_imposto_compra = $item['imposto']; $PrecoProdutoTO->perc_desconto_compra = $produto['perc_desconto_compra']; $PrecoProdutoTO->perc_venda_atacado = $produto['perc_venda_atacado']; $PrecoProdutoTO->perc_venda_intermediario = $produto['perc_venda_intermediario']; $PrecoProdutoTO->perc_venda_varejo = $produto['perc_venda_varejo']; if (!$PrecoProdutoDao->atualizaPreco($PrecoProdutoTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'erro ao atualizar preço'); } } else { if (isset($_GET['flg_cpne']) && (int) $_GET['flg_cpne'] == 1) { // Se marcou para cadastrar produtos não localizados no BD... $prodTO = new ProdutoTO(); $prodTO->codigo_barra = $item['codigo_barra']; $prodTO->nome = $item['nome_produto']; $prodTO->cod_ncm = $item['cod_ncm']; $prodTO->dsc_unidade_medida = $item['dsc_unidade_medida']; $prodTO->num_cest = $item['num_cest']; $id_produto = $produtoDao->saveProduto($prodTO); // Cadastro o produto no BD if ($id_produto) { // Se o produto foi cadastrado com sucesso... $prodEmprTO = new ProdutoEmpreendimentoTO(); $prodEmprTO->id_produto = $id_produto; $prodEmprTO->id_empreendimento = $_GET['id_empreendimento']; // Associa o produto ao empreendimento if (!$produtoDao->produtoEmpreendimento($prodEmprTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Erro ao associar produto [' . $prodTO->nome . '] ao empreendimento [' . $_GET['id_empreendimento'] . ']'); } if ($data['fornecedor']['flg_localizado']) { // Se o fornecedor foi localizado no BD... $prodFornTO = new ProdutoFornecedorTO(); $prodFornTO->id_produto = (int) $id_produto; $prodFornTO->id_fornecedor = $data['fornecedor']['dados']['id']; // Associa o produto ao fornecedor if (!$produtoDao->fornecedorProduto($prodFornTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Erro ao associar produto [' . $prodTO->nome . '] ao fornecedor [' . $data['fornecedor']['dados']['nome_fornecedor'] . ']'); } } $prdProdDao = new PrecoProdutoDao(); $prcProdTO = new PrecoProdutoTO(); $prcProdTO->id_produto = (int) $id_produto; $prcProdTO->id_empreendimento = $_GET['id_empreendimento']; $prcProdTO->vlr_custo = $item['custo']; $prcProdTO->perc_imposto_compra = $item['imposto'] / 100; $prcProdTO->perc_desconto_compra = 0; $prcProdTO->perc_venda_atacado = 0; $prcProdTO->perc_venda_intermediario = 0; $prcProdTO->perc_venda_varejo = 0; //Cadastra o preço do produto e associa if (!$prdProdDao->atualizaPreco($prcProdTO)) { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'Erro ao atualizar preço do produto [' . $prodTO->nome . ']'); } $item['id_produto'] = $id_produto; $item['flg_localizado'] = true; } else { if ($conn->inTransaction()) { $conn->rollback(); } Flight::halt(500, 'erro ao cadastrar produto'); } } } } // Adiciona o item na lista de produtos $data['itensBD'][] = $item; } if ($conn->inTransaction()) { $conn->commit(); } // Exclui o arquivo XML criado temporáriamente unlink($filename); // Retorna os dados da NF-e em formato de JSON Flight::json($data); } catch (Exception $e) { if ($conn->inTransaction()) { $conn->rollback(); } jsonException($e); } }