diff --git a/src/js/arrastrar.js b/src/js/arrastrar.js
new file mode 100644
index 0000000..1f17c02
--- /dev/null
+++ b/src/js/arrastrar.js
@@ -0,0 +1,25 @@
+function allowDrop(ev) {
+ ev.preventDefault();
+}
+function drag(ev, marcador) {
+ marcador = JSON.stringify(marcador);
+ ev.dataTransfer.setData('marcador', marcador);
+ var elementoDom = document.getElementById('test');
+ var scope = angular.element(elementoDom).scope();
+ scope.arrastra();
+}
+function drop(ev) {
+ ev.preventDefault();
+ var data = ev.dataTransfer.getData('marcador');
+ var elementoDom = document.getElementById(ev.target.id);
+ var elementoAngular = angular.element(elementoDom);
+ var elementoScope = elementoAngular.scope();
+ elementoScope.cargar(ev.target.id, data);
+ elementoScope.$digest();
+}
+function dropEnd() {
+ console.log('drop');
+ var elementoDom = document.getElementById('test');
+ var scope = angular.element(elementoDom).scope();
+ scope.noArrastra();
+}
\ No newline at end of file
diff --git a/src/js/controller.js b/src/js/controller.js
index 8e90f98..981cc26 100644
--- a/src/js/controller.js
+++ b/src/js/controller.js
@@ -1,10 +1,17 @@
angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaController', [
'$scope', 'focaLogisticaPedidoRutaService', '$location', '$uibModal', '$filter',
- function($scope, focaLogisticaPedidoRutaService, $location, $uibModal, $filter) {
- $scope.actividad = '';
-
+ 'focaModalService', 'focaBotoneraLateralService',
+ function($scope, focaLogisticaPedidoRutaService, $location, $uibModal, $filter,
+ focaModalService, focaBotoneraLateralService
+ ) {
$scope.now = new Date();
- $scope.actividad = 'Nota de pedido';
+ $scope.actividad = 'Logistica';
+
+ //Datos Pantalla
+ $scope.titulo = 'Logistica de Pedidos';
+ $scope.botonera = ['Vehiculo'];
+ var cabecera = '';
+
$scope.idUsuario = 0;
$scope.marcadores = [];
$scope.vehiculos = [];
@@ -15,9 +22,23 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
getSeguimiento();
};
+ //SETEO BOTONERA LATERAL
+ focaBotoneraLateralService.showSalir(true);
+ focaBotoneraLateralService.showPausar(false);
+ focaBotoneraLateralService.showGuardar(false);
+
+ $scope.general = function() {
+ $scope.idUsuario = 0;
+ getSeguimiento();
+ $scope.$broadcast('removeCabecera', cabecera);
+ $scope.$broadcast('addCabecera',{
+ label: 'General',
+ valor: ''
+ });
+ };
+
$scope.cargar = function(id, punto) {
- var marcador = JSON.parse(punto);
- var vehiculo = $filter('filter')($scope.vehiculos, {id: parseInt(id)})[0];
+ var idRemito = JSON.parse(punto).notaPedido.remito.id;
var modalInstance = $uibModal.open(
{
ariaLabelledBy: 'Busqueda de Vehiculo',
@@ -25,18 +46,29 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
controller: 'focaDetalleVehiculo',
size: 'lg',
resolve: {
- vehiculo: function() {return vehiculo;},
- marcador: function() {return marcador;}
+ idVehiculo: function() {return id;},
+ idRemito: function() {return idRemito;}
}
}
);
- modalInstance.result.then(function() {
+ modalInstance.result.then(function() {
}, function() {
- //run when cancel modal
});
};
- $scope.arrastra = function() {
+ $scope.quitarVehiculo = function(vehiculo) {
+ focaModalService.confirm('Esta seguro que desea eliminar el vehículo ' +
+ vehiculo.codigo + '?').then(function() {
+ $scope.vehiculos.splice($scope.vehiculos.indexOf(vehiculo), 1);
+ });
+ };
+
+ $scope.informacionVehiculo = function(vehiculo) {
+ focaModalService.alert('EN DESARROLLO : \n información del vehículo ' +
+ JSON.stringify(vehiculo));
+ };
+
+ $scope.arrastra = function() {
$scope.arrastrando = true;
$scope.$digest();
};
@@ -62,6 +94,11 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
if (key === 13) {
$scope.idUsuario = $scope.idUsuarioInput;
getSeguimiento();
+ $scope.$broadcast('removeCabecera', 'General');
+ $scope.$broadcast('addCabecera', {
+ label: cabecera,
+ valor: $scope.idUsuarioInput
+ });
}
};
@@ -81,14 +118,17 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
modalInstance.result.then(
function(vehiculo) {
+ var existe = $filter('filter')($scope.vehiculos, {id: vehiculo.id});
+ if(existe.length > 0){
+ focaModalService.alert('El vehiculo que intenta cargar ya ha sido cargado');
+ return;
+ }
$scope.vehiculos.push(vehiculo);
}, function() {
// funcion ejecutada cuando se cancela el modal
}
);
};
-
-
function getSeguimiento() {
var now = $scope.now;
@@ -108,7 +148,6 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
};
focaLogisticaPedidoRutaService.obtenerActividad(datos).then(function(datos) {
-
$scope.marcadores = datos.data;
});
}
diff --git a/src/js/controllerDetalleVehiculo.js b/src/js/controllerDetalleVehiculo.js
index 5b32ddf..8e61934 100644
--- a/src/js/controllerDetalleVehiculo.js
+++ b/src/js/controllerDetalleVehiculo.js
@@ -2,30 +2,74 @@ angular.module('focaLogisticaPedidoRuta')
.controller('focaDetalleVehiculo',
['$scope',
'$uibModalInstance',
- 'vehiculo',
- 'marcador',
- function($scope, $uibModalInstance, vehiculo, marcador) {
- $scope.articulos = marcador.notaPedido.articulosNotaPedido;
- $scope.articuloSeleccionado = {};
- $scope.vehiculo = vehiculo;
+ 'idVehiculo',
+ 'idRemito',
+ 'focaModalService',
+ '$filter',
+ 'focaLogisticaPedidoRutaService',
+ function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter,
+ focaLogisticaPedidoRutaService
+ ) {
+ $scope.articulos = [];
+ $scope.vehiculo = {};
+ $scope.remito = {};
+ focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(
+ function(res) {
+ $scope.vehiculo = res.data;
+ }
+ );
+ focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito).then(
+ function(res) {
+ $scope.remito = res.data;
+ $scope.articulos = res.data.articulosRemito;
+ }
+ );
+ $scope.aCargar = [];
$scope.aceptar = function() {
$uibModalInstance.close();
};
- $scope.cargarACisterna = function(cisterna) {
- if(!$scope.articuloSeleccionado.id) {
- //TODO: usar modal de foca
- alert('Debe seleccionar un articulo');
- return;
- }
- if(cisterna.cisternaCarga.cantidad) {
- cisterna.cisternaCarga.cantidad += parseFloat(cisterna.aCargar);
- }else {
- cisterna.cisternaCarga.cantidad = parseFloat(cisterna.aCargar);
- cisterna.cisternaCarga.idProducto = $scope.articuloSeleccionado.id;
- }
- cisterna.disponible = cisterna.capacidad - cisterna.cisternaCarga.cantidad;
- cisterna.aCargar = '';
+ $scope.cancelar = function() {
+ $uibModalInstance.close();
+ };
+
+ $scope.cargarACisternas = function(vehiculo) {
+ for (var i = 0; i < vehiculo.cisternas.length; i++) {
+ var cisterna = vehiculo.cisternas[i];
+ var aCargar = parseFloat($scope.aCargar[i]);
+ if(!aCargar) {
+ continue;
+ }
+ if(aCargar > cisterna.disponible) {
+ focaModalService.alert('La cantidad cargada supera la capacidad de la' +
+ 'cisterna ' + cisterna.codigo);
+ return;
+ }
+ if(cisterna.cisternaCarga.cantidad) {
+ cisterna.cisternaCarga.cantidad += aCargar;
+ }else {
+ cisterna.cisternaCarga.cantidad = aCargar;
+ cisterna.cisternaCarga.idProducto = $scope.articuloSeleccionado.idArticulo;
+ }
+ cisterna.disponible = cisterna.capacidad - cisterna.cisternaCarga.cantidad;
+
+ cisterna.cisternaCarga.articulo = {
+ DetArt: $scope.articuloSeleccionado.descripcion
+ };
+ $filter('filter')($scope.articulos, {id: $scope.articuloSeleccionado.id})[0]
+ .cargado = true;
+
+ $scope.calcularPorcentaje(cisterna);
+ }
+ var articuloSiguiente = $scope.articulos.filter(
+ function(filter) {
+ return filter.cargado !== true;
+ }
+ );
+ if(articuloSiguiente.length > 0){
+ $scope.cambioArticulo(articuloSiguiente[0]);
+ }
+ $scope.aCargar = [];
};
$scope.calcularPorcentaje = function(cisterna) {
if(!cisterna.cisternaCarga.cantidad) {
@@ -33,9 +77,29 @@ angular.module('focaLogisticaPedidoRuta')
}
var porcentaje = (cisterna.cisternaCarga.cantidad * 100 /
cisterna.capacidad) + '%';
- document.getElementById(cisterna.id).style.width = porcentaje;
+ var elementHtml = document.getElementById(cisterna.id);
+ if(elementHtml) {
+ elementHtml.style.width = porcentaje;
+ }
};
$scope.cambioArticulo = function(articulo) {
+ articulo.checked = true;
$scope.articuloSeleccionado = articulo;
};
+ $scope.actualizarArticulo = function () {
+ $scope.articuloSeleccionado.cantidadCargada = 0;
+ for (var i = 0; i < $scope.aCargar.length; i++) {
+ $scope.articuloSeleccionado.cantidadCargada +=
+ parseFloat($scope.aCargar[i]) || 0;
+ }
+ };
+ $scope.tieneArticulosPendientes = function() {
+ var articulosDescargados = $scope.articulos.filter(function(filter) {
+ return filter.cargado === true;
+ });
+ if(articulosDescargados.length === $scope.articulos.length) {
+ return false;
+ }
+ return true;
+ };
}]);
diff --git a/src/js/osm-directive.js b/src/js/osm-directive.js
index 6a4bb40..7b0b4d3 100644
--- a/src/js/osm-directive.js
+++ b/src/js/osm-directive.js
@@ -51,7 +51,7 @@ angular.module('focaLogisticaPedidoRuta').directive('foca', function() {
observacion += '
';
observacion += '';
+ JSON.stringify(marcador)+')\' draggable="true">(Arrastrar icono)';
$scope.markers.push(
L.marker([marcador.latitud, marcador.longitud]).addTo($scope.map)
.bindPopup(observacion)
diff --git a/src/js/service.js b/src/js/service.js
index c6e00f6..4c0196a 100644
--- a/src/js/service.js
+++ b/src/js/service.js
@@ -5,6 +5,12 @@ angular.module('focaLogisticaPedidoRuta')
return {
obtenerActividad: function(parametros) {
return $http.post(API_ENDPOINT.URL + '/seguimiento/filtros', parametros);
+ },
+ obtenerVehiculoById: function(idVehiculo) {
+ return $http.get(API_ENDPOINT.URL + '/vehiculo/' + idVehiculo);
+ },
+ obtenerRemitoById: function(idRemito) {
+ return $http.get(API_ENDPOINT.URL + '/remito/obtener/' + idRemito);
}
};
}]);
diff --git a/src/views/foca-detalle-vehiculo.html b/src/views/foca-detalle-vehiculo.html
index 6c4f61f..f2901f7 100644
--- a/src/views/foca-detalle-vehiculo.html
+++ b/src/views/foca-detalle-vehiculo.html
@@ -1,45 +1,47 @@