Commit e80bc1985be3f32768fd1aabcd8f712864b0d70c
Exists in
master
and in
2 other branches
Merge branch 'develop' of http://git.focasoftware.com/npm/foca-abm-chofer
Showing
5 changed files
Show diff stats
spec/controllerSpec.js
| 1 | describe('Controladores de abm chofer', function() { | 1 | describe('Controladores de abm chofer', function() { |
| 2 | 2 | ||
| 3 | var $controller; | 3 | var $controller; |
| 4 | 4 | ||
| 5 | beforeEach(function() { | 5 | beforeEach(function() { |
| 6 | module('focaAbmChofer'); | 6 | module('focaAbmChofer'); |
| 7 | inject(function(_$controller_) { | 7 | inject(function(_$controller_) { |
| 8 | $controller = _$controller_; | 8 | $controller = _$controller_; |
| 9 | }); | 9 | }); |
| 10 | }); | 10 | }); |
| 11 | 11 | ||
| 12 | describe('Controlador focaAbmChoferesController', function() { | 12 | describe('Controlador focaAbmChoferesController', function() { |
| 13 | 13 | ||
| 14 | it('Existe el controlador focaAbmChoferesController', function() { | 14 | it('Existe el controlador focaAbmChoferesController', function() { |
| 15 | //arrange | 15 | //arrange |
| 16 | var controlador = $controller('focaAbmChoferesController', { | 16 | var controlador = $controller('focaAbmChoferesController', { |
| 17 | $scope: {}, | 17 | $scope: {}, |
| 18 | focaAbmChoferService: { | 18 | focaAbmChoferService: { |
| 19 | transportistaSeleccionado: function() { return; } | 19 | transportistaSeleccionado: function() { return; } |
| 20 | }, | 20 | }, |
| 21 | $location: {}, | 21 | $location: {}, |
| 22 | $localStorage: {}, | ||
| 22 | $uibModal: {}, | 23 | $uibModal: {}, |
| 23 | focaModalService: {}, | 24 | focaModalService: {}, |
| 24 | focaBotoneraLateralService: {}, | 25 | focaBotoneraLateralService: {}, |
| 25 | $timeout: function() { return; } | 26 | $timeout: function() { return; } |
| 26 | }); | 27 | }); |
| 27 | 28 | ||
| 28 | //assert | 29 | //assert |
| 29 | expect(typeof controlador).toEqual('object'); | 30 | expect(typeof controlador).toEqual('object'); |
| 30 | }); | 31 | }); |
| 31 | 32 | ||
| 32 | it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() { | 33 | it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() { |
| 33 | //arrange | 34 | //arrange |
| 34 | var fakeParam = ''; | 35 | var fakeParam = ''; |
| 35 | var scope = {}; | 36 | var scope = {}; |
| 36 | var focaModalService = { | 37 | var focaModalService = { |
| 37 | confirm: function() { } | 38 | confirm: function() { } |
| 38 | }; | 39 | }; |
| 39 | var controlador = $controller('focaAbmChoferesController', { | 40 | var controlador = $controller('focaAbmChoferesController', { |
| 40 | $scope: scope, | 41 | $scope: scope, |
| 41 | focaAbmChoferService: { | 42 | focaAbmChoferService: { |
| 42 | transportistaSeleccionado: function() { return; } | 43 | transportistaSeleccionado: function() { return; } |
| 43 | }, | 44 | }, |
| 44 | $location: {}, | 45 | $location: {}, |
| 46 | $localStorage: {}, | ||
| 45 | $uibModal: {}, | 47 | $uibModal: {}, |
| 46 | focaModalService: focaModalService, | 48 | focaModalService: focaModalService, |
| 47 | focaBotoneraLateralService: {}, | 49 | focaBotoneraLateralService: {}, |
| 48 | $timeout: function() { return; } | 50 | $timeout: function() { return; } |
| 49 | }); | 51 | }); |
| 50 | console.info(controlador); | 52 | console.info(controlador); |
| 51 | 53 | ||
| 52 | //act | 54 | //act |
| 53 | spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }}); | 55 | spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }}); |
| 54 | scope.solicitarConfirmacion(fakeParam); | 56 | scope.solicitarConfirmacion(fakeParam); |
| 55 | 57 | ||
| 56 | //assert | 58 | //assert |
| 57 | expect(focaModalService.confirm).toHaveBeenCalled(); | 59 | expect(focaModalService.confirm).toHaveBeenCalled(); |
| 58 | }); | 60 | }); |
| 59 | 61 | ||
| 60 | it('$scope.solicitarConfirmacion elimina al confirmar', function(done) { | 62 | it('$scope.solicitarConfirmacion elimina al confirmar', function(done) { |
| 61 | //arrange | 63 | //arrange |
| 62 | var scope = {}; | 64 | var scope = {}; |
| 63 | var focaModalService = { | 65 | var focaModalService = { |
| 64 | confirm: function() { | 66 | confirm: function() { |
| 65 | return { | 67 | return { |
| 66 | then: function() { } | 68 | then: function() { } |
| 67 | }; | 69 | }; |
| 68 | } | 70 | } |
| 69 | }; | 71 | }; |
| 70 | var focaAbmChoferService = { | 72 | var focaAbmChoferService = { |
| 71 | transportistaSeleccionado: function() { return; }, | 73 | transportistaSeleccionado: function() { return; }, |
| 72 | deleteChofer: function() { } | 74 | deleteChofer: function() { } |
| 73 | }; | 75 | }; |
| 74 | var controlador = $controller('focaAbmChoferesController', { | 76 | var controlador = $controller('focaAbmChoferesController', { |
| 75 | $scope: scope, | 77 | $scope: scope, |
| 76 | focaAbmChoferService: focaAbmChoferService, | 78 | focaAbmChoferService: focaAbmChoferService, |
| 77 | $location: {}, | 79 | $location: {}, |
| 80 | $localStorage: {}, | ||
| 78 | $uibModal: {}, | 81 | $uibModal: {}, |
| 79 | focaModalService: focaModalService, | 82 | focaModalService: focaModalService, |
| 80 | focaBotoneraLateralService: {}, | 83 | focaBotoneraLateralService: {}, |
| 81 | $timeout: function() { return; } | 84 | $timeout: function() { return; } |
| 82 | }); | 85 | }); |
| 83 | console.info(controlador); | 86 | console.info(controlador); |
| 84 | var fakeParam = ''; | 87 | var fakeParam = ''; |
| 85 | var promesa = Promise.resolve(true); | 88 | var promesa = Promise.resolve(true); |
| 86 | 89 | ||
| 87 | //act | 90 | //act |
| 88 | spyOn(focaModalService, 'confirm').and.returnValue(promesa); | 91 | spyOn(focaModalService, 'confirm').and.returnValue(promesa); |
| 89 | spyOn(focaAbmChoferService, 'deleteChofer'); | 92 | spyOn(focaAbmChoferService, 'deleteChofer'); |
| 90 | scope.solicitarConfirmacion(fakeParam); | 93 | scope.solicitarConfirmacion(fakeParam); |
| 91 | 94 | ||
| 92 | //assert | 95 | //assert |
| 93 | promesa.then(function() { | 96 | promesa.then(function() { |
| 94 | expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled(); | 97 | expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled(); |
| 95 | done(); | 98 | done(); |
| 96 | }); | 99 | }); |
| 97 | }); | 100 | }); |
| 98 | 101 | ||
| 99 | it('$scope.seleccionarTransportista levanta modal', function() { | 102 | it('$scope.seleccionarTransportista levanta modal', function() { |
| 100 | //arrange | 103 | //arrange |
| 101 | var scope = {}; | 104 | var scope = {}; |
| 102 | var focaModalService = { | 105 | var focaModalService = { |
| 103 | modal: function() { } | 106 | modal: function() { } |
| 104 | }; | 107 | }; |
| 105 | var controlador = $controller('focaAbmChoferesController', { | 108 | var controlador = $controller('focaAbmChoferesController', { |
| 106 | $scope: scope, | 109 | $scope: scope, |
| 107 | focaAbmChoferService: { | 110 | focaAbmChoferService: { |
| 108 | transportistaSeleccionado: function() { } | 111 | transportistaSeleccionado: function() { } |
| 109 | }, | 112 | }, |
| 110 | $location: {}, | 113 | $location: {}, |
| 114 | $localStorage: {}, | ||
| 111 | $uibModal: {}, | 115 | $uibModal: {}, |
| 112 | focaModalService: focaModalService, | 116 | focaModalService: focaModalService, |
| 113 | focaBotoneraLateralService: {}, | 117 | focaBotoneraLateralService: {}, |
| 114 | $timeout: function() { return; } | 118 | $timeout: function() { return; } |
| 115 | }); | 119 | }); |
| 116 | console.info(controlador); | 120 | console.info(controlador); |
| 117 | 121 | ||
| 118 | //act | 122 | //act |
| 119 | spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }}); | 123 | spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }}); |
| 120 | scope.seleccionarTransportista(); | 124 | scope.seleccionarTransportista(); |
| 121 | 125 | ||
| 122 | //assert | 126 | //assert |
| 123 | expect(focaModalService.modal).toHaveBeenCalled(); | 127 | expect(focaModalService.modal).toHaveBeenCalled(); |
| 124 | }); | 128 | }); |
| 125 | }); | 129 | }); |
| 126 | 130 | ||
| 127 | describe('Controlador focaAbmChoferController', function() { | 131 | describe('Controlador focaAbmChoferController', function() { |
| 128 | 132 | ||
| 129 | it('Existe el controlador focaAbmChoferController', function() { | 133 | it('Existe el controlador focaAbmChoferController', function() { |
| 130 | //arrange | 134 | //arrange |
| 131 | var controlador = $controller('focaAbmChoferController', { | 135 | var controlador = $controller('focaAbmChoferController', { |
| 132 | $scope: {}, | 136 | $scope: { |
| 137 | $watch: function() {} | ||
| 138 | }, | ||
| 133 | focaAbmChoferService: { | 139 | focaAbmChoferService: { |
| 134 | getTiposDocumento: function() { | 140 | getTiposDocumento: function() { |
| 135 | return { | 141 | return { |
| 136 | then: function() { } | 142 | then: function() { } |
| 137 | }; | 143 | }; |
| 138 | }, | 144 | }, |
| 139 | getChofer: function() { | 145 | getChofer: function() { |
| 140 | return { | 146 | return { |
| 141 | then: function() { } | 147 | then: function() { } |
| 142 | }; | 148 | }; |
| 143 | }, | 149 | }, |
| 144 | getTransportistas: function() { | 150 | getTransportistas: function() { |
| 145 | return { | 151 | return { |
| 146 | then: function() { } | 152 | then: function() { } |
| 147 | }; | 153 | }; |
| 148 | } | 154 | } |
| 149 | }, | 155 | }, |
| 150 | $routeParams: {}, | 156 | $routeParams: {}, |
| 151 | $location: {}, | 157 | $location: {}, |
| 158 | $localStorage: {}, | ||
| 152 | focaBotoneraLateralService: {}, | 159 | focaBotoneraLateralService: {}, |
| 153 | $timeout: function() { return; }, | 160 | $timeout: function() { return; }, |
| 154 | focaModalService: {} | 161 | focaModalService: {} |
| 155 | }); | 162 | }); |
| 156 | 163 | ||
| 157 | //assert | 164 | //assert |
| 158 | expect(typeof controlador).toEqual('object'); | 165 | expect(typeof controlador).toEqual('object'); |
| 159 | }); | 166 | }); |
| 160 | 167 | ||
| 161 | it('$scope.cancelar lleva a la ruta correcta', function() { | 168 | it('$scope.cancelar lleva a la ruta correcta', function() { |
| 162 | inject(function($location) { | 169 | inject(function($location) { |
| 163 | //arrange | 170 | //arrange |
| 164 | var scope = {}; | 171 | var scope = { |
| 172 | $watch: function() {} | ||
| 173 | }; | ||
| 165 | var controlador = $controller('focaAbmChoferController', { | 174 | var controlador = $controller('focaAbmChoferController', { |
| 166 | $scope: scope, | 175 | $scope: scope, |
| 167 | focaAbmChoferService: { | 176 | focaAbmChoferService: { |
| 168 | getTiposDocumento: function() { | 177 | getTiposDocumento: function() { |
| 169 | return { | 178 | return { |
| 170 | then: function() { } | 179 | then: function() { } |
| 171 | }; | 180 | }; |
| 172 | }, | 181 | }, |
| 173 | getChofer: function() { | 182 | getChofer: function() { |
| 174 | return { | 183 | return { |
| 175 | then: function() { } | 184 | then: function() { } |
| 176 | }; | 185 | }; |
| 177 | }, | 186 | }, |
| 178 | getTransportistas: function() { | 187 | getTransportistas: function() { |
| 179 | return { | 188 | return { |
| 180 | then: function() { } | 189 | then: function() { } |
| 181 | }; | 190 | }; |
| 182 | } | 191 | } |
| 183 | }, | 192 | }, |
| 184 | $routeParams: {}, | 193 | $routeParams: {}, |
| 185 | $location: $location, | 194 | $location: $location, |
| 195 | $localStorage: {}, | ||
| 186 | focaBotoneraLateralService: {}, | 196 | focaBotoneraLateralService: {}, |
| 187 | $timeout: function() { return; }, | 197 | $timeout: function() { return; }, |
| 188 | focaModalService: {} | 198 | focaModalService: {} |
| 189 | }); | 199 | }); |
| 190 | console.info(controlador); | 200 | console.info(controlador); |
| 191 | 201 | ||
| 192 | //act | 202 | //act |
| 193 | scope.cancelar(); | 203 | scope.cancelar(); |
| 194 | 204 | ||
| 195 | //assert | 205 | //assert |
| 196 | expect($location.url()).toEqual('/chofer'); | 206 | expect($location.url()).toEqual('/chofer'); |
| 197 | }); | 207 | }); |
| 198 | }); | 208 | }); |
| 199 | 209 | ||
| 200 | it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) { | 210 | it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) { |
| 201 | 211 | ||
| 202 | //arrange | 212 | //arrange |
| 203 | var scope = {}; | 213 | var scope = { |
| 214 | $watch: function(){}, | ||
| 215 | chofer: {} | ||
| 216 | }; | ||
| 204 | var focaAbmChoferService = { | 217 | var focaAbmChoferService = { |
| 205 | getTiposDocumento: function() { | 218 | getTiposDocumento: function() { |
| 206 | return { | 219 | return { |
| 207 | then: function() { } | 220 | then: function() { } |
| 208 | }; | 221 | }; |
| 209 | }, | 222 | }, |
| 210 | getChofer: function() { | 223 | getChofer: function() { |
| 211 | return { | 224 | return { |
| 212 | then: function() { } | 225 | then: function() { } |
| 213 | }; | 226 | }; |
| 214 | }, | 227 | }, |
| 215 | getTransportistas: function() { | 228 | getTransportistas: function() { |
| 216 | return { | 229 | return { |
| 217 | then: function() { } | 230 | then: function() { } |
| 218 | }; | 231 | }; |
| 219 | }, | 232 | }, |
| 220 | guardarChofer: function() { }, | 233 | guardarChofer: function() { }, |
| 221 | getChoferPorDni: function() { } | 234 | getChoferPorDni: function() { } |
| 222 | }; | 235 | }; |
| 223 | var controlador = $controller('focaAbmChoferController', { | 236 | var controlador = $controller('focaAbmChoferController', { |
| 224 | $scope: scope, | 237 | $scope: scope, |
| 225 | focaAbmChoferService: focaAbmChoferService, | 238 | focaAbmChoferService: focaAbmChoferService, |
| 226 | $routeParams: {}, | 239 | $routeParams: {}, |
| 227 | $location: {}, | 240 | $location: {}, |
| 241 | $localStorage: {}, | ||
| 228 | focaBotoneraLateralService: {}, | 242 | focaBotoneraLateralService: {}, |
| 229 | $timeout: function() { return; }, | 243 | $timeout: function() { return; }, |
| 230 | focaModalService: {} | 244 | focaModalService: { |
| 245 | alert: function() {} | ||
| 246 | } | ||
| 231 | }); | 247 | }); |
| 232 | console.info(controlador); | 248 | console.info(controlador); |
| 233 | var resolveFake = { data: false }; | 249 | var resolveFake = { data: false }; |
| 234 | var promesaChoferPorDni = Promise.resolve(resolveFake); | 250 | var promesaChoferPorDni = Promise.resolve(resolveFake); |
| 235 | 251 | scope.chofer.nombre = true; | |
| 252 | scope.chofer.idTipoDocumento = true; | ||
| 253 | scope.chofer.dni = true; | ||
| 236 | //act | 254 | //act |
| 237 | spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }}); | 255 | spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }}); |
| 238 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); | 256 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); |
| 239 | scope.guardar(13); | 257 | scope.guardar(13); |
| 240 | 258 | ||
| 241 | //assert | 259 | //assert |
| 242 | promesaChoferPorDni.then(function() { | 260 | promesaChoferPorDni.then(function() { |
| 243 | setTimeout(function() { | 261 | setTimeout(function() { |
| 244 | expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled(); | 262 | expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled(); |
| 245 | done(); | 263 | done(); |
| 246 | }); | 264 | }); |
| 247 | }); | 265 | }); |
| 248 | }); | 266 | }); |
| 249 | 267 | ||
| 250 | it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) { | 268 | it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) { |
| 251 | 269 | ||
| 252 | //arrange | 270 | //arrange |
| 253 | var scope = {}; | 271 | var scope = { |
| 272 | $watch: function() {} | ||
| 273 | }; | ||
| 254 | var focaModalService = { | 274 | var focaModalService = { |
| 255 | alert: function() { } | 275 | alert: function() { } |
| 256 | }; | 276 | }; |
| 257 | var focaAbmChoferService = { | 277 | var focaAbmChoferService = { |
| 258 | getTiposDocumento: function() { | 278 | getTiposDocumento: function() { |
| 259 | return { | 279 | return { |
| 260 | then: function() { } | 280 | then: function() { } |
| 261 | }; | 281 | }; |
| 262 | }, | 282 | }, |
| 263 | getChofer: function() { | 283 | getChofer: function() { |
| 264 | return { | 284 | return { |
| 265 | then: function() { } | 285 | then: function() { } |
| 266 | }; | 286 | }; |
| 267 | }, | 287 | }, |
| 268 | getTransportistas: function() { | 288 | getTransportistas: function() { |
| 269 | return { | 289 | return { |
| 270 | then: function() { } | 290 | then: function() { } |
| 271 | }; | 291 | }; |
| 272 | }, | 292 | }, |
| 273 | getChoferPorDni: function() { } | 293 | getChoferPorDni: function() { } |
| 274 | }; | 294 | }; |
| 275 | var controlador = $controller('focaAbmChoferController', { | 295 | var controlador = $controller('focaAbmChoferController', { |
| 276 | $scope: scope, | 296 | $scope: scope, |
| 277 | focaAbmChoferService: focaAbmChoferService, | 297 | focaAbmChoferService: focaAbmChoferService, |
| 278 | $routeParams: {}, | 298 | $routeParams: {}, |
| 279 | $location: {}, | 299 | $location: {}, |
| 300 | $localStorage: {}, | ||
| 280 | focaBotoneraLateralService: {}, | 301 | focaBotoneraLateralService: {}, |
| 281 | $timeout: function() { return; }, | 302 | $timeout: function() { return; }, |
| 282 | focaModalService: focaModalService | 303 | focaModalService: focaModalService |
| 283 | }); | 304 | }); |
| 284 | console.info(controlador); | 305 | console.info(controlador); |
| 285 | var resolveFake = { data: { id: true } }; | 306 | var resolveFake = { data: { id: true } }; |
| 286 | var promesaChoferPorDni = Promise.resolve(resolveFake); | 307 | var promesaChoferPorDni = Promise.resolve(resolveFake); |
| 287 | 308 | ||
| 288 | //act | 309 | //act |
| 289 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); | 310 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); |
| 290 | spyOn(focaModalService, 'alert'); | 311 | spyOn(focaModalService, 'alert'); |
| 291 | scope.chofer.id = 'dato prueba'; | 312 | scope.chofer.id = 'dato prueba'; |
| 292 | scope.guardar(13); | 313 | scope.guardar(13); |
| 293 | 314 | ||
| 294 | //assert | 315 | //assert |
| 295 | promesaChoferPorDni.then(function() { | 316 | promesaChoferPorDni.then(function() { |
| 296 | //await sleep(100); | 317 | //await sleep(100); |
| 297 | setTimeout(function() { | 318 | setTimeout(function() { |
| 298 | expect(focaModalService.alert).toHaveBeenCalled(); | 319 | expect(focaModalService.alert).toHaveBeenCalled(); |
| 299 | done(); | 320 | done(); |
| 300 | }); | 321 | }); |
| 301 | }); | 322 | }); |
| 302 | }); | 323 | }); |
| 303 | }); | 324 | }); |
| 304 | }); | 325 | }); |
| 305 | 326 |
src/js/controller.js
| 1 | angular.module('focaAbmChofer') | 1 | angular.module('focaAbmChofer') |
| 2 | .controller('focaAbmChoferesController', [ | 2 | .controller('focaAbmChoferesController', [ |
| 3 | '$scope', 'focaAbmChoferService', '$location', '$uibModal', | 3 | '$scope', 'focaAbmChoferService', '$location', '$uibModal', |
| 4 | 'focaModalService', 'focaBotoneraLateralService', '$timeout', | 4 | 'focaModalService', 'focaBotoneraLateralService', '$timeout', '$localStorage', |
| 5 | '$routeParams', '$filter', | ||
| 5 | function($scope, focaAbmChoferService, $location, $uibModal, focaModalService, | 6 | function($scope, focaAbmChoferService, $location, $uibModal, focaModalService, |
| 6 | focaBotoneraLateralService, $timeout) { | 7 | focaBotoneraLateralService, $timeout, $localStorage, $routeParams, $filter) { |
| 7 | 8 | ||
| 9 | $scope.focused = 1; | ||
| 8 | $scope.now = new Date(); | 10 | $scope.now = new Date(); |
| 11 | $scope.nuevo = $routeParams.id === '0'; | ||
| 9 | $scope.filters = ''; | 12 | $scope.filters = ''; |
| 10 | $scope.choferes = []; | 13 | $scope.choferes = []; |
| 14 | $scope.creando = false; | ||
| 15 | $scope.crear = false; | ||
| 16 | $scope.transportistas = []; | ||
| 11 | $scope.botonera = [{ | 17 | $scope.botonera = [{ |
| 12 | label: 'Transportista', | 18 | label: 'Transportista', |
| 13 | image: 'cliente.png' | 19 | image: 'cliente.png' |
| 14 | }]; | 20 | }]; |
| 21 | $scope.next = function(key) { | ||
| 22 | if (key === 13) $scope.focused++; | ||
| 23 | }; | ||
| 15 | 24 | ||
| 16 | //SETEO BOTONERA LATERAL | 25 | //SETEO BOTONERA LATERAL |
| 17 | $timeout(function() { | 26 | $timeout(function() { |
| 18 | focaBotoneraLateralService.showSalir(false); | 27 | focaBotoneraLateralService.showSalir(false); |
| 19 | focaBotoneraLateralService.showPausar(false); | 28 | focaBotoneraLateralService.showPausar(false); |
| 20 | focaBotoneraLateralService.showCancelar(false); | 29 | focaBotoneraLateralService.showCancelar(false); |
| 21 | focaBotoneraLateralService.showGuardar(false); | 30 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); |
| 22 | focaBotoneraLateralService.addCustomButton('Salir', salir); | 31 | focaBotoneraLateralService.addCustomButton('Salir', salir); |
| 23 | }); | 32 | }); |
| 24 | 33 | ||
| 25 | if(focaAbmChoferService.transportistaSeleccionado.COD) { | 34 | if (focaAbmChoferService.transportistaSeleccionado.COD) { |
| 26 | elegirTransportista(focaAbmChoferService.transportistaSeleccionado); | 35 | elegirTransportista(focaAbmChoferService.transportistaSeleccionado); |
| 27 | } | 36 | } |
| 28 | 37 | ||
| 29 | $scope.editar = function(id) { | 38 | focaAbmChoferService.getTiposDocumento().then(function(res) { |
| 30 | $location.path('/chofer/' + id + '/' + $scope.idTransportista); | 39 | $scope.tiposDocumento = res.data; |
| 40 | }); | ||
| 41 | |||
| 42 | $scope.crearChofer = function () { | ||
| 43 | var chofer = { | ||
| 44 | id: 0, | ||
| 45 | nombre: '', | ||
| 46 | telefono: '', | ||
| 47 | editando: true, | ||
| 48 | }; | ||
| 49 | $scope.choferes.unshift(chofer); | ||
| 50 | $scope.crear = false; | ||
| 51 | }; | ||
| 52 | |||
| 53 | $scope.editar = function(chofer) { | ||
| 54 | $scope.choferes.forEach(function(chofer) { | ||
| 55 | chofer.editando = false; | ||
| 56 | $scope.crear = false; | ||
| 57 | }); | ||
| 58 | chofer.editando = true; | ||
| 59 | $scope.inicial = angular.copy(chofer); | ||
| 60 | }; | ||
| 61 | |||
| 62 | $scope.agregarChofer = function (chofer) { | ||
| 63 | if (!chofer.nombre) { | ||
| 64 | focaModalService.alert('Ingrese nombre'); | ||
| 65 | return; | ||
| 66 | } else if (!chofer.idTipoDocumento) { | ||
| 67 | focaModalService.alert('Ingrese tipo documento'); | ||
| 68 | return; | ||
| 69 | } | ||
| 70 | validaDni(chofer); | ||
| 71 | }; | ||
| 72 | |||
| 73 | $scope.tipoDocumento = function (idTipoDocumento) { | ||
| 74 | var value = ''; | ||
| 75 | switch (parseInt(idTipoDocumento)) { | ||
| 76 | case 96 : | ||
| 77 | value = 'DNI'; | ||
| 78 | break; | ||
| 79 | case 80 : | ||
| 80 | value = 'CUIT'; | ||
| 81 | break; | ||
| 82 | case 86 : | ||
| 83 | value = 'CUIL'; | ||
| 84 | break; | ||
| 85 | default: | ||
| 86 | value = ''; | ||
| 87 | break; | ||
| 88 | } | ||
| 89 | return value; | ||
| 90 | }; | ||
| 91 | |||
| 92 | $scope.volver = function (chofer, key) { | ||
| 93 | if (chofer.idTransportista === undefined) { | ||
| 94 | $scope.choferes.shift(); | ||
| 95 | $scope.crear = true; | ||
| 96 | chofer.editando = false; | ||
| 97 | return; | ||
| 98 | } else if (chofer.id !== 0 || !$scope.crear) { | ||
| 99 | $scope.choferes[key] = $scope.inicial; | ||
| 100 | $scope.choferes[key].editando = false; | ||
| 101 | } | ||
| 102 | $scope.crear = true; | ||
| 103 | }; | ||
| 104 | |||
| 105 | $scope.guardar = function() { | ||
| 106 | $scope.choferes.forEach( function (chofer) { | ||
| 107 | if (chofer.id === 0) { | ||
| 108 | delete chofer.id; | ||
| 109 | } | ||
| 110 | delete chofer.transportista; | ||
| 111 | delete chofer.editando; | ||
| 112 | }); | ||
| 113 | focaAbmChoferService.guardarChoferes($scope.choferes); | ||
| 31 | }; | 114 | }; |
| 32 | 115 | ||
| 33 | $scope.solicitarConfirmacion = function(chofer) { | 116 | $scope.solicitarConfirmacion = function(chofer) { |
| 34 | focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + | 117 | focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + |
| 35 | chofer.nombre + ' ?').then(function(confirmed) { | 118 | chofer.nombre + ' ?').then(function(confirmed) { |
| 36 | if(confirmed) { | 119 | if (confirmed) { |
| 37 | focaAbmChoferService.deleteChofer(chofer.id); | 120 | chofer.desactivado = true; |
| 38 | $scope.choferes.splice($scope.choferes.indexOf(chofer), 1); | ||
| 39 | } | 121 | } |
| 40 | }); | 122 | }); |
| 41 | }; | 123 | }; |
| 42 | 124 | ||
| 43 | $scope.seleccionarTransportista = function() { | 125 | $scope.seleccionarTransportista = function() { |
| 44 | var parametrosModal = { | 126 | var parametrosModal = { |
| 45 | titulo: 'Búsqueda de Transportista', | 127 | titulo: 'Búsqueda de Transportista', |
| 46 | query: '/transportista', | 128 | query: '/transportista', |
| 47 | columnas: [ | 129 | columnas: [ |
| 48 | { | 130 | { |
| 49 | nombre: 'Código', | 131 | nombre: 'Código', |
| 50 | propiedad: 'COD' | 132 | propiedad: 'COD' |
| 51 | }, | 133 | }, |
| 52 | { | 134 | { |
| 53 | nombre: 'Nombre', | 135 | nombre: 'Nombre', |
| 54 | propiedad: 'NOM' | 136 | propiedad: 'NOM' |
| 55 | }, | 137 | }, |
| 56 | { | 138 | { |
| 57 | nombre: 'CUIT', | 139 | nombre: 'CUIT', |
| 58 | propiedad: 'CUIT' | 140 | propiedad: 'CUIT' |
| 59 | } | 141 | } |
| 60 | ] | 142 | ] |
| 61 | }; | 143 | }; |
| 62 | focaModalService.modal(parametrosModal).then( | 144 | focaModalService.modal(parametrosModal).then( |
| 63 | function(transportista) { | 145 | function(transportista) { |
| 146 | $scope.crear = true; | ||
| 64 | elegirTransportista(transportista); | 147 | elegirTransportista(transportista); |
| 65 | focaAbmChoferService.transportistaSeleccionado = transportista; | 148 | focaAbmChoferService.transportistaSeleccionado = transportista; |
| 66 | }, function() {} | 149 | }, function() {} |
| 67 | ); | 150 | ); |
| 68 | }; | 151 | }; |
| 69 | 152 | ||
| 70 | function elegirTransportista(transportista) { | 153 | function elegirTransportista(transportista) { |
| 71 | buscar(transportista.COD); | 154 | buscar(transportista.COD); |
| 72 | var codigo = ('00000' + transportista.COD).slice(-5); | 155 | var codigo = ('00000' + transportista.COD).slice(-5); |
| 73 | $scope.idTransportista = transportista.COD; | 156 | $scope.idTransportista = transportista.COD; |
| 74 | $timeout(function() { | 157 | $timeout(function() { |
| 75 | $scope.$broadcast('addCabecera', { | 158 | $scope.$broadcast('addCabecera', { |
| 76 | label: 'Transportista:', | 159 | label: 'Transportista:', |
| 77 | valor: codigo + ' - ' + transportista.NOM | 160 | valor: codigo + ' - ' + transportista.NOM |
| 78 | }); | 161 | }); |
| 79 | }); | 162 | }); |
| 80 | } | 163 | } |
| 81 | 164 | ||
| 82 | function buscar(id) { | 165 | function buscar(id) { |
| 83 | focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { | 166 | focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { |
| 84 | $scope.choferes = res.data; | 167 | $scope.choferes = res.data; |
| 85 | }); | 168 | }); |
| 86 | } | 169 | } |
| 87 | 170 | ||
| 88 | function salir() { | 171 | function salir() { |
| 89 | focaAbmChoferService.transportistaSeleccionado = {}; | 172 | focaAbmChoferService.transportistaSeleccionado = {}; |
| 90 | $location.path('/'); | 173 | $location.path('/'); |
| 91 | } | 174 | } |
| 92 | } | ||
| 93 | ]) | ||
| 94 | .controller('focaAbmChoferController', [ | ||
| 95 | '$scope', 'focaAbmChoferService', '$routeParams', | ||
| 96 | '$location', 'focaBotoneraLateralService', '$timeout', 'focaModalService', | ||
| 97 | function($scope, focaAbmChoferService, $routeParams, | ||
| 98 | $location, focaBotoneraLateralService, $timeout, focaModalService) { | ||
| 99 | 175 | ||
| 100 | $scope.focused = 1; | 176 | function validaDni(chofer) { |
| 101 | $scope.nuevo = $routeParams.id === '0'; | 177 | if (!chofer.dni) { |
| 102 | $scope.chofer = {}; | 178 | focaModalService.alert('Ingrese DNI'); |
| 103 | $scope.transportistas = []; | 179 | return; |
| 104 | $scope.now = new Date(); | 180 | } else if (!chofer.telefono) { |
| 105 | $scope.next = function(key) { | 181 | focaModalService.alert('Ingrese teléfono'); |
| 106 | if (key === 13) $scope.focused++; | 182 | return; |
| 107 | }; | ||
| 108 | |||
| 109 | focaAbmChoferService.getTiposDocumento().then(function(res) { | ||
| 110 | $scope.tiposDocumento = res.data; | ||
| 111 | }); | ||
| 112 | |||
| 113 | //SETEO BOTONERA LATERAL | ||
| 114 | $timeout(function() { | ||
| 115 | focaBotoneraLateralService.showSalir(false); | ||
| 116 | focaBotoneraLateralService.showPausar(true); | ||
| 117 | focaBotoneraLateralService.showCancelar(true); | ||
| 118 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); | ||
| 119 | }); | ||
| 120 | |||
| 121 | if($scope.nuevo) { | ||
| 122 | focaAbmChoferService | ||
| 123 | .getTransportistaPorId($routeParams.idTransportista) | ||
| 124 | .then(function(res) { | ||
| 125 | var codigo = ('00000' + res.data.COD).slice(-5); | ||
| 126 | $scope.chofer.idTransportista = res.data.COD; | ||
| 127 | $scope.chofer.transportista = res.data; | ||
| 128 | $scope.$broadcast('addCabecera', { | ||
| 129 | label: 'Transportista:', | ||
| 130 | valor: codigo + ' - ' + res.data.NOM | ||
| 131 | }); |
src/js/service.js
| 1 | angular.module('focaAbmChofer') | 1 | angular.module('focaAbmChofer') |
| 2 | .factory('focaAbmChoferService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { | 2 | .factory('focaAbmChoferService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { |
| 3 | return { | 3 | return { |
| 4 | getChoferes: function() { | 4 | getChoferes: function() { |
| 5 | return $http.get(API_ENDPOINT.URL + '/chofer'); | 5 | return $http.get(API_ENDPOINT.URL + '/chofer'); |
| 6 | }, | 6 | }, |
| 7 | getChofer: function(id) { | 7 | getChofer: function(id) { |
| 8 | return $http.get(API_ENDPOINT.URL + '/chofer/' + id); | 8 | return $http.get(API_ENDPOINT.URL + '/chofer/' + id); |
| 9 | }, | 9 | }, |
| 10 | getChoferPorTransportista: function(id) { | 10 | getChoferPorTransportista: function(id) { |
| 11 | return $http.get(API_ENDPOINT.URL + '/chofer/transportista/' + id); | 11 | return $http.get(API_ENDPOINT.URL + '/chofer/transportista/' + id); |
| 12 | }, | 12 | }, |
| 13 | getChoferPorDni: function(dni) { | 13 | getChoferPorDni: function(dni) { |
| 14 | return $http.post(API_ENDPOINT.URL + '/chofer/dni', {dni: dni}); | 14 | return $http.post(API_ENDPOINT.URL + '/chofer/dni', {dni: dni}); |
| 15 | }, | 15 | }, |
| 16 | guardarChofer: function(chofer) { | 16 | guardarChofer: function(chofer) { |
| 17 | return $http.post(API_ENDPOINT.URL + '/chofer', {chofer: chofer}); | 17 | return $http.post(API_ENDPOINT.URL + '/chofer', {chofer: chofer}); |
| 18 | }, | 18 | }, |
| 19 | guardarChoferes: function(choferes) { | ||
| 20 | return $http.post(API_ENDPOINT.URL + '/chofer', {choferes: choferes}); | ||
| 21 | }, | ||
| 19 | getTransportistas: function() { | 22 | getTransportistas: function() { |
| 20 | return $http.get(API_ENDPOINT.URL + '/transportista'); | 23 | return $http.get(API_ENDPOINT.URL + '/transportista'); |
| 21 | }, | 24 | }, |
| 22 | getTransportistaPorId: function(id) { | 25 | getTransportistaPorId: function(id) { |
| 23 | return $http.get(API_ENDPOINT.URL + '/transportista/' + id); | 26 | return $http.get(API_ENDPOINT.URL + '/transportista/' + id); |
| 24 | }, | 27 | }, |
| 25 | deleteChofer: function(id) { | 28 | deleteChofer: function(id) { |
| 26 | return $http.delete(API_ENDPOINT.URL + '/chofer/' + id); | 29 | return $http.delete(API_ENDPOINT.URL + '/chofer/' + id); |
| 27 | }, | 30 | }, |
| 28 | getTiposDocumento: function() { | 31 | getTiposDocumento: function() { |
| 29 | return $http.get(API_ENDPOINT.URL + '/tipo-documento'); | 32 | return $http.get(API_ENDPOINT.URL + '/tipo-documento'); |
| 30 | }, | 33 | }, |
| 31 | transportistaSeleccionado: {} | 34 | transportistaSeleccionado: {} |
| 32 | }; | 35 | }; |
| 33 | }]); | 36 | }]); |
| 34 | 37 |
src/views/foca-abm-choferes-item.html
| 1 | <div class="row"> | 1 | <div class="row"> |
| 2 | <foca-cabecera-facturador | 2 | <foca-cabecera-facturador |
| 3 | titulo="'Chofer'" | 3 | titulo="'Chofer'" |
| 4 | fecha="now" | 4 | fecha="now" |
| 5 | class="mb-0 col-lg-12" | 5 | class="mb-0 col-lg-12" |
| 6 | ></foca-cabecera-facturador> | 6 | ></foca-cabecera-facturador> |
| 7 | </div> | 7 | </div> |
| 8 | <div class="row"> | 8 | <div class="row"> |
| 9 | <form name="formChofer" class="col-md-12"> | 9 | <form name="formChofer" class="col-md-12"> |
| 10 | <input type="hidden" name="id" ng-model="chofer.id" /> | 10 | <input type="hidden" name="id" ng-model="chofer.id" /> |
| 11 | <div class="form-group row"> | 11 | <div class="form-group row"> |
| 12 | <label class="offset-sm-1 col-sm-2 col-form-label">Nombre</label> | 12 | <label class="offset-sm-1 col-sm-2 col-form-label">Nombre</label> |
| 13 | <div class="col-sm-4"> | 13 | <div class="col-sm-4"> |
| 14 | <input | 14 | <input |
| 15 | class="form-control" | 15 | class="form-control" |
| 16 | type="text" | 16 | type="text" |
| 17 | teclado-virtual | 17 | teclado-virtual |
| 18 | ng-model="chofer.nombre" | 18 | ng-model="chofer.nombre" |
| 19 | ng-required="true" | 19 | ng-required="true" |
| 20 | ng-keypress="next($event.keyCode)" | 20 | ng-keypress="next($event.keyCode)" |
| 21 | foca-focus="focused == 1" | 21 | foca-focus="focused == 1" |
| 22 | ng-focus="focused = 1" | 22 | ng-focus="focused = 1" |
| 23 | /> | 23 | /> |
| 24 | </div> | 24 | </div> |
| 25 | </div> | 25 | </div> |
| 26 | <div class="form-group row"> | 26 | <div class="form-group row"> |
| 27 | <label class="offset-sm-1 col-sm-2 col-form-label">Tipo documento</label> | 27 | <label class="offset-sm-1 col-sm-2 col-form-label">Tipo documento</label> |
| 28 | <div class="col-sm-4"> | 28 | <div class="col-sm-4"> |
| 29 | <select | 29 | <select |
| 30 | class="form-control" | 30 | class="form-control" |
| 31 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" | 31 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" |
| 32 | ng-model="chofer.idTipoDocumento"> | 32 | ng-model="chofer.idTipoDocumento"> |
| 33 | </select> | 33 | </select> |
| 34 | </div> | 34 | </div> |
| 35 | </div> | 35 | </div> |
| 36 | <div class="form-group row"> | 36 | <div class="form-group row"> |
| 37 | <label class="offset-sm-1 col-sm-2 col-form-label">DNI</label> | 37 | <label class="offset-sm-1 col-sm-2 col-form-label">DNI</label> |
| 38 | <div class="col-sm-4"> | 38 | <div class="col-sm-4"> |
| 39 | <input | 39 | <input |
| 40 | class="form-control" | 40 | class="form-control" |
| 41 | type="text" | 41 | foca-tipo-input |
| 42 | teclado-virtual | 42 | teclado-virtual |
| 43 | solo-positivos | ||
| 44 | limite-numeros-max="15" | ||
| 43 | ng-model="chofer.dni" | 45 | ng-model="chofer.dni" |
| 44 | ng-required="true" | 46 | ng-required="true" |
| 45 | ng-keypress="next($event.keyCode)" | 47 | ng-keypress="next($event.keyCode)" |
| 46 | foca-focus="focused == 2" | 48 | foca-focus="focused == 2" |
| 47 | ng-focus="focused = 2" | 49 | ng-focus="focused = 2" |
| 48 | ng-disabled="!nuevo" | 50 | ng-disabled="!nuevo" |
| 51 | string-toNumber | ||
| 49 | /> | 52 | /> |
| 50 | </div> | 53 | </div> |
| 51 | </div> | 54 | </div> |
| 52 | <div class="form-group row"> | 55 | <div class="form-group row"> |
| 53 | <label class="offset-sm-1 col-sm-2 col-form-label">Teléfono</label> | 56 | <label class="offset-sm-1 col-sm-2 col-form-label">Teléfono</label> |
| 54 | <div class="col-sm-4"> | 57 | <div class="col-sm-4"> |
| 55 | <input | 58 | <input |
| 56 | class="form-control" | 59 | class="form-control" |
| 57 | type="text" | 60 | foca-tipo-input |
| 58 | teclado-virtual | 61 | teclado-virtual |
| 62 | solo-positivos | ||
| 63 | limite-numeros-max="15" | ||
| 59 | ng-model="chofer.telefono" | 64 | ng-model="chofer.telefono" |
| 60 | ng-required="true" | 65 | ng-required="true" |
| 61 | ng-keypress="guardar($event.keyCode)" | 66 | ng-keypress="guardar($event.keyCode)" |
| 62 | foca-focus="focused == 3" | 67 | foca-focus="focused == 3" |
| 63 | ng-focus="focused = 3" | 68 | ng-focus="focused = 3" |
| 69 | string-toNumber | ||
| 64 | /> | 70 | /> |
| 65 | </div> | 71 | </div> |
| 66 | </div> | 72 | </div> |
| 67 | </form> | 73 | </form> |
| 68 | </div> | 74 | </div> |
| 69 | 75 |
src/views/foca-abm-choferes-listado.html
| 1 | <div class="row"> | 1 | <div class="row"> |
| 2 | <foca-cabecera-facturador | 2 | <foca-cabecera-facturador |
| 3 | titulo="'Choferes'" | 3 | titulo="'Choferes'" |
| 4 | fecha="now" | 4 | fecha="now" |
| 5 | class="mb-0 col-lg-12" | 5 | class="mb-0 col-lg-12" |
| 6 | ></foca-cabecera-facturador> | 6 | ></foca-cabecera-facturador> |
| 7 | </div> | 7 | </div> |
| 8 | <div class="row"> | 8 | <div class="row"> |
| 9 | <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded"> | 9 | <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded"> |
| 10 | <div class="row px-5 py-2 botonera-secundaria"> | 10 | <div class="row px-5 py-2 botonera-secundaria"> |
| 11 | <div class="col-12"> | 11 | <div class="col-12"> |
| 12 | <foca-botonera-facturador botones="botonera" max="6" class="row"></foca-botonera-facturador> | 12 | <foca-botonera-facturador botones="botonera" max="6" class="row"></foca-botonera-facturador> |
| 13 | </div> | 13 | </div> |
| 14 | </div> | 14 | </div> |
| 15 | <table class="table table-default table-hover table-sm table-abm table-striped mb-0"> | 15 | <table class="table table-default table-hover table-sm table-abm table-striped mb-0"> |
| 16 | <thead> | 16 | <thead> |
| 17 | <tr> | 17 | <tr> |
| 18 | <th>Nombre</th> | 18 | <th>Nombre</th> |
| 19 | <th>Tipo</th> | ||
| 19 | <th>Documento</th> | 20 | <th>Documento</th> |
| 20 | <th>Teléfono</th> | 21 | <th>Teléfono</th> |
| 21 | <th class="text-center"> | 22 | <th class="text-center"> |
| 22 | <button | 23 | <button |
| 23 | ng-disabled="!idTransportista" | ||
| 24 | title="Agregar" | 24 | title="Agregar" |
| 25 | class="btn btn-outline-debo boton-accion" | 25 | class="btn btn-outline-debo boton-accion" |
| 26 | ng-click="editar(0)"> | 26 | ng-click="crearChofer()" |
| 27 | ng-disabled="!crear" | ||
| 28 | > | ||
| 27 | <i class="fa fa-plus"></i> | 29 | <i class="fa fa-plus"></i> |
| 28 | </button> | 30 | </button> |
| 29 | </th> | 31 | </th> |
| 30 | </tr> | 32 | </tr> |
| 31 | </thead> | 33 | </thead> |
| 32 | <tbody> | 34 | <tbody> |
| 33 | <tr ng-repeat="chofer in choferes | filter:filters"> | 35 | <tr ng-show="creando"> |
| 34 | <td ng-bind="chofer.nombre"></td> | 36 | <td align="center"> |
| 35 | <td ng-bind="chofer.dni"></td> | 37 | <input |
| 36 | <td ng-bind="chofer.telefono"></td> | 38 | class="form-control" |
| 37 | <td class="text-center"> | 39 | type="text" |
| 40 | teclado-virtual | ||
| 41 | ng-model="chofer.nombre" | ||
| 42 | ng-required="true" | ||
| 43 | ng-keypress="next($event.keyCode)" | ||
| 44 | foca-focus="focused == 1" | ||
| 45 | ng-focus="focused = 1" | ||
| 46 | > | ||
| 47 | </td> | ||
| 48 | <td align="center"> | ||
| 49 | <div class="col-sm-4"> | ||
| 50 | <select | ||
| 51 | class="form-control" | ||
| 52 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" | ||
| 53 | ng-model="chofer.idTipoDocumento"> | ||
| 54 | </select> | ||
| 55 | </div> | ||
| 56 | </td> | ||
| 57 | <td align="center"> | ||
| 58 | <input | ||
| 59 | class="form-control" | ||
| 60 | foca-tipo-input | ||
| 61 | teclado-virtual | ||
| 62 | solo-positivos | ||
| 63 | limite-numeros-max="15" | ||
| 64 | ng-model="chofer.dni" | ||
| 65 | ng-required="true" | ||
| 66 | ng-keypress="next($event.keyCode)" | ||
| 67 | foca-focus="focused == 2" | ||
| 68 | ng-focus="focused = 2" | ||
| 69 | ng-disabled="!nuevo" | ||
| 70 | string-toNumber | ||
| 71 | > | ||
| 72 | </td> | ||
| 73 | <td align="center"> | ||
| 74 | <input | ||
| 75 | class="form-control" | ||
| 76 | foca-tipo-input | ||
| 77 | teclado-virtual | ||
| 78 | solo-positivos | ||
| 79 | limite-numeros-max="15" | ||
| 80 | ng-model="chofer.telefono" | ||
| 81 | ng-required="true" | ||
| 82 | foca-focus="focused == 3" | ||
| 83 | ng-focus="focused = 3" | ||
| 84 | string-toNumber | ||
| 85 | > | ||
| 86 | </td> | ||
| 87 | <td align="center"> | ||
| 88 | <button | ||
| 89 | class="btn btn-outline-dark boton-accion" | ||
| 90 | ng-click="agregarChofer()" | ||
| 91 | > | ||
| 92 | <i class="fa fa-save"></i> | ||
| 93 | </button> | ||
| 94 | </td> | ||
| 95 | </tr> | ||
| 96 | |||
| 97 | <tr ng-repeat="(key, chofer) in choferes | filter:filters" ng-hide="chofer.desactivado"> | ||
| 98 | <td ng-bind="chofer.nombre" ng-hide="chofer.editando"></td> | ||
| 99 | <td align="center" ng-show="chofer.editando"> | ||
| 100 | <input | ||
| 101 | class="form-control" | ||
| 102 | type="text" | ||
| 103 | teclado-virtual | ||
| 104 | ng-model="chofer.nombre" | ||
| 105 | ng-required="true" | ||
| 106 | ng-keypress="next($event.keyCode)" | ||
| 107 | foca-focus="focused == 1" | ||
| 108 | ng-focus="focused = 1" | ||
| 109 | esc-key="volver(chofer, key)" | ||
| 110 | > | ||
| 111 | </td> | ||
| 112 | <td ng-bind="tipoDocumento(chofer.idTipoDocumento)" ng-hide="chofer.editando"></td> | ||
| 113 | <td align="center" ng-show="chofer.editando"> | ||
| 114 | <div class="col-sm-15"> | ||
| 115 | <select | ||
| 116 | class="form-control" | ||
| 117 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" | ||
| 118 | ng-model="chofer.idTipoDocumento"> | ||
| 119 | </select> | ||
| 120 | </div> | ||
| 121 | </td> | ||
| 122 | <td ng-bind="chofer.dni" ng-hide="chofer.editando"> | ||
| 123 | <td align="center" ng-show="chofer.editando"> | ||
| 124 | <input | ||
| 125 | class="form-control" | ||
| 126 | type="text" | ||
| 127 | teclado-virtual | ||
| 128 | ng-model="chofer.dni" | ||
| 129 | ng-required="true" | ||
| 130 | ng-keypress="next($event.keyCode)" | ||
| 131 | foca-focus="focused == 2" | ||
| 132 | ng-focus="focused = 2" | ||
| 133 | esc-key="volver(chofer, key)" | ||
| 134 | > | ||
| 135 | </td> | ||
| 136 | </td> | ||
| 137 | <td ng-bind="chofer.telefono" ng-hide="chofer.editando"></td> | ||
| 138 | <td align="center" ng-show="chofer.editando"> | ||
| 139 | <input | ||
| 140 | class="form-control" | ||
| 141 | foca-tipo-input | ||
| 142 | teclado-virtual | ||
| 143 | solo-positivos | ||
| 144 | limite-numeros-max="15" | ||
| 145 | ng-model="chofer.telefono" | ||
| 146 | ng-required="true" | ||
| 147 | foca-focus="focused == 3" | ||
| 148 | ng-focus="focused = 3" | ||
| 149 | string-toNumber | ||
| 150 | esc-key="volver(chofer, key)" | ||
| 151 | > | ||
| 152 | </td> | ||
| 153 | <td class="text-center" ng-hide="chofer.editando"> | ||
| 38 | <button | 154 | <button |
| 39 | class="btn btn-outline-dark boton-accion" | 155 | class="btn btn-outline-dark boton-accion" |
| 40 | title="Editar" | 156 | title="Editar" |
| 41 | ng-click="editar(chofer.id)" | 157 | ng-click="editar(chofer)" |
| 42 | > | 158 | > |
| 43 | <i class="fa fa-pencil"></i> | 159 | <i class="fa fa-pencil"></i> |
| 44 | </button> | 160 | </button> |
| 45 | <button | 161 | <button |
| 46 | class="btn btn-outline-dark boton-accion" | 162 | class="btn btn-outline-dark boton-accion" |
| 47 | title="Eliminar" | 163 | title="Eliminar" |
| 48 | ng-click="solicitarConfirmacion(chofer)" | 164 | ng-click="solicitarConfirmacion(chofer)" |
| 49 | > | 165 | > |
| 50 | <i class="fa fa-trash"></i> | 166 | <i class="fa fa-trash"></i> |
| 51 | </button> | 167 | </button> |
| 52 | </td> | 168 | </td> |
| 169 | <td align="center" ng-show="chofer.editando"> | ||
| 170 | <button | ||
| 171 | class="btn btn-outline-dark boton-accion" | ||
| 172 | ng-click="agregarChofer(chofer)" | ||
| 173 | > | ||
| 174 | <i class="fa fa-save"></i> | ||
| 175 | </button> | ||
| 176 | <button | ||
| 177 | class="btn btn-outline-dark boton-accion" | ||
| 178 | ng-click="volver(chofer, key)" | ||
| 179 | > | ||
| 180 | <i class="fa fa-undo" aria-hidden="true"></i> | ||
| 181 | </button> | ||
| 182 | </td> | ||
| 53 | </tr> | 183 | </tr> |
| 54 | </body> | 184 | </body> |
| 55 | </table> | 185 | </table> |
| 56 | </div> | 186 | </div> |
| 57 | </div> | 187 | </div> |