Ir ao conteúdo
  • Cadastre-se

Isador

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

2
  1. Olá, pessoal! Estou tentando fazer algumas gráficos usando a biblioteca ChartJs, mas os gráficos simplesmente não plotam e nenhum erro é dado. HTML(parte do grafico) <div class="panel-body"> <div class="canvas-wrapper"> <canvas class="main-chart" id="bar-chart" height="200" width="600"></canvas> </div> </div> <script src="js/jquery-1.11.1.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/chart.min.js"></script> <script src="js/chart-data.js"></script> <script src="js/bootstrap-datepicker.js"></script> <script src="js/custom.js"></script> <script type="text/javascript" src="js/app_pagamentos_clientes.js"></script> </body> PHP (busca os dados no banco) obs: quando abro esse arquivo no browser mostra meus dados corretamente no formatos json (logo, ele está pegando os dados) <?php require('../../Controller/conexao_bd/conexao_dw_bi.php'); require('../../Model/Login/verifica_acesso.php'); //setting header to json //header('Content-Type: application/json'); $empresa = $_SESSION['nome_empresa']; $pdo = Conexao::getInstance(); //buscar id da empresa $sk_empresa_busca = $pdo->prepare("SELECT sk_empresa from dim_empresa where nome_empresa=:empresa"); $sk_empresa_busca->bindParam(':empresa',$empresa, PDO::PARAM_STR); $sk_empresa_busca->execute(); while($dado1 = $sk_empresa_busca->fetch(PDO::FETCH_OBJ)){ $sk_empresa = $dado1->sk_empresa; } //query to get data from the table $query = $pdo->prepare("SELECT SUM(fato.valor_lancamento) as valor_lancamento, cliente.nome_cliente FROM fato_lancamento_contabil as fato INNER JOIN dim_cliente as cliente ON fato.cnpj_cpf_forne_cliente = cliente.cpf_cnpj_cliente WHERE fato.dim_empresa_sk_empresa = :sk_empresa AND fato.dim_cliente_sk_cliente IS NOT NULL AND fato.dim_fornecedor_sk_fornecedor IS NULL GROUP BY 2"); $query->bindParam(':sk_empresa',$sk_empresa, PDO::PARAM_INT); $query->execute(); //loop through the returned data $data = array(); while($dados = $query->fetch(PDO::FETCH_OBJ)){ $data[] = $dados; } //now print the data print json_encode($data); ?> Output no browser: [{"valor_lancamento":"439.6199999999998","nome_cliente":"BANCO ITA\u00da"},{"valor_lancamento":"865951.8499999999","nome_cliente":"BRF"},{"valor_lancamento":"404862.43","nome_cliente":"DANOSSA"},{"valor_lancamento":"17810","nome_cliente":"NATURAL DE GOIAS"},{"valor_lancamento":"77113","nome_cliente":"MARIO E SOUZA"}] JS (fez a conexão com os dados e envia para o html) OBS: acho que o erro está aqui. $(document).ready(function(){ $.ajax({ url: "http://localhost/Model/Empresa/dados_pagamentos_clientes.php", method: "GET", success: function(data) { console.log(data); var receita = []; //score var cliente = []; //player for(var i in data) { cliente.push("Player: " + data[i].nome_cliente); receita.push(data[i].valor_lancamento); } var chartdata = { labels: cliente, datasets : [ { label: 'Pagamentos por Clientes', backgroundColor: 'rgba(200, 200, 200, 0.75)', borderColor: 'rgba(200, 200, 200, 0.75)', hoverBackgroundColor: 'rgba(200, 200, 200, 1)', hoverBorderColor: 'rgba(200, 200, 200, 1)', data: receita } ] }; var ctx = $("#bar-chart"); var barGraph = new Chart(ctx, { type: 'bar', data: chartdata }); }, error: function(data) { console.log(data); } }); }); Quem puder ajudar, agradeço!
  2. Sim, me passei mesmo. rsrs Depois que enxerguei. Mas valeu.
  3. Olá! Estou tentando carregar a tabela dimensão tempo através de uma procedure, mas não funciona. Segue procedure DELIMITER $$ USE `dw_bi_web`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `carga_dim_tempo`() BEGIN declare data_inicio date; declare data_fim date; declare valor_data date; SET data_inicio = `01/01/1970`; #data antiga de referência SET data_fim = CURDATE(); # pega data de hoje do sistema SET valor_data = data_inicio; WHILE valor_data < data_fim DO INSERT INTO dim_tempo( ´sk_tempo´, ´data´, ´dia´, ´num_mes´, ´nome_mes´, ´ano´, ´ano_mes´, ´num_dia_semana´, #domingo=1 ...sábado=7 ´nome_dia_semana´, #domingo, segunda... ´dia_ano´, #dia no ano '2017-02-03' = 34 ´semana_ano´, #('2008-12-31',1) -> 53 ´semestre´, ´bimestre´, ´trimestre´, ´quadrimestre´ ) VALUES ( CAST(DATE_FORMAT(valor_data, '%Y-%m-%d') AS UNSIGNED), valor_data, DAY(valor_data), MONTH(valor_data), MONTHNAME(valor_data), #colocar em port YEAR(valor_data), CAST(DATE_FORMAT(valor_data, '%Y-%m') AS UNSIGNED), DAYOFWEEK(valor_data), DAYNAME(valor_data), #colocar em port DAYOFYEAR(valor_data), WEEKOFYEAR(valor_data), FLOOR(1 + (month(valor_data) - 1) / 6), #semestre FLOOR(1 + (month(valor_data) - 1) / 2), #bimestre QUARTER(valor_data), #trimestre FLOOR(1 + (month(valor_data) - 1) / 4) #quadrimestre ); SET valor_data = DATE_ADD(valor_data, INTERVAL 1 DAY); #incrementa mais um dia a cada data END WHILE; END$$ DELIMITER ; Alguém consegue enxergar o erro? valeu!
  4. Oi gente, estou com o seguinte problema, tenho duas tabelas (protocolos) e (historico_protocolos), na minha tabela toda vez que um protocolo é cadastro, uma nova coluna é mostrada na minha datatable, certo? O problema é que quando crio, 2 protocolos, cadastro quantidades em historico_protocolos desses dois, e depois crio um novo protocolo, ou seja, uma nova coluna é criada na minha datatable, automaticamente, ela pega os dados a direita e fica dessa forma todos os registros antigo que não tem dado quantidade desse protocolo, a partir do momento que cadastro uma nova ocorrência, dos 3 protocolos, funciona normalmente, mas quero que a visualização os registros antigos, fique correta tb. Segue código de como monto minhas colunas <th> (Essa parte está ok) <!-- Protocolos da agência--> <?php $id_agencia= $_SESSION['id_agencia']; $pdo = Conexao::getInstance(); $consulta = $pdo->prepare("SELECT sigla_protocolo, id_protocolo FROM protocolo WHERE id_agencia=:id AND status='1'"); $consulta->bindParam(':id', $id_agencia, PDO::PARAM_INT); if($consulta->execute()){ if($consulta->rowCount() > 0){ while($dados = $consulta->fetch(PDO::FETCH_OBJ)){ $sigla = $dados->sigla_protocolo; $id_protocolo = $dados->id_protocolo; echo '<th>'.$sigla.'</th>'; } } } ?> Segue código da <td> $dados3 = $pdo->prepare("SELECT * FROM historico_protocolo where id=:id and tipo_ocorrencia=:tipo and status=1 "); $dados3->bindParam(':id',$id, PDO::PARAM_INT); // essa é uma fk que liga as tabelas protocolos e historico $dados3->bindParam(':tipo',$tipo_ocorrencia, PDO::PARAM_STR); $dados3->execute(); $nulo = " - "; while($table3 = $dados3->fetch(PDO::FETCH_OBJ)){ $id_protocolo = $table3->id_protocolo; if(!empty($id_protocolo)){ echo'<td>'.$table3->qtd_protocolo.'</td>'; }else{ echo'<td>'.$nulo.'</td>'; } Imagem da tabela com um registro antes de cadastrar uma quantidade pro novo protocolo (aqui dá problema, ele puxa os dados da direita e não coloca o vazio nessa coluna), e um registro depois de cadastrar quantidade (aqui fica okay) Já fiz diversas tentativas, inclusive com join entre as tabelas, mas não funcionou. Obrigada!
  5. @alucardhc Não entendo muito dessas questões de performance de banco, mas você pode dá uma pesquisada nos temas: processamento de consultas, índices, etc. O que eu sei, é que partir do momento que você tem uma ID única para loja, o tempo de pesquisa é o mais rápido, porque o banco só vai direto nos produtos que tenham essa ID. E acredite, existem bancos bem maiores que isso. Bons estudos,
  6. Olá, @alucardhc Essa não é melhor forma de fazer. Você precisa apenas de uma tabela loja, uma tabela produto e uma tabela ligacao_loja_produto (para que você não precise colocar a informação da loja dentro da tabela produto). Toda vez que uma loja for cadastrada, uma PK auto incrementada (chave primária) será criada para cada loja, nessa mesma tabela pode vir todos os dados da loja (Nome, Razão Social, CNPJ, Inscrição Estadual, etc), além, é claro da PK já citada, que no seu caso pode ser chamada de id_loja ou cod_loja. Na tabela produto, você irá cadastrar os dados do produto e também uma PK para cada registro. Já na tabela ligacao_loja_produto (por exemplo, chame como melhor lhe atender), você terá uma FK (chave estrangeira - faz ligação com uma PK) da id_loja e do seu id_produto. Com essa estrutura você consegue fazer todo o CRUD sem problemas. * Se preferir coloque uma coluna na tabela Produto, chamada fk_loja, e salve a id_loja direto no registro do produto. Abs!
  7. Olá, pessoal! Quando clico em "Finish" no meu wizard form, ele não submete ao banco. Alguém pode dá uma help, por favor? Já tentei diversas alternativas e até o momento nada. Parte do HTML <form id="wizard_with_validation" action="../Model/Moto/cadastro_checklist_moto.php" method="POST"> <h3>Itens Mecânicos</h3> <fieldset> <div class="form-group form-float"> <div class="form-line"> <label for="">1-Nível de Óleo do Motor</label> <div class="demo-radio-button"> <input name="item1-mec" type="radio" id="radio_1" class="radio-col-blue" required="" value="B" /> <label for="radio_1">B</label> <input name="item1-mec" type="radio" id="radio_2" class="radio-col-yellow" value="R" /> <label for="radio_2">R</label> <input name="item1-mec" type="radio" id="radio_3" class="radio-col-red" value="A"/> <label for="radio_3">A</label> <input name="item1-mec" type="radio" id="radio_4" class="radio-col-gray" value="NC"/> <label for="radio_4">NC</label> <input name="item1-mec" type="radio" id="radio_5" class="radio-col-green" value="NA" /> <label for="radio_5">NA</label> </div> </div> </div> </fieldset> <h3>Pneus</h3> <fieldset> <div class="form-group form-float"> <div class="form-line"> <label for="">1-Dianteiro </label> <div class="demo-radio-button"> <input name="item1-pneu" type="radio" id="radio_238" class="radio-col-blue" value="B" required=""/> <label for="radio_238">B</label> <input name="item1-pneu" type="radio" id="radio_239" class="radio-col-yellow" value="R"/> <label for="radio_239">R</label> <input name="item1-pneu" type="radio" id="radio_240" class="radio-col-red" value="A"/> <label for="radio_240">A</label> <input name="item1-pneu" type="radio" id="radio_241" class="radio-col-gray" value="NC" /> <label for="radio_241">NC</label> <input name="item1-pneu" type="radio" id="radio_242" class="radio-col-green" value="NA" /> <label for="radio_242">NA</label> </div> </div> </div> <div class="form-group form-float"> <div class="form-line"> <label for="">2-Traseiro </label> <div class="demo-radio-button"> <input name="item2-pneu" type="radio" id="radio_243" class="radio-col-blue" required="" value="B"/> <label for="radio_243">B</label> <input name="item2-pneu" type="radio" id="radio_244" class="radio-col-yellow" value="R" /> <label for="radio_244">R</label> <input name="item2-pneu" type="radio" id="radio_245" class="radio-col-red" value="A" /> <label for="radio_245">A</label> <input name="item2-pneu" type="radio" id="radio_246" class="radio-col-gray" value="NC" /> <label for="radio_246">NC</label> <input name="item2-pneu" type="radio" id="radio_247" class="radio-col-green" value="NA"/> <label for="radio_247">NA</label> </div> </div> </div> </fieldset> </form> Parte do JS (form-wizard) $(function () { //Horizontal form basic $('#wizard_horizontal').steps({ headerTag: 'h2', bodyTag: 'section', transitionEffect: 'slideLeft', onInit: function (event, currentIndex){ setButtonWavesEffect(event); }, onStepChanged: function (event, currentIndex, priorIndex){ setButtonWavesEffect(event); } }); //Vertical form basic $('#wizard_vertical').steps({ headerTag: 'h2', bodyTag: 'section', transitionEffect: 'slideLeft', stepsOrientation: 'vertical', onInit: function (event, currentIndex) { setButtonWavesEffect(event); }, onStepChanged: function (event, currentIndex, priorIndex) { setButtonWavesEffect(event); } }); //Advanced form with validation var form = $('#wizard_with_validation').show(); form.steps({ headerTag: 'h3', bodyTag: 'fieldset', transitionEffect: 'slideLeft', onInit: function (event, currentIndex){ $.AdminBSB.input.activate(); //Set tab width var $tab = $(event.currentTarget).find('ul[role="tablist"] li'); var tabCount = $tab.length; $tab.css('width', (100 / tabCount) + '%'); //set button waves effect setButtonWavesEffect(event); }, onStepChanging: function (event, currentIndex, newIndex) { if (currentIndex > newIndex) { return true; } if (currentIndex < newIndex) { form.find('.body:eq(' + newIndex + ') label.error').remove(); form.find('.body:eq(' + newIndex + ') .error').removeClass('error'); } form.validate().settings.ignore = ':disabled,:hidden'; return form.valid(); }, onStepChanged: function (event, currentIndex, priorIndex) { setButtonWavesEffect(event); }, onFinishing: function (event, currentIndex) { form.validate().settings.ignore = ':disabled'; return form.valid(); }, onFinished: function (event, currentIndex) { swal("Good job!", "Submitted!", "success"); } }); form.validate({ highlight: function (input) { $(input).parents('.form-line').addClass('error'); }, unhighlight: function (input) { $(input).parents('.form-line').removeClass('error'); }, errorPlacement: function (error, element) { $(element).parents('.form-group').append(error); } }); }); function setButtonWavesEffect(event) { $(event.currentTarget).find('[role="menu"] li a').removeClass('waves-effect'); $(event.currentTarget).find('[role="menu"] li:not(.disabled) a').addClass('waves-effect'); } Em anexo, está o outro arquivo que compõe, (jquery steps.js) (trocar o .csv por .js) jquery.steps.csv

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...