Commit f4c819c10638d75d8fa71c24bb27c718233ff32f
Exists in
master
Merge branch 'master' into 'master'
Master See merge request modulos-npm/foca-crear-nota-pedido!13
Showing
3 changed files
Show diff stats
src/js/controller.js
... | ... | @@ -3,7 +3,7 @@ angular.module('focaCrearNotaPedido') |
3 | 3 | ['$scope', '$uibModal', '$location', 'crearNotaPedidoService', 'focaModalService', |
4 | 4 | function($scope, $uibModal, $location, crearNotaPedidoService, focaModalService) { |
5 | 5 | $scope.show = false; |
6 | - $scope.edit = false; | |
6 | + $scope.cargando = true; | |
7 | 7 | $scope.dateOptions = { |
8 | 8 | maxDate: new Date(), |
9 | 9 | minDate: new Date(2010, 0, 1) |
... | ... | @@ -60,25 +60,28 @@ angular.module('focaCrearNotaPedido') |
60 | 60 | $scope.crearNotaPedido = function() { |
61 | 61 | var notaPedido = { |
62 | 62 | id: 0, |
63 | - precioCondicion: $scope.notaPedido.precioCondicion, | |
64 | 63 | fechaCarga: $scope.notaPedido.fechaCarga, |
65 | - vendedor: $scope.notaPedido.vendedor, | |
66 | - cliente: $scope.notaPedido.cliente, | |
67 | - producto: $scope.notaPedido.producto, | |
64 | + vendedor: $scope.notaPedido.vendedor.nombre, | |
65 | + cliente: $scope.notaPedido.cliente.nombre, | |
66 | + domicilio: $scope.notaPedido.domicilio.id, | |
67 | + precioCondicion: $scope.notaPedido.precioCondicion, | |
68 | 68 | bomba: $scope.notaPedido.bomba, |
69 | - petrolera: $scope.notaPedido.petrolera, | |
70 | - domicilio: $scope.notaPedido.domicilio, | |
71 | - kilometros: $scope.notaPedido.kilometros, | |
72 | - jurisdiccionIIBB: $scope.notaPedido.jurisdiccionIIBB, | |
73 | - costoFinanciacion: $scope.notaPedido.costoFinanciacion, | |
74 | 69 | flete: $scope.notaPedido.flete, |
75 | - costoUnitarioKmFlete: $scope.notaPedido.costoUnitarioKmFlete, | |
76 | - total: $scope.articulosTabla[0].subTotal | |
70 | + total: $scope.getTotal() | |
77 | 71 | }; |
78 | 72 | crearNotaPedidoService.crearNotaPedido(notaPedido).then( |
79 | 73 | function() { |
80 | - focaModalService('Nota pedido creada'); | |
81 | - $location.path('/venta-nota-pedido'); | |
74 | + focaModalService.alert('Nota pedido creada'); | |
75 | + // $location.path('/venta-nota-pedido'); | |
76 | + // var flete = { | |
77 | + // idNotaPedido: data.data.id, | |
78 | + // idTransportista: $scope.notaPedido.fleteId, | |
79 | + // idChofer: $scope.chofer.id, | |
80 | + // idVehiculo: $scope.vehiculo.id, | |
81 | + // kilometros: $scope.notaPedido.kilometros, | |
82 | + // costoKilometro: $scope.notaPedido.costoUnitarioKmFlete | |
83 | + // }; | |
84 | + //TO DO - Insert de flete | |
82 | 85 | } |
83 | 86 | ); |
84 | 87 | var articulosNotaPedido = $scope.articulosTabla; |
... | ... | @@ -90,6 +93,7 @@ angular.module('focaCrearNotaPedido') |
90 | 93 | } |
91 | 94 | ); |
92 | 95 | } |
96 | + | |
93 | 97 | }; |
94 | 98 | $scope.siguienteTab = function() { |
95 | 99 | $scope.active = 1; |
... | ... | @@ -121,9 +125,10 @@ angular.module('focaCrearNotaPedido') |
121 | 125 | nombre: producto.descripcion, |
122 | 126 | precio: producto.precio.toFixed(2), |
123 | 127 | costoUnitario: producto.costo, |
124 | - cantidad: 1 | |
128 | + edit: false | |
125 | 129 | }; |
126 | 130 | $scope.articuloACargar = newArt; |
131 | + $scope.cargando = false; | |
127 | 132 | }, function() { |
128 | 133 | // funcion ejecutada cuando se cancela el modal |
129 | 134 | } |
... | ... | @@ -247,8 +252,11 @@ angular.module('focaCrearNotaPedido') |
247 | 252 | function(flete) { |
248 | 253 | $scope.choferes = ''; |
249 | 254 | $scope.vehiculos = ''; |
255 | + $scope.notaPedido.chofer = ''; | |
256 | + $scope.notaPedido.vehiculo = ''; | |
257 | + $scope.notaPedido.costoUnitarioKmFlete = ''; | |
250 | 258 | $scope.notaPedido.fleteNombre = flete.nombre; |
251 | - $scope.notaPedido.costoUnitarioKmFlete = flete.costoKilometro; | |
259 | + $scope.notaPedido.fleteId = flete.id; | |
252 | 260 | $scope.choferes = flete.chofer; |
253 | 261 | $scope.vehiculos = flete.vehiculo; |
254 | 262 | }, function() { |
... | ... | @@ -259,20 +267,31 @@ angular.module('focaCrearNotaPedido') |
259 | 267 | }; |
260 | 268 | $scope.agregarATabla = function(key) { |
261 | 269 | if(key === 13) { |
270 | + if($scope.articuloACargar.cantidad === undefined || | |
271 | + $scope.articuloACargar.cantidad === 0 || | |
272 | + $scope.articuloACargar.cantidad === null ){ | |
273 | + focaModalService.alert('El valor debe ser al menos 1'); | |
274 | + return; | |
275 | + } | |
262 | 276 | $scope.articulosTabla.unshift($scope.articuloACargar); |
263 | - $scope.articuloACargar = undefined; | |
277 | + $scope.cargando = true; | |
264 | 278 | } |
265 | 279 | }; |
266 | 280 | $scope.quitarArticulo = function(key) { |
267 | 281 | $scope.articulosTabla.splice(key, 1); |
268 | 282 | }; |
269 | - $scope.editarArticulo = function(key) { | |
283 | + $scope.editarArticulo = function(key, articulo) { | |
270 | 284 | if(key === 13) { |
271 | - $scope.edit = false; | |
272 | - } | |
285 | + if(articulo.cantidad === null || articulo.cantidad === 0 || | |
286 | + articulo.cantidad === undefined){ | |
287 | + focaModalService.alert('El valor debe ser al menos 1'); | |
288 | + return; | |
289 | + } | |
290 | + articulo.edit = false; | |
291 | + } | |
273 | 292 | }; |
274 | - $scope.cambioEdit = function() { | |
275 | - $scope.edit = !$scope.edit ? true : false; | |
293 | + $scope.cambioEdit = function(articulo) { | |
294 | + articulo.edit = true; | |
276 | 295 | }; |
277 | 296 | $scope.limpiarFlete = function() { |
278 | 297 | $scope.notaPedido.fleteNombre = ''; |
... | ... | @@ -295,6 +314,10 @@ angular.module('focaCrearNotaPedido') |
295 | 314 | $scope.domicilio.dom = ''; |
296 | 315 | $scope.notaPedido.flete = 0; |
297 | 316 | }; |
317 | + $scope.resetFilter = function() { | |
318 | + $scope.articuloACargar = {}; | |
319 | + $scope.cargando = true; | |
320 | + }; | |
298 | 321 | } |
299 | 322 | ] |
300 | 323 | ) |
src/js/service.js
... | ... | @@ -55,6 +55,9 @@ angular.module('focaCrearNotaPedido') |
55 | 55 | }, |
56 | 56 | getPlazoPagoByPrecioCondicion: function(id) { |
57 | 57 | return $http.get(route + '/plazo-pago/precio-condicion/'+ id); |
58 | + }, | |
59 | + crearFlete: function(flete) { | |
60 | + return $http.post(route + '/flete', {flete : flete}); | |
58 | 61 | } |
59 | 62 | }; |
60 | 63 | }]); |
src/views/nota-pedido.html
... | ... | @@ -59,15 +59,10 @@ |
59 | 59 | <input |
60 | 60 | class="form-control selectable" |
61 | 61 | type="text" |
62 | - ng-model="domicilio.dom" | |
63 | - ng-click="abrirModalDomicilio()" | |
62 | + ng-model="domicilio" | |
64 | 63 | placeholder="Seleccione Domicilio" |
65 | - uib-typeahead=" | |
66 | - domi.dom | |
67 | - for domi | |
68 | - in domiciliosCliente | |
69 | - " | |
70 | 64 | typeahead-min-length="0" |
65 | + uib-typeahead="domi as domi.dom for domi in domiciliosCliente" | |
71 | 66 | > |
72 | 67 | </div> |
73 | 68 | <div class="form-group col-12 col-sm-6 col-md-4"> |
... | ... | @@ -141,7 +136,7 @@ |
141 | 136 | ng-show="notaPedido.flete == 1" |
142 | 137 | ng-model="notaPedido.chofer" |
143 | 138 | placeholder="Seleccione Chofer" |
144 | - uib-typeahead="chofer.nombre for chofer in choferes" | |
139 | + uib-typeahead="chofer as chofer.nombre for chofer in choferes" | |
145 | 140 | typeahead-min-length="0" |
146 | 141 | > |
147 | 142 | </div> |
... | ... | @@ -152,7 +147,7 @@ |
152 | 147 | ng-show="notaPedido.flete == 1" |
153 | 148 | ng-model="notaPedido.vehiculo" |
154 | 149 | placeholder="Seleccione Vehรญculo" |
155 | - uib-typeahead="vehiculo.tractor for vehiculo in vehiculos" | |
150 | + uib-typeahead="vehiculo as vehiculo.tractor for vehiculo in vehiculos" | |
156 | 151 | typeahead-min-length="0" |
157 | 152 | > |
158 | 153 | </div> |
... | ... | @@ -179,7 +174,13 @@ |
179 | 174 | </div> |
180 | 175 | </div> |
181 | 176 | <div class="col-auto my-2"> |
182 | - <button ng-click="crearPedidoDemo()" type="button" title="Crear nota pedido" class="btn btn-primary float-right">Crear</button> | |
177 | + <button | |
178 | + ng-click="crearNotaPedido()" | |
179 | + type="button" | |
180 | + title="Crear nota pedido" | |
181 | + class="btn btn-primary float-right"> | |
182 | + Guardar | |
183 | + </button> | |
183 | 184 | </div> |
184 | 185 | </div> |
185 | 186 | <div class="row"> |
... | ... | @@ -205,15 +206,19 @@ |
205 | 206 | </tr> |
206 | 207 | </thead> |
207 | 208 | <tbody> |
208 | - <tr ng-show="!articuloACargar"> | |
209 | - <td colspan="2"><input placeholder="Seleccione Articulo" class="form-control" readonly ng-click="seleccionarArticulo()"></td> | |
209 | + <tr ng-show="cargando"> | |
210 | + <td colspan="2"><input | |
211 | + placeholder="Seleccione Articulo" | |
212 | + class="form-control" | |
213 | + readonly | |
214 | + ng-click="seleccionarArticulo()"></td> | |
210 | 215 | <td></td> |
211 | 216 | <td></td> |
212 | 217 | <td></td> |
213 | 218 | <td></td> |
214 | 219 | <td></td> |
215 | 220 | </tr> |
216 | - <tr ng-show="articuloACargar"> | |
221 | + <tr ng-show="!cargando"> | |
217 | 222 | <td><input |
218 | 223 | class="form-control" |
219 | 224 | ng-model="articuloACargar.sector" |
... | ... | @@ -234,9 +239,9 @@ |
234 | 239 | class="form-control" |
235 | 240 | type="number" |
236 | 241 | min="1" |
237 | - value="1" | |
238 | 242 | ng-model="articuloACargar.cantidad" |
239 | - foca-focus="articuloACargar.cantidad == 1" | |
243 | + foca-focus="!cargando" | |
244 | + esc-key="resetFilter()" | |
240 | 245 | ng-keypress="agregarATabla($event.keyCode)"></td> |
241 | 246 | <td><input |
242 | 247 | class="form-control" |
... | ... | @@ -254,15 +259,19 @@ |
254 | 259 | <td ng-bind="articulo.descripcion"></td> |
255 | 260 | <td ng-bind="articulo.precio | currency:'$'"></td> |
256 | 261 | <td><input |
257 | - ng-show="edit" | |
262 | + ng-show="articulo.edit" | |
258 | 263 | ng-model="articulo.cantidad" |
259 | 264 | class="form-control" |
260 | 265 | type="number" |
261 | 266 | min="1" |
262 | - value="1" | |
263 | - foca-focus="edit" | |
264 | - ng-keypress="editarArticulo($event.keyCode)"> | |
265 | - <i class="selectable" ng-click="cambioEdit()" ng-hide="edit" ng-bind="articulo.cantidad"></i> | |
267 | + foca-focus="articulo.edit" | |
268 | + ng-keypress="editarArticulo($event.keyCode, articulo)"> | |
269 | + <i | |
270 | + class="selectable" | |
271 | + ng-click="cambioEdit(articulo)" | |
272 | + ng-hide="articulo.edit" | |
273 | + ng-bind="articulo.cantidad"> | |
274 | + </i> | |
266 | 275 | </td> |
267 | 276 | <td ng-bind="(articulo.precio * articulo.cantidad) | currency: '$'"></td> |
268 | 277 | <td class="text-center"> |