Commit 97cd35be9ae79e3c3e5f5a913b3782a45bbd2640
Exists in
master
and in
1 other branch
Merge branch 'develop' of git.focasoftware.com:npm/foca-crear-nota-pedido
Showing
6 changed files
Show diff stats
gulpfile.js
... | ... | @@ -21,7 +21,9 @@ var paths = { |
21 | 21 | dist: 'dist/' |
22 | 22 | }; |
23 | 23 | |
24 | -gulp.task('uglify', gulpSequence('clean', ['templates', 'uglify-spec'], 'uglify-app')); | |
24 | +gulp.task('uglify', function(callback) { | |
25 | + gulpSequence('clean', ['templates', 'uglify-spec'], 'uglify-app')(callback); | |
26 | +}); | |
25 | 27 | |
26 | 28 | gulp.task('templates', function() { |
27 | 29 | return pump( |
spec/controllerSpec.js
... | ... | @@ -211,7 +211,7 @@ describe('Controladores módulo crear nota de pedido', function() { |
211 | 211 | $filter: filter, |
212 | 212 | $timeout: timeout, |
213 | 213 | crearNotaPedidoService: { |
214 | - getNumeroNotaPedido: function() { | |
214 | + getNumeroNotaPedido: function() { | |
215 | 215 | return { |
216 | 216 | then: function() { } |
217 | 217 | }; |
... | ... | @@ -255,7 +255,7 @@ describe('Controladores módulo crear nota de pedido', function() { |
255 | 255 | 'undefined', function() |
256 | 256 | { |
257 | 257 | //arrange |
258 | - var scope = { | |
258 | + var scope = { | |
259 | 259 | $watch: function() { }, |
260 | 260 | $broadcast: function() { } |
261 | 261 | }; |
... | ... | @@ -379,7 +379,7 @@ describe('Controladores módulo crear nota de pedido', function() { |
379 | 379 | $filter: filter, |
380 | 380 | $timeout: timeout, |
381 | 381 | crearNotaPedidoService: { |
382 | - getNumeroNotaPedido: function() { | |
382 | + getNumeroNotaPedido: function() { | |
383 | 383 | return { |
384 | 384 | then: function() { } |
385 | 385 | }; |
... | ... | @@ -910,16 +910,18 @@ describe('Controladores módulo crear nota de pedido', function() { |
910 | 910 | var cliente = { |
911 | 911 | COD: undefined, |
912 | 912 | CUIT: undefined, |
913 | - NOM: undefined | |
913 | + NOM: undefined, | |
914 | + MOD: undefined | |
914 | 915 | }; |
915 | 916 | |
916 | 917 | //act |
917 | 918 | spyOn(uibModal, 'open').and.returnValue(promesaRespuesta); |
918 | 919 | spyOn(scope, '$broadcast'); |
919 | - scope.abrirModalDomicilios({ }); | |
920 | + scope.abrirModalDomicilios(cliente); | |
920 | 921 | |
921 | 922 | //assert |
922 | 923 | promesaRespuesta.result.then(function() { |
924 | + //scope.notaPedido.domicilio sea vacio | |
923 | 925 | expect(scope.notaPedido.domicilio).toEqual(respuesta); |
924 | 926 | expect(scope.notaPedido.cliente).toEqual(cliente); |
925 | 927 | expect(scope.$broadcast).toHaveBeenCalled(); |
... | ... | @@ -1073,7 +1075,9 @@ describe('Controladores módulo crear nota de pedido', function() { |
1073 | 1075 | $localStorage: {} |
1074 | 1076 | }); |
1075 | 1077 | |
1076 | - scope.notaPedido = {}; | |
1078 | + scope.notaPedido = { | |
1079 | + cliente: { COD: true } | |
1080 | + }; | |
1077 | 1081 | |
1078 | 1082 | var respuesta = { result: {then: function() { } } }; |
1079 | 1083 | |
... | ... | @@ -1128,7 +1132,8 @@ describe('Controladores módulo crear nota de pedido', function() { |
1128 | 1132 | }); |
1129 | 1133 | scope.idLista = true; |
1130 | 1134 | scope.notaPedido = { |
1131 | - vendedor: { NUM: true } | |
1135 | + vendedor: { NUM: true }, | |
1136 | + cliente: { COD: true } | |
1132 | 1137 | }; |
1133 | 1138 | var respuesta = { plazoPago: { } }; |
1134 | 1139 | var promesaRespuesta = { result: Promise.resolve(respuesta) }; |
src/js/businessService.js
... | ... | @@ -24,22 +24,15 @@ angular.module('focaCrearNotaPedido') |
24 | 24 | crearNotaPedidoService.crearEstadoParaNotaPedido(estado); |
25 | 25 | }, |
26 | 26 | addPuntosDescarga: function(idNotaPedido, puntosDescarga) { |
27 | + | |
27 | 28 | var puntos = []; |
28 | 29 | |
29 | - if (puntosDescarga && puntosDescarga.length > 0) { | |
30 | - puntosDescarga.forEach(function(punto) { | |
31 | - if (puntos.articulosAgregados && puntos.articulosAgregados.length > 0) { | |
32 | - punto.articulosAgregados.forEach(function(articulo) { | |
33 | - puntos.push({ | |
34 | - idPuntoDescarga: punto.id, | |
35 | - idNotaPedido: idNotaPedido, | |
36 | - idProducto: articulo.id, | |
37 | - cantidad: articulo.cantidad | |
38 | - }); | |
39 | - }); | |
40 | - } | |
30 | + puntosDescarga.forEach(function(punto) { | |
31 | + puntos.push({ | |
32 | + idPuntoDescarga: punto.id, | |
33 | + idNotaPedido: idNotaPedido, | |
41 | 34 | }); |
42 | - } | |
35 | + }); | |
43 | 36 | |
44 | 37 | return crearNotaPedidoService.crearPuntosDescarga(puntos); |
45 | 38 | }, |
src/js/controller.js
... | ... | @@ -48,20 +48,20 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
48 | 48 | if (APP === 'distribuidor') { |
49 | 49 | $scope.idVendedor = focaLoginService.getLoginData().vendedorCobrador; |
50 | 50 | } |
51 | - | |
51 | + | |
52 | 52 | //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' |
53 | 53 | crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { |
54 | 54 | var monedaPorDefecto = res.data[0]; |
55 | - | |
56 | 55 | $scope.notaPedido.cotizacion = Object.assign( |
57 | 56 | {moneda: monedaPorDefecto}, |
58 | 57 | monedaPorDefecto.cotizaciones[0] |
59 | 58 | ); |
60 | 59 | $scope.inicial.cotizacion = $scope.notaPedido.cotizacion; |
60 | + $timeout(function() {getLSNotaPedido();}); | |
61 | 61 | }); |
62 | 62 | |
63 | 63 | init(); |
64 | - $timeout(function() {getLSNotaPedido();}); | |
64 | + | |
65 | 65 | } |
66 | 66 | |
67 | 67 | function init() { |
... | ... | @@ -107,7 +107,6 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
107 | 107 | }); |
108 | 108 | |
109 | 109 | $scope.notaPedido.vendedor = vendedor; |
110 | - $scope.inicial.notaPedido.vendedor =$scope.notaPedido.vendedor; | |
111 | 110 | } |
112 | 111 | ); |
113 | 112 | } |
... | ... | @@ -314,7 +313,8 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
314 | 313 | idDomicilio: $scope.notaPedido.domicilio.id, |
315 | 314 | idCliente: $scope.notaPedido.cliente.COD, |
316 | 315 | articulos: $scope.notaPedido.articulosNotaPedido, |
317 | - puntosDescarga: $scope.notaPedido.notaPedidoPuntoDescarga | |
316 | + puntosDescarga: $scope.notaPedido.notaPedidoPuntoDescarga, | |
317 | + domicilio: $scope.notaPedido.domicilio | |
318 | 318 | } |
319 | 319 | } |
320 | 320 | } |
... | ... | @@ -341,8 +341,8 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
341 | 341 | } |
342 | 342 | }; |
343 | 343 | |
344 | - $scope.seleccionarTransportista = function() { | |
345 | - $scope.seleccionarProveedor(function() { | |
344 | + $scope.seleccionarProveedor = function() { | |
345 | + $scope.abrirModalProveedores(function() { | |
346 | 346 | if (validarNotaRemitada()) { |
347 | 347 | var modalInstance = $uibModal.open( |
348 | 348 | { |
... | ... | @@ -468,7 +468,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
468 | 468 | }, ocultarVendedor); |
469 | 469 | }; |
470 | 470 | |
471 | - $scope.seleccionarProveedor = function(callback) { | |
471 | + $scope.abrirModalProveedores = function(callback) { | |
472 | 472 | if (validarNotaRemitada()) { |
473 | 473 | var parametrosModal = { |
474 | 474 | titulo: 'Búsqueda de Proveedor', |
... | ... | @@ -572,7 +572,6 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
572 | 572 | total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; |
573 | 573 | } |
574 | 574 | } |
575 | - | |
576 | 575 | return parseFloat(total.toFixed(2)); |
577 | 576 | }; |
578 | 577 | |
... | ... | @@ -587,7 +586,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
587 | 586 | focaModalService.alert('Primero seleccione un cliente'); |
588 | 587 | return; |
589 | 588 | } |
590 | - if(validarNotaRemitada()) { | |
589 | + if (validarNotaRemitada()) { | |
591 | 590 | var modalInstance = $uibModal.open( |
592 | 591 | { |
593 | 592 | ariaLabelledBy: 'Busqueda de Precio Condición', |
... | ... | @@ -675,10 +674,6 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
675 | 674 | focaModalService |
676 | 675 | .prompt(observacion) |
677 | 676 | .then(function(observaciones) { |
678 | - $scope.$broadcast('addCabecera', { | |
679 | - label: 'Observaciones:', | |
680 | - valor: observaciones | |
681 | - }); | |
682 | 677 | $scope.notaPedido.observaciones = observaciones; |
683 | 678 | }); |
684 | 679 | }; |
... | ... | @@ -811,17 +806,18 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
811 | 806 | } |
812 | 807 | $scope.$broadcast('removeCabecera', 'Bomba:'); |
813 | 808 | $scope.$broadcast('removeCabecera', 'Kilometros:'); |
809 | + $scope.$broadcast('cleanCabecera'); | |
814 | 810 | |
815 | 811 | var cabeceras = []; |
816 | 812 | |
817 | - if (notaPedido.cotizacion) { | |
813 | + if (notaPedido.cotizacion.moneda.CODIGO_AFIP !== 'PES') { | |
818 | 814 | cabeceras.push({ |
819 | 815 | label: 'Moneda:', |
820 | 816 | valor: notaPedido.cotizacion.moneda.DETALLE |
821 | 817 | }); |
822 | 818 | cabeceras.push({ |
823 | 819 | label: 'Fecha cotizacion:', |
824 | - valor: $filter('date')(notaPedido.cotizacion.FECHA, | |
820 | + valor: $filter('date')(notaPedido.cotizacion.FECHA, | |
825 | 821 | 'dd/MM/yyyy') |
826 | 822 | }); |
827 | 823 | cabeceras.push({ |
... | ... | @@ -841,7 +837,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
841 | 837 | valor: notaPedido.domicilioStamp |
842 | 838 | }); |
843 | 839 | } |
844 | - | |
840 | + | |
845 | 841 | if (notaPedido.vendedor.NUM) { |
846 | 842 | cabeceras.push({ |
847 | 843 | label: 'Vendedor:', |
... | ... | @@ -897,26 +893,21 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
897 | 893 | } |
898 | 894 | cabeceras.push(cabeceraBomba); |
899 | 895 | } |
900 | - | |
901 | - notaPedidoBusinessService.calcularArticulos($scope.notaPedido.articulosNotaPedido, | |
902 | - notaPedido.cotizacion.VENDEDOR); | |
903 | - | |
896 | + | |
904 | 897 | if (notaPedido.idPrecioCondicion > 0) { |
905 | 898 | $scope.idLista = notaPedido.precioCondicion.idListaPrecio; |
906 | 899 | } else { |
907 | 900 | $scope.idLista = -1; |
908 | 901 | } |
909 | - | |
902 | + | |
910 | 903 | $scope.puntoVenta = $filter('rellenarDigitos')( |
911 | 904 | notaPedido.sucursal, 4 |
912 | 905 | ); |
913 | - | |
906 | + | |
914 | 907 | $scope.comprobante = $filter('rellenarDigitos')( |
915 | 908 | notaPedido.numeroNotaPedido, 8 |
916 | 909 | ); |
917 | - | |
918 | - $scope.notaPedido.notaPedidoPuntoDescarga = | |
919 | - formatearPuntosDescarga(notaPedido.notaPedidoPuntoDescarga || []); | |
910 | + | |
920 | 911 | addArrayCabecera(cabeceras); |
921 | 912 | } |
922 | 913 | |
... | ... | @@ -938,41 +929,6 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
938 | 929 | } |
939 | 930 | } |
940 | 931 | |
941 | - function formatearPuntosDescarga(puntosDescarga) { | |
942 | - var result = []; | |
943 | - | |
944 | - puntosDescarga.forEach(function(el) { | |
945 | - var puntoDescarga = result.filter(function(resultPunto) { | |
946 | - return resultPunto.id === el.idPuntoDescarga; | |
947 | - }); | |
948 | - | |
949 | - if (puntoDescarga.length) { | |
950 | - puntoDescarga[0].articulosAgregados.push({ | |
951 | - cantidad: el.cantidad, | |
952 | - descripcion: el.producto.descripcion, | |
953 | - id: el.producto.id | |
954 | - }); | |
955 | - } else { | |
956 | - result.push({ | |
957 | - id: el.puntoDescarga.id, | |
958 | - id_cliente: el.puntoDescarga.id_cliente, | |
959 | - id_da_config_0: el.puntoDescarga.id_da_config_0, | |
960 | - latitud: el.puntoDescarga.latitud, | |
961 | - longitud: el.puntoDescarga.longitud, | |
962 | - descripcion: el.puntoDescarga.descripcion, | |
963 | - articulosAgregados: [ | |
964 | - { | |
965 | - cantidad: el.cantidad, | |
966 | - descripcion: el.producto.descripcion, | |
967 | - id: el.producto.id | |
968 | - } | |
969 | - ] | |
970 | - }); | |
971 | - } | |
972 | - }); | |
973 | - return result; | |
974 | - } | |
975 | - | |
976 | 932 | function salir() { |
977 | 933 | var confirmacion = false; |
978 | 934 | |
... | ... | @@ -996,14 +952,14 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', |
996 | 952 | function getLSNotaPedido() { |
997 | 953 | var notaPedido = JSON.parse($localStorage.notaPedido || null); |
998 | 954 | if (notaPedido) { |
999 | - setearNotaPedido(notaPedido); | |
1000 | 955 | delete $localStorage.notaPedido; |
956 | + setearNotaPedido(notaPedido); | |
1001 | 957 | } |
1002 | 958 | } |
1003 | 959 | |
1004 | 960 | function deleteCliente() { |
1005 | 961 | delete $scope.notaPedido.domicilioStamp; |
1006 | - delete $scope.notaPedido.notaPedidoPuntoDescarga; | |
962 | + delete $scope.notaPedido.notaPedidoPuntosDescarga; | |
1007 | 963 | $scope.notaPedido.domicilio = {dom: ''}; |
1008 | 964 | $scope.notaPedido.cliente = {}; |
1009 | 965 | $scope.$broadcast('removeCabecera', 'Cliente:'); |
src/js/service.js
src/views/nota-pedido.html
... | ... | @@ -6,6 +6,12 @@ |
6 | 6 | class="mb-0 col-lg-12" |
7 | 7 | busqueda="seleccionarNotaPedido" |
8 | 8 | ></foca-cabecera-facturador> |
9 | + <marquee | |
10 | + bgcolor="#FF9900" | |
11 | + behavior="scroll" | |
12 | + direction="left" | |
13 | + ng-bind="notaPedido.observaciones" | |
14 | + ></marquee> | |
9 | 15 | <div class="col-lg-12"> |
10 | 16 | <div class="row"> |
11 | 17 | <div class="col-12 col-md-10 col-lg-10 border border-light rounded"> |
... | ... | @@ -199,7 +205,7 @@ |
199 | 205 | <h3>Total:</h3> |
200 | 206 | </td> |
201 | 207 | <td class="table-celda-total text-right no-border-top" colspan="1"> |
202 | - <h3>{{getTotal() | currency: notaPedido.moneda.SIMBOLO}}</h3> | |
208 | + <h3>{{getTotal() | currency: notaPedido.cotizacion.moneda.SIMBOLO}}</h3> | |
203 | 209 | </td> |
204 | 210 | <td class="text-right no-border-top"> |
205 | 211 | <button |
... | ... | @@ -389,7 +395,7 @@ |
389 | 395 | <h3>Total:</h3> |
390 | 396 | </td> |
391 | 397 | <td class="table-celda-total text-right no-border-top"> |
392 | - <h3>{{getTotal() | currency: notaPedido.moneda.SIMBOLO}}</h3> | |
398 | + <h3>{{getTotal() | currency: notaPedido.cotizacion.moneda.SIMBOLO}}</h3> | |
393 | 399 | </td> |
394 | 400 | </tr> |
395 | 401 | </tfoot> |