Ir para conteúdo
Rogerio Pancini

Jquery: cálculos com máscara de moeda real e soma de datas

Recommended Posts

Boa noite pessoal.

 

Há duas partes de uma tela que estão prontas, funcionando, mas não corretamente.

Nessa parte, faço um cálculo.

Sem a máscara de Real, ótimo.

Se coloco a máscara 'valor'no input, retorna NaN.

 

			/****** maskMoney ******/
			$(function(){
				$(".valor").maskMoney({symbol:'R$ ', showSymbol:true, thousands:'.', decimal:',', symbolStay: true});
			})	

				/****** Função percentual ******/
				function funcao_percentual(valor_1, destino, percentual) {
					$(valor_1).on("click", function() {
						$(destino).val('');
					});				
					
					function arredondar(valor,casas){
						var novo = Math.round(valor*Math.pow(10,casas))/Math.pow(10,casas);
						return(novo);
					}					
					
					$(valor_1).blur(function() {
						valor       = $(this).val();
						porcentagem = percentual; // PORCENTAGEM A SER ADICIONADA
						total       = (parseFloat((valor*porcentagem)/100));
						$(destino).val(arredondar(total, 2));	
					});
				}

				/****** Função subtrair ******/
				function funcao_subtrair(valor_1, valor_2, inicio, destino) {
					$(inicio).on("click", function() {
						$(destino).val('');
					});		

					function arredondar(valor,casas){
						var novo = Math.round(valor*Math.pow(10,casas))/Math.pow(10,casas);
						return(novo);
					}					
					
					$(inicio).blur(function() {
						valor_1_v = $(valor_1).val();
						valor_2_v = $(valor_2).val();
						total     = (parseFloat((valor_1_v-valor_2_v)));
						$(destino).val(arredondar(total, 2));	
					});
				}

				/****** Percentual de Provisão - Royalties (franchising) ******/
				funcao_percentual("#valor", "#provisao_royalties_franchising", 39.85)
				
				/****** Percentual de Provisão Fundo Propaganda ******/
				funcao_percentual("#valor", "#provisao_fundo_propaganda", 3)	

				/****** Subtração de Provisão - Royalties ( franchising) ******/
				funcao_subtrair("#provisao_royalties_franchising", "#provisao_fundo_propaganda", "#valor", "#provisao_royalties_franchising_2")	

E o outro BO é quando somo datas. Dá um resultado que não tem nada haver com a planilha que tenho de modelo:

 

				/****** Função calcular a data ******/
				function funcao_calcular_data(data_inicial, data_final, dias) {
					$(data_inicial).blur(function() {
						$(data_inicial).on("click", function() {
							$(data_final).val('');
						});						
					
						var data_ini = $(data_inicial).val();

						var date = new Date(data_ini);
						date.setDate(date.getDate() + dias);
						var futDate=date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear();
 						

						$(data_final).val(futDate);		
					});						
				}

				/****** 1º vencimento ******/
				funcao_calcular_data("#data_emissao", "#1_venc", 28)

				/****** 2º vencimento ******/
				funcao_calcular_data("#data_emissao", "#2_venc", 42)

				/****** 3º vencimento ******/
				funcao_calcular_data("#data_emissao", "#3_venc", 56)

Se alguém puder colaborar com alguma luz.

Confesso que preciso melhorar ainda mais em Jquery, mas essas funções ficaram boas para a necessidade.

Faltam apenas esses ajustes.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por jlrs19833
      Bom dia, pessoal! Estou precisando de uma luz para saber como tratar determinado problema:
       
      Cenário: Ambiente em desenvolvimento de plataforma para gestão de uma empresa.
      Linguagem principal: PHP (framework CodeIgniter)
      Dificuldade: retornar dados de select dinâmico junto ao evento de post do formulário.
       
      Descrição: Conforme mencionado acima, estou desenvolvendo um pequeno sistema para uma empresa que conterá poucas telas, sou desenvolver entusiasta, então não tenho muito conhecimento e prática com este assunto. Em determinada tela, o cliente quer que haja um formulário de cadastro onde dentre os diversos campos deste form, haverá dois do tipo select, onde um é o select de cidade e o outro do tipo estado. O select de Estado é preenchido automaticamente quando do carregamento da view, através de uma chamada do controller/model junto ao BD e o select cidade é preenchido de maneira automática, com javascript, através de uma mesma consulta, passando o ID do campo estado. Minha dificuldade está quando faço o submit deste form, pois o campo value do option deste select (cidade) não é enviado junto, pois no código fonte ele não foi carregado. Como posso fazer para recuperar esse value e enviar junto com o evento de submit?
       
      Segue como meus arquivos estão sendo feitos. Como pode observar estou, tentando apenas printar os campos para que eu possa ter certeza que eles estão sendo carregados.
      https://gist.github.com/jlrs19833/808887a5221ff31ca6ea22bf0c8b85a5
       
      Peço desculpas se estou postando no local errado e que os moderadores me orientem neste caso.
       
      Desde já agradeço o auxílio de cada um.
    • Por jlrs19833
      Bom dia, pessoal! Estou precisando de uma luz para saber como tratar determinado problema:
       
      Cenário: Ambiente em desenvolvimento de plataforma para gestão de uma empresa.
      Linguagem principal: PHP (framework CodeIgniter)
      Dificuldade: retornar dados de select dinâmico junto ao evento de post do formulário.
       
      Descrição: Conforme mencionado acima, estou desenvolvendo um pequeno sistema para uma empresa que conterá poucas telas, sou desenvolver entusiasta, então não tenho muito conhecimento e prática com este assunto. Em determinada tela, o cliente quer que haja um formulário de cadastro onde dentre os diversos campos deste form, haverá dois do tipo select, onde um é o select de cidade e o outro do tipo estado. O select de Estado é preenchido automaticamente quando do carregamento da view, através de uma chamada do controller/model junto ao BD e o select cidade é preenchido de maneira automática, com javascript, através de uma mesma consulta, passando o ID do campo estado. Minha dificuldade está quando faço o submit deste form, pois o campo value do option deste select (cidade) não é enviado junto, pois no código fonte ele não foi carregado. Como posso fazer para recuperar esse value e enviar junto com o evento de submit?
       
      Segue como meus arquivos estão sendo feitos. Como pode observar estou, tentando apenas printar os campos para que eu possa ter certeza que eles estão sendo carregados.
      https://gist.github.com/jlrs19833/808887a5221ff31ca6ea22bf0c8b85a5
       
      Peço desculpas se estou postando no local errado e que os moderadores me orientem neste caso.
       
      Desde já agradeço o auxílio de cada um.
    • Por fernando56736454563
      cloneform = $('#dadosbanco').html(); $(document).on('click','.remDiv, .addDiv', function(e){ thisClass = e.target.className; thisClass == 'remDiv' ? ($('.'+thisClass).length > 1 ? $(this).closest('.remove').prev().add($(this).closest('.remove')).remove() : 0) : $('#dadosbanco').append(cloneform); }); var counter = 1; function addInput(divName, template) { if (counter == 5) { document.getElementById("add_more_text").remove(); } else { var newdiv = document.createElement('div'); newdiv.innerHTML = document.getElementById(divName).innerHTML; newdiv.className = 'added'; document.getElementById(template).appendChild(newdiv); counter++; } var selectElements = document.querySelectorAll('select'); for (var i = 0; i < selectElements.length; i++) { selectElements[i].id = 'id-' + i; selectElements[i].name = 'category' + i; } } function removeInput(obj) { if (obj.parentNode.className == 'added') { obj.parentNode.parentNode.removeChild(obj.parentNode); counter--; } } <input type="button" value="Adicionar Componente" class="addDiv"/> <div id="dadosbanco"> <div class="remove"> <div id="template"> <input type="text" name=""> <a href="javascript:void(0)" onClick="removeInput(this);">x</a> </div> <div id="add_more"></div> <a href="javascript:void(0)" onClick="addInput('template', 'add_more');" id="add_more_text">+ Add more</a> </div> <div class="remove"> <input type="button" value="Remover Componente" class="remDiv" /> </div> </div> Sempre que faço a clonagem da div id dadosbanco, quando clico para clonar a div de id template ele aparece na minha clonagem original da primeira div de id template
    • Por Soneca_BO
      Boa tarde Pessoal!
       
      Estou a um bom tempo tetando fazer um CRUD em um banco de dados não tradicional e sim do "Cognos tm1",
       
      Estou fazendo uma aplicação WEB e queria usar o Ajax com jquery e javascript(dependendo do caso) para fazer um CRUD
      salvando dados deletando e fazendo as devidas atualizações, mas não estou conseguindo fazer o "PUT" e nem o "DELETE", 
      E não faço ideia de como começar a escrever o código para os métodos informados acima.
       
      Segue código criado para fazer o GET (só conseguir fazer o GET)
      $.ajax({ username: 'admin', password: ' ', url: "http://localhost:8881/api/v1/Cubes('ACO.200.Despesas')/Views('visao')/tm1.Execute?$expand=Cube($select=Name;$expand=Dimensions($select=Name)),Axes($expand=Tuples($expand=Members($select=Name;$expand=Element($select=UniqueName)))),Cells", method: 'POST', headers: { "Authorization": "Basic YWRtaW46", "cache-control": "no-cache", }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console.log(data); }, error: function () { alert("erro"); } });  
       
      Obs.: não sou muito bom em rest e estou buscando aprender mais sobre ele, se alguém poder me ajudar agradeceria muito.
       
      Desde já agradeço alguém que conseguir me da uma força.
       
    • Por lipesym
      Preciso capturar o conteúdo gerado pelo sistema, porém ele altera sempre o nome das classes mantendo apenas um prefixo como padrão exemplo...

      <div class="ConteudoTxt_R343_WWR">
      ....
      </div>

      Como ele mantem apenas o termo conteudoTxt como padrão o resto muda a cada acesso.
      Não consigo capturar esse conteúdo como era feito....
      var valorDaDiv = $(".ConteudoTxt").html();    

      Tem alguma forma de capturar sempre que o nome da class começar como ConteudoTxt independente do que vem depois?
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.