

violin101
Members-
Total de itens
303 -
Registro em
-
Última visita
Tudo que violin101 postou
-
Caros amigos, saudações. Estou com uma pequena dúvida se é possível ser realizado. Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso. Observação: Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo. <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = ' Aberto '; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div> Grato, Cesar.
-
Caros amigos, saudações. Por favor, me perdoa em recorrer a orientação dos amigos. Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual. Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ? Tentei fazer assim, mas o SQL me traz tudo: $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar "; Grato, Cesar
-
Caros amigos, saudações. Consegui solucionar a minha SQL desta forma. <?php public function faturaPrazo($diasvcto = null, $ordenar = null){ if ($ordenar != null) { $this->db->order_by($ordenar); } $query = "SELECT faturamento.*, fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.dataVencimento <= DATE_ADD(NOW(), INTERVAL $diasvcto DAY) AND faturamento.statusFatur = 1 ORDER BY faturamento.dataVencimento $ordenar "; return $this->db->query($query)->result(); } ?> Observação: - não sei se existe outra rotina parecida ou mais eficiente que a que escrevi. - caso tenha e os amigos puder compartilhar, fico inteiramente grato. Grato, Cesar
-
Caros amigos, saudações. Após pesquisa e conversa com amigos, consegui resolver o meu problema da seguinte forma. Escrevi este código direto no FOREACH da Tabela e resolveu. <?php //Recebe a DataVencimento - MySql $data_inicio = new DateTime($dataVencimento); //Pega a Data Atual $data_atual = new DateTime('now'); //Calcula a Diferença entre a Data Vencimento com data Atual $dateInterval = $data_inicio->diff($data_atual)->days; if($dateInterval <= 20){ $cor = '#FDFEBA'; //Cor: Amarelo } else { $cor = ''; //Cor: Neutro } ?> Grato, Cesar
-
Caros amigos, saudações Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida. Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo: Data Atual: 15/11/2024 Vencimento Fornecedor.....................Data.....................Valor Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja Fornecedor_1...........01/01/2025..........R$ 130,00 Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo Fornecedor_2...........15/01/2025..........R$ 230,00 Fornecedor_3...........20/12/2024..........R$ 150,00 Alguém tem alguma dica ou leitura sobre este assunto ? Grato, Cesar
-
Caro amigo, Felipe. Saudações. Quando salvo a Data de Vencimento no MySql, salvo neste formato = 2024-11-01 ou seja ANO-MÊS-DIA. Após testar o seu código deu erro de Boolean, nesta linha. // Inverter a data para o formato AAAAMMDD e remover as barras $dataInvertida = DateTime::createFromFormat('d/m/Y', $data)->format('Ymd'); Como corrijo esta linha Grato, Cesar
-
Caros amigos, saudações. Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso. Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa. Minha dúvida, que preciso muito entender: - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo. tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação. Preciso de ajuda. Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ? tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias. Alguns do amigo tem algum vídeo, leitura explicando essa parte ? Grato, Cesar.
-
Amigo Williams, saudações. Eu já fiz, refiz, voltei a fazer a instalação da NFePHP usando o Composer. Não entendo, não entendo,... acho que eu sou burro. Após fazer a Instalação e Configuração da NFePHP no Codeignter, e seguir sua orientação acima, continua aparecendo esse erro. An uncaught Exception was encountered Type: Error Message: Class 'NFePHP\NFe\Make' not found Filename: C:\xampp\htdocs\ziscom\application\libraries\NfeService.php Line Number: 51 Backtrace: File: C:\xampp\htdocs\ziscom\application\controllers\Estoque\nfe.php Line: 48 Function: emitirNFe File: C:\xampp\htdocs\ziscom\index.php Line: 315 Function: require_once Já fiz isso: Para adicionar as bibliotecas ao seu projeto: composer require nfephp-org/sped-nfe composer require nfephp-org/sped-da Configurar o autoload do Composer no CodeIgniter //$config['composer_autoload'] = true; Linha IGNORADA //$config['composer_autoload'] = FCPATH . 'vendor/autoload.php'; Linha IGNORADA $config['composer_autoload'] = './vendor/autoload.php'; Já fiz assim e continua o erro: $nfe = new \NFePHP\NFe\Make(); O meu INDEX.PHP está assim: define('ENVIRONMENT', 'development'); O Composer.json está assim: { "description": "The CodeIgniter framework", "name": "codeigniter/framework", "type": "project", "homepage": "https://codeigniter.com", "license": "MIT", "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "irc": "irc://irc.freenode.net/codeigniter", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { "php": ">=5.3.7", "mpdf/mpdf": "^7.1", "nfephp-org/sped-nfe": "^5.0", "nfephp-org/sped-da": "^1.0" }, "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "autoload": { "psr-4": { "Libraries\\": "application/libraries" } } } Caro amigo, não entendo, não entendo. Grato, Cesar
-
Caros amigos, saudações. Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema. Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável. O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista. O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD. Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo: ALT+A para agregar a lista ALT+S para salvar a lista de itens desejados. Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados. Grato, Cesar
-
saudações, amigo Matheus. Referente sua orientação acima, como escrevo o salvar o formulário ? document.addEventListener( 'keydown', function( evt ) { if ( evt.key !== 'Enter' ) return;// Não é Enter, portanto paramos aqui evt.preventDefault(); // O navegador já foi interrompido. //Aqui você pode fazer alguma coisa se quiser (por ex salvar) /* *==> Como consigo colocar uma Tecla de Atalho aqui para salvar o Formulário */ } ); Grato, Cesar
-
caro amigo Matheus, saudações. obrigado por sua orientação, fiz o impedimento do uso da TECLA ENTER no form. grato, Cesar
-
Caros amigos, saudações. Fiz assim para Agregar o Item e aparentemente deu certo. document.addEventListener("keydown", function(e){ if (e.keyCode == 83){ //Teclas= CTRL+S e.preventDefault(); var idProdutos = document.getElementById("idProdutos").value; var cod_interno = document.getElementById("cod_interno").value; var descricao = document.getElementById("descricao").value; //Verifica Duplicidade de Código if (verificar(idProdutos)) { //Chama a Modal com Alerta. $("#modal_mensagem").modal(); }else{ html = "<tr>"; html += "<td width='10%' height='10' style='text-align:center;'><input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='32%' height='10'><input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+"</td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-danger btn-remove-produto' style='margin-right: 1%; padding: 1px 2px;' title='Remover Item da Lista'>"+ "<span class='fa fa-trash'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); $("#btn-agregar").val(null); $("#idProdutos").val(null); $("#descricao").val(null); $("#idProdutos").focus(); }//Fim do IF-verificar }//Fim keyCode });//Fim function-keydown Mas como coloco no BUTTON que salva, para inibir o ENTER quando pressionado ? <button type="submit" id="adicionar" name="adicionar" class="btn btn-primary"> Adicionar </button>
-
PHP+Codeigniter - Importar Dados de uma Tabela para outra - MySql
violin101 respondeu ao tópico de violin101 em PHP
Amigo Williams, saudações. Grato por sua orientação e explicação. Apenas reforçando, conforme suas orientações, já tenho implementado as regras acima no meu Sistema. Em relação a Sistema de Cotações/Compras, os Pedidos de Compra somente serão GERADO, após as negociações e finalização entre Cliente x Fornecedor. Pode acontecer por algum motivo: 1 - Fornecedor Desistir/Cancelar a resposta da Cotação. 2 - Fornecedor Cancelar algum item cotado. 3 - Fornecedor não conseguir atender as necessidades do Cliente em relação a Condição Pagamento ou Entrega. 4 - etc, etc, etc... Isso faz com que o Comprador remaneja os itens para outros Fornecedores ==> antes de Encerrar a Cotação Total e somente após isso, o Sistema gera os pedidos. Atenciosamente, Cesar -
PHP+Codeigniter - Importar Dados de uma Tabela para outra - MySql
violin101 postou um tópico no fórum PHP
Caros amigos, saudações. Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida. Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é: Obs.: as tabela são em MySql => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são: ___________________Tabela de Pedido =========== para ==========> Tabela de Entrada de Lançamentos itens: codigoProduto | quantidade | valorUnitario === importar===> itens: codigoProduto | quantidade | valorUnitario Estou tentando de várias formas, mas não estou conseguindo. Por favor, alguém pode me dar uma ajuda, explicação ou orientação. Grato, Cesar -
PHP+Codeigniter - Importar Dados de uma Tabela para outra - MySql
violin101 respondeu ao tópico de violin101 em PHP
Caros amigos, saudações. Amigo Williams, entendi sua explicação e concordo. Vou te explicar para o amigo não achar que estou copiar de copiar. Na verdade no meu sistema deixei um Módulo somente para Cotação, onde esse módulo atende as necessidades de uma Pequena Empresa até a uma Prefeitura se for o caso. Quando o Almoxarifado/Logística fizer uma Lista de produtos com estoque baixo, ou seja, solicitação/pedido de compra, preferi separa as Tabelas e assim o Setor de Almoxarifado quanto fez a solicitação, terá um registro do que solicitou. Caso o Compras realizar a aquisição de algum produto ERRADO, o Almoxarifado terá como cobrar. ==>Exemplo de compra que gera confusão: Material de Limpeza. o Almoxarifado pediu para comprar: Saco de Lixo P8 - espessura igual a 0,08mm mas o Compras por algum motivo comprou: Saco de Lixo P6 - espessura igual a 0,06mm ==>Obs.: para algum setor pode até atender, mas para outros é fraco. Entendi sua lógica acima, evita muita codificação e altera chaves de pedido para cotação. Mas já trabalhei com ambas pessoas tanto de Estoque quanto de Compras, que promovia confusão em relação a pedido e compras. Grato, Cesar -
PHP+Codeigniter - Importar Dados de uma Tabela para outra - MySql
violin101 respondeu ao tópico de violin101 em PHP
Caros amigos, saudações. Com ajuda do amigo Albano membro do forum e com algumas pesquisas, foi solucionado a minha dúvida referente a Importação de Dados. Abaixo deixo os Código, para quem precisar e tiver a mesma dúvida que eu tive. Pasta CONTROLLER: function importaItens(){ //Recebe os dados via POST do formulário $idSgst = $this->input->post('idPedidos'); //ID idPedidoitens $idCtas = $this->input->post('idEntrada'); //ID idEntrada $idNmbr = $this->input->post('cotaNumero'); //Numero Entrada //Função Chama o Importar $this->importar($idSgst,$idCtas,$idNmbr); } //Salvar os Itens da Entrada protected function importar($idSgst,$idCtas,$idNmbr){ $itensImport = $this->pasta_model->get_SeuBD($idSgst); $data = []; foreach($itensImport as $item ){ $data[] = array( 'codProd' => $item->idProduto, 'cotaQtde' => $item->quantidade, 'cotaNumero' => $idNumero, 'entrada_idEntradas' => $idCtas, ); } //Quebra em 100 $chunks = array_chunk($data, 100); //Para cada grupo de até 100 registros foreach ($chunks as $chunk) { //Faça um insert na tabela $this->db->insert_batch('entradasItens', $chunk); } if ($itensImport) { $this->session->set_flashdata('success', '<h4>Entrada de Produtos nº.'.str_pad($idSugst,'5','0', STR_PAD_LEFT).' - Importado com Sucesso!</h4>'); redirect(base_url() . 'caminho/pasta/sua_view/'.$idPasta); } else { $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>'; } } Pasta MODELS: //Faz uma Busca por ID de cada ITEM para Importar public function get_SeuBD($idSgst){ $this->db->where("Campo_que_deseja_buscar",$idSgst); $resultado = $this->db->get("sua_tabela"); return $resultado->result(); } //Salva os Itens Importados public function importes($data){ $this->db->insert("sua_tabela_para_importar",$data); } Atenciosamente, Cesar -
Caros amigos, saudações. Estou com uma pequena dúvida que não estou conseguindo resolver. Tenho 2 Tabelas, a 1ª.principal e a 2ª.secundária. Exemplo: Dados da 1ª Tabela - Peças e Equipamentos Dados da 2ª Tabela - Veículos. Seria isso: 0010 - Pneu Aro 20 [x] 001 - Corsa [_] 002 - Fusca [_] 003 - Palio Comentário:________________ 0100 - Óleo para Motor [x] 002 - Fusca [_] 003 - Palio Comentário:________________ 1030 - Lubrificante [_] 001 - Corsa [x] 003 - Palio Comentário:________________ O meu problema está sendo quando preciso SALVAR/ATERAR o campo COMENTÁRIO, pois trata-se da 1ª.tabela. Gostaria salvar o COMENTÁRIO sem interferir nas seleção da 2ª. tabela. Grato, Cesar
-
Caros amigos, saudações. Gostaria de tirar uma dúvida com os amigos. Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR. Por exemplo: Salvar ----> ALT+S Editar ----> ALT+E Excluir --> ALT+X Imprimir -> ALT+I no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ? grato, Cesar
-
Caros amigos, saudações. Estou com uma dúvida de validação de INPUT com função moeda. Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56 o problema é quando precisa atualizar o valor. Quando o usuário atualizar o input fica assim: 1.234, como faço para atualizar as casas decimais, conforme o valor for sendo alterado ? o input está assim: <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div> a função para formatar o input para moeda está assim: obs.: a Função CalcProd está executando corretamente function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; key = String.fromCharCode(whichCode); // Valor para o código da Chave if (strCheck.indexOf(key) == -1) return false; // Chave inválida len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; } Grato, Cesar
-
Caros amigos, saudações. Estou com um problema de cálculo que não estou conseguindo resolver. Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total. qtde x vrUnit = total 1,23 x 1,00 = 1,23 << até aqui tudo bem. o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo: 0,01 x 0,01 = 0,0001 para digitar o valor estou utilizando esta função: /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato, Cesar
-
Caros amigos, saudações. Gostaria de poder tirar uma dúvida com os amigos. Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ? Data Digitada: 01/09/2024 Exemplo: 25/09/2024 é menor que DATA Atual ====> mensagem: informe uma data válida. 25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's. Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual. Grato, Cesar
-
JAVASCRIPT - Comparar Data Digitada com Data Atual
violin101 respondeu ao tópico de violin101 em Javascript
Caro amigo, Wanderval. Saudações. Após realizar a alteração no meu sistema conforme sua orientação, está apresentando um erro que não entendo. Quando o usuário selecione uma Data Válida, o Sistema acusa campo vazio e não grava, abaixo posto o código caso o amigo, possa me ajudar. <div class="card-body"> <div class="row"> <div class="col-md-3"> <div class="form-group"> <label for="cotaDtainicio">Data de Abertura<span class="required">*</span></label> <div class="controls"> <input type="date" id="cotaDtainicio" name="cotaDtainicio" class="form-control" style="width:100%;" value="" /> </div> </div> </div> </div> </div> <script type="text/javascript"> // Função para definir a data mínima como a data atual function definirDataMinima() { const hoje = new Date(); const ano = hoje.getFullYear(); const mes = String(hoje.getMonth() + 1).padStart(2, '0'); // Janeiro é 0, então +1 const dia = String(hoje.getDate()).padStart(2, '0'); // Definir a data mínima no campo de input no formato YYYY-MM-DD const dataAtual = `${ano}-${mes}-${dia}`; document.getElementById("cotaDtainicio").setAttribute("min", dataAtual); } function verificarData() { const dataDigitada = document.getElementById("cotaDtainicio").value; if (!dataDigitada) { $("#modal_msgdata").modal(); } else { //continua digitando } } // Função para bloquear a digitação no campo de data function bloquearDigitacao(event) { event.preventDefault(); } // Chamar a função para definir a data mínima assim que a página carrega window.onload = function() { definirDataMinima(); //Impedir que o usuário digite diretamente no campo de data const cotaDtainicio = document.getElementById("cotaDtainicio"); cotaDtainicio.addEventListener('keydown', bloquearDigitacao); }; </script> O que ocorre que o sistema acusa vazio o campo ? Grato, Cesar -
JAVASCRIPT - Comparar Data Digitada com Data Atual
violin101 respondeu ao tópico de violin101 em Javascript
caro amigo, Wanderval. obrigado por sua orientação, vou testar no meu sistema. APENAS UMA DÚVIDA REFERENTE O 2º. EXEMPLO. Observações: 1) o INPUT onde o usuário informa a DATA é inupt [ date ]. 2) se o usuário digitar uma data anterior a Data atual, como faço para mostrar que a Data não pode ser anterior a data atual ? O Exemplo que o amigo fez, ainda permite o usuário informa uma data anterior, mesmo após ter selecionado. -
JAVASCRIPT - Comparar Data Digitada com Data Atual
violin101 respondeu ao tópico de violin101 em Javascript
Caros amigos, saudações. Por favor, alguém pode me dar uma ajuda ? Grato, Cesar -
Caros amigos, saudações. Primeiramente agradeço ao auxílio e ajuda que os amigos têm me dado. Minha dúvida: - para emissão de nota fiscal eletrônica precisa de um CERTIFICADO e SENHA. Como ou onde consigo esses dois itens, para fazer teste de emissão de nota fiscal ? Grato, Cesar