');
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;
function iniciarMapa()
{
criarMapa();
iniciarDirections();
buscarRota();
}
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()];
}
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
comercial@atua.com.br