public function exportarProdutos($id_empreendimento) { $ProdutoDao = new ProdutoDao(); $produtos = $ProdutoDao->getProdutos(null, null, array("tpe->id_empreendimento" => 1)); $produtos = $produtos['produtos']; foreach ($produtos as $key => $value) { $sql = " INSERT INTO tbl_produtos(`codigo_barra`, `nome`, `img`, `descricao`,`sabor`, `peso`) VALUES\n\t\t\t\t\t\t\t\t ('" . $value['codigo_barra'] . "','" . $value['nome'] . "','" . $value['img'] . "','" . $value['descricao'] . "','" . $value['sabor'] . "','" . $value['peso'] . "')"; $sql_prd = $this->conn->prepare($sql); $sql_prd->execute(); $last_id_produto = $this->conn->lastInsertId(); $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoDao = new PrecoProdutoDao(); $PrecoProdutoTO->id_produto = $last_id_produto; $PrecoProdutoTO->vlr_custo = $value['vlr_venda_atacado']; if (!$PrecoProdutoDao->atualizaPreco($PrecoProdutoTO)) { return false; } $ProdutoEmpreendimentoTO = new ProdutoEmpreendimentoTO(); $ProdutoEmpreendimentoTO->id_produto = $last_id_produto; $ProdutoEmpreendimentoTO->id_empreendimento = $id_empreendimento; if (!$ProdutoDao->produtoEmpreendimento($ProdutoEmpreendimentoTO)) { return false; } } return true; }
public function getEstoque($offset, $limit, $busca) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $group = false; $orderby = false; $id_deposito = null; $id_empreendimento = null; if (array_key_exists('group', $busca)) { $group = $busca['group']; unset($busca['group']); } if (array_key_exists('qtd->id_deposito', $busca)) { $id_deposito = $busca['qtd->id_deposito']; unset($busca['qtd->id_deposito']); } if (array_key_exists('emp->id_empreendimento', $busca)) { $id_empreendimento = $busca['emp->id_empreendimento']; } if (array_key_exists('orderby', $busca)) { $orderby = ' ORDER BY ' . $busca['orderby']; unset($busca['orderby']); } $sql = "SELECT\n\t\t\t\t\tpro.id,dep.id AS id_deposito,\n\t\t\t\t\tpro.nome AS nome,\n\t\t\t\t\tpro.codigo_barra,\n\t\t\t\t\tcor.nome_cor as sabor,\n\t\t\t\t\tdep.nme_deposito AS nome_deposito,\n\t\t\t\t\test.id_produto,\n\t\t\t\t\tSUM(est.qtd_item) AS qtd_item,\n\t\t\t\t\test.dta_validade,\n\t\t\t\t\tpro.flg_excluido\n\t\t\t\tFROM `tbl_estoque` AS est\n\t\t\t\tINNER JOIN `tbl_produtos` AS pro ON est.id_produto = pro.id\n\t\t\t\tLEFT JOIN tbl_cor_produto as cor on cor.id = pro.id_cor\n\t\t\t\tLEFT JOIN tbl_tamanho as tam on tam.id = pro.id_tamanho\n\t\t\t\tLEFT JOIN `tbl_fabricante` AS fab ON pro.id_fabricante = fab.id\n\t\t\t\tINNER JOIN `tbl_deposito` AS dep ON dep.id = est.id_deposito\n\t\t\t\tINNER JOIN `tbl_produto_empreendimento` AS tpe ON tpe.id_produto = pro.id"; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where . ""; } $sql .= $group ? " GROUP BY " . $group . " HAVING qtd_item > 0 AND (flg_excluido = 0 OR flg_excluido IS NULL) " : ""; $sql .= $orderby ? $orderby : " "; $sql .= " ORDER BY pro.nome ASC"; 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()) { $ProdutoDao = new ProdutoDao(); if ($select->rowCount() > 0) { $saida['produtos'] = $select->fetchAll(PDO::FETCH_ASSOC); //Flight::json($aux); //var_dump($saida['produtos']);die; foreach ($saida['produtos'] as $key => $value) { $aux = $ProdutoDao->getProdutos(null, null, array("pro.id" => $value['id_produto'])); $aux = $aux['produtos'][0]; $saida['produtos'][$key]['nome_fabricante'] = $aux['nome_fabricante']; $saida['produtos'][$key]['peso'] = $aux['peso']; $saida['produtos'][$key]['vlr_custo_real'] = $aux['vlr_custo_real']; $saida['produtos'][$key]['vlr_venda_atacado'] = $aux['vlr_venda_atacado']; $saida['produtos'][$key]['vlr_venda_intermediario'] = $aux['vlr_venda_intermediario']; $saida['produtos'][$key]['vlr_venda_varejo'] = $aux['vlr_venda_varejo']; $saida['produtos'][$key]['vlr_desconto_cliente'] = $aux['valor_desconto_cliente'] == "" ? 0 : (double) $aux['valor_desconto_cliente']; $saida['produtos'][$key]['perc_imposto_compra'] = $aux['perc_imposto_compra']; $saida['produtos'][$key]['perc_desconto_compra'] = $aux['perc_desconto_compra']; $saida['produtos'][$key]['margem_atacado'] = (double) $aux['perc_venda_atacado']; $saida['produtos'][$key]['margem_intermediario'] = (double) $aux['perc_venda_intermediario']; $saida['produtos'][$key]['margem_varejo'] = (double) $aux['perc_venda_varejo']; $saida['produtos'][$key]['vlr_custo'] = (double) $aux['vlr_custo']; } $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $saida; } else { return false; } } else { return false; } }
public function getGradeProdutosEcommerce($offset, $limit, $busca = array(), $id_produto = null) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; if (array_key_exists('grd->id_empreendimento', $busca)) { $id_empreendimento = $busca['grd->id_empreendimento']; } $sql = "SELECT grd.*,\n\t\t\t\t(SELECT ( (CASE WHEN SUM(est.qtd_item) IS NULL THEN 0 ELSE SUM(est.qtd_item) END) - ( CASE WHEN (SELECT SUM(item.qtd) FROM `tbl_vendas` AS ven INNER JOIN tbl_itens_venda AS item ON ven.id = item.id_venda WHERE venda_confirmada = 0 AND id_empreendimento = grd.id_empreendimento AND item.id_produto = prd.id) IS NULL THEN 0 ELSE (SELECT SUM(item.qtd) FROM `tbl_vendas` AS ven INNER JOIN tbl_itens_venda AS item ON ven.id = item.id_venda WHERE venda_confirmada = 0 AND id_empreendimento = grd.id_empreendimento AND item.id_produto = prd.id) END ) ) AS qtd FROM tbl_produtos\tAS prd_sub INNER JOIN tbl_estoque\tAS est ON prd_sub.id = est.id_produto INNER JOIN tbl_produto_empreendimento AS rel ON prd_sub.id = rel.id_produto WHERE rel.id_empreendimento = grd.id_empreendimento AND prd_sub.id = prd.id) AS qtd_real_estoque\n\t\t\t \tFROM `tbl_grade_produtos_ecommerce` AS grd\n\t\t\t\tINNER JOIN `tbl_produtos` AS prd ON grd.id_produto = prd.id\n\t\t\t\tLEFT JOIN `tbl_fabricante` AS fab ON prd.id_fabricante = fab.id "; if (is_numeric($id_produto)) { $busca['prd.id'] = $id_produto; } if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE "; $sql .= "" . $where; } $sql .= " GROUP BY prd.id ORDER BY fab.nome_fabricante, prd.nome "; 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; } $EstoqueDao = new EstoqueDao(); $select = $this->conn->prepare($sql); $ProdutoDao = new ProdutoDao(); if ($select->execute()) { if ($select->rowCount() > 0) { $saida['produtos'] = $select->fetchAll(PDO::FETCH_ASSOC); foreach ($saida['produtos'] as $key => $value) { $id_empreendimento = $saida['produtos'][$key]['id_empreendimento']; $aux = $ProdutoDao->getProdutos(null, null, array("pro.id" => $value['id_produto'], "tpe->id_empreendimento" => $id_empreendimento)); $aux = $aux['produtos'][0]; $saida['produtos'][$key]['nome'] = $aux['nome']; $saida['produtos'][$key]['vlr_custo_real'] = $aux['vlr_custo_real']; $saida['produtos'][$key]['vlr_venda_atacado'] = $aux['vlr_venda_atacado']; $saida['produtos'][$key]['vlr_venda_intermediario'] = $aux['vlr_venda_intermediario']; $saida['produtos'][$key]['vlr_venda_varejo'] = $aux['vlr_venda_varejo']; $saida['produtos'][$key]['vlr_desconto_cliente'] = $aux['valor_desconto_cliente'] == "" ? 0 : (double) $aux['valor_desconto_cliente']; $saida['produtos'][$key]['descricao'] = $aux['descricao']; $saida['produtos'][$key]['nome_fabricante'] = $aux['nome_fabricante']; $saida['produtos'][$key]['peso'] = $aux['peso']; $saida['produtos'][$key]['qtd_real_estoque'] = (int) $saida['produtos'][$key]['qtd_real_estoque']; //$EstoqueDao->getQtdProduto($id_empreendimento,$aux['id_produto']); if (is_file(CAMINHO_UPLOAD_IMG_PRODUTO . $aux['img'])) { $saida['produtos'][$key]['img'] = "assets/imagens/produtos/" . $aux['img']; } else { $saida['produtos'][$key]['img'] = null; } if (is_file(CAMINHO_UPLOAD_FILE_PRODUTO . $aux['nme_arquivo_nutricional'])) { $saida['produtos'][$key]['nme_arquivo_nutricional'] = "assets/arquivos/produtos/" . $aux['nme_arquivo_nutricional']; } else { $saida['produtos'][$key]['nme_arquivo_nutricional'] = null; } /*if($saida['produtos'][$key]['qtd_real_estoque'] <= 0){ unset($saida['produtos'][$key]); }*/ } if (!is_numeric($id_produto)) { $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; } else { $saida = $saida['produtos'][0]; } return $saida; } else { return false; } } else { return false; } }
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 static function getInsumos($id_produto) { $ProdutoDao = new ProdutoDao(); $produtos = $ProdutoDao->getInsumos($id_produto, $_GET); if ($produtos) { Flight::json($produtos); } else { Flight::halt(404, 'Não há resultado para a busca'); } }
require_once "banco-produto.php"; require_once "logica-usuario.php"; verificaUsuario(); $categoria = new Categoria(); $categoria->id = $_POST['categoria_id']; if (array_key_exists('usado', $_POST)) { $usado = 'true'; } else { $usado = 'false'; } $accept = array('LivroFisico', 'Ebook'); if (in_array($_POST['tipoProduto'], $accept)) { $produto = new $_POST['tipoProduto'](mysqli_real_escape_string($conexao, $_POST['nome']), $_POST['preco'], $_POST['descricao'], $categoria, $usado); $produto->isbn = $_POST['isbn']; } $produtoDao = new ProdutoDao($conexao); if ($produtoDao->insereProduto($produto)) { ?> <p class="text-success">O produto <?php echo $produto->nome; ?> , <?php echo $produto->getPreco(); ?> foi adicionado.</p> <?php } else { $msg = mysqli_error($conexao); ?> <p class="text-danger">O produto <?php echo $produto->nome;
public static function updatePedido() { $pedido_venda = $_POST['pedido_venda']; $itens = $pedido_venda['itens']; $chinelos_gerados = $pedido_venda['chinelos_gerados']; $pagamentos = isset($_POST['pagamentos']) ? $_POST['pagamentos'] : array(); $id_empreendimento = $pedido_venda['id_empreendimento']; $estampas = isset($pedido_venda['estampas']) ? $pedido_venda['estampas'] : array(); $PedidoVendaDao = new PedidoVendaDao(); $PedidoVendaTO = new PedidoVendaTO(); $ItemPedidoVendaDao = new ItemPedidoVendaDao(); $ItemPedidoVendaTO = new ItemPedidoVendaTO(); $PedidoVendaTO->id = isset($pedido_venda['id']) ? $pedido_venda['id'] : NULL; $PedidoVendaTO->id_usuario = isset($pedido_venda['id_usuario']) ? $pedido_venda['id_usuario'] : NULL; $PedidoVendaTO->id_cliente = is_numeric($pedido_venda['id_cliente']) ? $pedido_venda['id_cliente'] : NULL; $PedidoVendaTO->venda_confirmada = 0; $PedidoVendaTO->id_empreendimento = isset($pedido_venda['id_empreendimento']) ? $pedido_venda['id_empreendimento'] : ''; $PedidoVendaTO->id_status_pedido = isset($pedido_venda['id_status_pedido']) ? $pedido_venda['id_status_pedido'] : NULL; $PedidoVendaTO->observacao = isset($pedido_venda['observacao']) ? $pedido_venda['observacao'] : NULL; $PedidoVendaTO->dta_entrega = isset($pedido_venda['dta_entrega']) ? $pedido_venda['dta_entrega'] : NULL; $PedidoVendaTO->canal_venda = isset($pedido_venda['canal_venda']) ? $pedido_venda['canal_venda'] : NULL; $PedidoVendaTO->dta_venda = isset($pedido_venda['dta_venda']) ? $pedido_venda['dta_venda'] : NULL; $ItemPedidoVendaDao->delete($PedidoVendaTO->id); $PedidoVendaDao->updatePedido($PedidoVendaTO); $id_pedido_venda = $pedido_venda['id']; self::gravarMovimentacoes($pagamentos, $id_pedido_venda, $PedidoVendaTO->id_cliente, $PedidoVendaTO->id_empreendimento); $EstampaBasePedidoTO = new EstampaBasePedidoTO(); $EstampaBasePedidoDao = new EstampaBasePedidoDao(); foreach ($estampas as $key_arr => $arr) { foreach ($arr as $key_est => $estampa) { $EstampaBasePedidoTO->id_cor = $estampa['id_cor']; $EstampaBasePedidoTO->dsc_local = $estampa['dsc_local']; try { $id_estampa_base_pedido = $EstampaBasePedidoDao->saveEstampa($EstampaBasePedidoTO); $estampas[$key_arr][$key_est]['id_estampa_base_pedido'] = $id_estampa_base_pedido; } catch (ExceptionJSON $e) { $e->enviaJSON(); } } } foreach ($itens as $key => $arr) { $id_agrupamento_insumos = null; foreach ($arr as $value) { $ItemPedidoVendaTO->id_pedido_venda = $id_pedido_venda; $ItemPedidoVendaTO->id_produto = $value['id_produto']; $ItemPedidoVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemPedidoVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemPedidoVendaTO->qtd = $value['qtd']; $ItemPedidoVendaTO->valor_real_item = $value['valor_real_item']; $ItemPedidoVendaTO->vlr_custo = $value['vlr_custo']; $ItemPedidoVendaTO->perc_imposto_compra = $value['perc_imposto_compra']; $ItemPedidoVendaTO->perc_desconto_compra = $value['perc_desconto_compra']; $ItemPedidoVendaTO->perc_margem_aplicada = $value['perc_margem_aplicada']; $ItemPedidoVendaTO->tipo_produto = $value['tipo_produto']; $ItemPedidoVendaTO->id_produto_base = isset($value['id_produto_base']) && is_numeric($value['id_produto_base']) ? $value['id_produto_base'] : null; $ItemPedidoVendaTO->config_grad = $value['config_grad']; $ItemPedidoVendaTO->id_agrupamento_insumos = $id_agrupamento_insumos; $ItemPedidoVendaTO->flg_brinde = $value['flg_brinde']; $ItemPedidoVendaTO->tipo_base = isset($value['tipo_base']) ? $value['tipo_base'] : null; $ItemPedidoVendaTO->modelo_base = isset($value['modelo_base']) ? $value['modelo_base'] : null; $last_id_item = $ItemPedidoVendaDao->saveItemPedidoVenda($ItemPedidoVendaTO); $id_agrupamento_insumos = $id_agrupamento_insumos == null ? $last_id_item : $id_agrupamento_insumos; if (!$last_id_item) { Flight::halt(500, 'erro ao inserir os itens da venda'); } if ($value['tipo_produto'] == 'base' && count($estampas) > 0) { $EstampaBasePedidoItemPedidoVendaTO = new EstampaBasePedidoItemPedidoVendaTO(); $EstampaBasePedidoItemPedidoVendaDao = new EstampaBasePedidoItemPedidoVendaDao(); $key_estampa = (int) $value['flg_brinde'] == 1 ? 'brinde-' . $value['config_grad'] : $value['config_grad']; foreach ($estampas[$key_estampa] as $estampa) { $EstampaBasePedidoItemPedidoVendaTO->id_estampa_base_pedido = $estampa['id_estampa_base_pedido']; $EstampaBasePedidoItemPedidoVendaTO->id_item_pedido_venda = $last_id_item; try { $EstampaBasePedidoItemPedidoVendaDao->save($EstampaBasePedidoItemPedidoVendaTO); } catch (ExceptionJSON $e) { $e->enviaJSON(); } } } } $ItemPedidoVendaDao->updateAgrupamento($id_agrupamento_insumos); } // gravando pedido com chinelos gerados $ProdutoTO = new ProdutoTO(); $ProdutoDao = new ProdutoDao(); $ProdutoEmpreendimentoTO = new ProdutoEmpreendimentoTO(); $EstoqueDao = new EstoqueDao(); $EstoqueTO = new EstoqueTO(); foreach ($chinelos_gerados as $key => $value) { $ProdutoTO->nome = $value['nome']; $ProdutoTO->flg_excluido = 1; $last_id_produto = $ProdutoDao->saveProduto($ProdutoTO); $ProdutoEmpreendimentoTO->id_produto = $last_id_produto; $ProdutoEmpreendimentoTO->id_empreendimento = $id_empreendimento; if (!$ProdutoDao->produtoEmpreendimento($ProdutoEmpreendimentoTO)) { Flight::halt(500, 'Erro ao cadastrar o id_empreendimento'); } $chinelos_gerados[$key]['id_produto'] = $last_id_produto; } $PedidoVendaTO->id = isset($pedido_venda['id_pedido_gerado']) ? $pedido_venda['id_pedido_gerado'] : NULL; $PedidoVendaTO->id_usuario = isset($pedido_venda['id_usuario']) ? $pedido_venda['id_usuario'] : NULL; $PedidoVendaTO->id_cliente = is_numeric($pedido_venda['id_cliente']) ? $pedido_venda['id_cliente'] : NULL; $PedidoVendaTO->venda_confirmada = isset($pedido_venda['venda_confirmada']) ? $pedido_venda['venda_confirmada'] : NULL; $PedidoVendaTO->id_empreendimento = isset($pedido_venda['id_empreendimento']) ? $pedido_venda['id_empreendimento'] : NULL; $PedidoVendaTO->id_status_pedido = isset($pedido_venda['id_status_pedido']) ? $pedido_venda['id_status_pedido'] : 1; $PedidoVendaTO->observacao = isset($pedido_venda['observacao']) ? $pedido_venda['observacao'] : NULL; $PedidoVendaTO->id_pedido_master = $id_pedido_venda; $ItemPedidoVendaDao->delete($PedidoVendaTO->id); $PedidoVendaDao->updatePedido($PedidoVendaTO); $id_pedido_gerado = $pedido_venda['id_pedido_gerado']; foreach ($chinelos_gerados as $key => $value) { $ItemPedidoVendaTO->id_pedido_venda = $id_pedido_gerado; $ItemPedidoVendaTO->id_pedido_master = $id_pedido_venda; $ItemPedidoVendaTO->id_produto = $value['id_produto']; $ItemPedidoVendaTO->desconto_aplicado = isset($value['desconto_aplicado']) ? $value['desconto_aplicado'] : 0; $ItemPedidoVendaTO->valor_desconto = isset($value['valor_desconto']) ? $value['valor_desconto'] : 0; $ItemPedidoVendaTO->qtd = $value['qtd']; $ItemPedidoVendaTO->valor_real_item = $value['valor_real_item']; $ItemPedidoVendaTO->vlr_custo = $value['vlr_custo']; $ItemPedidoVendaTO->perc_imposto_compra = 0; $ItemPedidoVendaTO->perc_desconto_compra = 0; $ItemPedidoVendaTO->perc_margem_aplicada = $value['perc_margem_aplicada']; $ItemPedidoVendaTO->tipo_produto = null; $ItemPedidoVendaTO->id_produto_base = null; $ItemPedidoVendaTO->config_grad = null; $ItemPedidoVendaTO->id_agrupamento_insumos = null; $ItemPedidoVendaTO->flg_brinde = $value['flg_brinde']; if (!$ItemPedidoVendaDao->saveItemPedidoVenda($ItemPedidoVendaTO)) { Flight::halt(500, 'erro ao inserir os itens da venda'); } } Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('id_pedido_venda' => $id_pedido_venda)))->send(); }
<?php require_once "conecta.php"; require_once "cabecalho.php"; require_once "autoload.php"; ?> <table class="table table-striped table-bordered"> <?php $produtoDao = new ProdutoDao($conexao); $produtos = $produtoDao->listaProdutos(); foreach ($produtos as $produto) { ?> <tr> <td><?php echo $produto->nome; ?> </td> <td><?php echo $produto->getPreco(); ?> </td> <td><?php echo $produto->calculaImposto(); ?> </td> <td><?php echo $produto->calculaPrecoDeVenda(); ?> </td> <td><?php
<?php require_once "conecta.php"; require_once "cabecalho.php"; require_once "banco-produto.php"; require_once "logica-usuario.php"; require_once "autoload.php"; $id = $_POST['id']; $produto = new ProdutoDao($conexao); if ($produto->removeProduto($id)) { $_SESSION["success"] = "Produto removido com sucesso."; } else { $_SESSION["danger"] = "Erro ao remover produto."; } header("Location: produto-lista.php"); die; ?>
<?php /* * import de classes */ require_once '../../lib/jqsImports/JqsAutoImports.php'; $JqsAutoImports = new JqsAutoImports(); $id = $_GET['id']; $produto = new ProdutoDao(); $est = $produto->localizarProduto($id); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Preciata</title> <link href="../assets/bootstrap-3.3.6-dist/css/bootstrap.min.css" rel="stylesheet" /> <link href="../assets/estilo_custom.css" rel="stylesheet" /> <script src="//code.jquery.com/jquery-1.12.0.min.js"></script> <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script type="text/javascript" src="../assets/scripts/produtos.js"></script>
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 calculaNfe() { $id_empreendimento = $_POST['id_empreendimento']; $id_venda = $_POST['id_venda']; $cod_operacao = $_POST['cod_operacao']; $VendaDao = new VendaDao(); $UsuarioDao = new UsuarioDao(); $ItemVendaDao = new ItemVendaDao(); $EmpreendimentoDao = new EmpreendimentoDao(); $OperacaoDao = new OperacaoDao(); $ProdutoDao = new ProdutoDao(); $EstadoDao = new EstadoDao(); $CidadeDao = new CidadeDao(); $ConfiguracaoDao = new ConfiguracaoDao(); $SerieDocumentoFiscalDao = new SerieDocumentoFiscalDao(); /** * Carregando dados da venda **/ $venda = $VendaDao->getVenda($id_venda); $venda['itens'] = $ItemVendaDao->getItens($id_venda); $venda['cliente'] = $UsuarioDao->getUsuario($id_empreendimento, $venda['id_cliente']); if (isset($venda['cliente']['id_cidade']) && !empty($venda['cliente']['id_cidade'])) { $cidadeDestinatario = $CidadeDao->getCidade($venda['cliente']['id_cidade']); $estadoDestinatario = $EstadoDao->getEstado($venda['cliente']['id_estado']); } else { Flight::halt(406, json_encode(array('mensagem' => 'Estado/Cidade não informado no cadastro do cliente!'))); } $venda['empreendimento'] = $EmpreendimentoDao->getEmpreendimentoByIdAndUF($id_empreendimento, $estadoDestinatario['uf']); $cidadeEmitente = $CidadeDao->getCidade($venda['empreendimento']['cod_cidade']); $estadoEmitente = $EstadoDao->getEstado($venda['empreendimento']['cod_estado']); $venda['operacao'] = $OperacaoDao->getOperacao($cod_operacao); $configuracoes = $ConfiguracaoDao->getConfiguracoes($id_empreendimento); if (!isset($configuracoes['id_serie_padrao_nfe'])) { $erros = array("mensagem" => "Configuração \"Modelo Documento/Série Padrão p/ NF-e\" não encontrada"); Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($erros))->send(); } $SerieDocumentoFiscal = $SerieDocumentoFiscalDao->getByID($configuracoes['id_serie_padrao_nfe']); $dados_emissao = new stdClass(); $dados_emissao->dsc_operacao = $venda['operacao']['dsc_operacao']; $dados_emissao->serie_documento_fiscal = $SerieDocumentoFiscal['serie_documento_fiscal']; $dados_emissao->num_documento_fiscal = $SerieDocumentoFiscal['num_ultimo_documento_fiscal']++; $dados_emissao->cod_venda = $id_venda; $dados_emissao->cod_empreendimento = $id_empreendimento; $dados_emissao->nme_modelo_documento = $SerieDocumentoFiscal['dsc_modelo_documento_fiscal']; /** * Configurando os dados do emitente **/ $emitente = new MotorFiscal\Emitente(); $emitente->identificador = $venda['empreendimento']['id']; $emitente->CNPJ = $venda['empreendimento']['num_cnpj']; $emitente->xNome = $venda['empreendimento']['nme_razao_social']; $emitente->xFant = $venda['empreendimento']['nme_fantasia']; $emitente->IE = $venda['empreendimento']['num_inscricao_estadual']; $emitente->IEST = $venda['empreendimento']['num_inscricao_estadual_st']; $emitente->CRT = $venda['empreendimento']['num_regime_tributario']; $emitente->PercCreditoSimples = $venda['empreendimento']['num_percentual_credito_simples']; $emitente->CEP = $venda['empreendimento']['num_cep']; $emitente->xLgr = $venda['empreendimento']['nme_logradouro']; $emitente->nro = $venda['empreendimento']['num_logradouro']; $emitente->xBairro = $venda['empreendimento']['nme_bairro_logradouro']; $emitente->cMun = $cidadeEmitente['nome']; $emitente->UF = $estadoEmitente['uf']; $emitente->id_cidade = $cidadeEmitente['id']; $emitente->id_estado = $estadoEmitente['id']; $emitente->ContribuinteIPI = $venda['empreendimento']['flg_contribuinte_ipi']; $emitente->num_versao_ibpt = $configuracoes['num_versao_ibpt']; /** * Configurando os dados do destinatário **/ $destinatario = new MotorFiscal\Destinatario(); $destinatario->identificador = $venda['cliente']['id']; $destinatario->CPF = $venda['cliente']['cpf']; $destinatario->idEstrangeiro = $venda['cliente']['num_registro_estrangeiro']; $destinatario->xNome = $venda['cliente']['nome']; $destinatario->email = $venda['cliente']['email']; $destinatario->tipo_cadastro = $venda['cliente']['tipo_cadastro']; $destinatario->CEP = $venda['cliente']['cep']; $destinatario->xLgr = $venda['cliente']['endereco']; $destinatario->nro = $venda['cliente']['numero']; $destinatario->xBairro = $venda['cliente']['bairro']; $destinatario->cMun = $cidadeDestinatario['nome']; $destinatario->UF = $estadoDestinatario['uf']; $destinatario->id_cidade = $cidadeDestinatario['id']; $destinatario->id_estado = $estadoDestinatario['id']; if ($venda['cliente']['tipo_cadastro'] === "pj") { $destinatario->CNPJ = $venda['cliente']['cnpj']; $destinatario->IE = $venda['cliente']['inscricao_estadual']; $destinatario->IEST = $venda['cliente']['inscricao_estadual_st']; $destinatario->IM = $venda['cliente']['num_inscricao_municipal']; $destinatario->xFant = $venda['cliente']['nome_fantasia']; if ((int) $venda['cliente']['flg_contribuinte_icms'] === 1) { // Se for contribuinte de ICMS if ((int) $venda['cliente']['flg_isento_inscricao_estadual'] === 1) { // Se for contribuinte de ICMS ISENTO de incrição $destinatario->indIEDest = 2; } else { $destinatario->indIEDest = 1; } //É contribuinte mas não é ISENTO. } else { $destinatario->indIEDest = 9; } // Se não não é contribuinte do ICMS então ele é igual a nove. } /** * Configurando os dados da operação **/ $operacao = new stdClass(); $operacao->identificador = $venda['operacao']['cod_operacao']; $operacao->CFOPMercadoria = $venda['operacao']['num_cfop_mercadoria']; $operacao->CFOPMercadoriaST = $venda['operacao']['num_cfop_mercadoria_st']; $operacao->CFOPMercadoriaSTSubstituido = $venda['operacao']['num_cfop_mercadoria_st_subst']; $operacao->CFOPProduto = $venda['operacao']['num_cfop_produto']; $operacao->CFOPProdutoST = $venda['operacao']['num_cfop_produto_st']; $operacao->TipoOperacao = 0; $operacao->identificacao = 0; $operacao->finalidade = 0; $operacao->indFinal = 0; $operacao->indPres = 0; $operacao->NaturezaOperacao = ''; /** * Configurando os parâmetros da NF-e **/ self::$NF = new MotorFiscal\DocumentoFiscal($emitente, $destinatario, $operacao); self::$NF->buscaTribFunctionICMS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::ICMS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionIPI = function ($produto, $operacao, $emitente, $destinatario) { return Trib::IPI($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionPIS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::PIS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionCOFINS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::COFINS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionIBPT = function ($produto, $emitente, $detinatario) { return Trib::IBPT($produto, $emitente, $detinatario); }; self::$NF->itens = array(); // Configurando produtos e calculando impostos foreach ($venda['itens'] as $key => $item) { $item['data'] = $ProdutoDao->getProduto($item['id_produto'], $id_empreendimento); $produto = new MotorFiscal\Produto(); $produto->identificador = $item['data']['id_produto']; $produto->cProd = $item['data']['id']; $produto->cEAN = $item['data']['codigo_barra']; $produto->xProd = $item['data']['nome']; $produto->NCM = $item['data']['cod_ncm']; $produto->EXTIPI = $item['data']['ex_tipi']; $produto->CEST = $item['data']['num_cest']; $produto->uCom = $item['data']['dsc_unidade_medida']; $produto->qCom = $item['qtd']; $produto->vUnCom = $item['vlr_produto']; $produto->cEANTrib = $item['data']['codigo_barra']; $produto->uTrib = $item['data']['dsc_unidade_medida']; $produto->qTrib = $item['qtd']; $produto->vUnTrib = $item['vlr_produto']; $produto->TipoTributacaoIPI = $item['data']['TipoTributacaoIPI']; $produto->FormaAquisicao = $item['data']['FormaAquisicao']; $produto->vProd = $item['qtd'] * $item['vlr_produto']; $produto->vDesc = $item['qtd'] * $item['valor_desconto_real']; // TODO: Dúvidas para sanar com Fischer $produto->NVE = 0; // Como preencher? $produto->CFOP = 0; // Como preencher? $produto->indTot = 1; // Como preencher? $produto->vFrete = 0; // Como preencher? $produto->vOutro = 0; // Como preencher? $produto->vSeg = 0; // Como preencher? $item = self::$NF->addItem($produto); $venda['itens'][$key] = $item; } // Consolidando e totalizando self::$NF->totalizarDocumento(); $dadosNf = array('informacoes_adicionais_contribuinte' => $_POST['informacoes_adicionais_contribuinte'], 'dados_emissao' => $dados_emissao, 'emitente' => $emitente, 'destinatario' => $destinatario, 'itens' => self::$NF->itens, 'ICMSTot' => self::$NF->ICMSTot); Flight::json($dadosNf); }
public function getEstoque($offset, $limit, $busca) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $group = false; $orderby = false; $id_deposito = null; $id_empreendimento = null; if (array_key_exists('group', $busca)) { $group = true; unset($busca['group']); } if (isset($busca['depositos'])) { $id_deposito = $busca['depositos']; unset($busca['depositos']); } else { if (array_key_exists('qtd->id_deposito', $busca)) { $id_deposito = $busca['qtd->id_deposito']; unset($busca['qtd->id_deposito']); } } if (array_key_exists('emp->id_empreendimento', $busca)) { $id_empreendimento = $busca['emp->id_empreendimento']; } if (array_key_exists('orderby', $busca)) { $orderby = ' ORDER BY ' . $busca['orderby']; unset($busca['orderby']); } $sql = "SELECT prd.nome AS nome_produto,prd.codigo_barra, tcp.nome_cor AS sabor , tt.nome_tamanho AS peso, dep.nme_deposito AS nome_deposito,etq.*,tde.flg_visivel\n\t\t\t\tFROM `tbl_estoque` AS etq\n\t\t\t\tINNER JOIN `tbl_produtos` AS prd ON etq.id_produto = prd.id\n\t\t\t\tLEFT JOIN `tbl_fabricante` AS fab ON prd.id_fabricante = fab.id\n\t\t\t\tINNER JOIN `tbl_deposito` AS dep ON dep.id = etq.id_deposito\n\t\t\t\tLEFT JOIN tbl_caixa_deposito AS tcd ON etq.id_deposito = tcd.id_deposito \n\t\t\t\tINNER JOIN `tbl_produto_empreendimento` AS emp ON emp.id_produto = prd.id\n\t\t\t\tINNER JOIN tbl_deposito_empreendimento AS tde ON dep.id = tde.id_deposito AND tde.id_empreendimento = emp.id_empreendimento\n\t\t\t\tLEFT JOIN tbl_tamanho AS tt ON tt.id = prd.id_tamanho\n\t\t\t\tLEFT JOIN tbl_cor_produto AS tcp ON tcp.id = prd.id_cor "; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where . ""; } $sql .= $group ? " GROUP BY prd.id " : " GROUP BY etq.id"; $sql .= $orderby ? $orderby : " "; 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()) { $ProdutoDao = new ProdutoDao(); if ($select->rowCount() > 0) { $saida['produtos'] = $select->fetchAll(PDO::FETCH_ASSOC); //Flight::json($aux); //var_dump($saida['produtos']);die; foreach ($saida['produtos'] as $key => $value) { $aux = $ProdutoDao->getProdutos(null, null, array("pro.id" => $value['id_produto'], "tpe.id_empreendimento" => $id_empreendimento)); $aux = $aux['produtos'][0]; $saida['produtos'][$key]['nome_fabricante'] = $aux['nome_fabricante']; $saida['produtos'][$key]['codigo_barra'] = $aux['codigo_barra']; $saida['produtos'][$key]['peso'] = $aux['peso']; $saida['produtos'][$key]['vlr_custo_real'] = $aux['vlr_custo_real']; $saida['produtos'][$key]['vlr_venda_atacado'] = $aux['vlr_venda_atacado']; $saida['produtos'][$key]['vlr_venda_intermediario'] = $aux['vlr_venda_intermediario']; $saida['produtos'][$key]['vlr_venda_varejo'] = $aux['vlr_venda_varejo']; $saida['produtos'][$key]['vlr_desconto_cliente'] = $aux['valor_desconto_cliente'] == "" ? 0 : (double) $aux['valor_desconto_cliente']; $saida['produtos'][$key]['perc_imposto_compra'] = $aux['perc_imposto_compra']; $saida['produtos'][$key]['perc_desconto_compra'] = $aux['perc_desconto_compra']; $saida['produtos'][$key]['margem_atacado'] = (double) $aux['perc_venda_atacado']; $saida['produtos'][$key]['margem_intermediario'] = (double) $aux['perc_venda_intermediario']; $saida['produtos'][$key]['margem_varejo'] = (double) $aux['perc_venda_varejo']; $saida['produtos'][$key]['vlr_custo'] = (double) $aux['vlr_custo']; if (!is_null($id_empreendimento)) { $saida['produtos'][$key]['qtd_real_estoque'] = $this->getQtdProduto($id_empreendimento, $value['id_produto'], null, $id_deposito); } if (is_file(CAMINHO_UPLOAD_IMG_PRODUTO . $aux['img'])) { $saida['produtos'][$key]['img'] = "assets/imagens/produtos/" . $aux['img']; } else { $saida['produtos'][$key]['img'] = null; } } $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $saida; } else { return false; } } else { $e = $select->errorInfo(); throw new Exception($e[2], 1); } }
public static function changeStatus($id_ordem_producao, $id_status_change, $id_empreendimento, $id_usuario) { $OrdemProducaoDao = new OrdemProducaoDao(); $ItensOrdemProducaoDao = new ItensOrdemProducaoDao(); $EstoqueDao = new EstoqueDao(); $Dao = new Dao(); $ProdutoDao = new ProdutoDao(); $out = array(); $Dao->setTimeZone($id_empreendimento); $dta_change = date('Y-m-d H:i:s'); $itens = $ItensOrdemProducaoDao->getItensOrdemProducao(null, null, array('tiop.id_ordem_producao' => $id_ordem_producao)); $aux = array(); $insumos = array(); $OrdensProducao = $OrdemProducaoDao->getOrdemProducao(NULL, NULL, array('top->id' => $id_ordem_producao)); $OrdensProducao = $OrdensProducao[0]; $status = $OrdemProducaoDao->getStatus(array("id" => $id_status_change)); $status = $status[0]; foreach ($itens as $key => $value) { $item_aux = $value; $item_aux['qtd_produzir'] = (int) $value['qtd']; $item_aux['itens'] = $ProdutoDao->getInsumos($value['id_produto'], null); $aux[$value['id_produto']] = $item_aux; foreach ($item_aux['itens'] as $key_i => $value_i) { $qtd_produzir = $item_aux['qtd_produzir']; $qtd = $value_i['qtd']; if (isset($insumos[$value_i['id']])) { $insumos[$value_i['id']]['qtd'] += $qtd_produzir * $qtd; } else { $insumos[$value_i['id']] = array('qtd' => $qtd_produzir * $qtd); } } } if ((int) $id_status_change == 2 || (int) $id_status_change == 3) { foreach ($insumos as $key => $value) { $qtd = (int) $value['qtd']; $estoque = $EstoqueDao->getQtdProduto($id_empreendimento, $key, null, $OrdensProducao['id_deposito']); $estoque_real = $estoque - $qtd; if ($estoque_real < 0) { $out[] = array((double) $key); } } } if (count($out) > 0) { Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode(array('out_estoque' => $out, 'lista' => $aux)))->send(); return; } try { $Conexao = new Conexao(); $Conexao::$alto_commit = false; $Conexao::getInstance(); $Conexao->beginTransaction(); if ((int) $id_status_change == 3) { $EstoqueEntradaTO = new EstoqueEntradaTO(); $EstoqueEntradaDao = new EstoqueEntradaDao(); $EstoqueEntradaTO->id_empreendimento = $id_empreendimento; $EstoqueEntradaTO->id_deposito = $OrdensProducao['id_deposito']; $EstoqueEntradaTO->id_ordem_producao = $id_ordem_producao; $EstoqueEntradaTO->dta_entrada = $dta_change; $EstoqueEntradaTO->id_usuario = $id_usuario; $id_estoque_entrada = $EstoqueEntradaDao->saveEstoqueEntrada($EstoqueEntradaTO); if ($id_estoque_entrada) { $ItemEstoqueEntradaTO = new ItemEstoqueEntradaTO(); $ItemEstoqueEntradaDao = new ItemEstoqueEntradaDao(); foreach ($itens as $key => $value) { $ItemEstoqueEntradaTO->id_estoque_entrada = $id_estoque_entrada; $ItemEstoqueEntradaTO->id_produto = $value['id_produto']; $ItemEstoqueEntradaTO->qtd_item = $value['qtd']; $ItemEstoqueEntradaTO->vlr_custo = NULL; $ItemEstoqueEntradaTO->perc_imposto = NULL; $ItemEstoqueEntradaTO->perc_desconto = NULL; $ItemEstoqueEntradaTO->dta_validade = '2099-12-31'; $id_item_estoque_entrada = $ItemEstoqueEntradaDao->saveItemEstoqueEntrada($ItemEstoqueEntradaTO); if ($id_item_estoque_entrada) { $EstoqueTO = new EstoqueTO(); $EstoqueDao = new EstoqueDao(); $PrecoProdutoTO = new PrecoProdutoTO(); $PrecoProdutoDao = new PrecoProdutoDao(); $EstoqueTO->id_deposito = $EstoqueEntradaTO->id_deposito; $EstoqueTO->id_produto = $ItemEstoqueEntradaTO->id_produto; $EstoqueTO->qtd_item = $ItemEstoqueEntradaTO->qtd_item; $EstoqueTO->dta_validade = $ItemEstoqueEntradaTO->dta_validade; $dadosTrigger = new StdClass(); $dadosTrigger->qtd_entrada = $EstoqueTO->qtd_item; $dadosTrigger->acao_movimentacao = 'ENTRADA'; $dadosTrigger->id_tipo_movimentacao_estoque = 4; $dadosTrigger->id_estoque_entrada = $id_estoque_entrada; $dadosTrigger->id_item_estoque_entrada = $id_item_estoque_entrada; $dadosTrigger->id_responsavel = $id_usuario; $dadosTrigger->id_empreendimento = $id_empreendimento; $dadosTrigger->id_ordem_producao = $id_ordem_producao; if (!$EstoqueDao->atualizaEstoque($EstoqueTO, 'update', $dadosTrigger)) { $Conexao->back(); Flight::halt(500, 'erro ao atualizar estoque'); } } else { $Conexao->back(); Flight::halt(500, 'erro ao inserir itens da entrada'); } } } else { $Conexao->back(); Flight::halt(500, 'erro ao inserir entrada no estoque'); } foreach ($insumos as $key => $value) { if (!$EstoqueDao->baixaEstoqueOrdemProducao($OrdensProducao['id_empreendimento'], $OrdensProducao['id'], $key, $OrdensProducao['id_deposito'], $value['qtd'], $id_usuario)) { $Conexao->back(); Flight::halt(500, 'error ao atualizar saida estoque'); } } } if (!$OrdemProducaoDao->ChangeStatus($id_ordem_producao, $id_status_change, $dta_change)) { $Conexao->back(); Flight::halt(500, 'Erro ao cadastrar mudança de status 1'); } if (!$OrdemProducaoDao->savechangeOrdemProducao($id_ordem_producao, $id_status_change, $dta_change)) { $Conexao->back(); Flight::halt(500, 'Erro ao cadastrar mudança de status 2'); } $Conexao->commit(); Flight::response()->status(201)->header('Content-Type', 'application/json')->write(json_encode(array('status' => $status)))->send(); } catch (Exception $e) { $Conexao->back(); jsonException($e); } }
} elseif ($act == "ver_estoque") { $param = $_POST['fdBuscarProduto']; $estoqueDao = new EstoqueDao(); $rs = $estoqueDao->verEstoque($param); echo $rs; /* * excluir cliente */ } elseif ($act == "del") { /* * concta o banco de dados */ $con = new JqsConnectionFactory(); $link = $con->conectar(); @($id = $_POST['id']); $del = new ProdutoDao(); $del->excluirProduto($id); if ($del) { $value['status'] = "sucesso"; } else { $value['status'] = "erro"; } echo json_encode($value); /* * editar cliente */ } elseif ($act == "edit") { /* * dados do formulário de produto */ $id = $_POST['id'];
public static function requestDeleteProduto() { try { $produto = $_POST['produto']; $id_empreendimento = $_POST['id_empreendimento']; $ReferenciaIntegracaoDao = new ReferenciaIntegracaoDao(); $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $PrestaShopDao = new PrestaShopDao($id_empreendimento); $ProdutoDao = new ProdutoDao(); $ReferenciaIntegracaoTO = new ReferenciaIntegracaoTO(); $ReferenciaIntegracaoTO->sistema_integrado = 'PrestaShop'; $ReferenciaIntegracaoTO->tabela = 'tbl_produtos'; $ReferenciaIntegracaoTO->id_item_referencia = $produto['id']; $ReferenciaIntegracaoTO->tipo = 'produto'; $ReferenciaIntegracaoTO->id_empreendimento = $id_empreendimento; $referenciaProduto = $ReferenciaIntegracaoDao->refExists($ReferenciaIntegracaoTO, true); if (!$referenciaProduto) { throw new Exception('Referencia não encontrada', 1); } if (!$ProdutoDao->delProduto($referenciaProduto['id_item'])) { throw new Exception('Erro ao excluir Produto', 1); } $obj = new stdClass(); $obj->flg_excluido = 1; $ReferenciaIntegracaoDao->updateRef($obj, 'id=' . $referenciaProduto['id']); } 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()); } }
$nome = $_POST['nome']; $descricao = $_POST['descricao']; $imagem = $_POST['imagem']; $compra = $_POST['compra']; $venda = $_POST['venda']; $revenda = $_POST['revenda']; /* * setando modelo de produto */ $produto = new Produto(); $produto->setId($id); $produto->setCodigo($codigo); $produto->setNome($nome); $produto->setDescricao($descricao); $produto->setUrlImagem($imagem); /* * setando modelo de preços */ $preco = new Preco(); $preco->setCompra($compra); $preco->setVenda($venda); $preco->setReVenda($revenda); $produtoDAO = new ProdutoDao(); $produtoDAO->editarProduto($produto, $preco); if ($produtoDAO) { $value['status'] = "sucesso"; } else { $value['status'] = "erro"; } echo json_encode($value); }
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); } }