Commit 1438b06dde6f16d669f51f86042e49c575ab62a9

Authored by Pablo Marco del Pont
1 parent e5a7cf796d
Exists in master

Refactor para utilizar foca-modal-proveedor en vez de foca-modal-petroleras.

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 '"focaModalProveedor","focaBusquedaCliente","focaModalPrecioCondicion",'+
48 '"focaModalFlete","focaDirectivas","focaModal","focaModalDomicilio"', ''), 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
86 gulp.task('watch', function() { 86 gulp.task('watch', function() {
87 gulp.watch([paths.srcJS, paths.srcViews], ['uglify']); 87 gulp.watch([paths.srcJS, paths.srcViews], ['uglify']);
88 }); 88 });
89 89
1 <html ng-app="focaCrearNotaPedido"> 1 <html ng-app="focaCrearNotaPedido">
2 <head> 2 <head>
3 <meta charset="UTF-8"/> 3 <meta charset="UTF-8"/>
4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
5 5
6 <!--CSS--> 6 <!--CSS-->
7 <link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/> 7 <link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
8 <link href="node_modules/font-awesome/css/font-awesome.min.css" rel="stylesheet"/> 8 <link href="node_modules/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
9 9
10 <!--VENDOR JS--> 10 <!--VENDOR JS-->
11 <script src="node_modules/jquery/dist/jquery.min.js"></script> 11 <script src="node_modules/jquery/dist/jquery.min.js"></script>
12 <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script> 12 <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
13 <script src="node_modules/angular/angular.min.js"></script> 13 <script src="node_modules/angular/angular.min.js"></script>
14 <script src="node_modules/angular-route/angular-route.min.js"></script> 14 <script src="node_modules/angular-route/angular-route.min.js"></script>
15 <script src="node_modules/ui-bootstrap4/dist/ui-bootstrap-tpls.js"></script> 15 <script src="node_modules/ui-bootstrap4/dist/ui-bootstrap-tpls.js"></script>
16 16
17 <script src="node_modules/foca-directivas/dist/foca-directivas.min.js"></script> 17 <script src="node_modules/foca-directivas/dist/foca-directivas.min.js"></script>
18 <script src="node_modules/foca-modal-vendedores/dist/foca-modal-vendedores.min.js"></script> 18 <script src="node_modules/foca-modal-vendedores/dist/foca-modal-vendedores.min.js"></script>
19 <script src="node_modules/foca-modal-busqueda-productos/dist/foca-busqueda-productos.min.js"></script> 19 <script src="node_modules/foca-modal-busqueda-productos/dist/foca-busqueda-productos.min.js"></script>
20 <script src="node_modules/foca-modal-petroleras/dist/foca-modal-petroleras.min.js"></script> 20 <script src="node_modules/foca-modal-proveedor/dist/foca-modal-proveedor.min.js"></script>
21 <script src="node_modules/foca-busqueda-cliente/dist/foca-busqueda-cliente.min.js"></script> 21 <script src="node_modules/foca-busqueda-cliente/dist/foca-busqueda-cliente.min.js"></script>
22 <script src="node_modules/foca-modal-precio-condiciones/dist/foca-modal-precio-condiciones.min.js"></script> 22 <script src="node_modules/foca-modal-precio-condiciones/dist/foca-modal-precio-condiciones.min.js"></script>
23 <script src="node_modules/foca-modal-flete/dist/foca-modal-flete.min.js"></script> 23 <script src="node_modules/foca-modal-flete/dist/foca-modal-flete.min.js"></script>
24 <script src="node_modules/foca-modal/dist/foca-modal.min.js"></script> 24 <script src="node_modules/foca-modal/dist/foca-modal.min.js"></script>
25 <script src="node_modules/foca-modal-domicilio/dist/foca-modal-domicilios.min.js"></script> 25 <script src="node_modules/foca-modal-domicilio/dist/foca-modal-domicilios.min.js"></script>
26 26
27 <script src="src/js/app.js"></script> 27 <script src="src/js/app.js"></script>
28 <script src="src/js/controller.js"></script> 28 <script src="src/js/controller.js"></script>
29 <script src="src/js/service.js"></script> 29 <script src="src/js/service.js"></script>
30 <script src="src/js/route.js"></script> 30 <script src="src/js/route.js"></script>
31 31
32 <script src="src/etc/develop.js"></script> 32 <script src="src/etc/develop.js"></script>
33 </head> 33 </head>
34 <body> 34 <body>
35 <div ng-view class="container-fluid"></div> 35 <div ng-view class="container-fluid"></div>
36 </body> 36 </body>
37 </html> 37 </html>
38 38
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 git+https://debo.suite.repo/modulos-npm/foca-modal-domicilio.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-proveedor.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-proveedor": "git+https://debo.suite.repo/modulos-npm/foca-modal-proveedor.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-domicilio": "git+https://debo.suite.repo/modulos-npm/foca-modal-domicilio.git",
38 "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",
39 "foca-modal-petroleras": "git+https://debo.suite.repo/modulos-npm/foca-modal-petroleras.git", 39 "foca-modal-proveedor": "git+https://debo.suite.repo/modulos-npm/foca-modal-proveedor.git",
40 "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",
41 "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",
42 "font-awesome": "^4.7.0", 42 "font-awesome": "^4.7.0",
43 "gulp": "^3.9.1", 43 "gulp": "^3.9.1",
44 "gulp-angular-templatecache": "2.2.2", 44 "gulp-angular-templatecache": "2.2.2",
45 "gulp-clean": "^0.4.0", 45 "gulp-clean": "^0.4.0",
46 "gulp-concat": "^2.6.1", 46 "gulp-concat": "^2.6.1",
47 "gulp-connect": "^5.6.1", 47 "gulp-connect": "^5.6.1",
48 "gulp-htmlmin": "^5.0.1", 48 "gulp-htmlmin": "^5.0.1",
49 "gulp-jshint": "^2.1.0", 49 "gulp-jshint": "^2.1.0",
50 "gulp-rename": "^1.4.0", 50 "gulp-rename": "^1.4.0",
51 "gulp-replace": "^1.0.0", 51 "gulp-replace": "^1.0.0",
52 "gulp-sequence": "^1.0.0", 52 "gulp-sequence": "^1.0.0",
53 "gulp-uglify": "^3.0.1", 53 "gulp-uglify": "^3.0.1",
54 "gulp-uglify-es": "^1.0.4", 54 "gulp-uglify-es": "^1.0.4",
55 "jasmine-core": "^3.2.1", 55 "jasmine-core": "^3.2.1",
56 "jquery": "^3.3.1", 56 "jquery": "^3.3.1",
57 "jshint": "^2.9.6", 57 "jshint": "^2.9.6",
58 "pre-commit": "^1.2.2", 58 "pre-commit": "^1.2.2",
59 "pump": "^3.0.0", 59 "pump": "^3.0.0",
60 "ui-bootstrap4": "^3.0.5" 60 "ui-bootstrap4": "^3.0.5"
61 } 61 }
62 } 62 }
63 63
1 angular.module('focaCrearNotaPedido', [ 1 angular.module('focaCrearNotaPedido', [
2 'ngRoute', 2 'ngRoute',
3 'ui.bootstrap', 3 'ui.bootstrap',
4 'focaModalVendedores', 4 'focaModalVendedores',
5 'focaBusquedaProductos', 5 'focaBusquedaProductos',
6 'focaModalPetroleras', 6 'focaModalProveedor',
7 'focaBusquedaCliente', 7 'focaBusquedaCliente',
8 'focaModalPrecioCondicion', 8 'focaModalPrecioCondicion',
9 'focaModalFlete', 9 'focaModalFlete',
10 'focaDirectivas', 10 'focaDirectivas',
11 'focaModal', 11 'focaModal',
12 'focaModalDomicilio' 12 'focaModalDomicilio'
13 ]); 13 ]);
14 14
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: 'Proveedor', accion: function() {}}, 11 {texto: 'Proveedor', accion: function() {$scope.seleccionarProveedor();}},
12 {texto: 'Moneda', accion: function() {$scope.abrirModalMoneda();}}, 12 {texto: 'Moneda', accion: function() {$scope.abrirModalMoneda();}},
13 { 13 {
14 texto: 'Precios y condiciones', 14 texto: 'Precios y condiciones',
15 accion: function() {$scope.abrirModalListaPrecio();}}, 15 accion: function() {$scope.abrirModalListaPrecio();}},
16 {texto: 'Flete', accion: function() {$scope.abrirModalFlete();}}, 16 {texto: 'Flete', accion: function() {$scope.abrirModalFlete();}},
17 {texto: '', accion: function() {}}, 17 {texto: '', accion: function() {}},
18 {texto: '', accion: function() {}} 18 {texto: '', 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 sectorCodigo: producto.sector + '-' + producto.codigo, 156 sectorCodigo: producto.sector + '-' + producto.codigo,
157 descripcion: producto.descripcion, 157 descripcion: producto.descripcion,
158 item: $scope.articulosTabla.length + 1, 158 item: $scope.articulosTabla.length + 1,
159 nombre: producto.descripcion, 159 nombre: producto.descripcion,
160 precio: producto.precio.toFixed(2), 160 precio: producto.precio.toFixed(2),
161 costoUnitario: producto.costo, 161 costoUnitario: producto.costo,
162 edit: false 162 edit: false
163 }; 163 };
164 $scope.articuloACargar = newArt; 164 $scope.articuloACargar = newArt;
165 $scope.cargando = false; 165 $scope.cargando = false;
166 }, function() { 166 }, function() {
167 // funcion ejecutada cuando se cancela el modal 167 // funcion ejecutada cuando se cancela el modal
168 } 168 }
169 ); 169 );
170 }; 170 };
171 171
172 $scope.seleccionarVendedor = function() { 172 $scope.seleccionarVendedor = function() {
173 var modalInstance = $uibModal.open( 173 var modalInstance = $uibModal.open(
174 { 174 {
175 ariaLabelledBy: 'Busqueda de Vendedores', 175 ariaLabelledBy: 'Busqueda de Vendedores',
176 templateUrl: 'modal-vendedores.html', 176 templateUrl: 'modal-vendedores.html',
177 controller: 'modalVendedoresCtrl', 177 controller: 'modalVendedoresCtrl',
178 size: 'lg' 178 size: 'lg'
179 } 179 }
180 ); 180 );
181 modalInstance.result.then( 181 modalInstance.result.then(
182 function(vendedor) { 182 function(vendedor) {
183 addCabecera('Vendedor:', vendedor.NomVen); 183 addCabecera('Vendedor:', vendedor.NomVen);
184 $scope.notaPedido.vendedor.nombre = vendedor.NomVen; 184 $scope.notaPedido.vendedor.nombre = vendedor.NomVen;
185 }, function() { 185 }, function() {
186 186
187 } 187 }
188 ); 188 );
189 }; 189 };
190 190
191 $scope.seleccionarPetrolera = function() { 191 $scope.seleccionarProveedor = function() {
192 var modalInstance = $uibModal.open( 192 var modalInstance = $uibModal.open(
193 { 193 {
194 ariaLabelledBy: 'Busqueda de Petrolera', 194 ariaLabelledBy: 'Busqueda de Proveedor',
195 templateUrl: 'modal-petroleras.html', 195 templateUrl: 'modal-proveedor.html',
196 controller: 'modalPetrolerasCtrl', 196 controller: 'focaModalProveedorCtrl',
197 size: 'lg' 197 size: 'lg'
198 } 198 }
199 ); 199 );
200 modalInstance.result.then( 200 modalInstance.result.then(
201 function(petrolera) { 201 function(proveedor) {
202 $scope.notaPedido.petrolera = petrolera.NOM; 202 $scope.notaPedido.proveedor = proveedor.NOM;
203 addCabecera('Proveedor:', proveedor.NOM);
203 }, function() { 204 }, function() {
204 205
205 } 206 }
206 ); 207 );
207 }; 208 };
208 209
209 $scope.seleccionarCliente = function() { 210 $scope.seleccionarCliente = function() {
210 var modalInstance = $uibModal.open( 211 var modalInstance = $uibModal.open(
211 { 212 {
212 ariaLabelledBy: 'Busqueda de Cliente', 213 ariaLabelledBy: 'Busqueda de Cliente',
213 templateUrl: 'foca-busqueda-cliente-modal.html', 214 templateUrl: 'foca-busqueda-cliente-modal.html',
214 controller: 'focaBusquedaClienteModalController', 215 controller: 'focaBusquedaClienteModalController',
215 size: 'lg' 216 size: 'lg'
216 } 217 }
217 ); 218 );
218 modalInstance.result.then( 219 modalInstance.result.then(
219 function(cliente) { 220 function(cliente) {
220 $scope.notaPedido.cliente.nombre = cliente.nom; 221 $scope.notaPedido.cliente.nombre = cliente.nom;
221 $scope.notaPedido.cliente.id = cliente.cod; 222 $scope.notaPedido.cliente.id = cliente.cod;
222 crearNotaPedidoService.getDomiciliosByIdCliente(cliente.cod).then( 223 crearNotaPedidoService.getDomiciliosByIdCliente(cliente.cod).then(
223 function(data) { 224 function(data) {
224 if(data.data.length === 0){ 225 if(data.data.length === 0){
225 focaModalService 226 focaModalService
226 .alert('El cliente no tienen domicilios de entrega') 227 .alert('El cliente no tienen domicilios de entrega')
227 .then( 228 .then(
228 function() { 229 function() {
229 $scope.seleccionarCliente(); 230 $scope.seleccionarCliente();
230 $scope.notaPedido.cliente = {nombre: ''}; 231 $scope.notaPedido.cliente = {nombre: ''};
231 } 232 }
232 ); 233 );
233 return; 234 return;
234 } 235 }
235 var modalInstanceDomicilio = $uibModal.open( 236 var modalInstanceDomicilio = $uibModal.open(
236 { 237 {
237 ariaLabelledBy: 'Busqueda de Domicilios', 238 ariaLabelledBy: 'Busqueda de Domicilios',
238 templateUrl: 'modal-domicilio.html', 239 templateUrl: 'modal-domicilio.html',
239 controller: 'focaModalDomicilioController', 240 controller: 'focaModalDomicilioController',
240 resolve: { idCliente: function() { return cliente.cod; }}, 241 resolve: { idCliente: function() { return cliente.cod; }},
241 size: 'lg', 242 size: 'lg',
242 backdrop: 'static', 243 backdrop: 'static',
243 } 244 }
244 ); 245 );
245 modalInstanceDomicilio.result.then( 246 modalInstanceDomicilio.result.then(
246 function(domicilio) { 247 function(domicilio) {
247 focaModalService.alert('Domicilio elegido' + domicilio.dom); 248 focaModalService.alert('Domicilio elegido' + domicilio.dom);
248 }, function() { 249 }, function() {
249 $scope.notaPedido.cliente.nombre = ''; 250 $scope.notaPedido.cliente.nombre = '';
250 $scope.notaPedido.cliente.id = ''; 251 $scope.notaPedido.cliente.id = '';
251 removeCabecera('Cliente:'); 252 removeCabecera('Cliente:');
252 $scope.seleccionarCliente(); 253 $scope.seleccionarCliente();
253 return; 254 return;
254 } 255 }
255 ); 256 );
256 } 257 }
257 ); 258 );
258 addCabecera('Cliente:', cliente.nom); 259 addCabecera('Cliente:', cliente.nom);
259 }, function() { 260 }, function() {
260 261
261 } 262 }
262 ); 263 );
263 }; 264 };
264 265
265 $scope.mostrarFichaCliente = function() { 266 $scope.mostrarFichaCliente = function() {
266 $uibModal.open( 267 $uibModal.open(
267 { 268 {
268 ariaLabelledBy: 'Datos del Cliente', 269 ariaLabelledBy: 'Datos del Cliente',
269 templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html', 270 templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html',
270 controller: 'focaCrearNotaPedidoFichaClienteController', 271 controller: 'focaCrearNotaPedidoFichaClienteController',
271 size: 'lg' 272 size: 'lg'
272 } 273 }
273 ); 274 );
274 }; 275 };
275 276
276 $scope.getTotal = function() { 277 $scope.getTotal = function() {
277 var total = 0; 278 var total = 0;
278 var arrayTempArticulos = $scope.articulosTabla; 279 var arrayTempArticulos = $scope.articulosTabla;
279 for (var i = 0; i < arrayTempArticulos.length; i++) { 280 for (var i = 0; i < arrayTempArticulos.length; i++) {
280 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; 281 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad;
281 } 282 }
282 return total.toFixed(2); 283 return total.toFixed(2);
283 }; 284 };
284 285
285 $scope.getSubTotal = function() { 286 $scope.getSubTotal = function() {
286 if($scope.articuloACargar) { 287 if($scope.articuloACargar) {
287 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 288 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
288 } 289 }
289 }; 290 };
290 291
291 $scope.abrirModalListaPrecio = function() { 292 $scope.abrirModalListaPrecio = function() {
292 var modalInstance = $uibModal.open( 293 var modalInstance = $uibModal.open(
293 { 294 {
294 ariaLabelledBy: 'Busqueda de Precio Condición', 295 ariaLabelledBy: 'Busqueda de Precio Condición',
295 templateUrl: 'modal-precio-condicion.html', 296 templateUrl: 'modal-precio-condicion.html',
296 controller: 'focaModalPrecioCondicionController', 297 controller: 'focaModalPrecioCondicionController',
297 size: 'lg' 298 size: 'lg'
298 } 299 }
299 ); 300 );
300 modalInstance.result.then( 301 modalInstance.result.then(
301 function(precioCondicion) { 302 function(precioCondicion) {
302 $scope.notaPedido.precioCondicion = precioCondicion.nombre; 303 $scope.notaPedido.precioCondicion = precioCondicion.nombre;
303 idLista = precioCondicion.idListaPrecio; 304 idLista = precioCondicion.idListaPrecio;
304 $scope.articulosTabla = []; 305 $scope.articulosTabla = [];
305 306
306 addCabecera('Precios y condiciones:', precioCondicion.nombre); 307 addCabecera('Precios y condiciones:', precioCondicion.nombre);
307 }, function() { 308 }, function() {
308 309
309 } 310 }
310 ); 311 );
311 }; 312 };
312 313
313 $scope.abrirModalFlete = function() { 314 $scope.abrirModalFlete = function() {
314 var modalInstance = $uibModal.open( 315 var modalInstance = $uibModal.open(
315 { 316 {
316 ariaLabelledBy: 'Busqueda de Flete', 317 ariaLabelledBy: 'Busqueda de Flete',
317 templateUrl: 'modal-flete.html', 318 templateUrl: 'modal-flete.html',
318 controller: 'focaModalFleteController', 319 controller: 'focaModalFleteController',
319 size: 'lg', 320 size: 'lg',
320 resolve: { 321 resolve: {
321 parametrosFlete: 322 parametrosFlete:
322 function() { 323 function() {
323 return { 324 return {
324 flete: $scope.notaPedido.flete, 325 flete: $scope.notaPedido.flete,
325 bomba: $scope.notaPedido.bomba, 326 bomba: $scope.notaPedido.bomba,
326 kilometros: $scope.notaPedido.kilometros 327 kilometros: $scope.notaPedido.kilometros
327 }; 328 };
328 } 329 }
329 } 330 }
330 } 331 }
331 ); 332 );
332 modalInstance.result.then( 333 modalInstance.result.then(
333 function(datos) { 334 function(datos) {
334 $scope.notaPedido.flete = datos.flete; 335 $scope.notaPedido.flete = datos.flete;
335 $scope.notaPedido.bomba = datos.bomba; 336 $scope.notaPedido.bomba = datos.bomba;
336 $scope.notaPedido.kilometros = datos.kilometros; 337 $scope.notaPedido.kilometros = datos.kilometros;
337 338
338 addCabecera('Flete:', datos.flete); 339 addCabecera('Flete:', datos.flete);
339 if(datos.flete === 'si') { 340 if(datos.flete === 'si') {
340 addCabecera('Bomba:', datos.bomba); 341 addCabecera('Bomba:', datos.bomba);
341 addCabecera('Kilometros:', datos.kilometros); 342 addCabecera('Kilometros:', datos.kilometros);
342 } else { 343 } else {
343 removeCabecera('Bomba:'); 344 removeCabecera('Bomba:');
344 removeCabecera('Kilometros:'); 345 removeCabecera('Kilometros:');
345 } 346 }
346 }, function() { 347 }, function() {
347 348
348 } 349 }
349 ); 350 );
350 }; 351 };
351 352
352 $scope.abrirModalMoneda = function() { 353 $scope.abrirModalMoneda = function() {
353 var modalInstance = $uibModal.open( 354 var modalInstance = $uibModal.open(
354 { 355 {
355 ariaLabelledBy: 'Busqueda de Moneda', 356 ariaLabelledBy: 'Busqueda de Moneda',
356 templateUrl: 'modal-moneda.html', 357 templateUrl: 'modal-moneda.html',
357 controller: 'focaModalMonedaController', 358 controller: 'focaModalMonedaController',
358 size: 'lg' 359 size: 'lg'
359 } 360 }
360 ); 361 );
361 modalInstance.result.then( 362 modalInstance.result.then(
362 function(moneda) { 363 function(moneda) {
363 $scope.notaPedido.moneda = { 364 $scope.notaPedido.moneda = {
364 id: moneda.ID, 365 id: moneda.ID,
365 detalle: moneda.DETALLE, 366 detalle: moneda.DETALLE,
366 simbolo: moneda.SIMBOLO 367 simbolo: moneda.SIMBOLO
367 }; 368 };
368 369
369 addCabecera('Moneda:', moneda.DETALLE); 370 addCabecera('Moneda:', moneda.DETALLE);
370 }, function() { 371 }, function() {
371 372
372 } 373 }
373 ); 374 );
374 }; 375 };
375 376
376 $scope.agregarATabla = function(key) { 377 $scope.agregarATabla = function(key) {
377 if(key === 13) { 378 if(key === 13) {
378 if($scope.articuloACargar.cantidad === undefined || 379 if($scope.articuloACargar.cantidad === undefined ||
379 $scope.articuloACargar.cantidad === 0 || 380 $scope.articuloACargar.cantidad === 0 ||
380 $scope.articuloACargar.cantidad === null ){ 381 $scope.articuloACargar.cantidad === null ){
381 focaModalService.alert('El valor debe ser al menos 1'); 382 focaModalService.alert('El valor debe ser al menos 1');
382 return; 383 return;
383 } 384 }
384 delete $scope.articuloACargar.sectorCodigo; 385 delete $scope.articuloACargar.sectorCodigo;
385 $scope.articulosTabla.unshift($scope.articuloACargar); 386 $scope.articulosTabla.unshift($scope.articuloACargar);
386 $scope.cargando = true; 387 $scope.cargando = true;
387 } 388 }
388 }; 389 };
389 390
390 $scope.quitarArticulo = function(key) { 391 $scope.quitarArticulo = function(key) {
391 $scope.articulosTabla.splice(key, 1); 392 $scope.articulosTabla.splice(key, 1);
392 }; 393 };
393 394
394 $scope.editarArticulo = function(key, articulo) { 395 $scope.editarArticulo = function(key, articulo) {
395 if(key === 13) { 396 if(key === 13) {
396 if(articulo.cantidad === null || articulo.cantidad === 0 || 397 if(articulo.cantidad === null || articulo.cantidad === 0 ||
397 articulo.cantidad === undefined){ 398 articulo.cantidad === undefined){
398 focaModalService.alert('El valor debe ser al menos 1'); 399 focaModalService.alert('El valor debe ser al menos 1');
399 return; 400 return;
400 } 401 }
401 articulo.edit = false; 402 articulo.edit = false;
402 } 403 }
403 }; 404 };
404 405
405 $scope.cambioEdit = function(articulo) { 406 $scope.cambioEdit = function(articulo) {
406 articulo.edit = true; 407 articulo.edit = true;
407 }; 408 };
408 409
409 $scope.limpiarFlete = function() { 410 $scope.limpiarFlete = function() {
410 $scope.notaPedido.fleteNombre = ''; 411 $scope.notaPedido.fleteNombre = '';
411 $scope.notaPedido.chofer = ''; 412 $scope.notaPedido.chofer = '';
412 $scope.notaPedido.vehiculo = ''; 413 $scope.notaPedido.vehiculo = '';
413 $scope.notaPedido.kilometros = ''; 414 $scope.notaPedido.kilometros = '';
414 $scope.notaPedido.costoUnitarioKmFlete = ''; 415 $scope.notaPedido.costoUnitarioKmFlete = '';
415 $scope.choferes = ''; 416 $scope.choferes = '';
416 $scope.vehiculos = ''; 417 $scope.vehiculos = '';
417 }; 418 };
418 419
419 $scope.limpiarPantalla = function() { 420 $scope.limpiarPantalla = function() {
420 $scope.limpiarFlete(); 421 $scope.limpiarFlete();
421 $scope.notaPedido.flete = '0'; 422 $scope.notaPedido.flete = '0';
422 $scope.notaPedido.bomba = '0'; 423 $scope.notaPedido.bomba = '0';
423 $scope.notaPedido.precioCondicion = ''; 424 $scope.notaPedido.precioCondicion = '';
424 $scope.articulosTabla = []; 425 $scope.articulosTabla = [];
425 $scope.notaPedido.vendedor.nombre = ''; 426 $scope.notaPedido.vendedor.nombre = '';
426 $scope.notaPedido.cliente = {nombre: ''}; 427 $scope.notaPedido.cliente = {nombre: ''};
427 $scope.notaPedido.domicilio = {dom: ''}; 428 $scope.notaPedido.domicilio = {dom: ''};
428 $scope.domiciliosCliente = []; 429 $scope.domiciliosCliente = [];
429 }; 430 };
430 431
431 $scope.resetFilter = function() { 432 $scope.resetFilter = function() {
432 $scope.articuloACargar = {}; 433 $scope.articuloACargar = {};
433 $scope.cargando = true; 434 $scope.cargando = true;
434 }; 435 };
435 436
436 $scope.selectFocus = function($event) { 437 $scope.selectFocus = function($event) {
437 $event.target.select(); 438 $event.target.select();
438 }; 439 };
439 440
440 $scope.salir = function() { 441 $scope.salir = function() {
441 $location.path('/'); 442 $location.path('/');
442 }; 443 };
443 444
444 function addCabecera(label, valor) { 445 function addCabecera(label, valor) {
445 var propiedad = $filter('filter')($scope.cabecera, {label: label}); 446 var propiedad = $filter('filter')($scope.cabecera, {label: label});
446 if(propiedad.length === 1) { 447 if(propiedad.length === 1) {
447 propiedad[0].valor = valor; 448 propiedad[0].valor = valor;
448 } else { 449 } else {
449 $scope.cabecera.push({label: label, valor: valor}); 450 $scope.cabecera.push({label: label, valor: valor});
450 } 451 }
451 } 452 }
452 453
453 function removeCabecera(label) { 454 function removeCabecera(label) {
454 var propiedad = $filter('filter')($scope.cabecera, {label: label}); 455 var propiedad = $filter('filter')($scope.cabecera, {label: label});
455 if(propiedad.length === 1){ 456 if(propiedad.length === 1){
456 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1); 457 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
457 } 458 }
458 } 459 }
459 } 460 }
460 ] 461 ]
461 ) 462 )
462 .controller('notaPedidoListaCtrl', [ 463 .controller('notaPedidoListaCtrl', [
463 '$scope', 464 '$scope',
464 'crearNotaPedidoService', 465 'crearNotaPedidoService',
465 '$location', 466 '$location',
466 function($scope, crearNotaPedidoService, $location) { 467 function($scope, crearNotaPedidoService, $location) {
467 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) { 468 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
468 $scope.notaPedidos = datos.data; 469 $scope.notaPedidos = datos.data;
469 }); 470 });
470 $scope.editar = function(notaPedido) { 471 $scope.editar = function(notaPedido) {
471 crearNotaPedidoService.setNotaPedido(notaPedido); 472 crearNotaPedidoService.setNotaPedido(notaPedido);
472 $location.path('/venta-nota-pedido/abm/'); 473 $location.path('/venta-nota-pedido/abm/');
473 }; 474 };
474 $scope.crearPedido = function() { 475 $scope.crearPedido = function() {
475 crearNotaPedidoService.clearNotaPedido(); 476 crearNotaPedidoService.clearNotaPedido();
476 $location.path('/venta-nota-pedido/abm/'); 477 $location.path('/venta-nota-pedido/abm/');
477 }; 478 };
478 } 479 }
479 ]) 480 ])
480 .controller('focaCrearNotaPedidoFichaClienteController', [ 481 .controller('focaCrearNotaPedidoFichaClienteController', [
481 '$scope', 482 '$scope',
482 'crearNotaPedidoService', 483 'crearNotaPedidoService',
483 '$location', 484 '$location',
484 function($scope, crearNotaPedidoService, $location) { 485 function($scope, crearNotaPedidoService, $location) {
485 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) { 486 crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
486 $scope.notaPedidos = datos.data; 487 $scope.notaPedidos = datos.data;
487 }); 488 });
488 $scope.editar = function(notaPedido) { 489 $scope.editar = function(notaPedido) {
489 crearNotaPedidoService.setNotaPedido(notaPedido); 490 crearNotaPedidoService.setNotaPedido(notaPedido);
490 $location.path('/venta-nota-pedido/abm/'); 491 $location.path('/venta-nota-pedido/abm/');
491 }; 492 };
492 $scope.crearPedido = function() { 493 $scope.crearPedido = function() {
493 crearNotaPedidoService.clearNotaPedido(); 494 crearNotaPedidoService.clearNotaPedido();
494 $location.path('/venta-nota-pedido/abm/'); 495 $location.path('/venta-nota-pedido/abm/');
495 }; 496 };
496 } 497 }
497 ]); 498 ]);
498 499
src/views/nota-pedido-lista.html
1 <table class="table table-sm table-hover table-nonfluid"> 1 <table class="table table-sm table-hover table-nonfluid">
2 <thead> 2 <thead>
3 <tr> 3 <tr>
4 <th>Código</th> 4 <th>Código</th>
5 <th>Vendedor</th> 5 <th>Vendedor</th>
6 <th>Cliente</th> 6 <th>Cliente</th>
7 <th>Petrolera</th> 7 <th>Proveedor</th>
8 <th>Total</th> 8 <th>Total</th>
9 <th><button class="btn btn-primary" ng-click="crearPedido()">Crear</button></th> 9 <th><button class="btn btn-primary" ng-click="crearPedido()">Crear</button></th>
10 </tr> 10 </tr>
11 </thead> 11 </thead>
12 <tbody> 12 <tbody>
13 <tr ng-repeat="item in notaPedidos"> 13 <tr ng-repeat="item in notaPedidos">
14 <td ng-bind="item.id"></td> 14 <td ng-bind="item.id"></td>
15 <td ng-bind="item.vendedor"></td> 15 <td ng-bind="item.vendedor"></td>
16 <td ng-bind="item.cliente"></td> 16 <td ng-bind="item.cliente"></td>
17 <td ng-bind="item.petrolera"></td> 17 <td ng-bind="item.proveedor"></td>
18 <td ng-bind="(item.total | 0) | currency"></td> 18 <td ng-bind="(item.total | 0) | currency"></td>
19 <td> 19 <td>
20 <button class="btn btn-info" ng-show="false" ng-click="editar(item)"><i class="fa fa-edit"></i></button> 20 <button class="btn btn-info" ng-show="false" ng-click="editar(item)"><i class="fa fa-edit"></i></button>
21 <!-- <button class="btn btn-danger" ng-click="borrar(item.id)"><i class="fa fa-trash"></i></button> --> 21 <!-- <button class="btn btn-danger" ng-click="borrar(item.id)"><i class="fa fa-trash"></i></button> -->
22 </td> 22 </td>
23 </tr> 23 </tr>
24 </tbody> 24 </tbody>
25 </table> 25 </table>
26 26
src/views/nota-pedido.html
1 <div class="crear-nota-pedido"> 1 <div class="crear-nota-pedido">
2 <form name="formCrearNota" ng-submit="crearNotaPedido()"> 2 <form name="formCrearNota" ng-submit="crearNotaPedido()">
3 <div class="row"> 3 <div class="row">
4 <div class="col-md-10 offset-md-1 col-lg-8 offset-lg-2"> 4 <div class="col-md-10 offset-md-1 col-lg-8 offset-lg-2">
5 <div class="row p-1 panel-informativo"> 5 <div class="row p-1 panel-informativo">
6 <div class="col-12"> 6 <div class="col-12">
7 <div class="row"> 7 <div class="row">
8 <div class="col-5"> 8 <div class="col-5">
9 <div class="h6">NOTA DE PEDIDO</div> 9 <div class="h6">NOTA DE PEDIDO</div>
10 </div> 10 </div>
11 <div class="col-3">Nº {{puntoVenta}}-{{comprobante}}</div> 11 <div class="col-3">Nº {{puntoVenta}}-{{comprobante}}</div>
12 <div class="col-4 text-right"> 12 <div class="col-4 text-right">
13 Fecha: {{ now | date:'dd/MM/yyyy HH:mm'}} 13 Fecha: {{ now | date:'dd/MM/yyyy HH:mm'}}
14 </div> 14 </div>
15 </div> 15 </div>
16 <div class="row"> 16 <div class="row">
17 <div class="col-auto" ng-repeat="cab in cabecera"> 17 <div class="col-auto" ng-repeat="cab in cabecera">
18 <span class="label" ng-bind="cab.label"></span> 18 <span class="label" ng-bind="cab.label"></span>
19 <span class="valor" ng-bind="cab.valor"></span> 19 <span class="valor" ng-bind="cab.valor"></span>
20 </div> 20 </div>
21 </div> 21 </div>
22 </div> 22 </div>
23 </div> 23 </div>
24 <div class="row p-1 botonera-secundaria"> 24 <div class="row p-1 botonera-secundaria">
25 <div class="col-12"> 25 <div class="col-12">
26 <div class="row"> 26 <div class="row">
27 <div class="col-3 px-0 py-0" ng-repeat="boton in botonera"> 27 <div class="col-3 px-0 py-0" ng-repeat="boton in botonera">
28 <button 28 <button
29 type="button" 29 type="button"
30 class="btn btn-default btn-block btn-xs text-left py-2" 30 class="btn btn-default btn-block btn-xs text-left py-2"
31 ng-click="boton.accion()" 31 ng-click="boton.accion()"
32 > 32 >
33 <i 33 <i
34 class="fa fa-arrow-circle-right" 34 class="fa fa-arrow-circle-right"
35 ng-show="boton.texto != ''" 35 ng-show="boton.texto != ''"
36 ></i> 36 ></i>
37 &nbsp; 37 &nbsp;
38 {{boton.texto}} 38 {{boton.texto}}
39 </button> 39 </button>
40 </div> 40 </div>
41 </div> 41 </div>
42 </div> 42 </div>
43 </div> 43 </div>
44 </div> 44 </div>
45 </div> 45 </div>
46 </form> 46 </form>
47 <div class="row"> 47 <div class="row">
48 <div class="col-md-10 col-lg-8 offset-md-1 offset-lg-2"> 48 <div class="col-md-10 col-lg-8 offset-md-1 offset-lg-2">
49 <div class="row grilla-articulos align-items-end"> 49 <div class="row grilla-articulos align-items-end">
50 <table class="table table-striped table-sm table-dark"> 50 <table class="table table-striped table-sm table-dark">
51 <thead> 51 <thead>
52 <tr> 52 <tr>
53 <th>Código</th> 53 <th>Código</th>
54 <th>Descripción</th> 54 <th>Descripción</th>
55 <th>Cantidad</th> 55 <th>Cantidad</th>
56 <th>Precio Unitario</th> 56 <th>Precio Unitario</th>
57 <th>SubTotal</th> 57 <th>SubTotal</th>
58 <th> 58 <th>
59 <button 59 <button
60 class="btn btn-outline-secondary selectable" 60 class="btn btn-outline-secondary selectable"
61 style="float: right;" 61 style="float: right;"
62 ng-click="show = !show; masMenos()" 62 ng-click="show = !show; masMenos()"
63 > 63 >
64 <i 64 <i
65 class="fa fa-chevron-down" 65 class="fa fa-chevron-down"
66 ng-hide="show" 66 ng-hide="show"
67 aria-hidden="true" 67 aria-hidden="true"
68 > 68 >
69 </i> 69 </i>
70 <i 70 <i
71 class="fa fa-chevron-up" 71 class="fa fa-chevron-up"
72 ng-show="show" 72 ng-show="show"
73 aria-hidden="true"> 73 aria-hidden="true">
74 </i> 74 </i>
75 </button> 75 </button>
76 </th> 76 </th>
77 </tr> 77 </tr>
78 </thead> 78 </thead>
79 <tbody> 79 <tbody>
80 <tr ng-show="!cargando"> 80 <tr ng-show="!cargando">
81 <td><input 81 <td><input
82 class="form-control" 82 class="form-control"
83 ng-model="articuloACargar.sectorCodigo" 83 ng-model="articuloACargar.sectorCodigo"
84 readonly></td> 84 readonly></td>
85 <td><input 85 <td><input
86 class="form-control" 86 class="form-control"
87 ng-model="articuloACargar.descripcion" 87 ng-model="articuloACargar.descripcion"
88 readonly></td> 88 readonly></td>
89 <td class="text-right"><input 89 <td class="text-right"><input
90 class="form-control" 90 class="form-control"
91 type="number" 91 type="number"
92 min="1" 92 min="1"
93 ng-model="articuloACargar.cantidad" 93 ng-model="articuloACargar.cantidad"
94 foca-focus="!cargando" 94 foca-focus="!cargando"
95 esc-key="resetFilter()" 95 esc-key="resetFilter()"
96 ng-keypress="agregarATabla($event.keyCode)"></td> 96 ng-keypress="agregarATabla($event.keyCode)"></td>
97 <td class="text-right"><input 97 <td class="text-right"><input
98 class="form-control" 98 class="form-control"
99 ng-value="articuloACargar.precio | currency: '$'" 99 ng-value="articuloACargar.precio | currency: '$'"
100 readonly></td> 100 readonly></td>
101 <td class="text-right"><input 101 <td class="text-right"><input
102 class="form-control" 102 class="form-control"
103 ng-value="getSubTotal() | currency: '$'" 103 ng-value="getSubTotal() | currency: '$'"
104 readonly></td> 104 readonly></td>
105 <td class="text-center"><button 105 <td class="text-center"><button
106 class="btn btn-outline-secondary btn-sm" 106 class="btn btn-outline-secondary btn-sm"
107 ng-click="agregarATabla(13)"> 107 ng-click="agregarATabla(13)">
108 <i class="fa fa-save"></i> 108 <i class="fa fa-save"></i>
109 </button></td> 109 </button></td>
110 </tr> 110 </tr>
111 <tr 111 <tr
112 ng-repeat="(key, articulo) in articulosTabla" 112 ng-repeat="(key, articulo) in articulosTabla"
113 ng-show="show || key == 0" 113 ng-show="show || key == 0"
114 > 114 >
115 <td ng-bind="articulo.sector + '-' + articulo.codigo"></td> 115 <td ng-bind="articulo.sector + '-' + articulo.codigo"></td>
116 <td ng-bind="articulo.descripcion"></td> 116 <td ng-bind="articulo.descripcion"></td>
117 <td class="text-right"><input 117 <td class="text-right"><input
118 ng-show="articulo.edit" 118 ng-show="articulo.edit"
119 ng-model="articulo.cantidad" 119 ng-model="articulo.cantidad"
120 class="form-control" 120 class="form-control"
121 type="number" 121 type="number"
122 min="1" 122 min="1"
123 foca-focus="articulo.edit" 123 foca-focus="articulo.edit"
124 ng-keypress="editarArticulo($event.keyCode, articulo)" 124 ng-keypress="editarArticulo($event.keyCode, articulo)"
125 ng-focus="selectFocus($event)" 125 ng-focus="selectFocus($event)"
126 > 126 >
127 <i 127 <i
128 class="selectable" 128 class="selectable"
129 ng-click="cambioEdit(articulo)" 129 ng-click="cambioEdit(articulo)"
130 ng-hide="articulo.edit" 130 ng-hide="articulo.edit"
131 ng-bind="articulo.cantidad"> 131 ng-bind="articulo.cantidad">
132 </i> 132 </i>
133 </td> 133 </td>
134 <td class="text-right" ng-bind="articulo.precio | currency: '$'"></td> 134 <td class="text-right" ng-bind="articulo.precio | currency: '$'"></td>
135 <td 135 <td
136 class="text-right" 136 class="text-right"
137 ng-bind="(articulo.precio * articulo.cantidad) | currency: '$'"> 137 ng-bind="(articulo.precio * articulo.cantidad) | currency: '$'">
138 </td> 138 </td>
139 <td class="text-center"> 139 <td class="text-center">
140 <button 140 <button
141 class="btn btn-outline-secondary btn-sm" 141 class="btn btn-outline-secondary btn-sm"
142 ng-click="quitarArticulo(key)" 142 ng-click="quitarArticulo(key)"
143 > 143 >
144 <i class="fa fa-trash"></i> 144 <i class="fa fa-trash"></i>
145 </button> 145 </button>
146 </td> 146 </td>
147 </tr> 147 </tr>
148 <tr ng-show="cargando"> 148 <tr ng-show="cargando">
149 <td colspan="6"> 149 <td colspan="6">
150 <input 150 <input
151 placeholder="Seleccione Articulo" 151 placeholder="Seleccione Articulo"
152 class="form-control form-control-sm" 152 class="form-control form-control-sm"
153 readonly 153 readonly
154 ng-click="seleccionarArticulo()" 154 ng-click="seleccionarArticulo()"
155 /> 155 />
156 </td> 156 </td>
157 </tr> 157 </tr>
158 </tbody> 158 </tbody>
159 <tfoot> 159 <tfoot>
160 <tr class=""> 160 <tr class="">
161 <td colspan="3"> 161 <td colspan="3">
162 <strong>Cantidad Items:</strong> 162 <strong>Cantidad Items:</strong>
163 <a ng-bind="articulosTabla.length"></a> 163 <a ng-bind="articulosTabla.length"></a>
164 </td> 164 </td>
165 <td class="text-right table-celda-total"><h3>Total:</h3></td> 165 <td class="text-right table-celda-total"><h3>Total:</h3></td>
166 <td class="table-celda-total text-right" colspan="1"> 166 <td class="table-celda-total text-right" colspan="1">
167 <h3>{{getTotal() | currency: '$'}}</h3> 167 <h3>{{getTotal() | currency: '$'}}</h3>
168 </td> 168 </td>
169 <td colspan="2" class="text-right"> 169 <td colspan="2" class="text-right">
170 <button 170 <button
171 type="button" 171 type="button"
172 class="btn btn-default btn-sm" 172 class="btn btn-default btn-sm"
173 > 173 >
174 Totales 174 Totales
175 </button> 175 </button>
176 </td> 176 </td>
177 </tr> 177 </tr>
178 </tfoot> 178 </tfoot>
179 </table> 179 </table>
180 </div> 180 </div>
181 </div> 181 </div>
182 <div class="col-auto my-2 col-lg-2 botonera-lateral"> 182 <div class="col-auto my-2 col-lg-2 botonera-lateral">
183 <div class="row align-items-end"> 183 <div class="row align-items-end">
184 <div class="col-12"> 184 <div class="col-12">
185 <button 185 <button
186 ng-click="crearNotaPedido()" 186 ng-click="crearNotaPedido()"
187 type="submit" 187 type="submit"
188 title="Crear nota pedido" 188 title="Crear nota pedido"
189 class="btn btn-default btn-block mb-2"> 189 class="btn btn-default btn-block mb-2">
190 Guardar 190 Guardar
191 </button> 191 </button>
192 <button 192 <button
193 ng-click="salir()" 193 ng-click="salir()"
194 type="button" 194 type="button"
195 title="Salir" 195 title="Salir"
196 class="btn btn-default btn-block"> 196 class="btn btn-default btn-block">
197 Salir 197 Salir
198 </button> 198 </button>
199 </div> 199 </div>
200 </div> 200 </div>
201 </div> 201 </div>
202 </div> 202 </div>
203 </div> 203 </div>
204 <!-- 204 <!--
205 <form name="formCrearNota"> 205 <form name="formCrearNota">
206 <uib-tabset active="active"> 206 <uib-tabset active="active">
207 <uib-tab index="0" heading="General"> 207 <uib-tab index="0" heading="General">
208 <input type="hidden" name="id" ng-model="notaPedido.id" /> 208 <input type="hidden" name="id" ng-model="notaPedido.id" />
209 <div> 209 <div>
210 <div class="col-auto my-2"> 210 <div class="col-auto my-2">
211 <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button> 211 <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button>
212 </div> 212 </div>
213 </div> 213 </div>
214 <br> 214 <br>
215 <br> 215 <br>
216 <div class="row"> 216 <div class="row">
217 <div class="col-md-2"> 217 <div class="col-md-2">
218 <div class="col-auto"> 218 <div class="col-auto">
219 <label>Fecha de carga</label> 219 <label>Fecha de carga</label>
220 </div> 220 </div>
221 </div> 221 </div>
222 <div class="col-md-3"> 222 <div class="col-md-3">
223 <div class="col-auto"> 223 <div class="col-auto">
224 <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true"> 224 <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true">
225 </div> 225 </div>
226 </div> 226 </div>
227 <div class="col-md-2"> 227 <div class="col-md-2">
228 <div class="col-auto"> 228 <div class="col-auto">
229 <label>Kilómetros</label> 229 <label>Kilómetros</label>
230 </div> 230 </div>
231 </div> 231 </div>
232 <div class="col-md-3"> 232 <div class="col-md-3">
233 <div class="col-auto"> 233 <div class="col-auto">
234 <input type="number" min="0" step="0.01" class="form-control" placeholder="Kilómetros recorridos para la entrega en el cliente" 234 <input type="number" min="0" step="0.01" class="form-control" placeholder="Kilómetros recorridos para la entrega en el cliente"
235 ng-model="notaPedido.kilometros" ng-required="true"> 235 ng-model="notaPedido.kilometros" ng-required="true">
236 </div> 236 </div>
237 </div> 237 </div>
238 </div> 238 </div>
239 <div class="row my-3"> 239 <div class="row my-3">
240 <div class="col-md-2"> 240 <div class="col-md-2">
241 <div class="col-auto"> 241 <div class="col-auto">
242 <label>Jurisdicción de IIBB</label> 242 <label>Jurisdicción de IIBB</label>
243 </div> 243 </div>
244 </div> 244 </div>
245 <div class="col-md-3"> 245 <div class="col-md-3">
246 <div class="col-auto"> 246 <div class="col-auto">
247 <input type="text" class="form-control" placeholder="Jurisdicción de IIBB donde se realiza la entrega" 247 <input type="text" class="form-control" placeholder="Jurisdicción de IIBB donde se realiza la entrega"
248 ng-model="notaPedido.jurisdiccionIIBB" ng-required="true"> 248 ng-model="notaPedido.jurisdiccionIIBB" ng-required="true">
249 </div> 249 </div>
250 </div> 250 </div>
251 <div class="col-md-2"> 251 <div class="col-md-2">
252 <div class="col-auto"> 252 <div class="col-auto">
253 <label>Costo de financiación</label> 253 <label>Costo de financiación</label>
254 </div> 254 </div>
255 </div> 255 </div>
256 <div class="col-md-3"> 256 <div class="col-md-3">
257 <div class="col-auto"> 257 <div class="col-auto">
258 <div class="input-group mb-2"> 258 <div class="input-group mb-2">
259 <div class="input-group-prepend"> 259 <div class="input-group-prepend">
260 <div class="input-group-text">$</div> 260 <div class="input-group-text">$</div>
261 </div> 261 </div>
262 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiación" 262 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiación"
263 ng-model="notaPedido.costoFinanciacion"> 263 ng-model="notaPedido.costoFinanciacion">
264 </div> 264 </div>
265 </div> 265 </div>
266 </div> 266 </div>
267 </div> 267 </div>
268 <div class="row"> 268 <div class="row">
269 <div class="col-md-2"> 269 <div class="col-md-2">
270 <div class="col-auto"> 270 <div class="col-auto">
271 <label>Bomba</label> 271 <label>Bomba</label>
272 </div> 272 </div>
273 </div> 273 </div>
274 <div class="col-md-1"> 274 <div class="col-md-1">
275 <div class="col-auto"> 275 <div class="col-auto">
276 <div class="form-check custom-radio custom-control-inline"> 276 <div class="form-check custom-radio custom-control-inline">
277 <input class="form-check-input" type="radio" name="radioBomba" value="1" ng-model="notaPedido.bomba"> 277 <input class="form-check-input" type="radio" name="radioBomba" value="1" ng-model="notaPedido.bomba">
278 <label class="form-check-label"> 278 <label class="form-check-label">
279 Si 279 Si
280 </label> 280 </label>
281 </div> 281 </div>
282 <div class="form-check custom-radio custom-control-inline"> 282 <div class="form-check custom-radio custom-control-inline">
283 <input class="form-check-input" type="radio" name="radioBomba" value="0" ng-model="notaPedido.bomba"> 283 <input class="form-check-input" type="radio" name="radioBomba" value="0" ng-model="notaPedido.bomba">
284 <label class="form-check-label"> 284 <label class="form-check-label">
285 No 285 No
286 </label> 286 </label>
287 </div> 287 </div>
288 </div> 288 </div>
289 </div> 289 </div>
290 <div class="col-md-1"> 290 <div class="col-md-1">
291 <div class="col-auto"> 291 <div class="col-auto">
292 <label>Flete</label> 292 <label>Flete</label>
293 </div> 293 </div>
294 </div> 294 </div>
295 <div class="col-md-1"> 295 <div class="col-md-1">
296 <div class="col-auto"> 296 <div class="col-auto">
297 <div class="form-check custom-radio custom-control-inline"> 297 <div class="form-check custom-radio custom-control-inline">
298 <input class="form-check-input" type="radio" name="radioFlete" value="1" ng-model="notaPedido.flete"> 298 <input class="form-check-input" type="radio" name="radioFlete" value="1" ng-model="notaPedido.flete">
299 <label class="form-check-label"> 299 <label class="form-check-label">
300 Si 300 Si
301 </label> 301 </label>
302 </div> 302 </div>
303 <div class="form-check custom-radio custom-control-inline"> 303 <div class="form-check custom-radio custom-control-inline">
304 <input class="form-check-input" type="radio" name="radioFlete" value="0" ng-model="notaPedido.flete"> 304 <input class="form-check-input" type="radio" name="radioFlete" value="0" ng-model="notaPedido.flete">
305 <label class="form-check-label"> 305 <label class="form-check-label">
306 FOB 306 FOB
307 </label> 307 </label>
308 </div> 308 </div>
309 </div> 309 </div>
310 </div> 310 </div>
311 <div class="col-md-2"> 311 <div class="col-md-2">
312 <div class="col-auto"> 312 <div class="col-auto">
313 <label>Costo unitario kilometro flete</label> 313 <label>Costo unitario kilometro flete</label>
314 </div> 314 </div>
315 </div> 315 </div>
316 <div class="col-md-3"> 316 <div class="col-md-3">
317 <div class="col-auto"> 317 <div class="col-auto">
318 <div class="input-group mb-2"> 318 <div class="input-group mb-2">
319 <div class="input-group-prepend"> 319 <div class="input-group-prepend">
320 <div class="input-group-text">$</div> 320 <div class="input-group-text">$</div>
321 </div> 321 </div>
322 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo unitario del kilometro del flete" 322 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo unitario del kilometro del flete"
323 ng-model="notaPedido.costoUnitarioKmFlete" ng-required="true"> 323 ng-model="notaPedido.costoUnitarioKmFlete" ng-required="true">
324 </div> 324 </div>
325 </div> 325 </div>
326 </div> 326 </div>
327 </div> 327 </div>
328 <div class="row my-3"> 328 <div class="row my-3">
329 <div class="col-md-2"> 329 <div class="col-md-2">
330 <div class="col-auto"> 330 <div class="col-auto">
331 <label>Vendedor</label> 331 <label>Vendedor</label>
332 </div> 332 </div>
333 </div> 333 </div>
334 <div class="col-md-3"> 334 <div class="col-md-3">
335 <div class="col-auto"> 335 <div class="col-auto">
336 <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor" 336 <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor"
337 ng-click="seleccionarVendedor()" readonly> 337 ng-click="seleccionarVendedor()" readonly>
338 </div> 338 </div>
339 </div> 339 </div>
340 <div class="col-md-2"> 340 <div class="col-md-2">
341 <div class="col-auto"> 341 <div class="col-auto">
342 <label>Petrolera</label> 342 <label>Proveedor</label>
343 </div> 343 </div>
344 </div> 344 </div>
345 <div class="col-md-3"> 345 <div class="col-md-3">
346 <div class="col-auto"> 346 <div class="col-auto">
347 <input type="text" class="form-control" placeholder="Seleccione petrolera" ng-model="notaPedido.petrolera" 347 <input type="text" class="form-control" placeholder="Seleccione proveedor" ng-model="notaPedido.proveedor"
348 ng-click="seleccionarPetrolera()" readonly> 348 ng-click="seleccionarProveedor()" readonly>
349 </div> 349 </div>
350 </div> 350 </div>
351 </div> 351 </div>
352 </div> 352 </div>
353 <div class="row"> 353 <div class="row">
354 <div class="col-md-2"> 354 <div class="col-md-2">
355 <div class="col-auto"> 355 <div class="col-auto">
356 <label>Cliente</label> 356 <label>Cliente</label>
357 </div> 357 </div>
358 </div> 358 </div>
359 <div class="col-md-3"> 359 <div class="col-md-3">
360 <div class="col-auto"> 360 <div class="col-auto">
361 <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente" 361 <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente"
362 ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly> 362 ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly>
363 </div> 363 </div>
364 </div> 364 </div>
365 <div class="col-md-2"> 365 <div class="col-md-2">
366 <div class="col-auto"> 366 <div class="col-auto">
367 <label>Domicilio</label> 367 <label>Domicilio</label>
368 </div> 368 </div>
369 </div> 369 </div>
370 <div class="col-md-4"> 370 <div class="col-md-4">
371 <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio"> 371 <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio">
372 <div class="col-auto"> 372 <div class="col-auto">
373 <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead=" 373 <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead="
374 domi.dom 374 domi.dom
375 for domi 375 for domi
376 in domiciliosCliente 376 in domiciliosCliente
377 " 377 "
378 typeahead-no-results="sinResultados" typeahead-min-length="0" typeahead-on-select="seleccionar($item)" 378 typeahead-no-results="sinResultados" typeahead-min-length="0" typeahead-on-select="seleccionar($item)"
379 class="form-control mb-2" ng-disabled="domicilio.id > 0" ng-required="true"> 379 class="form-control mb-2" ng-disabled="domicilio.id > 0" ng-required="true">
380 <i ng-show="cargandoClientes" class="fas fa-sync"></i> 380 <i ng-show="cargandoClientes" class="fas fa-sync"></i>
381 <div ng-show="sinResultados"> 381 <div ng-show="sinResultados">
382 No se encontraron resultados. 382 No se encontraron resultados.
383 </div> 383 </div>
384 </div> 384 </div>
385 <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a> 385 <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a>
386 <a class="btn" ng-click="addNewDom()">+</a> 386 <a class="btn" ng-click="addNewDom()">+</a>
387 </div> 387 </div>
388 </div> 388 </div>
389 </div> 389 </div>
390 </uib-tab> 390 </uib-tab>
391 <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid"> 391 <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid">
392 <div> 392 <div>
393 <div class="col-auto my-2"> 393 <div class="col-auto my-2">
394 <button ng-click="crearNotaPedido()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button> 394 <button ng-click="crearNotaPedido()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button>
395 </div> 395 </div>
396 </div> 396 </div>
397 <br> 397 <br>
398 <br> 398 <br>
399 <div class="row"> 399 <div class="row">
400 <div class="col-md-2"> 400 <div class="col-md-2">
401 <div class="col-auto"> 401 <div class="col-auto">
402 <label>Precios y condiciones</label> 402 <label>Precios y condiciones</label>
403 </div> 403 </div>
404 </div> 404 </div>
405 <div class="col-md-4"> 405 <div class="col-md-4">
406 <div class="col-auto"> 406 <div class="col-auto">
407 <select class="form-control" ng-change="cargarArticulos()" ng-model="notaPedido.precioCondicion" ng-options="preCond.id as preCond.nombre for preCond in precioCondiciones"> 407 <select class="form-control" ng-change="cargarArticulos()" ng-model="notaPedido.precioCondicion" ng-options="preCond.id as preCond.nombre for preCond in precioCondiciones">
408 </select> 408 </select>
409 </div> 409 </div>
410 </div> 410 </div>
411 <div class="col-md-2"> 411 <div class="col-md-2">
412 <div class="col-auto"> 412 <div class="col-auto">
413 <label>Producto</label> 413 <label>Producto</label>
414 </div> 414 </div>
415 </div> 415 </div>
416 <div class="col-md-4"> 416 <div class="col-md-4">
417 <div class="col-auto"> 417 <div class="col-auto">
418 <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto" 418 <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto"
419 ng-click="seleccionarArticulo()" readonly> 419 ng-click="seleccionarArticulo()" readonly>
420 </div> 420 </div>
421 </div> 421 </div>
422 </div> 422 </div>
423 <div class="col-md-12"> 423 <div class="col-md-12">
424 <table class="table my-3 table-hover table-nonfluid"> 424 <table class="table my-3 table-hover table-nonfluid">
425 <thead> 425 <thead>
426 <tr> 426 <tr>
427 <th>Código</th> 427 <th>Código</th>
428 <th>Nombre</th> 428 <th>Nombre</th>
429 <th>Precio unitario</th> 429 <th>Precio unitario</th>
430 <th>Costo unitario bruto</th> 430 <th>Costo unitario bruto</th>
431 <th>Cantidad</th> 431 <th>Cantidad</th>
432 <th>Subtotal</th> 432 <th>Subtotal</th>
433 </tr> 433 </tr>
434 </thead> 434 </thead>
435 <tbody> 435 <tbody>
436 <tr ng-repeat="articulo in articulosTabla"> 436 <tr ng-repeat="articulo in articulosTabla">
437 <td ng-bind="articulo.codigo"></td> 437 <td ng-bind="articulo.codigo"></td>
438 <td ng-bind="articulo.nombre"></td> 438 <td ng-bind="articulo.nombre"></td>
439 <td ng-bind="articulo.precio"></td> 439 <td ng-bind="articulo.precio"></td>
440 <td ng-bind="articulo.costoUnitario"></td> 440 <td ng-bind="articulo.costoUnitario"></td>
441 <td><input ng-model="articulo.cantidad" class="form-control" type="number" min="0" value="1"></td> 441 <td><input ng-model="articulo.cantidad" class="form-control" type="number" min="0" value="1"></td>
442 <td ng-bind="getSubTotal(articulo.item)"></td> 442 <td ng-bind="getSubTotal(articulo.item)"></td>
443 </tr> 443 </tr>
444 </tbody> 444 </tbody>
445 </table> 445 </table>
446 </div> 446 </div>
447 </uib-tab> 447 </uib-tab>
448 </uib-tabset> 448 </uib-tabset>
449 </form>--> 449 </form>-->
src/views/nota-pedido_1.html
1 <form name="formCrearNota" ng-submit="siguienteTab()"> 1 <form name="formCrearNota" ng-submit="siguienteTab()">
2 <uib-tabset active="active"> 2 <uib-tabset active="active">
3 <uib-tab index="0" heading="General"> 3 <uib-tab index="0" heading="General">
4 <input type="hidden" name="id" ng-model="notaPedido.id" /> 4 <input type="hidden" name="id" ng-model="notaPedido.id" />
5 <div> 5 <div>
6 <div class="col-auto my-2"> 6 <div class="col-auto my-2">
7 <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button> 7 <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button>
8 </div> 8 </div>
9 </div> 9 </div>
10 <br> 10 <br>
11 <br> 11 <br>
12 <div class="row"> 12 <div class="row">
13 <div class="col-md-2"> 13 <div class="col-md-2">
14 <div class="col-auto"> 14 <div class="col-auto">
15 <label>Fecha de carga</label> 15 <label>Fecha de carga</label>
16 </div> 16 </div>
17 </div> 17 </div>
18 <div class="col-md-3"> 18 <div class="col-md-3">
19 <div class="col-auto"> 19 <div class="col-auto">
20 <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true"> 20 <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true">
21 </div> 21 </div>
22 </div> 22 </div>
23 <div class="col-md-2"> 23 <div class="col-md-2">
24 <div class="col-auto"> 24 <div class="col-auto">
25 <label>Kilómetros</label> 25 <label>Kilómetros</label>
26 </div> 26 </div>
27 </div> 27 </div>
28 <div class="col-md-3"> 28 <div class="col-md-3">
29 <div class="col-auto"> 29 <div class="col-auto">
30 <input type="number" min="0" step="0.01" class="form-control" placeholder="Kilómetros recorridos para la entrega en el cliente" 30 <input type="number" min="0" step="0.01" class="form-control" placeholder="Kilómetros recorridos para la entrega en el cliente"
31 ng-model="notaPedido.kilometros" ng-required="true"> 31 ng-model="notaPedido.kilometros" ng-required="true">
32 </div> 32 </div>
33 </div> 33 </div>
34 </div> 34 </div>
35 <div class="row my-3"> 35 <div class="row my-3">
36 <div class="col-md-2"> 36 <div class="col-md-2">
37 <div class="col-auto"> 37 <div class="col-auto">
38 <label>Jurisdicción de IIBB</label> 38 <label>Jurisdicción de IIBB</label>
39 </div> 39 </div>
40 </div> 40 </div>
41 <div class="col-md-3"> 41 <div class="col-md-3">
42 <div class="col-auto"> 42 <div class="col-auto">
43 <input type="text" class="form-control" placeholder="Jurisdicción de IIBB donde se realiza la entrega" 43 <input type="text" class="form-control" placeholder="Jurisdicción de IIBB donde se realiza la entrega"
44 ng-model="notaPedido.jurisdiccionIIBB" ng-required="true"> 44 ng-model="notaPedido.jurisdiccionIIBB" ng-required="true">
45 </div> 45 </div>
46 </div> 46 </div>
47 <div class="col-md-2"> 47 <div class="col-md-2">
48 <div class="col-auto"> 48 <div class="col-auto">
49 <label>Costo de financiación</label> 49 <label>Costo de financiación</label>
50 </div> 50 </div>
51 </div> 51 </div>
52 <div class="col-md-3"> 52 <div class="col-md-3">
53 <div class="col-auto"> 53 <div class="col-auto">
54 <div class="input-group mb-2"> 54 <div class="input-group mb-2">
55 <div class="input-group-prepend"> 55 <div class="input-group-prepend">
56 <div class="input-group-text">$</div> 56 <div class="input-group-text">$</div>
57 </div> 57 </div>
58 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiación" 58 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiación"
59 ng-model="notaPedido.costoFinanciacion"> 59 ng-model="notaPedido.costoFinanciacion">
60 </div> 60 </div>
61 </div> 61 </div>
62 </div> 62 </div>
63 </div> 63 </div>
64 <div class="row"> 64 <div class="row">
65 <div class="col-md-2"> 65 <div class="col-md-2">
66 <div class="col-auto"> 66 <div class="col-auto">
67 <label>Bomba</label> 67 <label>Bomba</label>
68 </div> 68 </div>
69 </div> 69 </div>
70 <div class="col-md-1"> 70 <div class="col-md-1">
71 <div class="col-auto"> 71 <div class="col-auto">
72 <div class="form-check custom-radio custom-control-inline"> 72 <div class="form-check custom-radio custom-control-inline">
73 <input class="form-check-input" type="radio" name="radioBomba" value="1" ng-model="notaPedido.bomba"> 73 <input class="form-check-input" type="radio" name="radioBomba" value="1" ng-model="notaPedido.bomba">
74 <label class="form-check-label"> 74 <label class="form-check-label">
75 Si 75 Si
76 </label> 76 </label>
77 </div> 77 </div>
78 <div class="form-check custom-radio custom-control-inline"> 78 <div class="form-check custom-radio custom-control-inline">
79 <input class="form-check-input" type="radio" name="radioBomba" value="0" ng-model="notaPedido.bomba"> 79 <input class="form-check-input" type="radio" name="radioBomba" value="0" ng-model="notaPedido.bomba">
80 <label class="form-check-label"> 80 <label class="form-check-label">
81 No 81 No
82 </label> 82 </label>
83 </div> 83 </div>
84 </div> 84 </div>
85 </div> 85 </div>
86 <div class="col-md-1"> 86 <div class="col-md-1">
87 <div class="col-auto"> 87 <div class="col-auto">
88 <label>Flete</label> 88 <label>Flete</label>
89 </div> 89 </div>
90 </div> 90 </div>
91 <div class="col-md-1"> 91 <div class="col-md-1">
92 <div class="col-auto"> 92 <div class="col-auto">
93 <div class="form-check custom-radio custom-control-inline"> 93 <div class="form-check custom-radio custom-control-inline">
94 <input class="form-check-input" type="radio" name="radioFlete" value="1" ng-model="notaPedido.flete"> 94 <input class="form-check-input" type="radio" name="radioFlete" value="1" ng-model="notaPedido.flete">
95 <label class="form-check-label"> 95 <label class="form-check-label">
96 Si 96 Si
97 </label> 97 </label>
98 </div> 98 </div>
99 <div class="form-check custom-radio custom-control-inline"> 99 <div class="form-check custom-radio custom-control-inline">
100 <input class="form-check-input" type="radio" name="radioFlete" value="0" ng-model="notaPedido.flete"> 100 <input class="form-check-input" type="radio" name="radioFlete" value="0" ng-model="notaPedido.flete">
101 <label class="form-check-label"> 101 <label class="form-check-label">
102 FOB 102 FOB
103 </label> 103 </label>
104 </div> 104 </div>
105 </div> 105 </div>
106 </div> 106 </div>
107 <div class="col-md-2"> 107 <div class="col-md-2">
108 <div class="col-auto"> 108 <div class="col-auto">
109 <label>Costo unitario kilometro flete</label> 109 <label>Costo unitario kilometro flete</label>
110 </div> 110 </div>
111 </div> 111 </div>
112 <div class="col-md-3"> 112 <div class="col-md-3">
113 <div class="col-auto"> 113 <div class="col-auto">
114 <div class="input-group mb-2"> 114 <div class="input-group mb-2">
115 <div class="input-group-prepend"> 115 <div class="input-group-prepend">
116 <div class="input-group-text">$</div> 116 <div class="input-group-text">$</div>
117 </div> 117 </div>
118 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo unitario del kilometro del flete" 118 <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo unitario del kilometro del flete"
119 ng-model="notaPedido.costoUnitarioKmFlete" ng-required="true"> 119 ng-model="notaPedido.costoUnitarioKmFlete" ng-required="true">
120 </div> 120 </div>
121 </div> 121 </div>
122 </div> 122 </div>
123 </div> 123 </div>
124 <div class="row my-3"> 124 <div class="row my-3">
125 <div class="col-md-2"> 125 <div class="col-md-2">
126 <div class="col-auto"> 126 <div class="col-auto">
127 <label>Vendedor</label> 127 <label>Vendedor</label>
128 </div> 128 </div>
129 </div> 129 </div>
130 <div class="col-md-3"> 130 <div class="col-md-3">
131 <div class="col-auto"> 131 <div class="col-auto">
132 <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor" 132 <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor"
133 ng-click="seleccionarVendedor()" readonly> 133 ng-click="seleccionarVendedor()" readonly>
134 </div> 134 </div>
135 </div> 135 </div>
136 <div class="col-md-2"> 136 <div class="col-md-2">
137 <div class="col-auto"> 137 <div class="col-auto">
138 <label>Petrolera</label> 138 <label>Proveedor</label>
139 </div> 139 </div>
140 </div> 140 </div>
141 <div class="col-md-3"> 141 <div class="col-md-3">
142 <div class="col-auto"> 142 <div class="col-auto">
143 <input type="text" class="form-control" placeholder="Seleccione petrolera" ng-model="notaPedido.petrolera" 143 <input type="text" class="form-control" placeholder="Seleccione proveedor" ng-model="notaPedido.proveedor"
144 ng-click="seleccionarPetrolera()" readonly> 144 ng-click="seleccionarProveedor()" readonly>
145 </div> 145 </div>
146 </div> 146 </div>
147 </div> 147 </div>
148 </div> 148 </div>
149 <div class="row"> 149 <div class="row">
150 <div class="col-md-2"> 150 <div class="col-md-2">
151 <div class="col-auto"> 151 <div class="col-auto">
152 <label>Cliente</label> 152 <label>Cliente</label>
153 </div> 153 </div>
154 </div> 154 </div>
155 <div class="col-md-3"> 155 <div class="col-md-3">
156 <div class="col-auto"> 156 <div class="col-auto">
157 <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente" 157 <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente"
158 ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly> 158 ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly>
159 </div> 159 </div>
160 </div> 160 </div>
161 <div class="col-md-2"> 161 <div class="col-md-2">
162 <div class="col-auto"> 162 <div class="col-auto">
163 <label>Domicilio</label> 163 <label>Domicilio</label>
164 </div> 164 </div>
165 </div> 165 </div>
166 <div class="col-md-4"> 166 <div class="col-md-4">
167 <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio"> 167 <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio">
168 <div class="col-auto"> 168 <div class="col-auto">
169 <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead=" 169 <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead="
170 domi.dom 170 domi.dom
171 for domi 171 for domi
172 in domiciliosCliente 172 in domiciliosCliente
173 " 173 "
174 typeahead-no-results="sinResultados" typeahead-min-length="0" typeahead-on-select="seleccionar($item)" 174 typeahead-no-results="sinResultados" typeahead-min-length="0" typeahead-on-select="seleccionar($item)"
175 class="form-control mb-2" ng-disabled="domicilio.id > 0" ng-required="true"> 175 class="form-control mb-2" ng-disabled="domicilio.id > 0" ng-required="true">
176 <i ng-show="cargandoClientes" class="fas fa-sync"></i> 176 <i ng-show="cargandoClientes" class="fas fa-sync"></i>
177 <div ng-show="sinResultados"> 177 <div ng-show="sinResultados">
178 No se encontraron resultados. 178 No se encontraron resultados.
179 </div> 179 </div>
180 </div> 180 </div>
181 <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a> 181 <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a>
182 <a class="btn" ng-click="addNewDom()">+</a> 182 <a class="btn" ng-click="addNewDom()">+</a>
183 </div> 183 </div>
184 </div> 184 </div>
185 </div> 185 </div>
186 </uib-tab> 186 </uib-tab>
187 <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid"> 187 <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid">
188 <div> 188 <div>
189 <div class="col-auto my-2"> 189 <div class="col-auto my-2">
190 <button ng-click="crearNotaPedido()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button> 190 <button ng-click="crearNotaPedido()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button>
191 </div> 191 </div>
192 </div> 192 </div>
193 <br> 193 <br>
194 <br> 194 <br>
195 <div class="row"> 195 <div class="row">
196 <div class="col-md-2"> 196 <div class="col-md-2">
197 <div class="col-auto"> 197 <div class="col-auto">
198 <label>Precios y condiciones</label> 198 <label>Precios y condiciones</label>
199 </div> 199 </div>
200 </div> 200 </div>
201 <div class="col-md-4"> 201 <div class="col-md-4">
202 <div class="col-auto"> 202 <div class="col-auto">
203 <select class="form-control" ng-change="cargarArticulos()" ng-model="notaPedido.precioCondicion" ng-options="preCond.id as preCond.nombre for preCond in precioCondiciones"> 203 <select class="form-control" ng-change="cargarArticulos()" ng-model="notaPedido.precioCondicion" ng-options="preCond.id as preCond.nombre for preCond in precioCondiciones">
204 </select> 204 </select>
205 </div> 205 </div>
206 </div> 206 </div>
207 <div class="col-md-2"> 207 <div class="col-md-2">
208 <div class="col-auto"> 208 <div class="col-auto">
209 <label>Producto</label> 209 <label>Producto</label>
210 </div> 210 </div>
211 </div> 211 </div>
212 <div class="col-md-4"> 212 <div class="col-md-4">
213 <div class="col-auto"> 213 <div class="col-auto">
214 <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto" 214 <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto"
215 ng-click="seleccionarArticulo()" readonly> 215 ng-click="seleccionarArticulo()" readonly>
216 </div> 216 </div>
217 </div> 217 </div>
218 </div> 218 </div>
219 <div class="col-md-12"> 219 <div class="col-md-12">
220 <table class="table my-3 table-hover table-nonfluid"> 220 <table class="table my-3 table-hover table-nonfluid">
221 <thead> 221 <thead>
222 <tr> 222 <tr>
223 <th>Código</th> 223 <th>Código</th>
224 <th>Nombre</th> 224 <th>Nombre</th>
225 <th>Precio unitario</th> 225 <th>Precio unitario</th>
226 <th>Costo unitario bruto</th> 226 <th>Costo unitario bruto</th>
227 <th>Cantidad</th> 227 <th>Cantidad</th>
228 <th>Subtotal</th> 228 <th>Subtotal</th>
229 </tr> 229 </tr>
230 </thead> 230 </thead>
231 <tbody> 231 <tbody>
232 <tr ng-repeat="articulo in articulosTabla"> 232 <tr ng-repeat="articulo in articulosTabla">
233 <td ng-bind="articulo.codigo"></td> 233 <td ng-bind="articulo.codigo"></td>
234 <td ng-bind="articulo.nombre"></td> 234 <td ng-bind="articulo.nombre"></td>
235 <td ng-bind="articulo.precio"></td> 235 <td ng-bind="articulo.precio"></td>
236 <td ng-bind="articulo.costoUnitario"></td> 236 <td ng-bind="articulo.costoUnitario"></td>
237 <td><input ng-model="articulo.cantidad" class="form-control" type="number" min="0" value="1"></td> 237 <td><input ng-model="articulo.cantidad" class="form-control" type="number" min="0" value="1"></td>
238 <td ng-bind="getSubTotal(articulo.item)"></td> 238 <td ng-bind="getSubTotal(articulo.item)"></td>
239 </tr> 239 </tr>
240 </tbody> 240 </tbody>
241 </table> 241 </table>
242 </div> 242 </div>
243 </uib-tab> 243 </uib-tab>
244 </uib-tabset> 244 </uib-tabset>
245 </form> 245 </form>