Commit d09f218da028eeeee5c0d534367ae09c8a6e812f
1 parent
7157d3b635
Exists in
master
first commit
Showing
11 changed files
with
432 additions
and
191 deletions
Show diff stats
gulpfile.js
| ... | ... | @@ -23,7 +23,7 @@ gulp.task('templates', ['clean'], function() { |
| 23 | 23 | gulp.src(paths.srcViews), |
| 24 | 24 | htmlmin(), |
| 25 | 25 | templateCache('views.js', { |
| 26 | - module: 'focaAdminSeguimiento', | |
| 26 | + module: 'focaLogisticaPedidoRuta', | |
| 27 | 27 | root: '' |
| 28 | 28 | }), |
| 29 | 29 | gulp.dest(paths.tmp) |
| ... | ... | @@ -38,10 +38,10 @@ gulp.task('uglify', ['templates'], function() { |
| 38 | 38 | paths.srcJS, |
| 39 | 39 | 'tmp/views.js' |
| 40 | 40 | ]), |
| 41 | - concat('foca-admin-seguimiento.js'), | |
| 41 | + concat('foca-logistica-pedido-ruta.js'), | |
| 42 | 42 | replace('src/views/', ''), |
| 43 | 43 | gulp.dest(paths.tmp), |
| 44 | - rename('foca-admin-seguimiento.min.js'), | |
| 44 | + rename('foca-logistica-pedido-ruta.min.js'), | |
| 45 | 45 | uglify(), |
| 46 | 46 | replace('"ngRoute","ui.bootstrap"', ''), |
| 47 | 47 | gulp.dest(paths.dist) |
package.json
| 1 | 1 | { |
| 2 | - "name": "foca-admin-seguimiento", | |
| 2 | + "name": "foca-logistica-pedido-ruta", | |
| 3 | 3 | "version": "0.0.2", |
| 4 | - "description": "Seguimiento de actividad", | |
| 4 | + "description": "Logistica de pedidos", | |
| 5 | 5 | "main": "index.js", |
| 6 | 6 | "scripts": { |
| 7 | 7 | "test": "echo \"Error: no test specified\" && exit 1", |
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | ], |
| 16 | 16 | "repository": { |
| 17 | 17 | "type": "git", |
| 18 | - "url": "https://debo.suite.repo/modulos-npm/foca-admin-seguimiento.git" | |
| 18 | + "url": "http://git.focasoftware.com/npm/foca-logistica-pedido-ruta.git" | |
| 19 | 19 | }, |
| 20 | 20 | "author": "Foca Software", |
| 21 | 21 | "license": "ISC", |
| ... | ... | @@ -25,10 +25,10 @@ |
| 25 | 25 | "bootstrap": "^4.1.3", |
| 26 | 26 | "font-awesome": "^4.7.0", |
| 27 | 27 | "gulp": "^3.9.1", |
| 28 | - "gulp-angular-templatecache": "^2.2.3", | |
| 28 | + "gulp-angular-templatecache": "^2.2.5", | |
| 29 | 29 | "gulp-clean": "^0.4.0", |
| 30 | 30 | "gulp-concat": "^2.6.1", |
| 31 | - "gulp-connect": "^5.6.1", | |
| 31 | + "gulp-connect": "^5.7.0", | |
| 32 | 32 | "gulp-htmlmin": "^5.0.1", |
| 33 | 33 | "gulp-jshint": "^2.1.0", |
| 34 | 34 | "gulp-rename": "^1.4.0", |
| ... | ... | @@ -38,7 +38,7 @@ |
| 38 | 38 | "gulp-uglify-es": "^1.0.4", |
| 39 | 39 | "jasmine-core": "^3.3.0", |
| 40 | 40 | "jquery": "^3.3.1", |
| 41 | - "jshint": "^2.9.6", | |
| 41 | + "jshint": "^2.9.7", | |
| 42 | 42 | "leaflet": "^1.3.4", |
| 43 | 43 | "pre-commit": "^1.2.2", |
| 44 | 44 | "pump": "^3.0.0", |
src/js/app.js
src/js/controller.js
| 1 | -angular.module('focaAdminSeguimiento') .controller('focaAdminSeguimientoController', [ | |
| 2 | - '$scope', 'focaAdminSeguimientoService', '$location', '$routeParams', | |
| 3 | - function($scope, focaAdminSeguimientoService, $location, $routeParams) { | |
| 1 | +angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaController', [ | |
| 2 | + '$scope', 'focaLogisticaPedidoRutaService', '$location', '$uibModal', '$filter', | |
| 3 | + function($scope, focaLogisticaPedidoRutaService, $location, $uibModal, $filter) { | |
| 4 | 4 | $scope.actividad = ''; |
| 5 | 5 | |
| 6 | 6 | $scope.now = new Date(); |
| 7 | - | |
| 8 | - if ($routeParams.parametro === 'nota-pedido') { | |
| 9 | - $scope.actividad = 'Nota de pedido'; | |
| 10 | - } | |
| 11 | - | |
| 12 | - if ($routeParams.parametro === 'hoja-ruta') { | |
| 13 | - $scope.actividad = 'Entrega de producto'; | |
| 14 | - } | |
| 15 | - | |
| 16 | - if ($routeParams.parametro === 'cobranza') { | |
| 17 | - $scope.actividad = 'Cobranza'; | |
| 18 | - } | |
| 19 | - | |
| 7 | + $scope.actividad = 'Nota de pedido'; | |
| 20 | 8 | $scope.idUsuario = 0; |
| 21 | 9 | $scope.marcadores = []; |
| 10 | + $scope.vehiculos = []; | |
| 22 | 11 | getSeguimiento(); |
| 23 | - | |
| 12 | + $scope.arrastrando = false; | |
| 24 | 13 | $scope.general = function() { |
| 25 | 14 | $scope.idUsuario = 0; |
| 26 | 15 | getSeguimiento(); |
| 27 | 16 | }; |
| 28 | 17 | |
| 18 | + $scope.cargar = function(id, punto) { | |
| 19 | + var marcador = JSON.parse(punto); | |
| 20 | + var vehiculo = $filter('filter')($scope.vehiculos, {id: parseInt(id)})[0]; | |
| 21 | + var modalInstance = $uibModal.open( | |
| 22 | + { | |
| 23 | + ariaLabelledBy: 'Busqueda de Vehiculo', | |
| 24 | + templateUrl: 'foca-detalle-vehiculo.html', | |
| 25 | + controller: 'focaDetalleVehiculo', | |
| 26 | + size: 'lg', | |
| 27 | + resolve: { | |
| 28 | + vehiculo: function() {return vehiculo;}, | |
| 29 | + marcador: function() {return marcador;} | |
| 30 | + } | |
| 31 | + } | |
| 32 | + ); | |
| 33 | + modalInstance.result.then(function() { | |
| 34 | + }, function() { | |
| 35 | + //run when cancel modal | |
| 36 | + }); | |
| 37 | + }; | |
| 38 | + | |
| 39 | + $scope.arrastra = function() { | |
| 40 | + $scope.arrastrando = true; | |
| 41 | + $scope.$digest(); | |
| 42 | + }; | |
| 43 | + | |
| 44 | + $scope.noArrastra = function() { | |
| 45 | + $scope.arrastrando = false; | |
| 46 | + $scope.$digest(); | |
| 47 | + }; | |
| 48 | + | |
| 29 | 49 | $scope.individual = function() { |
| 30 | 50 | $scope.idUsuario = -1; |
| 31 | 51 | }; |
| 32 | 52 | |
| 53 | + $scope.mostrarDetalle = function() { | |
| 54 | + $scope.detalle = true; | |
| 55 | + }; | |
| 56 | + | |
| 33 | 57 | $scope.salir = function() { |
| 34 | 58 | $location.path('/'); |
| 35 | 59 | }; |
| ... | ... | @@ -44,7 +68,28 @@ angular.module('focaAdminSeguimiento') .controller('focaAdminSeguimientoControll |
| 44 | 68 | $scope.fecha = function() { |
| 45 | 69 | getSeguimiento(); |
| 46 | 70 | }; |
| 71 | + | |
| 72 | + $scope.seleccionarVehiculo = function() { | |
| 73 | + var modalInstance = $uibModal.open( | |
| 74 | + { | |
| 75 | + ariaLabelledBy: 'Busqueda de Vehiculo', | |
| 76 | + templateUrl: 'modal-vehiculo.html', | |
| 77 | + controller: 'focaModalVehiculoController', | |
| 78 | + size: 'lg' | |
| 79 | + } | |
| 80 | + ); | |
| 81 | + | |
| 82 | + modalInstance.result.then( | |
| 83 | + function(vehiculo) { | |
| 84 | + $scope.vehiculos.push(vehiculo); | |
| 85 | + }, function() { | |
| 86 | + // funcion ejecutada cuando se cancela el modal | |
| 87 | + } | |
| 88 | + ); | |
| 89 | + }; | |
| 47 | 90 | |
| 91 | + | |
| 92 | + | |
| 48 | 93 | function getSeguimiento() { |
| 49 | 94 | var now = $scope.now; |
| 50 | 95 | var desde = new Date(new Date(now.setHours(0)).setMinutes(0)); |
| ... | ... | @@ -62,7 +107,7 @@ angular.module('focaAdminSeguimiento') .controller('focaAdminSeguimientoControll |
| 62 | 107 | individual: $scope.idUsuario !== 0 ? true : false |
| 63 | 108 | }; |
| 64 | 109 | |
| 65 | - focaAdminSeguimientoService.obtenerActividad(datos).then(function(datos) { | |
| 110 | + focaLogisticaPedidoRutaService.obtenerActividad(datos).then(function(datos) { | |
| 66 | 111 | |
| 67 | 112 | $scope.marcadores = datos.data; |
| 68 | 113 | }); |
src/js/controllerDetalleVehiculo.js
| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | +angular.module('focaLogisticaPedidoRuta') | |
| 2 | + .controller('focaDetalleVehiculo', ['$scope', '$uibModalInstance', 'vehiculo', 'marcador', | |
| 3 | + function($scope, $uibModalInstance, vehiculo, marcador) { | |
| 4 | + $scope.articulos = marcador.notaPedido.articulosNotaPedido; | |
| 5 | + $scope.vehiculo = vehiculo; | |
| 6 | + $scope.aceptar = function() { | |
| 7 | + $uibModalInstance.close(); | |
| 8 | + }; | |
| 9 | + }]); |
src/js/osm-directive.js
| 1 | -angular.module('focaAdminSeguimiento').directive('osm', function() { | |
| 1 | +angular.module('focaLogisticaPedidoRuta').directive('foca', function() { | |
| 2 | 2 | return { |
| 3 | 3 | restrict: 'E', |
| 4 | 4 | link: function(scope, el, attrs) { |
| ... | ... | @@ -7,105 +7,18 @@ angular.module('focaAdminSeguimiento').directive('osm', function() { |
| 7 | 7 | scope.map = L.map(contenedor).setView([attrs.latitud, attrs.longitud], attrs.zoom); |
| 8 | 8 | L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(scope.map); |
| 9 | 9 | }, |
| 10 | - controller: ['$scope', '$filter', function($scope, $filter) { | |
| 11 | - $scope.markers = []; | |
| 10 | + controller: ['$scope', function($scope) { | |
| 11 | + $scope.markers = []; | |
| 12 | 12 | $scope.$watch('marcadores', function() { |
| 13 | 13 | for(var i in $scope.markers) { |
| 14 | 14 | $scope.map.removeLayer($scope.markers[i]); |
| 15 | 15 | } |
| 16 | - | |
| 17 | 16 | $scope.markers = []; |
| 18 | - angular.forEach($scope.marcadores, function(marcador) { | |
| 19 | - var observacion = ''; | |
| 20 | - | |
| 21 | - if ($scope.parametros.actividad === 'Nota de pedido') { | |
| 22 | - observacion += | |
| 23 | - 'Vendedor: ' + marcador.notaPedido.idVendedor + ' - ' + | |
| 24 | - ( | |
| 25 | - marcador.notaPedido.vendedor ? | |
| 26 | - marcador.notaPedido.vendedor.NomVen : | |
| 27 | - '' | |
| 28 | - ) + '<br/>'; | |
| 29 | - observacion += 'Fecha: ' + | |
| 30 | - $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + | |
| 31 | - marcador.fecha.slice(11,19) + '<br/>'; | |
| 32 | - observacion += 'Nยบ: ' + $filter('comprobante')([ | |
| 33 | - marcador.notaPedido.sucursal, | |
| 34 | - marcador.notaPedido.numeroNotaPedido | |
| 35 | - ]) + '<br/>'; | |
| 36 | - observacion += 'Cliente: ' + | |
| 37 | - marcador.notaPedido.cliente.NOM + '<br/>'; | |
| 38 | - | |
| 39 | - if ($scope.parametros.individual) { | |
| 40 | - observacion += | |
| 41 | - 'Total: ' + $filter('currency')(marcador.notaPedido.total, '$'); | |
| 42 | - observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion; | |
| 43 | - | |
| 44 | - if (marcador.distancia) { | |
| 45 | - observacion += '<br/>Distancia a casa central: ' + | |
| 46 | - marcador.distancia + 'km'; | |
| 47 | - } | |
| 48 | - } else { | |
| 49 | - observacion += 'Cantidad de nota de pedido: ' + | |
| 50 | - marcador.cantidad + '<br/>'; | |
| 51 | - observacion += 'Total Vendido: ' + | |
| 52 | - $filter('currency')(marcador.total, '$'); | |
| 53 | - } | |
| 54 | - } | |
| 55 | - | |
| 56 | - if ($scope.parametros.actividad === 'Cobranza') { | |
| 57 | - observacion += 'Cobrador: ' + marcador.recibo.CFE + '<br/>'; | |
| 58 | - observacion += 'Fecha: ' + | |
| 59 | - $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + | |
| 60 | - marcador.fecha.slice(11,19) + '<br/>'; | |
| 61 | - observacion += 'Nยบ: ' + $filter('comprobante')([ | |
| 62 | - marcador.sucursal, marcador.idUsuario]) + '<br/>'; | |
| 63 | - observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>'; | |
| 64 | - observacion += 'Total Cobrado: $' + marcador.factura.IPA; | |
| 65 | - } | |
| 66 | - | |
| 67 | - if ($scope.parametros.actividad === 'Entrega de producto') { | |
| 68 | - observacion += 'Vehiculo: ' + | |
| 69 | - marcador.remito.hojaRuta.idVehiculo + ' - ' + | |
| 70 | - marcador.remito.hojaRuta.vehiculo.tractor + '<br/>'; | |
| 71 | - observacion += 'Transportista: ' + | |
| 72 | - marcador.remito.hojaRuta.transportista.NOM + '<br/>'; | |
| 73 | - observacion += 'Chofer: ' + | |
| 74 | - marcador.remito.hojaRuta.chofer.nombre + '<br/>'; | |
| 75 | - observacion += 'Fecha: ' + | |
| 76 | - $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + | |
| 77 | - marcador.fecha.slice(11,19) + '<br/>'; | |
| 78 | - observacion += 'Hoja de ruta: ' + $filter('comprobante')([ | |
| 79 | - marcador.remito.hojaRuta.sucursal, | |
| 80 | - marcador.remito.hojaRuta.numeroHojaRuta | |
| 81 | - ]) + '<br/>'; | |
| 82 | - observacion += 'Remito: ' + $filter('comprobante')([ | |
| 83 | - marcador.remito.sucursal, | |
| 84 | - marcador.remito.numeroRemito | |
| 85 | - ]) + '<br/>'; | |
| 86 | - observacion += 'Cliente: ' + | |
| 87 | - marcador.remito.cliente.NOM + '<br/>'; | |
| 88 | - | |
| 89 | - if ($scope.parametros.individual) { | |
| 90 | - observacion += 'Producto: ' + | |
| 91 | - marcador.remito.articulosRemito[0].descripcion + '<br/>'; | |
| 92 | - observacion += 'Cantidad entregada: ' + | |
| 93 | - marcador.remito.carga + '<br/>'; | |
| 94 | - | |
| 95 | - if (marcador.distancia) { | |
| 96 | - observacion += 'Distancia a casa central: ' + marcador.distancia + | |
| 97 | - 'km <br/>'; | |
| 98 | - } | |
| 99 | - | |
| 100 | - if (marcador.observaciones) { | |
| 101 | - observacion += 'Observaciones: ' + marcador.observaciones; | |
| 102 | - } | |
| 103 | - observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion; | |
| 104 | - } else { | |
| 105 | - observacion += 'Cantidad de entregas: ' + marcador.cantidad; | |
| 106 | - } | |
| 107 | - } | |
| 108 | 17 | |
| 18 | + angular.forEach($scope.marcadores, function(marcador) { | |
| 19 | + var observacion = '<i class="fa fa-map-marker fa-5x" aria-hidden="true"'+ | |
| 20 | + 'class="form-control" ondragend="dropEnd()" ondragstart="drag(event, '+ | |
| 21 | + JSON.stringify(marcador)+')" draggable="true"></i>'; | |
| 109 | 22 | $scope.markers.push( |
| 110 | 23 | L.marker([marcador.latitud, marcador.longitud]).addTo($scope.map) |
| 111 | 24 | .bindPopup(observacion) |
src/js/route.js
| 1 | -angular.module('focaAdminSeguimiento') | |
| 1 | +angular.module('focaLogisticaPedidoRuta') | |
| 2 | 2 | .config(['$routeProvider', function($routeProvider) { |
| 3 | - $routeProvider.when('/admin-seguimiento/:parametro', { | |
| 4 | - controller: 'focaAdminSeguimientoController', | |
| 5 | - templateUrl: 'src/views/foca-admin-seguimiento.html' | |
| 3 | + $routeProvider.when('/logistica-pedido-ruta', { | |
| 4 | + controller: 'focaLogisticaPedidoRutaController', | |
| 5 | + templateUrl: 'src/views/foca-logistica-pedido-ruta.html' | |
| 6 | 6 | }); |
| 7 | 7 | }]); |
src/js/service.js
| 1 | -angular.module('focaAdminSeguimiento') | |
| 1 | +angular.module('focaLogisticaPedidoRuta') | |
| 2 | 2 | .service( |
| 3 | - 'focaAdminSeguimientoService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT | |
| 3 | + 'focaLogisticaPedidoRutaService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT | |
| 4 | 4 | ) { |
| 5 | 5 | return { |
| 6 | 6 | obtenerActividad: function(parametros) { |
src/views/foca-admin-seguimiento.html
| ... | ... | @@ -1,63 +0,0 @@ |
| 1 | -<div class="foca-admin-seguimiento"> | |
| 2 | - <div class="row"> | |
| 3 | - <div class="offset-1 col-9"> | |
| 4 | - <osm | |
| 5 | - latitud="-32.89214159952345" | |
| 6 | - longitud="-68.84572999101856" | |
| 7 | - zoom="14" | |
| 8 | - marcadores="marcadores" | |
| 9 | - parametros= "datosBuscados" | |
| 10 | - /> | |
| 11 | - </div> | |
| 12 | - <div class="col-2 pl-0"> | |
| 13 | - <input | |
| 14 | - type="date" | |
| 15 | - ng-model="now" | |
| 16 | - class="btn col-12 my-1" | |
| 17 | - foca-focus="true" | |
| 18 | - ng-blur="fecha()" | |
| 19 | - hasta-hoy | |
| 20 | - /> | |
| 21 | - <button | |
| 22 | - type="button" | |
| 23 | - ng-class="{'active': idUsuario == 0}" | |
| 24 | - class="btn col-12 my-1" | |
| 25 | - ng-click="general()" | |
| 26 | - >General</button> | |
| 27 | - <button | |
| 28 | - type="button" | |
| 29 | - ng-class="{'active': idUsuario != 0}" | |
| 30 | - class="btn col-12 my-1" | |
| 31 | - ng-click="individual()" | |
| 32 | - ng-show="actividad != 'Cobranza'" | |
| 33 | - >Individual</button> | |
| 34 | - <div class="form-group" ng-show="idUsuario == -1"> | |
| 35 | - <input | |
| 36 | - type="text" | |
| 37 | - placeholder="Vendedor" | |
| 38 | - class="form-control" | |
| 39 | - ng-model="idUsuarioInput" | |
| 40 | - ng-keypress="search($event.keyCode)" | |
| 41 | - foca-focus="idUsuario == -1" | |
| 42 | - ng-show="actividad == 'Nota de pedido'" | |
| 43 | - > | |
| 44 | - <input | |
| 45 | - type="text" | |
| 46 | - placeholder="Vehiculo" | |
| 47 | - class="form-control" | |
| 48 | - ng-model="idUsuarioInput" | |
| 49 | - ng-keypress="search($event.keyCode)" | |
| 50 | - foca-focus="idUsuario == -1" | |
| 51 | - ng-show="actividad == 'Entrega de producto'" | |
| 52 | - > | |
| 53 | - </div> | |
| 54 | - <button | |
| 55 | - type="button" | |
| 56 | - class="btn col-12 my-1 boton-salir" | |
| 57 | - ng-click="salir()" | |
| 58 | - > | |
| 59 | - Salir | |
| 60 | - </button> | |
| 61 | - </div> | |
| 62 | - </div> | |
| 63 | -</div> |
src/views/foca-detalle-vehiculo.html
| ... | ... | @@ -0,0 +1,51 @@ |
| 1 | +<div class="modal-header"> | |
| 2 | + <h4>Detalle de carga</h4> | |
| 3 | +</div> | |
| 4 | +<div class="modal-body"> | |
| 5 | + <div class="row"> | |
| 6 | + <div class="col-12" ng-repeat="articulo in articulos"> | |
| 7 | + <input | |
| 8 | + type="checkbox" | |
| 9 | + ng-model="articulo.chequed" | |
| 10 | + > | |
| 11 | + <span>Articulo: {{articulo.descripcion}},</span> | |
| 12 | + <span>Cantidad: {{articulo.cantidad}}</span> | |
| 13 | + </div> | |
| 14 | + <strong class="col-12" ng-bind="vehiculo.tractor"></strong> | |
| 15 | + <strong class="col-12">Cisternas:</strong> | |
| 16 | + <!-- <div class="text-center"> | |
| 17 | + <div class="progress" ng-repeat="cisterna in vehiculo.cisternas"> | |
| 18 | + <div class="progress-bar" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="height: 30%;"> | |
| 19 | + <span class="sr-only">30% Complete</span> | |
| 20 | + </div> | |
| 21 | + </div> | |
| 22 | + </div> --> | |
| 23 | + <div class="progress col-12" ng-repeat="cisterna in vehiculo.cisternas"> | |
| 24 | + <div class="progress-bar" role="progressbar" aria-valuenow="70" | |
| 25 | + aria-valuemin="0" aria-valuemax="100" style="width:70%"> | |
| 26 | + <span class="sr-only">70% Complete</span> | |
| 27 | + </div> | |
| 28 | + </div> | |
| 29 | + </div> | |
| 30 | +</div> | |
| 31 | +<div class="modal-footer py-1"> | |
| 32 | + <button class="btn btn-sm btn-secondary" type="button" ng-click="aceptar()">Aceptar</button> | |
| 33 | +</div> | |
| 34 | +<style> | |
| 35 | +.progress-bar-vertical { | |
| 36 | + width: 20px; | |
| 37 | + min-height: 100px; | |
| 38 | + display: flex; | |
| 39 | + align-items: flex-end; | |
| 40 | + margin-right: 20px; | |
| 41 | + float: left; | |
| 42 | +} | |
| 43 | + | |
| 44 | +.progress-bar-vertical .progress-bar { | |
| 45 | + width: 100%; | |
| 46 | + height: 0; | |
| 47 | + -webkit-transition: height 0.6s ease; | |
| 48 | + -o-transition: height 0.6s ease; | |
| 49 | + transition: height 0.6s ease; | |
| 50 | +} | |
| 51 | +</style> | |
| 0 | 52 | \ No newline at end of file |
src/views/foca-logistica-pedido-ruta.html
| ... | ... | @@ -0,0 +1,286 @@ |
| 1 | +<script> | |
| 2 | + function allowDrop(ev) { | |
| 3 | + ev.preventDefault(); | |
| 4 | + } | |
| 5 | + function drag(ev, marcador) { | |
| 6 | + marcador = JSON.stringify(marcador); | |
| 7 | + ev.dataTransfer.setData("marcador", marcador); | |
| 8 | + var dom_el = document.getElementById('test'); | |
| 9 | + var scope = angular.element(dom_el).scope(); | |
| 10 | + scope.arrastra(); | |
| 11 | + } | |
| 12 | + function drop(ev) { | |
| 13 | + ev.preventDefault(); | |
| 14 | + var data = ev.dataTransfer.getData("marcador"); | |
| 15 | + var dom_el = document.getElementById(ev.target.id); | |
| 16 | + var ng_el = angular.element(dom_el); | |
| 17 | + var ng_el_scope = ng_el.scope(); | |
| 18 | + ng_el_scope.cargar(ev.target.id, data); | |
| 19 | + ng_el_scope.$digest(); | |
| 20 | + } | |
| 21 | + function dropEnd() { | |
| 22 | + console.log('drop'); | |
| 23 | + var dom_el = document.getElementById('test'); | |
| 24 | + var scope = angular.element(dom_el).scope(); | |
| 25 | + scope.noArrastra(); | |
| 26 | + } | |
| 27 | +</script> | |
| 28 | +<div class="foca-logistica-pedido-ruta" id="test"> | |
| 29 | + <div class="row"> | |
| 30 | + <div class="offset-1 col-9"> | |
| 31 | + <foca | |
| 32 | + latitud="-32.89214159952345" | |
| 33 | + longitud="-68.84572999101856" | |
| 34 | + zoom="14" | |
| 35 | + marcadores="marcadores" | |
| 36 | + parametros= "datosBuscados" | |
| 37 | + /> | |
| 38 | + </div> | |
| 39 | + <div class="col-2 pl-0"> | |
| 40 | + <input | |
| 41 | + type="date" | |
| 42 | + ng-model="now" | |
| 43 | + class="btn col-12 my-1" | |
| 44 | + foca-focus="true" | |
| 45 | + ng-blur="fecha()" | |
| 46 | + hasta-hoy | |
| 47 | + /> | |
| 48 | + <button | |
| 49 | + type="button" | |
| 50 | + ng-class="{'active': idUsuario == 0}" | |
| 51 | + class="btn col-12 my-1" | |
| 52 | + ng-click="general()" | |
| 53 | + >General</button> | |
| 54 | + <button | |
| 55 | + type="button" | |
| 56 | + ng-class="{'active': idUsuario != 0}" | |
| 57 | + class="btn col-12 my-1" | |
| 58 | + ng-click="individual()" | |
| 59 | + ng-show="actividad != 'Cobranza'" | |
| 60 | + >Individual</button> | |
| 61 | + <div class="form-group" ng-show="idUsuario == -1"> | |
| 62 | + <input | |
| 63 | + type="text" | |
| 64 | + placeholder="Vendedor" | |
| 65 | + class="form-control" | |
| 66 | + ng-model="idUsuarioInput" | |
| 67 | + ng-keypress="search($event.keyCode)" | |
| 68 | + foca-focus="idUsuario == -1" | |
| 69 | + ng-show="actividad == 'Nota de pedido'" | |
| 70 | + > | |
| 71 | + <input | |
| 72 | + type="text" | |
| 73 | + placeholder="Vehiculo" | |
| 74 | + class="form-control" | |
| 75 | + ng-model="idUsuarioInput" | |
| 76 | + ng-keypress="search($event.keyCode)" | |
| 77 | + foca-focus="idUsuario == -1" | |
| 78 | + ng-show="actividad == 'Entrega de producto'" | |
| 79 | + > | |
| 80 | + </div> | |
| 81 | + <button | |
| 82 | + type="button" | |
| 83 | + class="btn col-12 my-1 boton-salir" | |
| 84 | + ng-click="salir()" | |
| 85 | + > | |
| 86 | + Salir | |
| 87 | + </button> | |
| 88 | + </div> | |
| 89 | + <input | |
| 90 | + class="col-auto form-control" | |
| 91 | + ng-click="seleccionarVehiculo()" | |
| 92 | + placeholder="Seleccionar vehiculo" | |
| 93 | + readonly | |
| 94 | + /> | |
| 95 | + <div class="row"> | |
| 96 | + <div | |
| 97 | + class="container col-auto" | |
| 98 | + ng-repeat="vehiculo in vehiculos" | |
| 99 | + ng-click="mostrarDetalleVehiculo(vehiculo)" | |
| 100 | + > | |
| 101 | + <div> | |
| 102 | + <div class="col-md-3 col-sm-6"> | |
| 103 | + <div class="progress-circle blue" ng-class="{'arrastrando': arrastrando}"> | |
| 104 | + <span class="progress-left"> | |
| 105 | + <span class="progress-bar"></span> | |
| 106 | + </span> | |
| 107 | + <span class="progress-right"> | |
| 108 | + <span class="progress-bar"></span> | |
| 109 | + </span> | |
| 110 | + <div class="progress-value">{{vehiculo.codigo}}</div> | |
| 111 | + </div> | |
| 112 | + </div> | |
| 113 | + <div | |
| 114 | + class="col-12 border border-dark text-center" | |
| 115 | + ng-show="arrastrando" | |
| 116 | + id="{{vehiculo.id}}" | |
| 117 | + ondrop="drop(event)" | |
| 118 | + ondragover="allowDrop(event)" | |
| 119 | + >Soltar acรก</div> | |
| 120 | + </div> | |
| 121 | + </div> | |
| 122 | + </div> | |
| 123 | + </div> | |
| 124 | +</div> | |
| 125 | +<style> | |
| 126 | +.arrastrando { | |
| 127 | + opacity: 0.5; | |
| 128 | +} | |
| 129 | +.vertical { | |
| 130 | + display: inline-block; | |
| 131 | + width: 20%; | |
| 132 | + height: 40px; | |
| 133 | + -webkit-transform: rotate(-90deg); /* Chrome, Safari, Opera */ | |
| 134 | + transform: rotate(-90deg); | |
| 135 | +} | |
| 136 | +.progress-circle{ | |
| 137 | + width: 150px; | |
| 138 | + height: 150px; | |
| 139 | + line-height: 150px; | |
| 140 | + background: none; | |
| 141 | + margin: 0 auto; | |
| 142 | + box-shadow: none; | |
| 143 | + position: relative; | |
| 144 | +} | |
| 145 | +.progress-circle:after{ | |
| 146 | + content: ""; | |
| 147 | + width: 100%; | |
| 148 | + height: 100%; | |
| 149 | + border-radius: 50%; | |
| 150 | + border: 12px solid #fff; | |
| 151 | + position: absolute; | |
| 152 | + top: 0; | |
| 153 | + left: 0; | |
| 154 | +} | |
| 155 | +.progress-circle > span{ | |
| 156 | + width: 50%; | |
| 157 | + height: 100%; | |
| 158 | + overflow: hidden; | |
| 159 | + position: absolute; | |
| 160 | + top: 0; | |
| 161 | + z-index: 1; | |
| 162 | +} | |
| 163 | +.progress-circle .progress-left{ | |
| 164 | + left: 0; | |
| 165 | +} | |
| 166 | +.progress-circle .progress-bar{ | |
| 167 | + width: 100%; | |
| 168 | + height: 100%; | |
| 169 | + background: none; | |
| 170 | + border-width: 12px; | |
| 171 | + border-style: solid; | |
| 172 | + position: absolute; | |
| 173 | + top: 0; | |
| 174 | +} | |
| 175 | +.progress-circle .progress-left .progress-bar{ | |
| 176 | + left: 100%; | |
| 177 | + border-top-right-radius: 80px; | |
| 178 | + border-bottom-right-radius: 80px; | |
| 179 | + border-left: 0; | |
| 180 | + -webkit-transform-origin: center left; | |
| 181 | + transform-origin: center left; | |
| 182 | +} | |
| 183 | +.progress-circle .progress-right{ | |
| 184 | + right: 0; | |
| 185 | +} | |
| 186 | +.progress-circle .progress-right .progress-bar{ | |
| 187 | + left: -100%; | |
| 188 | + border-top-left-radius: 80px; | |
| 189 | + border-bottom-left-radius: 80px; | |
| 190 | + border-right: 0; | |
| 191 | + -webkit-transform-origin: center right; | |
| 192 | + transform-origin: center right; | |
| 193 | + animation: loading-1 1.8s linear forwards; | |
| 194 | +} | |
| 195 | +.progress-circle .progress-value{ | |
| 196 | + width: 90%; | |
| 197 | + height: 90%; | |
| 198 | + border-radius: 50%; | |
| 199 | + background: #44484b; | |
| 200 | + font-size: 24px; | |
| 201 | + color: #fff; | |
| 202 | + line-height: 135px; | |
| 203 | + text-align: center; | |
| 204 | + position: absolute; | |
| 205 | + top: 5%; | |
| 206 | + left: 5%; | |
| 207 | +} | |
| 208 | +.progress-circle.blue .progress-bar{ | |
| 209 | + border-color: #049dff; | |
| 210 | +} | |
| 211 | +.progress-circle.blue .progress-left .progress-bar{ | |
| 212 | + animation: loading-2 1.5s linear forwards 1.8s; | |
| 213 | +} | |
| 214 | +.progress-circle.yellow .progress-bar{ | |
| 215 | + border-color: #fdba04; | |
| 216 | +} | |
| 217 | +.progress-circle.yellow .progress-left .progress-bar{ | |
| 218 | + animation: loading-3 1s linear forwards 1.8s; | |
| 219 | +} | |
| 220 | +.progress-circle.pink .progress-bar{ | |
| 221 | + border-color: #ed687c; | |
| 222 | +} | |
| 223 | +.progress-circle.pink .progress-left .progress-bar{ | |
| 224 | + animation: loading-4 0.4s linear forwards 1.8s; | |
| 225 | +} | |
| 226 | +.progress-circle.green .progress-bar{ | |
| 227 | + border-color: #1abc9c; | |
| 228 | +} | |
| 229 | +.progress-circle.green .progress-left .progress-bar{ | |
| 230 | + animation: loading-5 1.2s linear forwards 1.8s; | |
| 231 | +} | |
| 232 | +@keyframes loading-1{ | |
| 233 | + 0%{ | |
| 234 | + -webkit-transform: rotate(0deg); | |
| 235 | + transform: rotate(0deg); | |
| 236 | + } | |
| 237 | + 100%{ | |
| 238 | + -webkit-transform: rotate(180deg); | |
| 239 | + transform: rotate(180deg); | |
| 240 | + } | |
| 241 | +} | |
| 242 | +@keyframes loading-2{ | |
| 243 | + 0%{ | |
| 244 | + -webkit-transform: rotate(0deg); | |
| 245 | + transform: rotate(0deg); | |
| 246 | + } | |
| 247 | + 100%{ | |
| 248 | + -webkit-transform: rotate(144deg); | |
| 249 | + transform: rotate(144deg); | |
| 250 | + } | |
| 251 | +} | |
| 252 | +@keyframes loading-3{ | |
| 253 | + 0%{ | |
| 254 | + -webkit-transform: rotate(0deg); | |
| 255 | + transform: rotate(0deg); | |
| 256 | + } | |
| 257 | + 100%{ | |
| 258 | + -webkit-transform: rotate(90deg); | |
| 259 | + transform: rotate(90deg); | |
| 260 | + } | |
| 261 | +} | |
| 262 | +@keyframes loading-4{ | |
| 263 | + 0%{ | |
| 264 | + -webkit-transform: rotate(0deg); | |
| 265 | + transform: rotate(0deg); | |
| 266 | + } | |
| 267 | + 100%{ | |
| 268 | + -webkit-transform: rotate(36deg); | |
| 269 | + transform: rotate(36deg); | |
| 270 | + } | |
| 271 | +} | |
| 272 | +@keyframes loading-5{ | |
| 273 | + 0%{ | |
| 274 | + -webkit-transform: rotate(0deg); | |
| 275 | + transform: rotate(0deg); | |
| 276 | + } | |
| 277 | + 100%{ | |
| 278 | + -webkit-transform: rotate(126deg); | |
| 279 | + transform: rotate(126deg); | |
| 280 | + } | |
| 281 | +} | |
| 282 | +@media only screen and (max-width: 990px){ | |
| 283 | + .progress{ margin-bottom: 20px; } | |
| 284 | +} | |
| 285 | + | |
| 286 | +</style> |