Commit 5f0ec229956d0f5ad9bda097cf587322d244f291
1 parent
c84f58dd46
Exists in
master
demo 9/10
Showing
6 changed files
with
382 additions
and
6 deletions
Show diff stats
foca-busqueda-cliente-modal.html
... | ... | @@ -0,0 +1,35 @@ |
1 | +<div class="modal-header"> | |
2 | + <h3 class="modal-title">Búsqueda de cliente</h3> | |
3 | +</div> | |
4 | +<div class="modal-body"> | |
5 | + <form> | |
6 | + <div class="form-group row"> | |
7 | + <label class="col-sm-4 col-form-label">Nombre o CUIT</label> | |
8 | + <div class="col-sm-8"> | |
9 | + <input | |
10 | + type="text" | |
11 | + ng-model="cliente" | |
12 | + placeholder="Nombre o CUIT" | |
13 | + uib-typeahead=" | |
14 | + cliente.nom + ' (' + cliente.cuit + ')' | |
15 | + for cliente | |
16 | + in obtenerClientesPorNombreOCuit($viewValue) | |
17 | + " | |
18 | + typeahead-loading="cargandoClientes" | |
19 | + typeahead-no-results="sinResultados" | |
20 | + typeahead-min-length="3" | |
21 | + typeahead-on-select="seleccionar($item)" | |
22 | + class="form-control" | |
23 | + > | |
24 | + <i ng-show="cargandoClientes" class="fas fa-sync"></i> | |
25 | + <div ng-show="sinResultados"> | |
26 | + <i class="fa fa-minus"></i> No se encontraron resultados. | |
27 | + </div> | |
28 | + </div> | |
29 | + </div> | |
30 | + </form> | |
31 | +</div> | |
32 | +<div class="modal-footer"> | |
33 | + <button class="btn" ng-click="aceptar()">Aceptar</button> | |
34 | + <button class="btn" ng-click="cancelar()">Cancelar</button> | |
35 | +</div> |
gulpfile.js
index.html
... | ... | @@ -13,15 +13,35 @@ |
13 | 13 | <script src="./node_modules/bootstrap/dist/js/bootstrap.min.js"></script> |
14 | 14 | <script src="./node_modules/angular/angular.min.js"></script> |
15 | 15 | <script src="./node_modules/angular-route/angular-route.min.js"></script> |
16 | - <script src="./node_modules/foca-botonera-horizontal/dist/botonera-horizontal.min.js"></script> | |
16 | + <script src="./node_modules/ui-bootstrap4/dist/ui-bootstrap-tpls.js"></script> | |
17 | + | |
18 | + <script src="./node_modules/foca-directivas/dist/foca-directivas.min.js"></script> | |
19 | + <script src="./node_modules/foca-botonera-horizontal/dist/foca-botonera-horizontal.min.js"></script> | |
17 | 20 | <script src="./node_modules/foca-turno-apertura/dist/foca-turno-apertura.min.js"></script> |
21 | + <script src="./node_modules/foca-abm-plazo-pago/dist/foca-abm-plazo-pago.min.js"></script> | |
22 | + <script src="./node_modules/foca-abm-precios-condiciones/dist/foca-abm-precios-condiciones.min.js"></script> | |
23 | + <script src="./node_modules/foca-abm-sectores/dist/foca-abm-sectores.min.js"></script> | |
24 | + <script src="./vendor/foca-crear-nota-pedido.js"></script> | |
25 | + <script src="./node_modules/foca-modal-busqueda-productos/dist/foca-busqueda-productos.min.js"></script> | |
26 | + <script src="./node_modules/foca-modal-petroleras/dist/foca-modal-petroleras.min.js"></script> | |
27 | + <script src="./node_modules/foca-modal-vendedores/dist/foca-modal-vendedores.min.js"></script> | |
28 | + <script src="./node_modules/foca-busqueda-cliente/dist/foca-busqueda-cliente.min.js"></script> | |
18 | 29 | |
19 | 30 | <!-- BUILD --> |
20 | 31 | <script src="./src/js/app.js"></script> |
21 | 32 | <!-- /BUILD --> |
33 | + | |
22 | 34 | </head> |
23 | 35 | <body> |
36 | + <style> | |
37 | + .selectable { | |
38 | + cursor: pointer; | |
39 | + } | |
40 | + | |
41 | + .table-nonfluid { | |
42 | + width: auto; | |
43 | + } | |
44 | + </style> | |
24 | 45 | <botonera-horizontal></botonera-horizontal> |
25 | - <div ng-view id="contenedor" class="container-fluid" style="margin-bottom: 100px"></div> | |
26 | 46 | </body> |
27 | 47 | </html> |
package.json
... | ... | @@ -23,13 +23,27 @@ |
23 | 23 | "angular": "^1.7.4", |
24 | 24 | "angular-route": "1.7.3", |
25 | 25 | "bootstrap": "4.1.3", |
26 | + "foca-abm-plazo-pago": "git+https://192.168.0.11/modulos-npm/foca-abm-plazo-pago.git", | |
27 | + "foca-abm-precios-condiciones": "git+https://192.168.0.11/modulos-npm/foca-abm-precios-condiciones.git", | |
28 | + "foca-abm-sectores": "git+https://192.168.0.11/modulos-npm/foca-abm-sectores", | |
26 | 29 | "foca-botonera-horizontal": "git+https://192.168.0.11/modulos-npm/foca-botonera-horizontal.git", |
30 | + "foca-busqueda-cliente": "git+https://192.168.0.11/modulos-npm/foca-busqueda-cliente.git", | |
31 | + "foca-directivas": "git+https://192.168.0.11/modulos-npm/foca-directivas.git", | |
32 | + "foca-modal-busqueda-productos": "git+https://192.168.0.11/nguarnieri/foca-modal-busqueda-productos", | |
33 | + "foca-modal-petroleras": "git+https://192.168.0.11/modulos-npm/foca-modal-petroleras.git", | |
34 | + "foca-modal-vendedores": "git+https://192.168.0.11/modulos-npm/foca-modal-vendedores.git", | |
27 | 35 | "foca-turno-apertura": "git+https://192.168.0.11/modulos-npm/foca-turno-apertura.git", |
28 | 36 | "font-awesome": "4.7.0", |
29 | - "jquery": "3.3.1" | |
37 | + "gulp-angular-templatecache": "^2.2.1", | |
38 | + "gulp-htmlmin": "^5.0.1", | |
39 | + "gulp-uglify": "^3.0.1", | |
40 | + "jquery": "3.3.1", | |
41 | + "uglify": "^0.1.5", | |
42 | + "ui-bootstrap4": "^3.0.5" | |
30 | 43 | }, |
31 | 44 | "devDependencies": { |
32 | - "gulp": "3.9.1", | |
45 | + "electron": "^3.0.2", | |
46 | + "gulp": "^3.9.1", | |
33 | 47 | "gulp-concat": "2.6.1", |
34 | 48 | "gulp-connect": "^5.6.1", |
35 | 49 | "gulp-jshint": "^2.1.0", |
src/js/app.js
1 | -angular.module('appWrapperDemo', ['ngRoute', 'focaBotoneraHorizontal', 'focaTurnoApertura']); | |
1 | +angular | |
2 | + .module('appWrapperDemo', [ | |
3 | + 'ngRoute', | |
4 | + 'ui.bootstrap', | |
5 | + | |
6 | + 'focaBotoneraHorizontal', | |
7 | + 'focaTurnoApertura', | |
8 | + 'focaAbmPreciosCondiciones', | |
9 | + 'focaAbmPlazoPago', | |
10 | + 'focaAbmSectores', | |
11 | + 'focaBusquedaCliente', | |
12 | + 'focaCrearNotaPedido' | |
13 | + ]) | |
14 | + .constant("API_ENDPOINT", { | |
15 | + 'URL': '//201.190.140.28:9900' | |
16 | + }); | |
17 | + |
vendor/foca-crear-nota-pedido.js
... | ... | @@ -0,0 +1,291 @@ |
1 | +angular.module('focaCrearNotaPedido', ['ngRoute', 'ui.bootstrap', 'focaModalVendedores', | |
2 | + 'focaBusquedaProductos', 'focaModalPetroleras', 'focaBusquedaCliente']) | |
3 | + .config(['$routeProvider', function($routeProvider) { | |
4 | + $routeProvider.when('/venta-nota-pedido/crear', { | |
5 | + controller: 'notaPedidoListaCtrl', | |
6 | + templateUrl: 'nota-pedido-lista.html' | |
7 | + }); | |
8 | + }]) | |
9 | + .config(['$routeProvider', function($routeProvider) { | |
10 | + $routeProvider.when('/venta-nota-pedido/abm', { | |
11 | + controller: 'notaPedidoCtrl', | |
12 | + templateUrl: 'nota-pedido.html' | |
13 | + }); | |
14 | + }]); | |
15 | + | |
16 | +angular.module('focaCrearNotaPedido') | |
17 | + .controller('notaPedidoCtrl', | |
18 | + [ | |
19 | + '$scope', | |
20 | + '$uibModal', | |
21 | + '$location', | |
22 | + 'crearNotaPedidoService', | |
23 | + function($scope, $uibModal, $location, crearNotaPedidoService) { | |
24 | + $scope.notaPedido = {}; | |
25 | + $scope.articulosTabla = []; | |
26 | + var idLista; | |
27 | + var notaPedidoTemp = crearNotaPedidoService.getNotaPedido(); | |
28 | + $scope.domiciliosCliente = crearNotaPedidoService.getDomicilios(1); | |
29 | + crearNotaPedidoService.getPrecioCondicion().then( | |
30 | + function(res) { | |
31 | + $scope.precioCondiciones = res.data; | |
32 | + } | |
33 | + ); | |
34 | + if (notaPedidoTemp != undefined) { | |
35 | + notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga); | |
36 | + $scope.notaPedido = notaPedidoTemp; | |
37 | + $scope.notaPedido.flete = ($scope.notaPedido.flete).toString(); | |
38 | + $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString(); | |
39 | + idLista = $scope.notaPedido.precioCondicion; | |
40 | + crearNotaPedidoService.getArticulosByIdNotaPedido($scope.notaPedido.id).then( | |
41 | + function(res) { | |
42 | + $scope.articulosTabla = res.data; | |
43 | + } | |
44 | + ); | |
45 | + crearNotaPedidoService.getDomiciliosByIdNotaPedido($scope.notaPedido.id).then( | |
46 | + function(res) { | |
47 | + $scope.notaPedido.domicilio = res.data; | |
48 | + } | |
49 | + ) | |
50 | + } else { | |
51 | + $scope.notaPedido.fechaCarga = new Date(); | |
52 | + $scope.notaPedido.domicilio = [{ id: 0 }] | |
53 | + $scope.notaPedido.bomba = '1'; | |
54 | + $scope.notaPedido.flete = '1'; | |
55 | + idLista = undefined; | |
56 | + } | |
57 | + $scope.addNewDom = function() { | |
58 | + $scope.notaPedido.domicilio.push({ 'id': 0 }); | |
59 | + } | |
60 | + $scope.removeNewChoice = function(choice) { | |
61 | + if ($scope.notaPedido.domicilio.length > 1) { | |
62 | + $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex(c => c.$$hashKey == choice.$$hashKey), 1) | |
63 | + } | |
64 | + } | |
65 | + $scope.crearNotaPedido = function() { | |
66 | + var total = 0; | |
67 | + for (var i = $scope.articulosTabla.length - 1; i >= 0; i--) { | |
68 | + total += $scope.articulosTabla[i].precio * $scope.articulosTabla[i].cantidad; | |
69 | + } | |
70 | + | |
71 | + var notaPedido = { | |
72 | + id: 0, | |
73 | + precioCondicion: $scope.notaPedido.precioCondicion, | |
74 | + fechaCarga: $scope.notaPedido.fechaCarga, | |
75 | + vendedor: $scope.notaPedido.vendedor, | |
76 | + cliente: $scope.notaPedido.cliente, | |
77 | + producto: $scope.notaPedido.producto, | |
78 | + bomba: $scope.notaPedido.bomba, | |
79 | + petrolera: $scope.notaPedido.petrolera, | |
80 | + domicilio: $scope.notaPedido.domicilio, | |
81 | + kilometros: $scope.notaPedido.kilometros, | |
82 | + jurisdiccionIIBB: $scope.notaPedido.jurisdiccionIIBB, | |
83 | + costoFinanciacion: $scope.notaPedido.costoFinanciacion, | |
84 | + flete: $scope.notaPedido.flete, | |
85 | + costoUnitarioKmFlete: $scope.notaPedido.costoUnitarioKmFlete, | |
86 | + total : total | |
87 | + } | |
88 | + crearNotaPedidoService.crearNotaPedido(notaPedido).then( | |
89 | + function(res) { | |
90 | + $location.path('/venta-nota-pedido/crear'); | |
91 | + } | |
92 | + ) | |
93 | + var articulosNotaPedido = $scope.articulosTabla; | |
94 | + for(var i = 0; i< articulosNotaPedido.length;i++) { | |
95 | + crearNotaPedidoService.crearArticulosParaNotaPedido(articulosNotaPedido[i]).then( | |
96 | + function(res) { | |
97 | + return; | |
98 | + } | |
99 | + ) | |
100 | + } | |
101 | + | |
102 | + } | |
103 | + $scope.siguienteTab = function() { | |
104 | + $scope.active = 1; | |
105 | + } | |
106 | + $scope.seleccionarArticulo = function() { | |
107 | + if (idLista == undefined) { | |
108 | + alert('primero seleccione una lista de precio y condicion'); | |
109 | + return; | |
110 | + } | |
111 | + var modalInstance = $uibModal.open( | |
112 | + { | |
113 | + ariaLabelledBy: 'Busqueda de Productos', | |
114 | + templateUrl: 'modal-busqueda-productos.html', | |
115 | + controller: 'modalBusquedaProductosCtrl', | |
116 | + resolve: { idLista: function() { return idLista } }, | |
117 | + size: 'lg' | |
118 | + } | |
119 | + ) | |
120 | + modalInstance.result.then( | |
121 | + function(producto) { | |
122 | + var newArt = | |
123 | + { | |
124 | + id: 0, | |
125 | + codigo: producto.FiltroSectorCodigo, | |
126 | + item: $scope.articulosTabla.length + 1, | |
127 | + nombre: producto.descripcion, | |
128 | + precio: producto.precio, | |
129 | + costoUnitario: producto.costo, | |
130 | + cantidad: 1 | |
131 | + } | |
132 | + $scope.articulosTabla.unshift(newArt); | |
133 | + }, function() { | |
134 | + // funcion ejecutada cuando se cancela el modal | |
135 | + } | |
136 | + ); | |
137 | + } | |
138 | + $scope.seleccionarVendedor = function() { | |
139 | + var modalInstance = $uibModal.open( | |
140 | + { | |
141 | + ariaLabelledBy: 'Busqueda de Vendedores', | |
142 | + templateUrl: 'modal-vendedores.html', | |
143 | + controller: 'modalVendedoresCtrl', | |
144 | + size: 'lg' | |
145 | + } | |
146 | + ) | |
147 | + modalInstance.result.then( | |
148 | + function(vendedor) { | |
149 | + $scope.notaPedido.vendedor = vendedor.NomVen; | |
150 | + }, function() { | |
151 | + | |
152 | + } | |
153 | + ); | |
154 | + } | |
155 | + $scope.seleccionarPetrolera = function() { | |
156 | + var modalInstance = $uibModal.open( | |
157 | + { | |
158 | + ariaLabelledBy: 'Busqueda de Petrolera', | |
159 | + templateUrl: 'modal-petroleras.html', | |
160 | + controller: 'modalPetrolerasCtrl', | |
161 | + size: 'lg' | |
162 | + } | |
163 | + ) | |
164 | + modalInstance.result.then( | |
165 | + function(petrolera) { | |
166 | + $scope.notaPedido.petrolera = petrolera.NOM; | |
167 | + }, function() { | |
168 | + | |
169 | + } | |
170 | + ); | |
171 | + } | |
172 | + $scope.seleccionarCliente = function() { | |
173 | + var modalInstance = $uibModal.open( | |
174 | + { | |
175 | + ariaLabelledBy: 'Busqueda de Cliente', | |
176 | + templateUrl: 'foca-busqueda-cliente-modal.html', | |
177 | + controller: 'focaBusquedaClienteModalController', | |
178 | + size: 'lg' | |
179 | + } | |
180 | + ) | |
181 | + modalInstance.result.then( | |
182 | + function(cliente) { | |
183 | + $scope.notaPedido.cliente = cliente.nom; | |
184 | + }, function() { | |
185 | + | |
186 | + } | |
187 | + ); | |
188 | + } | |
189 | + $scope.obtenerDomicilios = function(id) { | |
190 | + crearNotaPedidoService.getDomicilios(id).then( | |
191 | + function(res) { | |
192 | + $scope.notaPedido.domicilio = res.data; | |
193 | + } | |
194 | + ) | |
195 | + } | |
196 | + $scope.getSubTotal = function(item) { | |
197 | + var subTotal = 0; | |
198 | + var array = $scope.articulosTabla.filter(a => a.item <= item); | |
199 | + for (var i = 0; i < array.length; i++) { | |
200 | + subTotal += array[i].precio * array[i].cantidad | |
201 | + } | |
202 | + return subTotal.toFixed(2); | |
203 | + } | |
204 | + $scope.cargarArticulos = function() { | |
205 | + idLista = $scope.notaPedido.precioCondicion; | |
206 | + $scope.articulosTabla = []; | |
207 | + } | |
208 | + } | |
209 | + ] | |
210 | + ) | |
211 | + .controller('notaPedidoListaCtrl', [ | |
212 | + '$scope', | |
213 | + 'crearNotaPedidoService', | |
214 | + '$location', | |
215 | + function($scope, crearNotaPedidoService, $location) { | |
216 | + crearNotaPedidoService.obtenerNotaPedido().then(function(datos) { | |
217 | + $scope.notaPedidos = datos.data; | |
218 | + }); | |
219 | + $scope.editar = function(notaPedido) { | |
220 | + crearNotaPedidoService.setNotaPedido(notaPedido); | |
221 | + $location.path('/venta-nota-pedido/abm/'); | |
222 | + } | |
223 | + $scope.crearPedido = function() { | |
224 | + crearNotaPedidoService.clearNotaPedido(); | |
225 | + $location.path('/venta-nota-pedido/abm/'); | |
226 | + } | |
227 | + } | |
228 | + ]) | |
229 | + | |
230 | +angular.module('focaCrearNotaPedido') | |
231 | + .service('crearNotaPedidoService', ['$http', 'API_ENDPOINT',function($http, API_ENDPOINT) { | |
232 | + var route = API_ENDPOINT.URL; | |
233 | + var notaPedido; | |
234 | + return { | |
235 | + crearNotaPedido: function(notaPedido) { | |
236 | + return $http.post(route + '/nota-pedido', {notaPedido: notaPedido}); | |
237 | + }, | |
238 | + obtenerNotaPedido: function() { | |
239 | + return $http.get(route +'/nota-pedido'); | |
240 | + }, | |
241 | + setNotaPedido: function(notaPedido) { | |
242 | + this.notaPedido = notaPedido; | |
243 | + }, | |
244 | + clearNotaPedido: function() { | |
245 | + this.notaPedido = undefined; | |
246 | + }, | |
247 | + getNotaPedido: function() { | |
248 | + return this.notaPedido; | |
249 | + }, | |
250 | + getArticulosByIdNotaPedido: function(id) { | |
251 | + return $http.get(route+'/articulos/nota-pedido/'+id); | |
252 | + }, | |
253 | + crearArticulosParaNotaPedido: function(articuloNotaPedido) { | |
254 | + return $http.post(route + '/articulos/nota-pedido', {articuloNotaPedido}); | |
255 | + }, | |
256 | + getDomiciliosByIdNotaPedido: function(id) { | |
257 | + return $http.get(route +'/nota-pedido/'+id+'/domicilios'); | |
258 | + }, | |
259 | + //EN DESARROLLO | |
260 | + getDomicilios: function(id) { | |
261 | + // return $http.get(route + '/'+id) | |
262 | + var domicilio = [ | |
263 | + { | |
264 | + id: 1, | |
265 | + dom: 'RISSO PATRON 781' | |
266 | + }, | |
267 | + { | |
268 | + id: 2, | |
269 | + dom: 'MARIANO MORENO 533' | |
270 | + }, | |
271 | + { | |
272 | + id: 3, | |
273 | + dom: 'SALTA 796' | |
274 | + } | |
275 | + ] | |
276 | + return domicilio; | |
277 | + }, | |
278 | + getPrecioCondicion: function() { | |
279 | + return $http.get(route + '/precio-condicion') | |
280 | + }, | |
281 | + getPrecioCondicionById: function(id) { | |
282 | + return $http.get(route + '/precio-condicion/' + id) | |
283 | + }, | |
284 | + getPlazoPagoByPrecioCondicion: function(id) { | |
285 | + return $http.get(route + '/plazo-pago/precio-condicion/'+ id) | |
286 | + } | |
287 | + } | |
288 | + }]) | |
289 | + | |
290 | +angular.module('focaCrearNotaPedido').run(['$templateCache', function($templateCache) {$templateCache.put('nota-pedido-lista.html','<table class="table table-sm table-hover table-nonfluid">\r\n <thead>\r\n <tr>\r\n <th>C\xF3digo</th>\r\n <th>Vendedor</th>\r\n <th>Cliente</th>\r\n <th>Petrolera</th>\r\n <th>Total</th>\r\n <th><button class="btn btn-primary" ng-click="crearPedido()">Crear</button></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr ng-repeat="item in notaPedidos">\r\n <td ng-bind="item.id"></td>\r\n <td ng-bind="item.vendedor"></td>\r\n <td ng-bind="item.cliente"></td>\r\n <td ng-bind="item.petrolera"></td>\r\n <td ng-bind="item.total | currency"></td>\r\n <td>\r\n <button class="btn btn-info" ng-show="false" ng-click="editar(item)"><i class="fa fa-edit"></i></button>\r\n <!-- <button class="btn btn-danger" ng-click="borrar(item.id)"><i class="fa fa-trash"></i></button> -->\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n'); | |
291 | +$templateCache.put('nota-pedido.html','<form name="formCrearNota" ng-submit="siguienteTab()">\r\n <uib-tabset active="active">\r\n <uib-tab index="0" heading="General">\r\n <input type="hidden" name="id" ng-model="notaPedido.id">\r\n <div>\r\n <div class="col-auto my-2">\r\n <button type="submit" title="Siguiente" class="btn btn-primary float-right">Siguiente</button>\r\n </div>\r\n </div>\r\n <br>\r\n <br>\r\n <div class="row">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Fecha de carga</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="date" class="form-control" ng-model="notaPedido.fechaCarga" ng-required="true">\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Kil\xF3metros</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="number" min="0" step="0.01" class="form-control" placeholder="Kil\xF3metros recorridos para la entrega en el cliente" ng-model="notaPedido.kilometros" ng-required="true">\r\n </div>\r\n </div>\r\n </div>\r\n <div class="row my-3">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Jurisdicci\xF3n de IIBB</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="text" class="form-control" placeholder="Jurisdicci\xF3n de IIBB donde se realiza la entrega" ng-model="notaPedido.jurisdiccionIIBB" ng-required="true">\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Costo de financiaci\xF3n</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <div class="input-group mb-2">\r\n <div class="input-group-prepend">\r\n <div class="input-group-text">$</div>\r\n </div>\r\n <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo de financiaci\xF3n" ng-model="notaPedido.costoFinanciacion">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="row">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Bomba</label>\r\n </div>\r\n </div>\r\n <div class="col-md-1">\r\n <div class="col-auto">\r\n <div class="form-check custom-radio custom-control-inline">\r\n <input class="form-check-input" type="radio" name="radioBomba" value="1" ng-model="notaPedido.bomba">\r\n <label class="form-check-label">\r\n Si\r\n </label>\r\n </div>\r\n <div class="form-check custom-radio custom-control-inline">\r\n <input class="form-check-input" type="radio" name="radioBomba" value="0" ng-model="notaPedido.bomba">\r\n <label class="form-check-label">\r\n No\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="col-md-1">\r\n <div class="col-auto">\r\n <label>Flete</label>\r\n </div>\r\n </div>\r\n <div class="col-md-1">\r\n <div class="col-auto">\r\n <div class="form-check custom-radio custom-control-inline">\r\n <input class="form-check-input" type="radio" name="radioFlete" value="1" ng-model="notaPedido.flete">\r\n <label class="form-check-label">\r\n Si\r\n </label>\r\n </div>\r\n <div class="form-check custom-radio custom-control-inline">\r\n <input class="form-check-input" type="radio" name="radioFlete" value="0" ng-model="notaPedido.flete">\r\n <label class="form-check-label">\r\n FOB\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Costo unitario kilometro flete</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <div class="input-group mb-2">\r\n <div class="input-group-prepend">\r\n <div class="input-group-text">$</div>\r\n </div>\r\n <input type="number" min="0" step="0.01" class="form-control" placeholder="Costo unitario del kilometro del flete" ng-model="notaPedido.costoUnitarioKmFlete" ng-required="true">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="row my-3">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Vendedor</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="text" class="form-control" placeholder="Seleccione vendedor" ng-model="notaPedido.vendedor" ng-click="seleccionarVendedor()" readonly="readonly">\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Petrolera</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="text" class="form-control" placeholder="Seleccione petrolera" ng-model="notaPedido.petrolera" ng-click="seleccionarPetrolera()" readonly="readonly">\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class="row">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Cliente</label>\r\n </div>\r\n </div>\r\n <div class="col-md-3">\r\n <div class="col-auto">\r\n <input type="text" class="form-control" placeholder="Seleccione cliente" ng-model="notaPedido.cliente" ng-click="seleccionarCliente()" ng-change="obtenerDomicilios()" readonly="readonly">\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Domicilio</label>\r\n </div>\r\n </div>\r\n <div class="col-md-4">\r\n <div class="col-md-12 row" ng-repeat="domicilio in notaPedido.domicilio">\r\n <div class="col-auto">\r\n <input type="text" ng-model="domicilio.dom" placeholder="Domicilio" uib-typeahead="\r\n domi.dom\r\n for domi\r\n in domiciliosCliente\r\n " typeahead-no-results="sinResultados" typeahead-min-length="0" typeahead-on-select="seleccionar($item)" class="form-control mb-2" ng-disabled="domicilio.id > 0" ng-required="true">\r\n <i ng-show="cargandoClientes" class="fas fa-sync"></i>\r\n <div ng-show="sinResultados">\r\n No se encontraron resultados.\r\n </div>\r\n </div>\r\n <a class="btn" ng-click="removeNewChoice(domicilio)" ng-if="domicilio.id==0">-</a>\r\n <a class="btn" ng-click="addNewDom()">+</a>\r\n </div>\r\n </div>\r\n </div>\r\n </uib-tab>\r\n <uib-tab index="1" heading="Producto" disable="formCrearNota.$invalid">\r\n <div>\r\n <div class="col-auto my-2">\r\n <button ng-click="crearNotaPedido()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button>\r\n </div>\r\n </div>\r\n <br>\r\n <br>\r\n <div class="row">\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Precios y condiciones</label>\r\n </div>\r\n </div>\r\n <div class="col-md-4">\r\n <div class="col-auto">\r\n <select class="form-control" ng-change="cargarArticulos()" ng-model="notaPedido.precioCondicion" ng-options="preCond.id as preCond.nombre for preCond in precioCondiciones">\r\n </select>\r\n </div>\r\n </div>\r\n <div class="col-md-2">\r\n <div class="col-auto">\r\n <label>Producto</label>\r\n </div>\r\n </div>\r\n <div class="col-md-4">\r\n <div class="col-auto">\r\n <input type="text" class="form-control" placeholder="Seleccione producto" ng-model="notaPedido.producto" ng-click="seleccionarArticulo()" readonly="readonly">\r\n </div>\r\n </div>\r\n </div>\r\n <div class="col-md-12">\r\n <table class="table my-3 table-hover table-nonfluid">\r\n <thead>\r\n <tr>\r\n <th>C\xF3digo</th>\r\n <th>Nombre</th>\r\n <th>Precio unitario</th>\r\n <th>Costo unitario bruto</th>\r\n <th>Cantidad</th>\r\n <th>Subtotal</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr ng-repeat="articulo in articulosTabla">\r\n <td ng-bind="articulo.codigo"></td>\r\n <td ng-bind="articulo.nombre"></td>\r\n <td ng-bind="articulo.precio"></td>\r\n <td ng-bind="articulo.costoUnitario"></td>\r\n <td><input ng-model="articulo.cantidad" class="form-control" type="number" min="0" value="1"></td>\r\n <td ng-bind="getSubTotal(articulo.item)"></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </uib-tab>\r\n </uib-tabset>\r\n</form>');}]); | |
0 | 292 | \ No newline at end of file |