Commit 187449a51acc45b48da50630698526f4780663e5

Authored by Eric Fernandez
1 parent d9d2a4b1b3
Exists in master

Implementación modal domicilios

1 const templateCache = require('gulp-angular-templatecache'); 1 const templateCache = require('gulp-angular-templatecache');
2 const clean = require('gulp-clean'); 2 const clean = require('gulp-clean');
3 const concat = require('gulp-concat'); 3 const concat = require('gulp-concat');
4 const htmlmin = require('gulp-htmlmin'); 4 const htmlmin = require('gulp-htmlmin');
5 const rename = require('gulp-rename'); 5 const rename = require('gulp-rename');
6 const uglify = require('gulp-uglify'); 6 const uglify = require('gulp-uglify');
7 const gulp = require('gulp'); 7 const gulp = require('gulp');
8 const pump = require('pump'); 8 const pump = require('pump');
9 const jshint = require('gulp-jshint'); 9 const jshint = require('gulp-jshint');
10 const replace = require('gulp-replace'); 10 const replace = require('gulp-replace');
11 const connect = require('gulp-connect'); 11 const connect = require('gulp-connect');
12 12
13 var paths = { 13 var paths = {
14 srcJS: 'src/js/*.js', 14 srcJS: 'src/js/*.js',
15 srcViews: 'src/views/*.html', 15 srcViews: 'src/views/*.html',
16 tmp: 'tmp', 16 tmp: 'tmp',
17 dist: 'dist/' 17 dist: 'dist/'
18 }; 18 };
19 19
20 gulp.task('templates', ['clean'], function() { 20 gulp.task('templates', ['clean'], function() {
21 return pump( 21 return pump(
22 [ 22 [
23 gulp.src(paths.srcViews), 23 gulp.src(paths.srcViews),
24 htmlmin(), 24 htmlmin(),
25 templateCache('views.js', { 25 templateCache('views.js', {
26 module: 'focaCrearNotaPedido', 26 module: 'focaCrearNotaPedido',
27 root: '' 27 root: ''
28 }), 28 }),
29 gulp.dest(paths.tmp) 29 gulp.dest(paths.tmp)
30 ] 30 ]
31 ); 31 );
32 }); 32 });
33 33
34 gulp.task('uglify', ['templates'], function() { 34 gulp.task('uglify', ['templates'], function() {
35 return pump( 35 return pump(
36 [ 36 [
37 gulp.src([ 37 gulp.src([
38 paths.srcJS, 38 paths.srcJS,
39 'tmp/views.js' 39 'tmp/views.js'
40 ]), 40 ]),
41 concat('foca-crear-nota-pedido.js'), 41 concat('foca-crear-nota-pedido.js'),
42 replace('src/views/', ''), 42 replace('src/views/', ''),
43 gulp.dest(paths.tmp), 43 gulp.dest(paths.tmp),
44 rename('foca-crear-nota-pedido.min.js'), 44 rename('foca-crear-nota-pedido.min.js'),
45 uglify(), 45 uglify(),
46 replace('"ngRoute","ui.bootstrap","focaModalVendedores","focaBusquedaProductos",'+ 46 replace('"ngRoute","ui.bootstrap","focaModalVendedores","focaBusquedaProductos",'+
47 '"focaModalPetroleras","focaBusquedaCliente","focaModalPrecioCondicion",'+ 47 '"focaModalPetroleras","focaBusquedaCliente","focaModalPrecioCondicion",'+
48 '"focaModalFlete","focaDirectivas","focaModal"', ''), 48 '"focaModalFlete","focaDirectivas","focaModal","focaModalDomicilio"', ''),
49 gulp.dest(paths.dist) 49 gulp.dest(paths.dist)
50 ] 50 ]
51 ); 51 );
52 }); 52 });
53 53
54 gulp.task('clean', function(){ 54 gulp.task('clean', function(){
55 return gulp.src(['tmp', 'dist'], {read: false}) 55 return gulp.src(['tmp', 'dist'], {read: false})
56 .pipe(clean()); 56 .pipe(clean());
57 }); 57 });
58 58
59 gulp.task('pre-commit', function() { 59 gulp.task('pre-commit', function() {
60 return pump( 60 return pump(
61 [ 61 [
62 gulp.src(paths.srcJS), 62 gulp.src(paths.srcJS),
63 jshint('.jshintrc'), 63 jshint('.jshintrc'),
64 jshint.reporter('default'), 64 jshint.reporter('default'),
65 jshint.reporter('fail') 65 jshint.reporter('fail')
66 ] 66 ]
67 ); 67 );
68 68
69 gulp.start('uglify'); 69 gulp.start('uglify');
70 }); 70 });
71 71
72 gulp.task('webserver', function() { 72 gulp.task('webserver', function() {
73 pump [ 73 pump [
74 connect.server({port: 3000}) 74 connect.server({port: 3000})
75 ] 75 ]
76 }); 76 });
77 77
78 gulp.task('clean-post-install', function() { 78 gulp.task('clean-post-install', function() {
79 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js', 79 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js',
80 'index.html'], {read: false}) 80 'index.html'], {read: false})
81 .pipe(clean()); 81 .pipe(clean());
82 }); 82 });
83 83
84 gulp.task('default', ['webserver']); 84 gulp.task('default', ['webserver']);
85 85
1 { 1 {
2 "name": "foca-crear-nota-pedido", 2 "name": "foca-crear-nota-pedido",
3 "version": "0.0.1", 3 "version": "0.0.1",
4 "description": "Listado y ABM nota de pedidos", 4 "description": "Listado y ABM nota de pedidos",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1", 7 "test": "echo \"Error: no test specified\" && exit 1",
8 "compile": "gulp uglify", 8 "compile": "gulp uglify",
9 "gulp-pre-commit": "gulp pre-commit", 9 "gulp-pre-commit": "gulp pre-commit",
10 "postinstall": "npm run compile && gulp clean-post-install", 10 "postinstall": "npm run compile && gulp clean-post-install",
11 "install-dev": "npm install -D jasmine-core pre-commit angular angular-route bootstrap ui-bootstrap4 font-awesome gulp gulp-angular-templatecache gulp-connect gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-uglify jquery jshint pump git+https://debo.suite.repo/modulos-npm/foca-directivas.git git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git git+https://debo.suite.repo/modulos-npm/foca-modal-precio-condiciones.git git+https://debo.suite.repo/modulos-npm/foca-modal-flete git+https://debo.suite.repo/modulos-npm/foca-modal.git" 11 "install-dev": "npm install -D jasmine-core pre-commit angular angular-route bootstrap ui-bootstrap4 font-awesome gulp gulp-angular-templatecache gulp-connect gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-uglify jquery jshint pump git+https://debo.suite.repo/modulos-npm/foca-directivas.git git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git git+https://debo.suite.repo/modulos-npm/foca-modal-precio-condiciones.git git+https://debo.suite.repo/modulos-npm/foca-modal-flete git+https://debo.suite.repo/modulos-npm/foca-modal.git git+https://debo.suite.repo/modulos-npm/foca-modal-domicilio.git"
12 }, 12 },
13 "pre-commit": [ 13 "pre-commit": [
14 "gulp-pre-commit" 14 "gulp-pre-commit"
15 ], 15 ],
16 "repository": { 16 "repository": {
17 "type": "git", 17 "type": "git",
18 "url": "https://debo.suite.repo/modulos-npm/foca-crear-nota-pedido.git" 18 "url": "https://debo.suite.repo/modulos-npm/foca-crear-nota-pedido.git"
19 }, 19 },
20 "author": "Foca Software", 20 "author": "Foca Software",
21 "license": "ISC", 21 "license": "ISC",
22 "peerDependencies": { 22 "peerDependencies": {
23 "foca-busqueda-cliente": "git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git", 23 "foca-busqueda-cliente": "git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git",
24 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas.git", 24 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas.git",
25 "foca-modal-busqueda-productos": "git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos", 25 "foca-modal-busqueda-productos": "git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos",
26 "foca-modal-petroleras": "git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git", 26 "foca-modal-petroleras": "git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git",
27 "foca-modal-vendedores": "git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git" 27 "foca-modal-vendedores": "git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git"
28 }, 28 },
29 "devDependencies": { 29 "devDependencies": {
30 "angular": "^1.7.5", 30 "angular": "^1.7.5",
31 "angular-route": "^1.7.5", 31 "angular-route": "^1.7.5",
32 "bootstrap": "^4.1.3", 32 "bootstrap": "^4.1.3",
33 "foca-busqueda-cliente": "git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git", 33 "foca-busqueda-cliente": "git+https://debo.suite.repo/modulos-npm/foca-busqueda-cliente.git",
34 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas.git", 34 "foca-directivas": "git+https://debo.suite.repo/modulos-npm/foca-directivas.git",
35 "foca-modal": "git+https://debo.suite.repo/modulos-npm/foca-modal.git", 35 "foca-modal": "git+https://debo.suite.repo/modulos-npm/foca-modal.git",
36 "foca-modal-busqueda-productos": "git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos", 36 "foca-modal-busqueda-productos": "git+https://debo.suite.repo/modulos-npm/foca-modal-busqueda-productos",
37 "foca-modal-domicilio": "git+https://debo.suite.repo/modulos-npm/foca-modal-domicilio.git",
37 "foca-modal-flete": "git+https://debo.suite.repo/modulos-npm/foca-modal-flete", 38 "foca-modal-flete": "git+https://debo.suite.repo/modulos-npm/foca-modal-flete",
38 "foca-modal-petroleras": "git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git", 39 "foca-modal-petroleras": "git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git",
39 "foca-modal-precio-condiciones": "git+https://debo.suite.repo/modulos-npm/foca-modal-precio-condiciones.git", 40 "foca-modal-precio-condiciones": "git+https://debo.suite.repo/modulos-npm/foca-modal-precio-condiciones.git",
40 "foca-modal-vendedores": "git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git", 41 "foca-modal-vendedores": "git+https://debo.suite.repo/modulos-npm/foca-modal-vendedores.git",
41 "font-awesome": "^4.7.0", 42 "font-awesome": "^4.7.0",
42 "gulp": "^3.9.1", 43 "gulp": "^3.9.1",
43 "gulp-angular-templatecache": "2.2.2", 44 "gulp-angular-templatecache": "2.2.2",
44 "gulp-clean": "^0.4.0", 45 "gulp-clean": "^0.4.0",
45 "gulp-concat": "^2.6.1", 46 "gulp-concat": "^2.6.1",
46 "gulp-connect": "^5.6.1", 47 "gulp-connect": "^5.6.1",
47 "gulp-htmlmin": "^5.0.1", 48 "gulp-htmlmin": "^5.0.1",
48 "gulp-jshint": "^2.1.0", 49 "gulp-jshint": "^2.1.0",
49 "gulp-rename": "^1.4.0", 50 "gulp-rename": "^1.4.0",
50 "gulp-replace": "^1.0.0", 51 "gulp-replace": "^1.0.0",
51 "gulp-sequence": "^1.0.0", 52 "gulp-sequence": "^1.0.0",
52 "gulp-uglify": "^3.0.1", 53 "gulp-uglify": "^3.0.1",
53 "gulp-uglify-es": "^1.0.4", 54 "gulp-uglify-es": "^1.0.4",
54 "jasmine-core": "^3.2.1", 55 "jasmine-core": "^3.2.1",
55 "jquery": "^3.3.1", 56 "jquery": "^3.3.1",
56 "jshint": "^2.9.6", 57 "jshint": "^2.9.6",
57 "pre-commit": "^1.2.2", 58 "pre-commit": "^1.2.2",
58 "pump": "^3.0.0", 59 "pump": "^3.0.0",
59 "ui-bootstrap4": "^3.0.5" 60 "ui-bootstrap4": "^3.0.5"
60 } 61 }
61 } 62 }
62 63
src/js/controller.js
1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', 1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl',
2 [ 2 [
3 '$scope', '$uibModal', '$location', '$filter', 'crearNotaPedidoService', 3 '$scope', '$uibModal', '$location', '$filter', 'crearNotaPedidoService',
4 'focaModalService', 4 'focaModalService',
5 function( 5 function(
6 $scope, $uibModal, $location, $filter, crearNotaPedidoService, focaModalService 6 $scope, $uibModal, $location, $filter, crearNotaPedidoService, focaModalService
7 ) { 7 ) {
8 $scope.botonera = [ 8 $scope.botonera = [
9 {texto: 'Vendedor', accion: function() {$scope.seleccionarVendedor();}}, 9 {texto: 'Vendedor', accion: function() {$scope.seleccionarVendedor();}},
10 {texto: 'Cliente', accion: function() {$scope.seleccionarCliente();}}, 10 {texto: 'Cliente', accion: function() {$scope.seleccionarCliente();}},
11 {texto: 'Moneda', accion: function() {$scope.abrirModalMoneda();}}, 11 {texto: 'Moneda', accion: function() {$scope.abrirModalMoneda();}},
12 { 12 {
13 texto: 'Precios y condiciones', 13 texto: 'Precios y condiciones',
14 accion: function() {$scope.abrirModalListaPrecio();}}, 14 accion: function() {$scope.abrirModalListaPrecio();}},
15 {texto: 'Flete', accion: function() {$scope.abrirModalFlete();}}, 15 {texto: 'Flete', accion: function() {$scope.abrirModalFlete();}},
16 {texto: 'Bomba', accion: function() {}}, 16 {texto: 'Bomba', accion: function() {}},
17 {texto: 'Detalle', accion: function() {}}, 17 {texto: 'Detalle', accion: function() {}},
18 {texto: 'Totales', accion: function() {}} 18 {texto: 'Totales', accion: function() {}}
19 ]; 19 ];
20 20
21 $scope.show = false; 21 $scope.show = false;
22 $scope.cargando = true; 22 $scope.cargando = true;
23 $scope.dateOptions = { 23 $scope.dateOptions = {
24 maxDate: new Date(), 24 maxDate: new Date(),
25 minDate: new Date(2010, 0, 1) 25 minDate: new Date(2010, 0, 1)
26 }; 26 };
27 27
28 $scope.notaPedido = { 28 $scope.notaPedido = {
29 vendedor: {}, 29 vendedor: {},
30 cliente: {}, 30 cliente: {},
31 domicilio: {dom: ''}, 31 domicilio: {dom: ''},
32 moneda: {detalle: ''} 32 moneda: {detalle: ''}
33 }; 33 };
34 34
35 $scope.cabecera = []; 35 $scope.cabecera = [];
36 36
37 $scope.now = new Date(); 37 $scope.now = new Date();
38 $scope.puntoVenta = Math.round(Math.random() * 10000); 38 $scope.puntoVenta = Math.round(Math.random() * 10000);
39 $scope.comprobante = Math.round(Math.random() * 1000000); 39 $scope.comprobante = Math.round(Math.random() * 1000000);
40 40
41 $scope.articulosTabla = []; 41 $scope.articulosTabla = [];
42 var idLista; 42 var idLista;
43 var notaPedidoTemp = crearNotaPedidoService.getNotaPedido(); 43 var notaPedidoTemp = crearNotaPedidoService.getNotaPedido();
44 crearNotaPedidoService.getPrecioCondicion().then( 44 crearNotaPedidoService.getPrecioCondicion().then(
45 function(res) { 45 function(res) {
46 $scope.precioCondiciones = res.data; 46 $scope.precioCondiciones = res.data;
47 } 47 }
48 ); 48 );
49 if (notaPedidoTemp !== undefined) { 49 if (notaPedidoTemp !== undefined) {
50 notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga); 50 notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga);
51 $scope.notaPedido = notaPedidoTemp; 51 $scope.notaPedido = notaPedidoTemp;
52 $scope.notaPedido.flete = ($scope.notaPedido.flete).toString(); 52 $scope.notaPedido.flete = ($scope.notaPedido.flete).toString();
53 $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString(); 53 $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString();
54 idLista = $scope.notaPedido.precioCondicion; 54 idLista = $scope.notaPedido.precioCondicion;
55 crearNotaPedidoService 55 crearNotaPedidoService
56 .getArticulosByIdNotaPedido($scope.notaPedido.id).then( 56 .getArticulosByIdNotaPedido($scope.notaPedido.id).then(
57 function(res) { 57 function(res) {
58 $scope.articulosTabla = res.data; 58 $scope.articulosTabla = res.data;
59 } 59 }
60 ); 60 );
61 //TODO DOMICILIOS QUE SE CARGAN AL EDITAR NOTA DE PEDIDO 61 //TODO DOMICILIOS QUE SE CARGAN AL EDITAR NOTA DE PEDIDO
62 //(NO REQUERIDO EN ESTA VERSION) 62 //(NO REQUERIDO EN ESTA VERSION)
63 // crearNotaPedidoService.getDomiciliosByIdNotaPedido($scope.notaPedido.id).then( 63 // crearNotaPedidoService.getDomiciliosByIdNotaPedido($scope.notaPedido.id).then(
64 // function(res) { 64 // function(res) {
65 // $scope.notaPedido.domicilio = res.data; 65 // $scope.notaPedido.domicilio = res.data;
66 // } 66 // }
67 // ); 67 // );
68 } else { 68 } else {
69 $scope.notaPedido.fechaCarga = new Date(); 69 $scope.notaPedido.fechaCarga = new Date();
70 $scope.notaPedido.bomba = '0'; 70 $scope.notaPedido.bomba = '0';
71 $scope.notaPedido.flete = '0'; 71 $scope.notaPedido.flete = '0';
72 idLista = undefined; 72 idLista = undefined;
73 } 73 }
74 //TO DO - FUNCIONES PARA MULTIPLES DOMICILIOS NO IMPLEMENTADAS EN ESTA DEMO 74 //TO DO - FUNCIONES PARA MULTIPLES DOMICILIOS NO IMPLEMENTADAS EN ESTA DEMO
75 // $scope.addNewDom = function() { 75 // $scope.addNewDom = function() {
76 // $scope.notaPedido.domicilio.push({ 'id': 0 }); 76 // $scope.notaPedido.domicilio.push({ 'id': 0 });
77 // }; 77 // };
78 // $scope.removeNewChoice = function(choice) { 78 // $scope.removeNewChoice = function(choice) {
79 // if ($scope.notaPedido.domicilio.length > 1) { 79 // if ($scope.notaPedido.domicilio.length > 1) {
80 // $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex( 80 // $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex(
81 // function(c) { 81 // function(c) {
82 // return c.$$hashKey === choice.$$hashKey; 82 // return c.$$hashKey === choice.$$hashKey;
83 // } 83 // }
84 // ), 1); 84 // ), 1);
85 // } 85 // }
86 // }; 86 // };
87 $scope.crearNotaPedido = function() { 87 $scope.crearNotaPedido = function() {
88 if($scope.articulosTabla.length === 0) { 88 if($scope.articulosTabla.length === 0) {
89 focaModalService.alert('Debe cargar almenos un articulo'); 89 focaModalService.alert('Debe cargar almenos un articulo');
90 return; 90 return;
91 } 91 }
92 if($scope.notaPedido.domicilio.id === undefined) { 92 if($scope.notaPedido.domicilio.id === undefined) {
93 $scope.notaPedido.domicilio.id = 0; 93 $scope.notaPedido.domicilio.id = 0;
94 } 94 }
95 var date = new Date(); 95 var date = new Date();
96 var notaPedido = { 96 var notaPedido = {
97 id: 0, 97 id: 0,
98 fechaCarga: new Date(date.getTime() - (date.getTimezoneOffset() * 60000)) 98 fechaCarga: new Date(date.getTime() - (date.getTimezoneOffset() * 60000))
99 .toISOString().slice(0, 19).replace('T', ' '), 99 .toISOString().slice(0, 19).replace('T', ' '),
100 vendedor: $scope.notaPedido.vendedor.nombre, 100 vendedor: $scope.notaPedido.vendedor.nombre,
101 idCliente: $scope.notaPedido.cliente.id, 101 idCliente: $scope.notaPedido.cliente.id,
102 domicilio: $scope.notaPedido.domicilio, 102 domicilio: $scope.notaPedido.domicilio,
103 precioCondicion: $scope.notaPedido.precioCondicion, 103 precioCondicion: $scope.notaPedido.precioCondicion,
104 bomba: $scope.notaPedido.bomba, 104 bomba: $scope.notaPedido.bomba,
105 flete: $scope.notaPedido.flete, 105 flete: $scope.notaPedido.flete,
106 total: $scope.getTotal() 106 total: $scope.getTotal()
107 }; 107 };
108 crearNotaPedidoService.crearNotaPedido(notaPedido).then( 108 crearNotaPedidoService.crearNotaPedido(notaPedido).then(
109 function(data) { 109 function(data) {
110 focaModalService.alert('Nota pedido creada'); 110 focaModalService.alert('Nota pedido creada');
111 if($scope.notaPedido.flete === 1) { 111 if($scope.notaPedido.flete === 1) {
112 var flete = { 112 var flete = {
113 idNotaPedido: data.data.id, 113 idNotaPedido: data.data.id,
114 idTransportista: $scope.notaPedido.fleteId, 114 idTransportista: $scope.notaPedido.fleteId,
115 idChofer: $scope.notaPedido.chofer.id, 115 idChofer: $scope.notaPedido.chofer.id,
116 idVehiculo: $scope.notaPedido.vehiculo.id, 116 idVehiculo: $scope.notaPedido.vehiculo.id,
117 kilometros: $scope.notaPedido.kilometros, 117 kilometros: $scope.notaPedido.kilometros,
118 costoKilometro: $scope.notaPedido.costoUnitarioKmFlete 118 costoKilometro: $scope.notaPedido.costoUnitarioKmFlete
119 }; 119 };
120 crearNotaPedidoService.crearFlete(flete); 120 crearNotaPedidoService.crearFlete(flete);
121 } 121 }
122 var articulosNotaPedido = $scope.articulosTabla; 122 var articulosNotaPedido = $scope.articulosTabla;
123 for(var i = 0; i < articulosNotaPedido.length; i++) { 123 for(var i = 0; i < articulosNotaPedido.length; i++) {
124 delete articulosNotaPedido[i].edit; 124 delete articulosNotaPedido[i].edit;
125 articulosNotaPedido[i].idNotaPedido = data.data.id; 125 articulosNotaPedido[i].idNotaPedido = data.data.id;
126 crearNotaPedidoService 126 crearNotaPedidoService
127 .crearArticulosParaNotaPedido(articulosNotaPedido[i]); 127 .crearArticulosParaNotaPedido(articulosNotaPedido[i]);
128 } 128 }
129 $scope.limpiarPantalla(); 129 $scope.limpiarPantalla();
130 } 130 }
131 ); 131 );
132 }; 132 };
133 133
134 $scope.seleccionarArticulo = function() { 134 $scope.seleccionarArticulo = function() {
135 if (idLista === undefined) { 135 if (idLista === undefined) {
136 focaModalService.alert( 136 focaModalService.alert(
137 'Primero seleccione una lista de precio y condicion'); 137 'Primero seleccione una lista de precio y condicion');
138 return; 138 return;
139 } 139 }
140 var modalInstance = $uibModal.open( 140 var modalInstance = $uibModal.open(
141 { 141 {
142 ariaLabelledBy: 'Busqueda de Productos', 142 ariaLabelledBy: 'Busqueda de Productos',
143 templateUrl: 'modal-busqueda-productos.html', 143 templateUrl: 'modal-busqueda-productos.html',
144 controller: 'modalBusquedaProductosCtrl', 144 controller: 'modalBusquedaProductosCtrl',
145 resolve: { idLista: function() { return idLista; } }, 145 resolve: { idLista: function() { return idLista; } },
146 size: 'lg' 146 size: 'lg'
147 } 147 }
148 ); 148 );
149 modalInstance.result.then( 149 modalInstance.result.then(
150 function(producto) { 150 function(producto) {
151 var newArt = 151 var newArt =
152 { 152 {
153 id: 0, 153 id: 0,
154 codigo: producto.codigo, 154 codigo: producto.codigo,
155 sector: producto.sector, 155 sector: producto.sector,
156 descripcion: producto.descripcion, 156 descripcion: producto.descripcion,
157 item: $scope.articulosTabla.length + 1, 157 item: $scope.articulosTabla.length + 1,
158 nombre: producto.descripcion, 158 nombre: producto.descripcion,
159 precio: producto.precio.toFixed(2), 159 precio: producto.precio.toFixed(2),
160 costoUnitario: producto.costo, 160 costoUnitario: producto.costo,
161 edit: false 161 edit: false
162 }; 162 };
163 $scope.articuloACargar = newArt; 163 $scope.articuloACargar = newArt;
164 $scope.cargando = false; 164 $scope.cargando = false;
165 }, function() { 165 }, function() {
166 // funcion ejecutada cuando se cancela el modal 166 // funcion ejecutada cuando se cancela el modal
167 } 167 }
168 ); 168 );
169 }; 169 };
170 170
171 $scope.seleccionarVendedor = function() { 171 $scope.seleccionarVendedor = function() {
172 var modalInstance = $uibModal.open( 172 var modalInstance = $uibModal.open(
173 { 173 {
174 ariaLabelledBy: 'Busqueda de Vendedores', 174 ariaLabelledBy: 'Busqueda de Vendedores',
175 templateUrl: 'modal-vendedores.html', 175 templateUrl: 'modal-vendedores.html',
176 controller: 'modalVendedoresCtrl', 176 controller: 'modalVendedoresCtrl',
177 size: 'lg' 177 size: 'lg'
178 } 178 }
179 ); 179 );
180 modalInstance.result.then( 180 modalInstance.result.then(
181 function(vendedor) { 181 function(vendedor) {
182 addCabecera('Vendedor:', vendedor.NomVen); 182 addCabecera('Vendedor:', vendedor.NomVen);
183 $scope.notaPedido.vendedor.nombre = vendedor.NomVen; 183 $scope.notaPedido.vendedor.nombre = vendedor.NomVen;
184 }, function() { 184 }, function() {
185 185
186 } 186 }
187 ); 187 );
188 }; 188 };
189 189
190 $scope.seleccionarPetrolera = function() { 190 $scope.seleccionarPetrolera = function() {
191 var modalInstance = $uibModal.open( 191 var modalInstance = $uibModal.open(
192 { 192 {
193 ariaLabelledBy: 'Busqueda de Petrolera', 193 ariaLabelledBy: 'Busqueda de Petrolera',
194 templateUrl: 'modal-petroleras.html', 194 templateUrl: 'modal-petroleras.html',
195 controller: 'modalPetrolerasCtrl', 195 controller: 'modalPetrolerasCtrl',
196 size: 'lg' 196 size: 'lg'
197 } 197 }
198 ); 198 );
199 modalInstance.result.then( 199 modalInstance.result.then(
200 function(petrolera) { 200 function(petrolera) {
201 $scope.notaPedido.petrolera = petrolera.NOM; 201 $scope.notaPedido.petrolera = petrolera.NOM;
202 }, function() { 202 }, function() {
203 203
204 } 204 }
205 ); 205 );
206 }; 206 };
207 207
208 $scope.seleccionarCliente = function() { 208 $scope.seleccionarCliente = function() {
209 var modalInstance = $uibModal.open( 209 var modalInstance = $uibModal.open(
210 { 210 {
211 ariaLabelledBy: 'Busqueda de Cliente', 211 ariaLabelledBy: 'Busqueda de Cliente',
212 templateUrl: 'foca-busqueda-cliente-modal.html', 212 templateUrl: 'foca-busqueda-cliente-modal.html',
213 controller: 'focaBusquedaClienteModalController', 213 controller: 'focaBusquedaClienteModalController',
214 size: 'lg' 214 size: 'lg'
215 } 215 }
216 ); 216 );
217 modalInstance.result.then( 217 modalInstance.result.then(
218 function(cliente) { 218 function(cliente) {
219 $scope.notaPedido.cliente.nombre = cliente.nom; 219 $scope.notaPedido.cliente.nombre = cliente.nom;
220 $scope.notaPedido.cliente.id = cliente.cod; 220 $scope.notaPedido.cliente.id = cliente.cod;
221 crearNotaPedidoService.getDomiciliosByIdCliente(cliente.cod).then( 221 crearNotaPedidoService.getDomiciliosByIdCliente(cliente.cod).then(
222 function(data) { 222 function(data) {
223 if(data.data.length === 0){ 223 if(data.data.length === 0){
224 focaModalService 224 focaModalService
225 .alert('El cliente no tienen domicilios de entrega') 225 .alert('El cliente no tienen domicilios de entrega')
226 .then( 226 .then(
227 function() { 227 function() {
228 $scope.seleccionarCliente(); 228 $scope.seleccionarCliente();
229 $scope.notaPedido.cliente = {nombre: ''}; 229 $scope.notaPedido.cliente = {nombre: ''};
230 } 230 }
231 ); 231 );
232 return; 232 return;
233 } 233 }
234 var modalInstanceDomicilio = $uibModal.open( 234 var modalInstanceDomicilio = $uibModal.open(
235 { 235 {
236 ariaLabelledBy: 'Busqueda de Domicilios', 236 ariaLabelledBy: 'Busqueda de Domicilios',
237 templateUrl: 'modal-domicilio.html', 237 templateUrl: 'modal-domicilio.html',
238 controller: 'focaModalDomicilioController', 238 controller: 'focaModalDomicilioController',
239 resolve: { idCliente: function() { return cliente.cod; }}, 239 resolve: { idCliente: function() { return cliente.cod; }},
240 size: 'lg', 240 size: 'lg',
241 backdrop: 'static', 241 backdrop: 'static',
242 } 242 }
243 ); 243 );
244 modalInstanceDomicilio.result.then( 244 modalInstanceDomicilio.result.then(
245 function(domicilio) { 245 function(domicilio) {
246 focaModalService.alert('Domicilio '+domicilio.dom); 246 focaModalService.alert('Domicilio '+domicilio.dom);
247 }, function() { 247 }, function() {
248 $scope.notaPedido.cliente.nombre = ''; 248 $scope.notaPedido.cliente.nombre = '';
249 $scope.notaPedido.cliente.id = ''; 249 $scope.notaPedido.cliente.id = '';
250 removeCabecera('Cliente:');
250 $scope.seleccionarCliente(); 251 $scope.seleccionarCliente();
251 return; 252 return;
252 } 253 }
253 ); 254 );
254 } 255 }
255 ); 256 );
256
257 addCabecera('Cliente:', cliente.nom); 257 addCabecera('Cliente:', cliente.nom);
258 }, function() { 258 }, function() {
259 259
260 } 260 }
261 ); 261 );
262 }; 262 };
263 263
264 $scope.mostrarFichaCliente = function() { 264 $scope.mostrarFichaCliente = function() {
265 $uibModal.open( 265 $uibModal.open(
266 { 266 {
267 ariaLabelledBy: 'Datos del Cliente', 267 ariaLabelledBy: 'Datos del Cliente',
268 templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html', 268 templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html',
269 controller: 'focaCrearNotaPedidoFichaClienteController', 269 controller: 'focaCrearNotaPedidoFichaClienteController',
270 size: 'lg' 270 size: 'lg'
271 } 271 }
272 ); 272 );
273 }; 273 };
274 274
275 $scope.getTotal = function() { 275 $scope.getTotal = function() {
276 var total = 0; 276 var total = 0;
277 var arrayTempArticulos = $scope.articulosTabla; 277 var arrayTempArticulos = $scope.articulosTabla;
278 for (var i = 0; i < arrayTempArticulos.length; i++) { 278 for (var i = 0; i < arrayTempArticulos.length; i++) {
279 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; 279 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad;
280 } 280 }
281 return total.toFixed(2); 281 return total.toFixed(2);
282 }; 282 };
283 283
284 $scope.getSubTotal = function() { 284 $scope.getSubTotal = function() {
285 if($scope.articuloACargar) { 285 if($scope.articuloACargar) {
286 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 286 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
287 } 287 }
288 }; 288 };
289 289
290 $scope.abrirModalListaPrecio = function() { 290 $scope.abrirModalListaPrecio = function() {
291 var modalInstance = $uibModal.open( 291 var modalInstance = $uibModal.open(
292 { 292 {
293 ariaLabelledBy: 'Busqueda de Precio Condición', 293 ariaLabelledBy: 'Busqueda de Precio Condición',
294 templateUrl: 'modal-precio-condicion.html', 294 templateUrl: 'modal-precio-condicion.html',
295 controller: 'focaModalPrecioCondicionController', 295 controller: 'focaModalPrecioCondicionController',
296 size: 'lg' 296 size: 'lg'
297 } 297 }
298 ); 298 );
299 modalInstance.result.then( 299 modalInstance.result.then(
300 function(precioCondicion) { 300 function(precioCondicion) {
301 $scope.notaPedido.precioCondicion = precioCondicion.nombre; 301 $scope.notaPedido.precioCondicion = precioCondicion.nombre;
302 idLista = precioCondicion.idListaPrecio; 302 idLista = precioCondicion.idListaPrecio;
303 $scope.articulosTabla = []; 303 $scope.articulosTabla = [];
304 304
305 addCabecera('Precios y condiciones:', precioCondicion.nombre); 305 addCabecera('Precios y condiciones:', precioCondicion.nombre);
306 }, function() { 306 }, function() {
307 307
308 } 308 }
309 ); 309 );
310 }; 310 };
311 311
312 $scope.abrirModalFlete = function() { 312 $scope.abrirModalFlete = function() {
313 var modalInstance = $uibModal.open( 313 var modalInstance = $uibModal.open(
314 { 314 {
315 ariaLabelledBy: 'Busqueda de Flete', 315 ariaLabelledBy: 'Busqueda de Flete',
316 templateUrl: 'modal-flete.html', 316 templateUrl: 'modal-flete.html',
317 controller: 'focaModalFleteController', 317 controller: 'focaModalFleteController',
318 size: 'lg', 318 size: 'lg',
319 resolve: { 319 resolve: {
320 parametrosFlete: 320 parametrosFlete:
321 function() { 321 function() {
322 return { 322 return {
323 flete: $scope.notaPedido.flete, 323 flete: $scope.notaPedido.flete,
324 bomba: $scope.notaPedido.bomba, 324 bomba: $scope.notaPedido.bomba,
325 kilometros: $scope.notaPedido.kilometros 325 kilometros: $scope.notaPedido.kilometros
326 }; 326 };
327 } 327 }
328 } 328 }
329 } 329 }
330 ); 330 );
331 modalInstance.result.then( 331 modalInstance.result.then(
332 function(datos) { 332 function(datos) {
333 $scope.notaPedido.flete = datos.flete; 333 $scope.notaPedido.flete = datos.flete;
334 $scope.notaPedido.bomba = datos.bomba; 334 $scope.notaPedido.bomba = datos.bomba;
335 $scope.notaPedido.kilometros = datos.kilometros; 335 $scope.notaPedido.kilometros = datos.kilometros;
336 336
337 addCabecera('Flete:', datos.flete); 337 addCabecera('Flete:', datos.flete);
338 if(datos.flete === 'si') { 338 if(datos.flete === 'si') {
339 addCabecera('Bomba:', datos.bomba); 339 addCabecera('Bomba:', datos.bomba);
340 addCabecera('Kilometros:', datos.kilometros); 340 addCabecera('Kilometros:', datos.kilometros);
341 } else { 341 } else {
342 removeCabecera('Bomba:'); 342 removeCabecera('Bomba:');
343 removeCabecera('Kilometros:'); 343 removeCabecera('Kilometros:');
344 } 344 }
345 }, function() { 345 }, function() {
346 346
347 } 347 }
348 ); 348 );
349 }; 349 };
350 350
351 $scope.abrirModalMoneda = function() { 351 $scope.abrirModalMoneda = function() {
352 var modalInstance = $uibModal.open( 352 var modalInstance = $uibModal.open(
353 { 353 {
354 ariaLabelledBy: 'Busqueda de Moneda', 354 ariaLabelledBy: 'Busqueda de Moneda',
355 templateUrl: 'modal-moneda.html', 355 templateUrl: 'modal-moneda.html',
356 controller: 'focaModalMonedaController', 356 controller: 'focaModalMonedaController',
357 size: 'lg' 357 size: 'lg'
358 } 358 }
359 ); 359 );
360 modalInstance.result.then( 360 modalInstance.result.then(
361 function(moneda) { 361 function(moneda) {
362 $scope.notaPedido.moneda = { 362 $scope.notaPedido.moneda = {
363 id: moneda.ID, 363 id: moneda.ID,
364 detalle: moneda.DETALLE, 364 detalle: moneda.DETALLE,
365 simbolo: moneda.SIMBOLO 365 simbolo: moneda.SIMBOLO
366 }; 366 };
367 367
368 addCabecera('Moneda:', moneda.DETALLE); 368 addCabecera('Moneda:', moneda.DETALLE);
369 }, function() { 369 }, function() {
370 370
371 } 371 }
372 ); 372 );
373 }; 373 };
374 374
375 $scope.agregarATabla = function(key) { 375 $scope.agregarATabla = function(key) {
376 if(key === 13) { 376 if(key === 13) {
377 if($scope.articuloACargar.cantidad === undefined || 377 if($scope.articuloACargar.cantidad === undefined ||
378 $scope.articuloACargar.cantidad === 0 || 378 $scope.articuloACargar.cantidad === 0 ||
379 $scope.articuloACargar.cantidad === null ){ 379 $scope.articuloACargar.cantidad === null ){
380 focaModalService.alert('El valor debe ser al menos 1'); 380 focaModalService.alert('El valor debe ser al menos 1');
381 return; 381 return;
382 } 382 }
383 $scope.articulosTabla.unshift($scope.articuloACargar); 383 $scope.articulosTabla.unshift($scope.articuloACargar);
384 $scope.cargando = true; 384 $scope.cargando = true;
385 } 385 }
386 }; 386 };
387 387
388 $scope.quitarArticulo = function(key) { 388 $scope.quitarArticulo = function(key) {
389 $scope.articulosTabla.splice(key, 1); 389 $scope.articulosTabla.splice(key, 1);
390 }; 390 };
391 391
392 $scope.editarArticulo = function(key, articulo) { 392 $scope.editarArticulo = function(key, articulo) {
393 if(key === 13) { 393 if(key === 13) {
394 if(articulo.cantidad === null || articulo.cantidad === 0 || 394 if(articulo.cantidad === null || articulo.cantidad === 0 ||
395 articulo.cantidad === undefined){ 395 articulo.cantidad === undefined){
396 focaModalService.alert('El valor debe ser al menos 1'); 396 focaModalService.alert('El valor debe ser al menos 1');
397 return; 397 return;
398 } 398 }
399 articulo.edit = false; 399 articulo.edit = false;
400 } 400 }
401 }; 401 };
402 402
403 $scope.cambioEdit = function(articulo) { 403 $scope.cambioEdit = function(articulo) {
404 articulo.edit = true; 404 articulo.edit = true;
405 }; 405 };
406 406
407 $scope.limpiarFlete = function() { 407 $scope.limpiarFlete = function() {
408 $scope.notaPedido.fleteNombre = ''; 408 $scope.notaPedido.fleteNombre = '';
409 $scope.notaPedido.chofer = ''; 409 $scope.notaPedido.chofer = '';
410 $scope.notaPedido.vehiculo = ''; 410 $scope.notaPedido.vehiculo = '';
411 $scope.notaPedido.kilometros = ''; 411 $scope.notaPedido.kilometros = '';
412 $scope.notaPedido.costoUnitarioKmFlete = ''; 412 $scope.notaPedido.costoUnitarioKmFlete = '';
413 $scope.choferes = ''; 413 $scope.choferes = '';
414 $scope.vehiculos = ''; 414 $scope.vehiculos = '';
415 }; 415 };
416 416
417 $scope.limpiarPantalla = function() { 417 $scope.limpiarPantalla = function() {
418 $scope.limpiarFlete(); 418 $scope.limpiarFlete();
419 $scope.notaPedido.flete = '0'; 419 $scope.notaPedido.flete = '0';
420 $scope.notaPedido.bomba = '0'; 420 $scope.notaPedido.bomba = '0';
421 $scope.notaPedido.precioCondicion = ''; 421 $scope.notaPedido.precioCondicion = '';
422 $scope.articulosTabla = []; 422 $scope.articulosTabla = [];
423 $scope.notaPedido.vendedor.nombre = ''; 423 $scope.notaPedido.vendedor.nombre = '';
424 $scope.notaPedido.cliente = {nombre: ''}; 424 $scope.notaPedido.cliente = {nombre: ''};
425 $scope.notaPedido.domicilio = {dom: ''}; 425 $scope.notaPedido.domicilio = {dom: ''};
426 $scope.domiciliosCliente = []; 426 $scope.domiciliosCliente = [];
427 }; 427 };
428 428
429 $scope.resetFilter = function() { 429 $scope.resetFilter = function() {
430 $scope.articuloACargar = {}; 430 $scope.articuloACargar = {};
431 $scope.cargando = true; 431 $scope.cargando = true;
432 }; 432 };
433 433
434 $scope.selectFocus = function($event) { 434 $scope.selectFocus = function($event) {
435 $event.target.select(); 435 $event.target.select();
436 }; 436 };
437 437
438 $scope.salir = function() { 438 $scope.salir = function() {
439 $location.path('/'); 439 $location.path('/');
440 }; 440 };
441 441
442 function addCabecera(label, valor) { 442 function addCabecera(label, valor) {
443 var propiedad = $filter('filter')($scope.cabecera, {label: label}); 443 var propiedad = $filter('filter')($scope.cabecera, {label: label});
444 if(propiedad.length === 1) { 444 if(propiedad.length === 1) {
445 propiedad[0].valor = valor; 445 propiedad[0].valor = valor;
446 } else { 446 } else {
447 $scope.cabecera.push({label: label, valor: valor}); 447 $scope.cabecera.push({label: label, valor: valor});
448 } 448 }
449 } 449 }
450 450
451 function removeCabecera(label) { 451 function removeCabecera(label) {
452 var propiedad = $filter('filter')($scope.cabecera, {label: label}); 452 var propiedad = $filter('filter')($scope.cabecera, {label: label});
453 if(propiedad.length === 1){ 453 if(propiedad.length === 1){
454 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1); 454 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
455 } 455 }
456 } 456 }
457 } 457 }
458 ] 458 ]
459 ) 459 )
460 .controller('notaPedidoListaCtrl', [ 460 .controller('notaPedidoListaCtrl', [
461 '$scope', 461 '$scope',
462 'crearNotaPedidoService', 462 'crearNotaPedidoService',
463 '$location', 463 '$location',
464 function($scope, crearNotaPedidoService, $location) { 464 function($scope, crearNotaPedidoService, $location) {
465 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) { 465 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
466 $scope.notaPedidos = datos.data; 466 $scope.notaPedidos = datos.data;
467 }); 467 });
468 $scope.editar = function(notaPedido) { 468 $scope.editar = function(notaPedido) {
469 crearNotaPedidoService.setNotaPedido(notaPedido); 469 crearNotaPedidoService.setNotaPedido(notaPedido);
470 $location.path('/venta-nota-pedido/abm/'); 470 $location.path('/venta-nota-pedido/abm/');
471 }; 471 };
472 $scope.crearPedido = function() { 472 $scope.crearPedido = function() {
473 crearNotaPedidoService.clearNotaPedido(); 473 crearNotaPedidoService.clearNotaPedido();
474 $location.path('/venta-nota-pedido/abm/'); 474 $location.path('/venta-nota-pedido/abm/');
475 }; 475 };
476 } 476 }
477 ]) 477 ])
478 .controller('focaCrearNotaPedidoFichaClienteController', [ 478 .controller('focaCrearNotaPedidoFichaClienteController', [
479 '$scope', 479 '$scope',
480 'crearNotaPedidoService', 480 'crearNotaPedidoService',
481 '$location', 481 '$location',
482 function($scope, crearNotaPedidoService, $location) { 482 function($scope, crearNotaPedidoService, $location) {
483 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) { 483 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
484 $scope.notaPedidos = datos.data; 484 $scope.notaPedidos = datos.data;
485 }); 485 });
486 $scope.editar = function(notaPedido) { 486 $scope.editar = function(notaPedido) {
487 crearNotaPedidoService.setNotaPedido(notaPedido); 487 crearNotaPedidoService.setNotaPedido(notaPedido);
488 $location.path('/venta-nota-pedido/abm/'); 488 $location.path('/venta-nota-pedido/abm/');
489 }; 489 };
490 $scope.crearPedido = function() { 490 $scope.crearPedido = function() {
491 crearNotaPedidoService.clearNotaPedido(); 491 crearNotaPedidoService.clearNotaPedido();
492 $location.path('/venta-nota-pedido/abm/'); 492 $location.path('/venta-nota-pedido/abm/');
493 }; 493 };
494 } 494 }
495 ]); 495 ]);