Commit ab8df73738803b5a36dbbe3d904bf8c817f5d82c
Exists in
master
Merge branch 'master' into 'master'
Master See merge request modulos-npm/foca-crear-nota-pedido!1
Showing
8 changed files
Show diff stats
.gitignore
File was created | 1 | /node_modules | |
2 | /dist | ||
3 | package-lock\.json | ||
4 | /src/etc/develop.js | ||
5 |
index.html
File was created | 1 | <html ng-app="focaCrearNotaPedido"> | |
2 | <head> | ||
3 | <meta charset="UTF-8"/> | ||
4 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
5 | |||
6 | <!--CSS--> | ||
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"/> | ||
9 | |||
10 | <!--VENDOR JS--> | ||
11 | <script src="node_modules/jquery/dist/jquery.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> | ||
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> | ||
16 | |||
17 | <script src="node_modules/foca-modal-vendedores/dist/foca-modal-vendedores.min.js"></script> | ||
18 | <script src="node_modules/foca-modal-busqueda-productos/dist/foca-busqueda-productos.min.js"></script> | ||
19 | <script src="node_modules/foca-modal-petroleras/dist/foca-modal-petroleras.min.js"></script> | ||
20 | <script src="node_modules/foca-busqueda-cliente/dist/foca-busqueda-cliente.min.js"></script> | ||
21 | |||
22 | <script src="src/js/app.js"></script> | ||
23 | <script src="src/js/controller.js"></script> | ||
24 | <script src="src/js/service.js"></script> | ||
25 | <script src="src/etc/develop.js"></script> | ||
26 | </head> | ||
27 | <body ng-view> | ||
28 | |||
29 | </body> | ||
30 | </html> | ||
31 |
package.json
File was created | 1 | { | |
2 | "name": "foca-crear-nota-pedido", | ||
3 | "version": "0.0.1", | ||
4 | "description": "Listado y ABM nota de pedidos", | ||
5 | "main": "index.js", | ||
6 | "scripts": { | ||
7 | "test": "echo \"Error: no test specified\" && exit 1", | ||
8 | "compile": "gulp uglify && gulp html", | ||
9 | "postinstall": "npm run compile && rm -R src && rm index.html && rm .jshintrc && rm gulpfile.js" | ||
10 | }, | ||
11 | "repository": { | ||
12 | "type": "git", | ||
13 | "url": "https://192.168.0.11/modulos-npm/foca-crear-nota-pedido.git" | ||
14 | }, | ||
15 | "author": "Foca Software", | ||
16 | "license": "ISC", | ||
17 | "dependencies": { | ||
18 | "angular": "^1.7.x", | ||
19 | "angular-route": "^1.7.4", | ||
20 | "bootstrap": "^4.1.x", | ||
21 | "font-awesome": "^4.7.x", | ||
22 | "gulp": "^3.9.x", | ||
23 | "gulp-concat": "2.6.x", | ||
24 | "gulp-jshint": "^2.1.x", | ||
25 | "gulp-rename": "^1.4.x", | ||
26 | "gulp-replace": "^1.0.x", | ||
27 | "gulp-uglify-es": "^1.0.x", | ||
28 | "jquery": "^3.3.x", | ||
29 | "jshint": "^2.9.x", | ||
30 | "pump": "^3.0.x", | ||
31 | "ui-bootstrap4": "^3.0.5" | ||
32 | }, | ||
33 | "devDependencies": { | ||
34 | "gulp-connect": "^5.6.1", | ||
35 | "jasmine-core": "3.2.1", | ||
36 | "pre-commit": "^1.2.2" | ||
37 | } | ||
38 | } | ||
39 |
src/js/app.js
File was created | 1 | angular.module('focaCrearNotaPedido', ['ngRoute', 'ui.bootstrap', 'focaModalVendedores', | |
2 | 'focaBusquedaProductos', 'focaModalPetroleras', 'focaBusquedaCliente']) | ||
3 | .config(['$routeProvider', function($routeProvider) { | ||
4 | $routeProvider.when('/venta-nota-pedido', { | ||
5 | controller: 'notaPedidoListaCtrl', | ||
6 | templateUrl: 'src/views/nota-pedido-lista.html' | ||
7 | }); | ||
8 | }]) | ||
9 | .config(['$routeProvider', function($routeProvider) { | ||
10 | $routeProvider.when('/venta-nota-pedido/abm', { | ||
11 | controller: 'notaPedidoCtrl', | ||
12 | templateUrl: 'src/views/nota-pedido.html' | ||
13 | }); | ||
14 | }]); | ||
15 |
src/js/controller.js
File was created | 1 | angular.module('focaCrearNotaPedido') | |
2 | .controller('notaPedidoCtrl', | ||
3 | [ | ||
4 | '$scope', | ||
5 | '$uibModal', | ||
6 | 'crearNotaPedidoService', | ||
7 | function ($scope, $uibModal, crearNotaPedidoService) { | ||
8 | $scope.notaPedido = {}; | ||
9 | $scope.articulosTabla = []; | ||
10 | var idLista; | ||
11 | var notaPedidoTemp = crearNotaPedidoService.getNotaPedido(); | ||
12 | $scope.domiciliosCliente = crearNotaPedidoService.getDomicilios(1); | ||
13 | crearNotaPedidoService.getPrecioCondicion().then( | ||
14 | function (res) { | ||
15 | $scope.precioCondiciones = res.data; | ||
16 | } | ||
17 | ); | ||
18 | if (notaPedidoTemp != undefined) { | ||
19 | notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga); | ||
20 | $scope.notaPedido = notaPedidoTemp; | ||
21 | $scope.notaPedido.flete = ($scope.notaPedido.flete).toString(); | ||
22 | $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString(); | ||
23 | idLista= $scope.notaPedido.precioCondicion; | ||
24 | |||
25 | } else { | ||
26 | $scope.notaPedido.fechaCarga = new Date(); | ||
27 | $scope.notaPedido.domicilio = [{ id: 0 }] | ||
28 | $scope.notaPedido.bomba = '1'; | ||
29 | $scope.notaPedido.flete = '1'; | ||
30 | idLista = undefined; | ||
31 | } | ||
32 | $scope.addNewDom = function () { | ||
33 | $scope.notaPedido.domicilio.push({ 'id': 0 }); | ||
34 | } | ||
35 | $scope.removeNewChoice = function (choice) { | ||
36 | if ($scope.notaPedido.domicilio.length > 1) { | ||
37 | $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex(c => c.$$hashKey == choice.$$hashKey), 1) | ||
38 | } | ||
39 | } | ||
40 | $scope.crearNotaPedido = function () { | ||
41 | var notaPedido = { | ||
42 | idNotaPedido: 0, | ||
43 | precioCondicion: $scope.notaPedido.precioCondicion, | ||
44 | fechaCarga: $scope.notaPedido.fechaCarga, | ||
45 | vendedor: $scope.notaPedido.vendedor, | ||
46 | cliente: $scope.notaPedido.cliente, | ||
47 | producto: $scope.notaPedido.producto, | ||
48 | bomba: $scope.notaPedido.bomba, | ||
49 | petrolera: $scope.notaPedido.petrolera, | ||
50 | domicilio: $scope.notaPedido.domicilio, | ||
51 | kilometros: $scope.notaPedido.kilometros, | ||
52 | jurisdiccionIIBB: $scope.notaPedido.jurisdiccionIIBB, | ||
53 | costoFinanciacion: $scope.notaPedido.costoFinanciacion, | ||
54 | flete: $scope.notaPedido.flete, | ||
55 | costoUnitarioKmFlete: $scope.notaPedido.costoUnitarioKmFlete, | ||
56 | articulosTabla: $scope.articulosTabla | ||
57 | } | ||
58 | crearNotaPedidoService.crearNotaPedido(notaPedido).then( | ||
59 | function (res) { | ||
60 | alert('Nota pedido creada') | ||
61 | } | ||
62 | ) | ||
63 | } | ||
64 | $scope.siguienteTab = function () { | ||
65 | $scope.active = 1; | ||
66 | } | ||
67 | $scope.seleccionarArticulo = function () { | ||
68 | if(idLista==undefined){ | ||
69 | alert('primero seleccione una lista de precio y condicion'); | ||
70 | return; | ||
71 | } | ||
72 | var modalInstance = $uibModal.open( | ||
73 | { | ||
74 | ariaLabelledBy: 'Busqueda de Productos', | ||
75 | templateUrl: 'modal-busqueda-productos.html', | ||
76 | controller: 'modalBusquedaProductosCtrl', | ||
77 | resolve: {idLista: function() {return idLista}}, | ||
78 | size: 'lg' | ||
79 | } | ||
80 | ) | ||
81 | modalInstance.result.then( | ||
82 | function (producto) { | ||
83 | var newArt = | ||
84 | { | ||
85 | codigo: producto.FiltroSectorCodigo, | ||
86 | item: $scope.articulosTabla.length + 1, | ||
87 | nombre: producto.descripcion, | ||
88 | precio: producto.precio, | ||
89 | costoUnitario: producto.costo, | ||
90 | cantidad: 1 | ||
91 | } | ||
92 | $scope.articulosTabla.unshift(newArt); | ||
93 | }, function () { | ||
94 | // funcion ejecutada cuando se cancela el modal | ||
95 | } | ||
96 | ); | ||
97 | } | ||
98 | $scope.seleccionarVendedor = function () { | ||
99 | var modalInstance = $uibModal.open( | ||
100 | { | ||
101 | ariaLabelledBy: 'Busqueda de Vendedores', | ||
102 | templateUrl: 'modal-vendedores.html', | ||
103 | controller: 'modalVendedoresCtrl', | ||
104 | size: 'lg' | ||
105 | } | ||
106 | ) | ||
107 | modalInstance.result.then( | ||
108 | function (vendedor) { | ||
109 | $scope.notaPedido.vendedor = vendedor.NomVen; | ||
110 | }, function () { | ||
111 | |||
112 | } | ||
113 | ); | ||
114 | } | ||
115 | $scope.seleccionarPetrolera = function() { | ||
116 | var modalInstance = $uibModal.open( | ||
117 | { | ||
118 | ariaLabelledBy: 'Busqueda de Petrolera', | ||
119 | templateUrl: 'modal-petroleras.html', | ||
120 | controller: 'modalPetrolerasCtrl', | ||
121 | size: 'lg' | ||
122 | } | ||
123 | ) | ||
124 | modalInstance.result.then( | ||
125 | function (petrolera) { | ||
126 | $scope.notaPedido.petrolera = petrolera.NOM; | ||
127 | }, function () { | ||
128 | |||
129 | } | ||
130 | ); | ||
131 | } | ||
132 | $scope.seleccionarCliente = function() { | ||
133 | var modalInstance = $uibModal.open( | ||
134 | { | ||
135 | ariaLabelledBy: 'Busqueda de Cliente', | ||
136 | templateUrl: 'foca-busqueda-cliente-modal.html', | ||
137 | controller: 'focaBusquedaClienteModalController', | ||
138 | size: 'lg' | ||
139 | } | ||
140 | ) | ||
141 | modalInstance.result.then( | ||
142 | function (cliente) { | ||
143 | $scope.notaPedido.cliente = cliente.nom; | ||
144 | }, function () { | ||
145 | |||
146 | } | ||
147 | ); | ||
148 | } | ||
149 | $scope.obtenerDomicilios = function (id) { | ||
150 | crearNotaPedidoService.getDomicilios(id).then( | ||
151 | function (res) { | ||
152 | $scope.notaPedido.domicilio = res.data; | ||
153 | } | ||
154 | ) | ||
155 | } | ||
156 | $scope.getSubTotal = function(item) { | ||
157 | var subTotal=0; | ||
158 | var array = $scope.articulosTabla.filter(a=>a.item<=item); | ||
159 | for(var i = 0; i< array.length; i++) { | ||
160 | subTotal+=array[i].precio*array[i].cantidad | ||
161 | } | ||
162 | return subTotal.toFixed(2); | ||
163 | } | ||
164 | $scope.cargarArticulos = function() { | ||
165 | idLista=$scope.notaPedido.precioCondicion; | ||
166 | } | ||
167 | } | ||
168 | ] | ||
169 | ) | ||
170 | .controller('notaPedidoListaCtrl', [ | ||
171 | '$scope', | ||
172 | 'crearNotaPedidoService', | ||
173 | '$location', | ||
174 | function ($scope, crearNotaPedidoService, $location) { | ||
175 | crearNotaPedidoService.obtenerNotaPedido().then(function (datos) { | ||
176 | $scope.notaPedidos = datos.data; | ||
177 | }); | ||
178 | $scope.editar = function (notaPedido) { | ||
179 | crearNotaPedidoService.setNotaPedido(notaPedido); | ||
180 | $location.path('/venta-nota-pedido/abm/'); | ||
181 | } | ||
182 | $scope.crearPedido = function () { | ||
183 | $location.path('/venta-nota-pedido/abm/'); | ||
184 | } | ||
185 | } | ||
186 | ]) | ||
187 |
src/js/service.js
File was created | 1 | angular.module('focaCrearNotaPedido') | |
2 | .service('crearNotaPedidoService', ['$http',function($http) { | ||
3 | var route = 'http://192.168.0.23:9900'; | ||
4 | var notaPedido; | ||
5 | return { | ||
6 | crearNotaPedido: function(obj) { | ||
7 | return $http.get(route + '/nota-pedidos/crear'); | ||
8 | }, | ||
9 | obtenerNotaPedido: function() { | ||
10 | return $http.get(route +'/nota-pedido'); | ||
11 | }, | ||
12 | setNotaPedido: function(notaPedido) { | ||
13 | this.notaPedido = notaPedido; | ||
14 | }, | ||
15 | getNotaPedido: function() { | ||
16 | return this.notaPedido; | ||
17 | }, | ||
18 | //EN DESARROLLO | ||
19 | getDomicilios: function(id) { | ||
20 | // return $http.get(route + '/'+id) | ||
21 | var domicilio = [ | ||
22 | { | ||
23 | id: 1, | ||
24 | dom: 'RISSO PATRON 781' | ||
25 | }, | ||
26 | { | ||
27 | id: 2, | ||
28 | dom: 'MARIANO MORENO 533' | ||
29 | }, | ||
30 | { | ||
31 | id: 3, | ||
32 | dom: 'SALTA 796' | ||
33 | } | ||
34 | ] | ||
35 | return domicilio; | ||
36 | }, | ||
37 | getPrecioCondicion: function() { | ||
38 | return $http.get(route + '/precio-condicion') | ||
39 | }, | ||
40 | getPrecioCondicionById: function(id) { | ||
41 | return $http.get(route + '/precio-condicion/' + id) | ||
42 | }, | ||
43 | getPlazoPagoByPrecioCondicion: function(id) { | ||
44 | return $http.get(route + '/plazo-pago/precio-condicion/'+ id) | ||
45 | } | ||
46 | } | ||
47 | }]) | ||
48 |
src/views/nota-pedido-lista.html
File was created | 1 | <table class="table table-sm table-hover table-nonfluid"> | |
2 | <thead> | ||
3 | <tr> | ||
4 | <th>Código</th> | ||
5 | <th>Vendedor</th> | ||
6 | <th>Cliente</th> | ||
7 | <th>Petrolera</th> | ||
8 | <th><button class="btn btn-primary" ng-click="crearPedido()">Crear</button></th> | ||
9 | </tr> | ||
10 | </thead> | ||
11 | <tbody> | ||
12 | <tr ng-repeat="item in notaPedidos"> | ||
13 | <td ng-bind="item.id"></td> | ||
14 | <td ng-bind="item.vendedor"></td> | ||
15 | <td ng-bind="item.cliente"></td> | ||
16 | <td ng-bind="item.petrolera"></td> | ||
17 | <td> | ||
18 | <button class="btn btn-info" ng-click="editar(item)"><i class="fa fa-edit"></i></button> | ||
19 | <!-- <button class="btn btn-danger" ng-click="borrar(item.id)"><i class="fa fa-trash"></i></button> --> | ||
20 | </td> | ||
21 | </tr> | ||
22 | </tbody> | ||
23 | </table> | ||
24 |
src/views/nota-pedido.html
File was created | 1 | <form name="formCrearNota" ng-submit="siguienteTab()"> | |
2 | <uib-tabset active="active"> | ||
3 | <uib-tab index="0" heading="General"> | ||
4 | <input type="hidden" name="id" ng-model="notaPedido.id" /> | ||
5 | <div> | ||
6 | <div class="col-auto my-2"> | ||
7 | <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button> | ||
8 | </div> | ||
9 | </div> | ||
10 | <br> | ||
11 | <br> | ||
12 | <div class="row"> | ||
13 | <div class="col-md-2"> | ||
14 | <div class="col-auto"> | ||
15 | <label>Fecha de carga</label> | ||
16 | </div> | ||
17 | </div> | ||
18 | <div class="col-md-3"> | ||
19 | <div class="col-auto"> | ||
20 | <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true"> | ||
21 | </div> | ||
22 | </div> | ||
23 | <div class="col-md-2"> | ||
24 | <div class="col-auto"> | ||
25 | <label>Kilómetros</label> | ||
26 | </div> | ||
27 | </div> | ||
28 | <div class="col-md-3"> | ||
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" | ||
31 | ng-model="notaPedido.kilometros" ng-required="true"> | ||
32 | </div> | ||
33 | </div> | ||
34 | </div> | ||
35 | <div class="row my-3"> | ||
36 | <div class="col-md-2"> | ||
37 | <div class="col-auto"> | ||
38 | <label>Jurisdicción de IIBB</label> | ||
39 | </div> | ||
40 | </div> | ||
41 | <div class="col-md-3"> | ||
42 | <div class="col-auto"> | ||
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"> | ||
45 | </div> | ||
46 | </div> | ||
47 | <div class="col-md-2"> | ||
48 | <div class="col-auto"> | ||
49 | <label>Costo de financiación</label> | ||
50 | </div> | ||
51 | </div> | ||
52 | <div class="col-md-3"> | ||
53 | <div class="col-auto"> | ||
54 | <div class="input-group mb-2"> | ||
55 | <div class="input-group-prepend"> | ||
56 | <div class="input-group-text">$</div> | ||
57 | </div> | ||
58 | <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiación" | ||
59 | ng-model="notaPedido.costoFinanciacion"> | ||
60 | </div> | ||
61 | </div> | ||
62 | </div> | ||
63 | </div> | ||
64 | <div class="row"> | ||
65 | <div class="col-md-2"> | ||
66 | <div class="col-auto"> | ||
67 | <label>Bomba</label> | ||
68 | </div> | ||
69 | </div> | ||
70 | <div class="col-md-1"> | ||
71 | <div class="col-auto"> | ||
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"> | ||
74 | <label class="form-check-label"> | ||
75 | Si | ||
76 | </label> | ||
77 | </div> | ||
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"> | ||
80 | <label class="form-check-label"> | ||
81 | No | ||
82 | </label> | ||
83 | </div> | ||
84 | </div> | ||
85 | </div> | ||
86 | <div class="col-md-1"> | ||
87 | <div class="col-auto"> | ||
88 | <label>Flete</label> | ||
89 | </div> | ||
90 | </div> | ||
91 | <div class="col-md-1"> | ||
92 | <div class="col-auto"> | ||
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"> | ||
95 | <label class="form-check-label"> | ||
96 | Si | ||
97 | </label> | ||
98 | </div> | ||
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"> | ||
101 | <label class="form-check-label"> | ||
102 | FOB | ||
103 | </label> | ||
104 | </div> | ||
105 | </div> | ||
106 | </div> | ||
107 | <div class="col-md-2"> | ||
108 | <div class="col-auto"> | ||
109 | <label>Costo unitario kilometro flete</label> | ||
110 | </div> | ||
111 | </div> | ||
112 | <div class="col-md-3"> | ||
113 | <div class="col-auto"> | ||
114 | <div class="input-group mb-2"> | ||
115 | <div class="input-group-prepend"> | ||
116 | <div class="input-group-text">$</div> | ||
117 | </div> | ||
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"> | ||
120 | </div> | ||
121 | </div> | ||
122 | </div> | ||
123 | </div> | ||
124 | <div class="row my-3"> | ||
125 | <div class="col-md-2"> | ||
126 | <div class="col-auto"> | ||
127 | <label>Vendedor</label> | ||
128 | </div> | ||
129 | </div> | ||
130 | <div class="col-md-3"> | ||
131 | <div class="col-auto"> | ||
132 | <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor" | ||
133 | ng-click="seleccionarVendedor()" readonly> | ||
134 | </div> | ||
135 | </div> | ||
136 | <div class="col-md-2"> | ||
137 | <div class="col-auto"> | ||
138 | <label>Petrolera</label> | ||
139 | </div> | ||
140 | </div> | ||
141 | <div class="col-md-3"> | ||
142 | <div class="col-auto"> | ||
143 | <input type="text" class="form-control" placeholder="Seleccione petrolera" ng-model="notaPedido.petrolera" | ||
144 | ng-click="seleccionarPetrolera()" readonly> | ||
145 | </div> | ||
146 | </div> | ||
147 | </div> | ||
148 | </div> | ||
149 | <div class="row"> | ||
150 | <div class="col-md-2"> | ||
151 | <div class="col-auto"> | ||
152 | <label>Cliente</label> | ||
153 | </div> | ||
154 | </div> | ||
155 | <div class="col-md-3"> | ||
156 | <div class="col-auto"> | ||
157 | <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente" | ||
158 | ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly> | ||
159 | </div> | ||
160 | </div> | ||
161 | <div class="col-md-2"> | ||
162 | <div class="col-auto"> | ||
163 | <label>Domicilio</label> | ||
164 | </div> | ||
165 | </div> | ||
166 | <div class="col-md-4"> | ||
167 | <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio"> | ||
168 | <div class="col-auto"> | ||
169 | <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead=" | ||
170 | domi.dom | ||
171 | for domi | ||
172 | in domiciliosCliente | ||
173 | " | ||
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"> | ||
176 | <i ng-show="cargandoClientes" class="fas fa-sync"></i> | ||
177 | <div ng-show="sinResultados"> | ||
178 | No se encontraron resultados. | ||
179 | </div> | ||
180 | </div> | ||
181 | <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a> | ||
182 | <a class="btn" ng-click="addNewDom()">+</a> | ||
183 | </div> | ||
184 | </div> | ||
185 | </div> | ||
186 | </uib-tab> | ||
187 | <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid"> | ||
188 | <div> | ||
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> | ||
191 | </div> | ||
192 | </div> | ||
193 | <br> | ||
194 | <br> | ||
195 | <div class="row"> | ||
196 | <div class="col-md-2"> | ||
197 | <div class="col-auto"> | ||
198 | <label>Precios y condiciones</label> | ||
199 | </div> | ||
200 | </div> | ||
201 | <div class="col-md-4"> | ||
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"> | ||
204 | </select> | ||
205 | </div> | ||
206 | </div> | ||
207 | <div class="col-md-2"> | ||
208 | <div class="col-auto"> | ||
209 | <label>Producto</label> | ||
210 | </div> | ||
211 | </div> | ||
212 | <div class="col-md-4"> | ||
213 | <div class="col-auto"> | ||
214 | <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto" | ||
215 | ng-click="seleccionarArticulo()" readonly> | ||
216 | </div> | ||
217 | </div> | ||
218 | </div> | ||
219 | <div class="col-md-12"> | ||
220 | <table class="table my-3 table-hover table-nonfluid"> | ||
221 | <thead> | ||
222 | <tr> | ||
223 | <th>Código</th> | ||
224 | <th>Nombre</th> | ||
225 | <th>Precio unitario</th> | ||
226 | <th>Costo unitario bruto</th> | ||
227 | <th>Cantidad</th> | ||
228 | <th>Subtotal</th> | ||
229 | </tr> | ||
230 | </thead> | ||
231 | <tbody> | ||
232 | <tr ng-repeat="articulo in articulosTabla"> | ||
233 | <td ng-bind="articulo.codigo"></td> | ||
234 | <td ng-bind="articulo.nombre"></td> | ||
235 | <td ng-bind="articulo.precio"></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> | ||
238 | <td ng-bind="getSubTotal(articulo.item)"></td> | ||
239 | </tr> | ||
240 | </tbody> | ||
241 | </table> | ||
242 | </div> | ||
243 | </uib-tab> | ||
244 | </uib-tabset> | ||
245 | </form> |