'); function msgErroSwal(dsMsg) { swal('Atenção', dsMsg, 'error'); return false; } function fecharRoteirizador() { $('#divRoteirizadorMapa').slideUp('slow'); } function abrirMapa(cdCidadeOrigem, cdCidadeDestino, idCampoKmRodado) { if (!cdCidadeOrigem) return msgErroSwal('Preencha o campo Cidade Origem!'); if (!cdCidadeDestino) return msgErroSwal('Preencha o campo Cidade Destino!'); var dadosOrigemDestino = buscaDadosAjax('RoteirizadorMapa', 'obterOrigemDestinoMapa', { cdCidadeOrigem: cdCidadeOrigem, cdCidadeDestino: cdCidadeDestino }); if (dadosOrigemDestino['status'] == 'ERRO') return msgErroSwal(dadosOrigemDestino['erro']); var dsOrigem = dadosOrigemDestino['origem']; var dsDestino = dadosOrigemDestino['destino']; if (!dsOrigem) return msgErroSwal('Cidade Origem não encontrada'); if (!dsDestino) return msgErroSwal('Cidade Destino não encontrada'); var mapa, directionsDisplay, directionsService, routeIndex = 0; var dados = {}; var objDirection = JSON.parse('{}'); var rotasSelect = $('#rotasMapa'); var mapaDiv = $('#mapa'); $('#divRoteirizadorMapa').slideDown('slow'); window.iniciarMapa = iniciarMapa; window.trocarRota = trocarRota; window.buscarRota = buscarRota; window.setarPostos = setarPostos; function iniciarMapa() { criarMapa(); iniciarDirections(); buscarRota(); setarPostos(); } function trocarRota() { routeIndex = parseInt(rotasSelect.val()); directionsDisplay.setRouteIndex(routeIndex); obterDadosDirections(directionsDisplay, true); } function criarMapa(elem, options) { mapaDiv.height($(window).height() - 300); mapa = new google.maps.Map(mapaDiv[0], { streetViewControl: false, zoomControl: true, mapMaker: false, panControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP, }); } function iniciarDirections() { directionsService = new google.maps.DirectionsService(); directionsDisplay = new google.maps.DirectionsRenderer({ draggable: true, map: mapa, }); } function buscarRota(reset) { var request = !reset && obterRequestRestore() || obterRequestDefault(); request.provideRouteAlternatives = true; request.travelMode = google.maps.TravelMode.DRIVING; directionsService.route(request, adicionarRotaMapa); } function obterRequestDefault() { return { origin: dsOrigem, destination: dsDestino }; } function obterRequestRestore() { if (objDirection && objDirection.origin) { return { origin: latLng(objDirection.origin), destination: latLng(objDirection.destination), waypoints: objDirection.waypoints.map(latLng).map(function(lt) { return {location: lt}; }), }; } } function adicionarRotaMapa(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); directionsDisplay.setRouteIndex(objDirection.routeIndex || 0); obterDadosDirections(directionsDisplay); google.maps.event.addListener(directionsDisplay, "directions_changed", obterDadosDirections); } } function setarRotasAlternativas(rotas) { rotasSelect.html(''); for (var i in rotas) rotasSelect.append(''); } function obterDadosDirections(directions, manterSelect) { directions = directions || this; var rotas = directions.getDirections().routes; if (!manterSelect) setarRotasAlternativas(rotas); var leg, legs = rotas[directions.getRouteIndex()].legs; var distancia = legs[0].distance.value; var direction = { origin: coords(legs[0].start_location), destination: coords(legs[legs.length - 1].end_location), waypoints: legs[0].via_waypoints.map(coords) }; legs = legs.slice(1); for (var i in legs) { leg = legs[i]; distancia += leg.distance.value; direction.waypoints.push(coords(leg.start_location)); direction.waypoints = direction.waypoints.concat(leg.via_waypoints.map(coords)) } dados.distancia = (distancia / 1000).toFixed(2); dados.direction = JSON.stringify(direction); $('#mapaDistanciaAtual').text(dados.distancia.replace('.', ',')); if (idCampoKmRodado) $('#' + idCampoKmRodado).val(parseInt(dados.distancia)); } function latLng (coords) { return new google.maps.LatLng(coords[0], coords[1]); } function coords(latLng) { return [latLng.lat(), latLng.lng()]; } function setarPostos() { var dados = dadosAjax('PostoCartaFreteTroca', 'buscarPostosRelevantes', {dsCoordenadasOrigem: dsOrigem, dsCoordenadasDestino: dsDestino, idFormatarDados: true}); var dsNome, nrLatitude, nrLongitude, nrTelefone; buscaDadosAjaxAsync(dados).then(function (arrRetorno) { arrRetorno.forEach(function (arrPosto) { dsNome = arrPosto['nmFantasia']; nrLatitude = arrPosto['nrLatitude']; nrLongitude = arrPosto['nrLongitude']; nrTelefone = arrPosto['nrTelefone']; new google.maps.Marker({ map: mapa, label: 'P', title: 'Posto: ' + dsNome + ' - Tel: ' + nrTelefone, position: latLng([nrLatitude, nrLongitude]), optimized: true }); }); }); } iniciarMapa(); } function setarImgCaminhao(idCategoria) { if (idCategoria) $('#imgCaminhao').html(''); else $('#imgCaminhao').html(''); } $(document).ready(function(){ // $('input[name=f_cd_cidade_origem], input[name=f_cd_cidade_destino]').change(function(){ // var cdCidadeOrigem = $('input[name=f_cd_cidade_origem]').val(); // var cdCidadeDestino = $('input[name=f_cd_cidade_destino]').val(); // // if (cdCidadeOrigem && cdCidadeDestino) // { // var vlKm = buscaDadosAjax('ValorFreteMinimo', 'obterKmRodado', { // cdCidadeOrigem: cdCidadeOrigem, // cdCidadeDestino: cdCidadeDestino // }); // // if (vlKm) // { // if (vlKm['status'] == 'ERRO') // swal('Atenção', vlKm['erro'], 'error'); // else // $('#qtKmRodado').val(vlKm); // } // } // }); $('#idCategoriaVeiculo').change(function(){ var dsText = $('#idCategoriaVeiculo option:selected').text(); if (dsText) { var matches = dsText.match(/\/ (\d) Eixos/); var qtEixos = parseInt(matches[1]); if (qtEixos) { var arrPadraoTonelada = jQuery.parseJSON('{"2":10,"3":14,"4":17,"5":26,"6":31,"7":36,"8":40,"9":49}'); $('#qtEixos').val(qtEixos); $('#vlPesoTonelada').val(formatNum(parseFloat(arrPadraoTonelada[qtEixos]), 2, 'pt_BR')); } } setarImgCaminhao($(this).val()); }); $('#submit').click(function(){ var tblPrecoFrete = $('#tabelaPrecoFrete'); var kmRodado = $('#qtKmRodado').val(); var qtEixos = $('#qtEixos').val(); var idRetorno = $('#idRetornoFrete:checked').val() || 0; if (!kmRodado) { swal('Atenção', 'Preencha o campo Km. Rodado!', 'error'); return false; } if (!qtEixos) { swal('Atenção', 'Preencha o campo Eixos!', 'error'); return false; } var prMargemTransportadora = $('#prMargemTransportadora').val(); var prIcms = $('#prIcms').val(); var vlPedagio = $('#vlPedagio').val(); var vlPesoTonelada = $('#vlPesoTonelada').val(); var vlPrIcms = parseFloat(formatNum(prIcms, 2, 'sys')); var vlPrMargem = parseFloat(formatNum(prMargemTransportadora, 2, 'sys')); var idMargemTransportadora = (prMargemTransportadora && vlPrMargem > 0); if (prIcms && !idMargemTransportadora) { swal('Atenção', 'Para calcular o ICMS preencha o campo Margem Empresa!', 'error'); return false; } if (vlPedagio && !idMargemTransportadora) { swal('Atenção', 'Para calcular o valor de Pedágio preencha o campo Margem Empresa!', 'error'); return false; } if (vlPrMargem > 99) { swal('Atenção', 'O (%) Margem Empresa não pode ser maior do que 99%!', 'error'); return false; } if (vlPrIcms > 20) { swal('Atenção', 'O (%) ICMS não pode ser maior do que 20%!', 'error'); return false; } tblPrecoFrete.slideUp('slow'); swal({ title: 'Calculando...', showCancelButton: false, showConfirmButton: false, allowOutsideClick: false, allowEnterKey: false, allowEscapeKey: false, showLoaderOnConfirm: true, onOpen: function() { swal.clickConfirm() }, preConfirm: function() { var params = { c: 'ValorFreteMinimo', a: 'calcularFreteMinimo', p: { qtKmRodado: kmRodado, qtEixos: qtEixos, idCalculaRetorno: idRetorno, prMargemTransportadora: prMargemTransportadora, prIcms: prIcms, vlPedagio: vlPedagio || 0, vlPesoTonelada: vlPesoTonelada, idCategoriaVeiculo: $('.f_id_categoria_veiculo').val(), idTipoCarga: $('input[name=f_id_tipo_carga]:checked').val(), cdCidadeOrigem: $('input[name=f_cd_cidade_origem]').val(), cdCidadeDestino: $('input[name=f_cd_cidade_destino]').val() } }; return buscaDadosAjaxAsync(params, true); } }).then(function(retorno) { retorno = retorno['value']; if (retorno['status'] == 'ERRO') swal('Atenção', retorno['erro'], 'error'); else { var arrValores = retorno['arrValores']; var arrObsFrete = []; if (prIcms) arrObsFrete.push('ICMS Incluso'); if (vlPedagio) arrObsFrete.push('+ Pedágio'); $('#dsQtEixos').html(qtEixos); $('.campoDadosFrete').html(' -'); if (arrObsFrete.length > 0) $('.dsObservacaoFreteTransportadora').html(' (' + arrObsFrete.join(', ') + ')'); else $('.dsObservacaoFreteTransportadora').html(''); $('[class*=tabelaFrete_]').hide(); arrValores.forEach(function(e){ var idTipoCarga = e['idTipoCarga']; var idTipoTabela = e['idTipoTabela']; $('.tabelaFrete_' + idTipoTabela + ':not(:visible)').show(); $('#vlKmPorEixo_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlCustoeixo']); $('#vlCargaDescarga_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlCargaDescarga']); $('#valorFrete_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlTotal']); if (idMargemTransportadora) $('#vlFreteTransportadora_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlFreteTransportadora']); if (vlPesoTonelada) { $('#valorFreteTonelada_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlTotalTonelada']); if (idMargemTransportadora) $('#vlFreteTransportadoraTonelada_' + idTipoCarga + '_tabela_' + idTipoTabela).html(e['vlFreteTransportadoraTonelada']); } }); tblPrecoFrete.slideDown('slow'); if (idMargemTransportadora) $('.dadosFreteTransportadora').show(); else $('.dadosFreteTransportadora').hide(); $(document).scrollTop(tblPrecoFrete.offset().top); } }); }); $('#btRoteirizar').click(function(){ abrirMapa($('input[name=f_cd_cidade_origem]').val(), $('input[name=f_cd_cidade_destino]').val(), 'qtKmRodado'); }); $('select[name=f_id_tipo_carga]').change(function(){ $('.linhaFreteMinimo').removeClass('bgLinhaFreteSelecionada'); $('.linhaFreteMinimo_' + $(this).val()).addClass('bgLinhaFreteSelecionada'); }).change(); }); $(document).ready(function() { $(document).bind('keypress keydown', function(e) { if (e.keyCode == '27') { e.preventDefault(); return false; } }); if ($('body').height() < window.innerHeight) $('body').height((window.innerHeight - 20)); }); -->
Produtos com a tecnologia:
© Atua
Sistemas de Informação
Rua Quinze de Novembro, 1170
Centro - Passo Fundo - RS
Tel.: (54) 3045-8100
[email protected]