Commit 2d7aa1429c1e0224cfcc4dea2a8d9f0002059533

Authored by Jose Pinto
1 parent 75673aac7e
Exists in master

codigo y nombre vendedor al seleccionarlo

Showing 1 changed file with 1 additions and 1 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', 1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl',
2 [ 2 [
3 '$scope', 3 '$scope',
4 '$uibModal', 4 '$uibModal',
5 '$location', 5 '$location',
6 '$filter', 6 '$filter',
7 '$timeout', 7 '$timeout',
8 'crearNotaPedidoService', 8 'crearNotaPedidoService',
9 'focaBotoneraLateralService', 9 'focaBotoneraLateralService',
10 'focaModalService', 10 'focaModalService',
11 'notaPedidoBusinessService', 11 'notaPedidoBusinessService',
12 '$rootScope', 12 '$rootScope',
13 'focaSeguimientoService', 13 'focaSeguimientoService',
14 'APP', 14 'APP',
15 'focaLoginService', 15 'focaLoginService',
16 function( 16 function(
17 $scope, $uibModal, $location, $filter, $timeout, crearNotaPedidoService, 17 $scope, $uibModal, $location, $filter, $timeout, crearNotaPedidoService,
18 focaBotoneraLateralService, focaModalService, notaPedidoBusinessService, 18 focaBotoneraLateralService, focaModalService, notaPedidoBusinessService,
19 $rootScope, focaSeguimientoService, APP, focaLoginService) 19 $rootScope, focaSeguimientoService, APP, focaLoginService)
20 { 20 {
21 if(APP === 'distribuidor') { 21 if(APP === 'distribuidor') {
22 var idVendedor = focaLoginService.getLoginData().vendedorCobrador; 22 var idVendedor = focaLoginService.getLoginData().vendedorCobrador;
23 $scope.botonera = crearNotaPedidoService.getBotonera(idVendedor); 23 $scope.botonera = crearNotaPedidoService.getBotonera(idVendedor);
24 crearNotaPedidoService.getVendedorById(idVendedor).then( 24 crearNotaPedidoService.getVendedorById(idVendedor).then(
25 function(res) { 25 function(res) {
26 var vendedor = res.data; 26 var vendedor = res.data;
27 $scope.$broadcast('addCabecera', { 27 $scope.$broadcast('addCabecera', {
28 label: 'Vendedor:', 28 label: 'Vendedor:',
29 valor: vendedor.NomVen 29 valor: vendedor.NomVen
30 }); 30 });
31 $scope.notaPedido.vendedor = vendedor; 31 $scope.notaPedido.vendedor = vendedor;
32 } 32 }
33 ); 33 );
34 }else { 34 }else {
35 $scope.botonera = crearNotaPedidoService.getBotonera(); 35 $scope.botonera = crearNotaPedidoService.getBotonera();
36 } 36 }
37 37
38 $scope.isNumber = angular.isNumber; 38 $scope.isNumber = angular.isNumber;
39 $scope.datepickerAbierto = false; 39 $scope.datepickerAbierto = false;
40 $scope.show = false; 40 $scope.show = false;
41 $scope.cargando = true; 41 $scope.cargando = true;
42 $scope.dateOptions = { 42 $scope.dateOptions = {
43 maxDate: new Date(), 43 maxDate: new Date(),
44 minDate: new Date(2010, 0, 1) 44 minDate: new Date(2010, 0, 1)
45 }; 45 };
46 46
47 $scope.notaPedido = { 47 $scope.notaPedido = {
48 id: 0, 48 id: 0,
49 vendedor: {}, 49 vendedor: {},
50 cliente: {}, 50 cliente: {},
51 proveedor: {}, 51 proveedor: {},
52 domicilio: {dom: ''}, 52 domicilio: {dom: ''},
53 moneda: {}, 53 moneda: {},
54 cotizacion: {} 54 cotizacion: {}
55 }; 55 };
56 var monedaPorDefecto; 56 var monedaPorDefecto;
57 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 57 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
58 crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { 58 crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) {
59 monedaPorDefecto = res.data[0]; 59 monedaPorDefecto = res.data[0];
60 $scope.notaPedido.moneda = monedaPorDefecto; 60 $scope.notaPedido.moneda = monedaPorDefecto;
61 $scope.notaPedido.cotizacion = monedaPorDefecto.cotizaciones[0]; 61 $scope.notaPedido.cotizacion = monedaPorDefecto.cotizaciones[0];
62 }); 62 });
63 63
64 $scope.cabecera = []; 64 $scope.cabecera = [];
65 $scope.showCabecera = true; 65 $scope.showCabecera = true;
66 66
67 $scope.now = new Date(); 67 $scope.now = new Date();
68 $scope.puntoVenta = '0000'; 68 $scope.puntoVenta = '0000';
69 $scope.comprobante = '00000000'; 69 $scope.comprobante = '00000000';
70 $scope.articulosTabla = []; 70 $scope.articulosTabla = [];
71 $scope.idLista = undefined; 71 $scope.idLista = undefined;
72 72
73 //SETEO BOTONERA LATERAL 73 //SETEO BOTONERA LATERAL
74 $timeout(function() { 74 $timeout(function() {
75 focaBotoneraLateralService.showSalir(false); 75 focaBotoneraLateralService.showSalir(false);
76 focaBotoneraLateralService.showPausar(true); 76 focaBotoneraLateralService.showPausar(true);
77 focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido); 77 focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido);
78 focaBotoneraLateralService.addCustomButton('Salir', salir); 78 focaBotoneraLateralService.addCustomButton('Salir', salir);
79 }); 79 });
80 80
81 crearNotaPedidoService.getNumeroNotaPedido().then( 81 crearNotaPedidoService.getNumeroNotaPedido().then(
82 function(res) { 82 function(res) {
83 $scope.puntoVenta = rellenar(res.data.sucursal, 4); 83 $scope.puntoVenta = rellenar(res.data.sucursal, 4);
84 $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8); 84 $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8);
85 }, 85 },
86 function(err) { 86 function(err) {
87 focaModalService.alert('La terminal no esta configurada correctamente'); 87 focaModalService.alert('La terminal no esta configurada correctamente');
88 console.info(err); 88 console.info(err);
89 } 89 }
90 ); 90 );
91 91
92 $scope.crearNotaPedido = function() { 92 $scope.crearNotaPedido = function() {
93 if(!$scope.notaPedido.vendedor.CodVen) { 93 if(!$scope.notaPedido.vendedor.CodVen) {
94 focaModalService.alert('Ingrese Vendedor'); 94 focaModalService.alert('Ingrese Vendedor');
95 return; 95 return;
96 } else if(!$scope.notaPedido.cliente.COD) { 96 } else if(!$scope.notaPedido.cliente.COD) {
97 focaModalService.alert('Ingrese Cliente'); 97 focaModalService.alert('Ingrese Cliente');
98 return; 98 return;
99 } else if(!$scope.notaPedido.proveedor.COD) { 99 } else if(!$scope.notaPedido.proveedor.COD) {
100 focaModalService.alert('Ingrese Proveedor'); 100 focaModalService.alert('Ingrese Proveedor');
101 return; 101 return;
102 } else if(!$scope.notaPedido.moneda.ID) { 102 } else if(!$scope.notaPedido.moneda.ID) {
103 focaModalService.alert('Ingrese Moneda'); 103 focaModalService.alert('Ingrese Moneda');
104 return; 104 return;
105 } else if(!$scope.notaPedido.cotizacion.ID) { 105 } else if(!$scope.notaPedido.cotizacion.ID) {
106 focaModalService.alert('Ingrese Cotización'); 106 focaModalService.alert('Ingrese Cotización');
107 return; 107 return;
108 } else if(!$scope.plazosPagos) { 108 } else if(!$scope.plazosPagos) {
109 focaModalService.alert('Ingrese Precios y Condiciones'); 109 focaModalService.alert('Ingrese Precios y Condiciones');
110 return; 110 return;
111 } else if( 111 } else if(
112 $scope.notaPedido.flete === undefined || $scope.notaPedido.flete === null) 112 $scope.notaPedido.flete === undefined || $scope.notaPedido.flete === null)
113 { 113 {
114 focaModalService.alert('Ingrese Flete'); 114 focaModalService.alert('Ingrese Flete');
115 return; 115 return;
116 } else if(!$scope.notaPedido.domicilioStamp) {//TODO validar domicilio correcto 116 } else if(!$scope.notaPedido.domicilioStamp) {//TODO validar domicilio correcto
117 focaModalService.alert('Ingrese Domicilio'); 117 focaModalService.alert('Ingrese Domicilio');
118 return; 118 return;
119 } else if($scope.articulosTabla.length === 0) { 119 } else if($scope.articulosTabla.length === 0) {
120 focaModalService.alert('Debe cargar al menos un articulo'); 120 focaModalService.alert('Debe cargar al menos un articulo');
121 return; 121 return;
122 } 122 }
123 focaBotoneraLateralService.startGuardar(); 123 focaBotoneraLateralService.startGuardar();
124 $scope.saveLoading = true; 124 $scope.saveLoading = true;
125 var notaPedido = { 125 var notaPedido = {
126 id: $scope.notaPedido.id, 126 id: $scope.notaPedido.id,
127 fechaCarga: $scope.now.toISOString().slice(0, 19).replace('T', ' '), 127 fechaCarga: $scope.now.toISOString().slice(0, 19).replace('T', ' '),
128 idVendedor: $scope.notaPedido.vendedor.CodVen, 128 idVendedor: $scope.notaPedido.vendedor.CodVen,
129 idCliente: $scope.notaPedido.cliente.COD, 129 idCliente: $scope.notaPedido.cliente.COD,
130 nombreCliente: $scope.notaPedido.cliente.NOM, 130 nombreCliente: $scope.notaPedido.cliente.NOM,
131 cuitCliente: $scope.notaPedido.cliente.CUIT, 131 cuitCliente: $scope.notaPedido.cliente.CUIT,
132 idProveedor: $scope.notaPedido.proveedor.COD, 132 idProveedor: $scope.notaPedido.proveedor.COD,
133 //idDomicilio: $scope.notaPedido.domicilio.id,TODO GUARDAR DOMICILIO ID 133 //idDomicilio: $scope.notaPedido.domicilio.id,TODO GUARDAR DOMICILIO ID
134 idCotizacion: $scope.notaPedido.cotizacion.ID, 134 idCotizacion: $scope.notaPedido.cotizacion.ID,
135 idPrecioCondicion: $scope.notaPedido.idPrecioCondicion, 135 idPrecioCondicion: $scope.notaPedido.idPrecioCondicion,
136 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR, 136 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR,
137 flete: $scope.notaPedido.flete, 137 flete: $scope.notaPedido.flete,
138 fob: $scope.notaPedido.fob, 138 fob: $scope.notaPedido.fob,
139 bomba: $scope.notaPedido.bomba, 139 bomba: $scope.notaPedido.bomba,
140 kilometros: $scope.notaPedido.kilometros, 140 kilometros: $scope.notaPedido.kilometros,
141 domicilioStamp: $scope.notaPedido.domicilioStamp, 141 domicilioStamp: $scope.notaPedido.domicilioStamp,
142 estado: 0, 142 estado: 0,
143 total: $scope.getTotal() 143 total: $scope.getTotal()
144 }; 144 };
145 crearNotaPedidoService.crearNotaPedido(notaPedido).then( 145 crearNotaPedidoService.crearNotaPedido(notaPedido).then(
146 function(data) { 146 function(data) {
147 // Al guardar los datos de la nota de pedido logueamos la 147 // Al guardar los datos de la nota de pedido logueamos la
148 // actividad para su seguimiento. 148 // actividad para su seguimiento.
149 //TODO: GUARDAR POSISIONAMIENTO AL EDITAR? 149 //TODO: GUARDAR POSISIONAMIENTO AL EDITAR?
150 focaSeguimientoService.guardarPosicion( 150 focaSeguimientoService.guardarPosicion(
151 'Nota de pedido', 151 'Nota de pedido',
152 data.data.id, 152 data.data.id,
153 '' 153 ''
154 ); 154 );
155 notaPedidoBusinessService.addArticulos($scope.articulosTabla, 155 notaPedidoBusinessService.addArticulos($scope.articulosTabla,
156 data.data.id, $scope.notaPedido.cotizacion.VENDEDOR); 156 data.data.id, $scope.notaPedido.cotizacion.VENDEDOR);
157 157
158 if($scope.notaPedido.puntosDescarga) { 158 if($scope.notaPedido.puntosDescarga) {
159 notaPedidoBusinessService.addPuntosDescarga(data.data.id, 159 notaPedidoBusinessService.addPuntosDescarga(data.data.id,
160 $scope.notaPedido.puntosDescarga); 160 $scope.notaPedido.puntosDescarga);
161 } 161 }
162 162
163 var plazos = $scope.plazosPagos; 163 var plazos = $scope.plazosPagos;
164 var plazosACrear = []; 164 var plazosACrear = [];
165 plazos.forEach(function(plazo) { 165 plazos.forEach(function(plazo) {
166 plazosACrear.push({ 166 plazosACrear.push({
167 idNotaPedido: data.data.id, 167 idNotaPedido: data.data.id,
168 dias: plazo.dias 168 dias: plazo.dias
169 }); 169 });
170 }); 170 });
171 if(plazosACrear.length){ 171 if(plazosACrear.length){
172 crearNotaPedidoService.crearPlazosParaNotaPedido(plazosACrear); 172 crearNotaPedidoService.crearPlazosParaNotaPedido(plazosACrear);
173 } 173 }
174 174
175 notaPedidoBusinessService.addEstado(data.data.id, 175 notaPedidoBusinessService.addEstado(data.data.id,
176 $scope.notaPedido.vendedor.CodVen); 176 $scope.notaPedido.vendedor.CodVen);
177 177
178 focaBotoneraLateralService.endGuardar(true); 178 focaBotoneraLateralService.endGuardar(true);
179 $scope.saveLoading = false; 179 $scope.saveLoading = false;
180 $scope.$broadcast('cleanCabecera'); 180 $scope.$broadcast('cleanCabecera');
181 $scope.$broadcast('addCabecera', { 181 $scope.$broadcast('addCabecera', {
182 label: 'Moneda:', 182 label: 'Moneda:',
183 valor: $scope.notaPedido.moneda.DETALLE 183 valor: $scope.notaPedido.moneda.DETALLE
184 }); 184 });
185 $scope.$broadcast('addCabecera', { 185 $scope.$broadcast('addCabecera', {
186 label: 'Fecha cotizacion:', 186 label: 'Fecha cotizacion:',
187 valor: $filter('date')($scope.notaPedido.cotizacion.FECHA, 'dd/MM/yyyy') 187 valor: $filter('date')($scope.notaPedido.cotizacion.FECHA, 'dd/MM/yyyy')
188 }); 188 });
189 $scope.$broadcast('addCabecera', { 189 $scope.$broadcast('addCabecera', {
190 label: 'Moneda:', 190 label: 'Moneda:',
191 valor: $scope.notaPedido.moneda.DETALLE 191 valor: $scope.notaPedido.moneda.DETALLE
192 }); 192 });
193 $scope.$broadcast('addCabecera', { 193 $scope.$broadcast('addCabecera', {
194 label: 'Cotizacion:', 194 label: 'Cotizacion:',
195 valor: $filter('number')($scope.notaPedido.cotizacion.VENDEDOR, '2') 195 valor: $filter('number')($scope.notaPedido.cotizacion.VENDEDOR, '2')
196 }); 196 });
197 crearNotaPedidoService.getNumeroNotaPedido().then( 197 crearNotaPedidoService.getNumeroNotaPedido().then(
198 function(res) { 198 function(res) {
199 $scope.puntoVenta = rellenar(res.data.sucursal, 4); 199 $scope.puntoVenta = rellenar(res.data.sucursal, 4);
200 $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8); 200 $scope.comprobante = rellenar(res.data.numeroNotaPedido, 8);
201 }, 201 },
202 function(err) { 202 function(err) {
203 focaModalService.alert( 203 focaModalService.alert(
204 'La terminal no esta configurada correctamente'); 204 'La terminal no esta configurada correctamente');
205 console.info(err); 205 console.info(err);
206 } 206 }
207 ); 207 );
208 $scope.notaPedido.vendedor = {}; 208 $scope.notaPedido.vendedor = {};
209 $scope.notaPedido.cliente = {}; 209 $scope.notaPedido.cliente = {};
210 $scope.notaPedido.proveedor = {}; 210 $scope.notaPedido.proveedor = {};
211 $scope.notaPedido.domicilio = {}; 211 $scope.notaPedido.domicilio = {};
212 $scope.notaPedido.flete = undefined; 212 $scope.notaPedido.flete = undefined;
213 $scope.notaPedido.fob = undefined; 213 $scope.notaPedido.fob = undefined;
214 $scope.notaPedido.bomba = undefined; 214 $scope.notaPedido.bomba = undefined;
215 $scope.notaPedido.kilometros = undefined; 215 $scope.notaPedido.kilometros = undefined;
216 $scope.articulosTabla = []; 216 $scope.articulosTabla = [];
217 }, 217 },
218 function(error) { 218 function(error) {
219 focaModalService.alert('Hubo un error al crear la nota de pedido'); 219 focaModalService.alert('Hubo un error al crear la nota de pedido');
220 focaBotoneraLateralService.endGuardar(); 220 focaBotoneraLateralService.endGuardar();
221 $scope.saveLoading = false; 221 $scope.saveLoading = false;
222 console.info(error); 222 console.info(error);
223 } 223 }
224 ); 224 );
225 }; 225 };
226 226
227 $scope.seleccionarNotaPedido = function() { 227 $scope.seleccionarNotaPedido = function() {
228 var modalInstance = $uibModal.open( 228 var modalInstance = $uibModal.open(
229 { 229 {
230 ariaLabelledBy: 'Busqueda de Nota de Pedido', 230 ariaLabelledBy: 'Busqueda de Nota de Pedido',
231 templateUrl: 'foca-modal-nota-pedido.html', 231 templateUrl: 'foca-modal-nota-pedido.html',
232 controller: 'focaModalNotaPedidoController', 232 controller: 'focaModalNotaPedidoController',
233 size: 'lg', 233 size: 'lg',
234 resolve: { 234 resolve: {
235 usadoPor: function() {return 'notaPedido';}, 235 usadoPor: function() {return 'notaPedido';},
236 idVendedor: function() { 236 idVendedor: function() {
237 if(APP === 'distribuidor') 237 if(APP === 'distribuidor')
238 return $scope.notaPedido.vendedor.CodVen; 238 return $scope.notaPedido.vendedor.CodVen;
239 else 239 else
240 return null; 240 return null;
241 } 241 }
242 } 242 }
243 } 243 }
244 ); 244 );
245 modalInstance.result.then( 245 modalInstance.result.then(
246 function(notaPedido) { 246 function(notaPedido) {
247 $scope.now = new Date(notaPedido.fechaCarga); 247 $scope.now = new Date(notaPedido.fechaCarga);
248 //añado cabeceras 248 //añado cabeceras
249 $scope.notaPedido.id = notaPedido.id; 249 $scope.notaPedido.id = notaPedido.id;
250 $scope.$broadcast('removeCabecera', 'Bomba:'); 250 $scope.$broadcast('removeCabecera', 'Bomba:');
251 $scope.$broadcast('removeCabecera', 'Kilometros:'); 251 $scope.$broadcast('removeCabecera', 'Kilometros:');
252 var cabeceras = [ 252 var cabeceras = [
253 { 253 {
254 label: 'Moneda:', 254 label: 'Moneda:',
255 valor: notaPedido.cotizacion.moneda.DETALLE 255 valor: notaPedido.cotizacion.moneda.DETALLE
256 }, 256 },
257 { 257 {
258 label: 'Fecha cotizacion:', 258 label: 'Fecha cotizacion:',
259 valor: $filter('date')(notaPedido.cotizacion.FECHA, 259 valor: $filter('date')(notaPedido.cotizacion.FECHA,
260 'dd/MM/yyyy') 260 'dd/MM/yyyy')
261 }, 261 },
262 { 262 {
263 label: 'Cotizacion:', 263 label: 'Cotizacion:',
264 valor: $filter('number')(notaPedido.cotizacion.VENDEDOR, 264 valor: $filter('number')(notaPedido.cotizacion.VENDEDOR,
265 '2') 265 '2')
266 }, 266 },
267 { 267 {
268 label: 'Cliente:', 268 label: 'Cliente:',
269 valor: notaPedido.cliente.NOM 269 valor: notaPedido.cliente.NOM
270 }, 270 },
271 { 271 {
272 label: 'Domicilio:', 272 label: 'Domicilio:',
273 valor: notaPedido.domicilioStamp 273 valor: notaPedido.domicilioStamp
274 }, 274 },
275 { 275 {
276 label: 'Vendedor:', 276 label: 'Vendedor:',
277 valor: notaPedido.vendedor.NomVen 277 valor: notaPedido.vendedor.NomVen
278 }, 278 },
279 { 279 {
280 label: 'Proveedor:', 280 label: 'Proveedor:',
281 valor: notaPedido.proveedor.NOM 281 valor: notaPedido.proveedor.NOM
282 }, 282 },
283 { 283 {
284 label: 'Precios y condiciones:', 284 label: 'Precios y condiciones:',
285 valor: valorPrecioCondicion() + ' ' + 285 valor: valorPrecioCondicion() + ' ' +
286 notaPedidoBusinessService 286 notaPedidoBusinessService
287 .plazoToString(notaPedido.notaPedidoPlazo) 287 .plazoToString(notaPedido.notaPedidoPlazo)
288 }, 288 },
289 { 289 {
290 label: 'Flete:', 290 label: 'Flete:',
291 valor: notaPedido.fob === 1 ? 'FOB' : ( 291 valor: notaPedido.fob === 1 ? 'FOB' : (
292 notaPedido.flete === 1 ? 'Si' : 'No') 292 notaPedido.flete === 1 ? 'Si' : 'No')
293 } 293 }
294 ]; 294 ];
295 295
296 function valorPrecioCondicion() { 296 function valorPrecioCondicion() {
297 if(notaPedido.idPrecioCondicion > 0) { 297 if(notaPedido.idPrecioCondicion > 0) {
298 return notaPedido.precioCondicion.nombre; 298 return notaPedido.precioCondicion.nombre;
299 } else { 299 } else {
300 return 'Ingreso Manual'; 300 return 'Ingreso Manual';
301 } 301 }
302 } 302 }
303 303
304 if(notaPedido.flete === 1) { 304 if(notaPedido.flete === 1) {
305 var cabeceraBomba = { 305 var cabeceraBomba = {
306 label: 'Bomba:', 306 label: 'Bomba:',
307 valor: notaPedido.bomba === 1 ? 'Si' : 'No' 307 valor: notaPedido.bomba === 1 ? 'Si' : 'No'
308 }; 308 };
309 if(notaPedido.kilometros) { 309 if(notaPedido.kilometros) {
310 var cabeceraKilometros = { 310 var cabeceraKilometros = {
311 label: 'Kilometros:', 311 label: 'Kilometros:',
312 valor: notaPedido.kilometros 312 valor: notaPedido.kilometros
313 }; 313 };
314 cabeceras.push(cabeceraKilometros); 314 cabeceras.push(cabeceraKilometros);
315 } 315 }
316 cabeceras.push(cabeceraBomba); 316 cabeceras.push(cabeceraBomba);
317 } 317 }
318 $scope.articulosTabla = notaPedido.articulosNotaPedido; 318 $scope.articulosTabla = notaPedido.articulosNotaPedido;
319 notaPedidoBusinessService.calcularArticulos($scope.articulosTabla, 319 notaPedidoBusinessService.calcularArticulos($scope.articulosTabla,
320 notaPedido.cotizacion.VENDEDOR); 320 notaPedido.cotizacion.VENDEDOR);
321 if(notaPedido.idPrecioCondicion > 0) { 321 if(notaPedido.idPrecioCondicion > 0) {
322 $scope.idLista = notaPedido.precioCondicion.idListaPrecio; 322 $scope.idLista = notaPedido.precioCondicion.idListaPrecio;
323 } else { 323 } else {
324 $scope.idLista = -1; 324 $scope.idLista = -1;
325 } 325 }
326 $scope.puntoVenta = rellenar(notaPedido.sucursal, 4); 326 $scope.puntoVenta = rellenar(notaPedido.sucursal, 4);
327 $scope.comprobante = rellenar(notaPedido.numeroNotaPedido, 8); 327 $scope.comprobante = rellenar(notaPedido.numeroNotaPedido, 8);
328 $scope.notaPedido = notaPedido; 328 $scope.notaPedido = notaPedido;
329 $scope.notaPedido.moneda = notaPedido.cotizacion.moneda; 329 $scope.notaPedido.moneda = notaPedido.cotizacion.moneda;
330 $scope.plazosPagos = notaPedido.notaPedidoPlazo; 330 $scope.plazosPagos = notaPedido.notaPedidoPlazo;
331 $scope.notaPedido.puntosDescarga = 331 $scope.notaPedido.puntosDescarga =
332 formatearPuntosDescarga(notaPedido.notaPedidoPuntoDescarga); 332 formatearPuntosDescarga(notaPedido.notaPedidoPuntoDescarga);
333 addArrayCabecera(cabeceras); 333 addArrayCabecera(cabeceras);
334 334
335 }, function() { 335 }, function() {
336 // funcion ejecutada cuando se cancela el modal 336 // funcion ejecutada cuando se cancela el modal
337 } 337 }
338 ); 338 );
339 }; 339 };
340 340
341 $scope.seleccionarProductos = function() { 341 $scope.seleccionarProductos = function() {
342 if ($scope.idLista === undefined) { 342 if ($scope.idLista === undefined) {
343 focaModalService.alert( 343 focaModalService.alert(
344 'Primero seleccione una lista de precio y condicion'); 344 'Primero seleccione una lista de precio y condicion');
345 return; 345 return;
346 } 346 }
347 var modalInstance = $uibModal.open( 347 var modalInstance = $uibModal.open(
348 { 348 {
349 ariaLabelledBy: 'Busqueda de Productos', 349 ariaLabelledBy: 'Busqueda de Productos',
350 templateUrl: 'modal-busqueda-productos.html', 350 templateUrl: 'modal-busqueda-productos.html',
351 controller: 'modalBusquedaProductosCtrl', 351 controller: 'modalBusquedaProductosCtrl',
352 resolve: { 352 resolve: {
353 parametroProducto: { 353 parametroProducto: {
354 idLista: $scope.idLista, 354 idLista: $scope.idLista,
355 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR, 355 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR,
356 simbolo: $scope.notaPedido.moneda.SIMBOLO 356 simbolo: $scope.notaPedido.moneda.SIMBOLO
357 } 357 }
358 }, 358 },
359 size: 'lg' 359 size: 'lg'
360 } 360 }
361 ); 361 );
362 modalInstance.result.then( 362 modalInstance.result.then(
363 function(producto) { 363 function(producto) {
364 var newArt = 364 var newArt =
365 { 365 {
366 id: 0, 366 id: 0,
367 codigo: producto.codigo, 367 codigo: producto.codigo,
368 sector: producto.sector, 368 sector: producto.sector,
369 sectorCodigo: producto.sector + '-' + producto.codigo, 369 sectorCodigo: producto.sector + '-' + producto.codigo,
370 descripcion: producto.descripcion, 370 descripcion: producto.descripcion,
371 item: $scope.articulosTabla.length + 1, 371 item: $scope.articulosTabla.length + 1,
372 nombre: producto.descripcion, 372 nombre: producto.descripcion,
373 precio: parseFloat(producto.precio.toFixed(4)), 373 precio: parseFloat(producto.precio.toFixed(4)),
374 costoUnitario: producto.costo, 374 costoUnitario: producto.costo,
375 editCantidad: false, 375 editCantidad: false,
376 editPrecio: false, 376 editPrecio: false,
377 rubro: producto.CodRub, 377 rubro: producto.CodRub,
378 exentoUnitario: producto.precio, 378 exentoUnitario: producto.precio,
379 ivaUnitario: producto.IMPIVA, 379 ivaUnitario: producto.IMPIVA,
380 impuestoInternoUnitario: producto.ImpInt, 380 impuestoInternoUnitario: producto.ImpInt,
381 impuestoInterno1Unitario: producto.ImpInt2, 381 impuestoInterno1Unitario: producto.ImpInt2,
382 impuestoInterno2Unitario: producto.ImpInt3, 382 impuestoInterno2Unitario: producto.ImpInt3,
383 precioLista: producto.precio, 383 precioLista: producto.precio,
384 combustible: 1, 384 combustible: 1,
385 facturado: 0, 385 facturado: 0,
386 idArticulo: producto.id 386 idArticulo: producto.id
387 }; 387 };
388 $scope.articuloACargar = newArt; 388 $scope.articuloACargar = newArt;
389 $scope.cargando = false; 389 $scope.cargando = false;
390 }, function() { 390 }, function() {
391 // funcion ejecutada cuando se cancela el modal 391 // funcion ejecutada cuando se cancela el modal
392 } 392 }
393 ); 393 );
394 }; 394 };
395 395
396 $scope.seleccionarPuntosDeDescarga = function() { 396 $scope.seleccionarPuntosDeDescarga = function() {
397 if(!$scope.notaPedido.cliente.COD || !$scope.notaPedido.domicilio.id) { 397 if(!$scope.notaPedido.cliente.COD || !$scope.notaPedido.domicilio.id) {
398 focaModalService.alert('Primero seleccione un cliente y un domicilio'); 398 focaModalService.alert('Primero seleccione un cliente y un domicilio');
399 return; 399 return;
400 }else { 400 }else {
401 var modalInstance = $uibModal.open( 401 var modalInstance = $uibModal.open(
402 { 402 {
403 ariaLabelledBy: 'Búsqueda de Puntos de descarga', 403 ariaLabelledBy: 'Búsqueda de Puntos de descarga',
404 templateUrl: 'modal-punto-descarga.html', 404 templateUrl: 'modal-punto-descarga.html',
405 controller: 'focaModalPuntoDescargaController', 405 controller: 'focaModalPuntoDescargaController',
406 size: 'lg', 406 size: 'lg',
407 resolve: { 407 resolve: {
408 filters: { 408 filters: {
409 /*TODO: al traer nota de pedido ya creada 409 /*TODO: al traer nota de pedido ya creada
410 obtener idDomicilio correctamente*/ 410 obtener idDomicilio correctamente*/
411 idDomicilio: $scope.notaPedido.domicilio.id, 411 idDomicilio: $scope.notaPedido.domicilio.id,
412 idCliente: $scope.notaPedido.cliente.COD, 412 idCliente: $scope.notaPedido.cliente.COD,
413 articulos: $scope.articulosTabla, 413 articulos: $scope.articulosTabla,
414 puntosDescarga: $scope.notaPedido.puntosDescarga 414 puntosDescarga: $scope.notaPedido.puntosDescarga
415 } 415 }
416 } 416 }
417 } 417 }
418 ); 418 );
419 modalInstance.result.then( 419 modalInstance.result.then(
420 function(puntosDescarga) { 420 function(puntosDescarga) {
421 $scope.notaPedido.puntosDescarga = puntosDescarga; 421 $scope.notaPedido.puntosDescarga = puntosDescarga;
422 422
423 //AGREGO PUNTOS DE DESCARGA A CABECERA 423 //AGREGO PUNTOS DE DESCARGA A CABECERA
424 var puntosStamp = ''; 424 var puntosStamp = '';
425 puntosDescarga.forEach(function(punto, idx, arr) { 425 puntosDescarga.forEach(function(punto, idx, arr) {
426 puntosStamp += punto.descripcion; 426 puntosStamp += punto.descripcion;
427 if((idx + 1) !== arr.length) puntosStamp += ', '; 427 if((idx + 1) !== arr.length) puntosStamp += ', ';
428 }); 428 });
429 429
430 $scope.$broadcast('addCabecera', { 430 $scope.$broadcast('addCabecera', {
431 label: 'Puntos de descarga:', 431 label: 'Puntos de descarga:',
432 valor: puntosStamp 432 valor: puntosStamp
433 }); 433 });
434 }, function() { 434 }, function() {
435 $scope.abrirModalDomicilios($scope.cliente); 435 $scope.abrirModalDomicilios($scope.cliente);
436 } 436 }
437 ); 437 );
438 } 438 }
439 }; 439 };
440 440
441 $scope.seleccionarVendedor = function() { 441 $scope.seleccionarVendedor = function() {
442 if(validarNotaRemitada()) { 442 if(validarNotaRemitada()) {
443 var modalInstance = $uibModal.open( 443 var modalInstance = $uibModal.open(
444 { 444 {
445 ariaLabelledBy: 'Busqueda de Vendedores', 445 ariaLabelledBy: 'Busqueda de Vendedores',
446 templateUrl: 'modal-vendedores.html', 446 templateUrl: 'modal-vendedores.html',
447 controller: 'modalVendedoresCtrl', 447 controller: 'modalVendedoresCtrl',
448 size: 'lg' 448 size: 'lg'
449 } 449 }
450 ); 450 );
451 modalInstance.result.then( 451 modalInstance.result.then(
452 function(vendedor) { 452 function(vendedor) {
453 $scope.$broadcast('addCabecera', { 453 $scope.$broadcast('addCabecera', {
454 label: 'Vendedor:', 454 label: 'Vendedor:',
455 valor: vendedor.NomVen 455 valor: vendedor.CodVen + ' - ' + vendedor.NomVen
456 }); 456 });
457 $scope.notaPedido.vendedor = vendedor; 457 $scope.notaPedido.vendedor = vendedor;
458 }, function() { 458 }, function() {
459 459
460 } 460 }
461 ); 461 );
462 } 462 }
463 }; 463 };
464 464
465 $scope.seleccionarProveedor = function() { 465 $scope.seleccionarProveedor = function() {
466 if(validarNotaRemitada()) { 466 if(validarNotaRemitada()) {
467 var modalInstance = $uibModal.open( 467 var modalInstance = $uibModal.open(
468 { 468 {
469 ariaLabelledBy: 'Busqueda de Proveedor', 469 ariaLabelledBy: 'Busqueda de Proveedor',
470 templateUrl: 'modal-proveedor.html', 470 templateUrl: 'modal-proveedor.html',
471 controller: 'focaModalProveedorCtrl', 471 controller: 'focaModalProveedorCtrl',
472 size: 'lg', 472 size: 'lg',
473 resolve: { 473 resolve: {
474 transportista: function() { 474 transportista: function() {
475 return false; 475 return false;
476 } 476 }
477 } 477 }
478 } 478 }
479 ); 479 );
480 modalInstance.result.then( 480 modalInstance.result.then(
481 function(proveedor) { 481 function(proveedor) {
482 $scope.notaPedido.proveedor = proveedor; 482 $scope.notaPedido.proveedor = proveedor;
483 $scope.$broadcast('addCabecera', { 483 $scope.$broadcast('addCabecera', {
484 label: 'Proveedor:', 484 label: 'Proveedor:',
485 valor: proveedor.NOM 485 valor: proveedor.NOM
486 }); 486 });
487 }, function() { 487 }, function() {
488 488
489 } 489 }
490 ); 490 );
491 } 491 }
492 }; 492 };
493 493
494 $scope.seleccionarCliente = function() { 494 $scope.seleccionarCliente = function() {
495 if(!$scope.notaPedido.vendedor.CodVen) { 495 if(!$scope.notaPedido.vendedor.CodVen) {
496 focaModalService.alert('Primero seleccione un vendedor'); 496 focaModalService.alert('Primero seleccione un vendedor');
497 return; 497 return;
498 } 498 }
499 if(validarNotaRemitada()) { 499 if(validarNotaRemitada()) {
500 var modalInstance = $uibModal.open( 500 var modalInstance = $uibModal.open(
501 { 501 {
502 ariaLabelledBy: 'Busqueda de Cliente', 502 ariaLabelledBy: 'Busqueda de Cliente',
503 templateUrl: 'foca-busqueda-cliente-modal.html', 503 templateUrl: 'foca-busqueda-cliente-modal.html',
504 controller: 'focaBusquedaClienteModalController', 504 controller: 'focaBusquedaClienteModalController',
505 resolve: { 505 resolve: {
506 vendedor: function() { return $scope.notaPedido.vendedor; } 506 vendedor: function() { return $scope.notaPedido.vendedor; }
507 }, 507 },
508 size: 'lg' 508 size: 'lg'
509 } 509 }
510 ); 510 );
511 modalInstance.result.then( 511 modalInstance.result.then(
512 function(cliente) { 512 function(cliente) {
513 $scope.abrirModalDomicilios(cliente); 513 $scope.abrirModalDomicilios(cliente);
514 $scope.cliente = cliente; 514 $scope.cliente = cliente;
515 }, function() {} 515 }, function() {}
516 ); 516 );
517 } 517 }
518 }; 518 };
519 519
520 $scope.abrirModalDomicilios = function(cliente) { 520 $scope.abrirModalDomicilios = function(cliente) {
521 var modalInstanceDomicilio = $uibModal.open( 521 var modalInstanceDomicilio = $uibModal.open(
522 { 522 {
523 ariaLabelledBy: 'Busqueda de Domicilios', 523 ariaLabelledBy: 'Busqueda de Domicilios',
524 templateUrl: 'modal-domicilio.html', 524 templateUrl: 'modal-domicilio.html',
525 controller: 'focaModalDomicilioController', 525 controller: 'focaModalDomicilioController',
526 resolve: { 526 resolve: {
527 idCliente: function() { return cliente.cod; }, 527 idCliente: function() { return cliente.cod; },
528 esNuevo: function() { return cliente.esNuevo; } 528 esNuevo: function() { return cliente.esNuevo; }
529 }, 529 },
530 size: 'lg', 530 size: 'lg',
531 } 531 }
532 ); 532 );
533 modalInstanceDomicilio.result.then( 533 modalInstanceDomicilio.result.then(
534 function(domicilio) { 534 function(domicilio) {
535 $scope.notaPedido.domicilio = domicilio; 535 $scope.notaPedido.domicilio = domicilio;
536 $scope.notaPedido.cliente = { 536 $scope.notaPedido.cliente = {
537 COD: cliente.cod, 537 COD: cliente.cod,
538 CUIT: cliente.cuit, 538 CUIT: cliente.cuit,
539 NOM: cliente.nom 539 NOM: cliente.nom
540 }; 540 };
541 var domicilioStamp = 541 var domicilioStamp =
542 domicilio.Calle + ' ' + domicilio.Numero + ', ' + 542 domicilio.Calle + ' ' + domicilio.Numero + ', ' +
543 domicilio.Localidad + ', ' + domicilio.Provincia; 543 domicilio.Localidad + ', ' + domicilio.Provincia;
544 $scope.notaPedido.domicilioStamp = domicilioStamp; 544 $scope.notaPedido.domicilioStamp = domicilioStamp;
545 545
546 $scope.notaPedido.puntosDescarga = domicilio.puntosDescarga; 546 $scope.notaPedido.puntosDescarga = domicilio.puntosDescarga;
547 547
548 $scope.$broadcast('addCabecera', { 548 $scope.$broadcast('addCabecera', {
549 label: 'Cliente:', 549 label: 'Cliente:',
550 valor: cliente.nom 550 valor: cliente.nom
551 }); 551 });
552 $scope.$broadcast('addCabecera', { 552 $scope.$broadcast('addCabecera', {
553 label: 'Domicilio:', 553 label: 'Domicilio:',
554 valor: domicilioStamp 554 valor: domicilioStamp
555 }); 555 });
556 if(domicilio.verPuntos) { 556 if(domicilio.verPuntos) {
557 delete $scope.notaPedido.domicilio.verPuntos; 557 delete $scope.notaPedido.domicilio.verPuntos;
558 $scope.seleccionarPuntosDeDescarga(); 558 $scope.seleccionarPuntosDeDescarga();
559 }else { 559 }else {
560 crearNotaPedidoService 560 crearNotaPedidoService
561 .getPuntosDescargaByClienDom(domicilio.id, cliente.cod) 561 .getPuntosDescargaByClienDom(domicilio.id, cliente.cod)
562 .then(function(res) { 562 .then(function(res) {
563 if(res.data.length) $scope.seleccionarPuntosDeDescarga(); 563 if(res.data.length) $scope.seleccionarPuntosDeDescarga();
564 }); 564 });
565 } 565 }
566 }, function() { 566 }, function() {
567 $scope.seleccionarCliente(); 567 $scope.seleccionarCliente();
568 return; 568 return;
569 } 569 }
570 ); 570 );
571 }; 571 };
572 572
573 $scope.getTotal = function() { 573 $scope.getTotal = function() {
574 var total = 0; 574 var total = 0;
575 var arrayTempArticulos = $scope.articulosTabla; 575 var arrayTempArticulos = $scope.articulosTabla;
576 for (var i = 0; i < arrayTempArticulos.length; i++) { 576 for (var i = 0; i < arrayTempArticulos.length; i++) {
577 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; 577 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad;
578 } 578 }
579 return parseFloat(total.toFixed(2)); 579 return parseFloat(total.toFixed(2));
580 }; 580 };
581 581
582 $scope.getSubTotal = function() { 582 $scope.getSubTotal = function() {
583 if($scope.articuloACargar) { 583 if($scope.articuloACargar) {
584 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 584 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
585 } 585 }
586 }; 586 };
587 587
588 $scope.seleccionarPreciosYCondiciones = function() { 588 $scope.seleccionarPreciosYCondiciones = function() {
589 if(validarNotaRemitada()) { 589 if(validarNotaRemitada()) {
590 var modalInstance = $uibModal.open( 590 var modalInstance = $uibModal.open(
591 { 591 {
592 ariaLabelledBy: 'Busqueda de Precio Condición', 592 ariaLabelledBy: 'Busqueda de Precio Condición',
593 templateUrl: 'modal-precio-condicion.html', 593 templateUrl: 'modal-precio-condicion.html',
594 controller: 'focaModalPrecioCondicionController', 594 controller: 'focaModalPrecioCondicionController',
595 size: 'lg' 595 size: 'lg'
596 } 596 }
597 ); 597 );
598 modalInstance.result.then( 598 modalInstance.result.then(
599 function(precioCondicion) { 599 function(precioCondicion) {
600 var cabecera = ''; 600 var cabecera = '';
601 var plazosConcat = ''; 601 var plazosConcat = '';
602 if(!Array.isArray(precioCondicion)) { 602 if(!Array.isArray(precioCondicion)) {
603 $scope.notaPedido.idPrecioCondicion = precioCondicion.id; 603 $scope.notaPedido.idPrecioCondicion = precioCondicion.id;
604 $scope.plazosPagos = precioCondicion.plazoPago; 604 $scope.plazosPagos = precioCondicion.plazoPago;
605 $scope.idLista = precioCondicion.idListaPrecio; 605 $scope.idLista = precioCondicion.idListaPrecio;
606 for(var i = 0; i < precioCondicion.plazoPago.length; i++) { 606 for(var i = 0; i < precioCondicion.plazoPago.length; i++) {
607 plazosConcat += precioCondicion.plazoPago[i].dias + ' '; 607 plazosConcat += precioCondicion.plazoPago[i].dias + ' ';
608 } 608 }
609 cabecera = precioCondicion.nombre + ' ' + plazosConcat.trim(); 609 cabecera = precioCondicion.nombre + ' ' + plazosConcat.trim();
610 } else { //Cuando se ingresan los plazos manualmente 610 } else { //Cuando se ingresan los plazos manualmente
611 $scope.notaPedido.idPrecioCondicion = 0; 611 $scope.notaPedido.idPrecioCondicion = 0;
612 //-1, el modal productos busca todos los productos 612 //-1, el modal productos busca todos los productos
613 $scope.idLista = -1; 613 $scope.idLista = -1;
614 $scope.plazosPagos = precioCondicion; 614 $scope.plazosPagos = precioCondicion;
615 for(var j = 0; j < precioCondicion.length; j++) { 615 for(var j = 0; j < precioCondicion.length; j++) {
616 plazosConcat += precioCondicion[j].dias + ' '; 616 plazosConcat += precioCondicion[j].dias + ' ';
617 } 617 }
618 cabecera = 'Ingreso manual ' + plazosConcat.trim(); 618 cabecera = 'Ingreso manual ' + plazosConcat.trim();
619 } 619 }
620 $scope.articulosTabla = []; 620 $scope.articulosTabla = [];
621 $scope.$broadcast('addCabecera', { 621 $scope.$broadcast('addCabecera', {
622 label: 'Precios y condiciones:', 622 label: 'Precios y condiciones:',
623 valor: cabecera 623 valor: cabecera
624 }); 624 });
625 }, function() { 625 }, function() {
626 626
627 } 627 }
628 ); 628 );
629 } 629 }
630 }; 630 };
631 631
632 $scope.seleccionarFlete = function() { 632 $scope.seleccionarFlete = function() {
633 if(validarNotaRemitada()) { 633 if(validarNotaRemitada()) {
634 var modalInstance = $uibModal.open( 634 var modalInstance = $uibModal.open(
635 { 635 {
636 ariaLabelledBy: 'Busqueda de Flete', 636 ariaLabelledBy: 'Busqueda de Flete',
637 templateUrl: 'modal-flete.html', 637 templateUrl: 'modal-flete.html',
638 controller: 'focaModalFleteController', 638 controller: 'focaModalFleteController',
639 size: 'lg', 639 size: 'lg',
640 resolve: { 640 resolve: {
641 parametrosFlete: 641 parametrosFlete:
642 function() { 642 function() {
643 return { 643 return {
644 flete: $scope.notaPedido.fob ? 'FOB' : 644 flete: $scope.notaPedido.fob ? 'FOB' :
645 ( $scope.notaPedido.flete ? '1' : 645 ( $scope.notaPedido.flete ? '1' :
646 ($scope.notaPedido.flete === undefined ? 646 ($scope.notaPedido.flete === undefined ?
647 null : '0')), 647 null : '0')),
648 bomba: $scope.notaPedido.bomba ? '1' : 648 bomba: $scope.notaPedido.bomba ? '1' :
649 ($scope.notaPedido.bomba === undefined ? 649 ($scope.notaPedido.bomba === undefined ?
650 null : '0'), 650 null : '0'),
651 kilometros: $scope.notaPedido.kilometros 651 kilometros: $scope.notaPedido.kilometros
652 }; 652 };
653 } 653 }
654 } 654 }
655 } 655 }
656 ); 656 );
657 modalInstance.result.then( 657 modalInstance.result.then(
658 function(datos) { 658 function(datos) {
659 $scope.notaPedido.flete = datos.flete; 659 $scope.notaPedido.flete = datos.flete;
660 $scope.notaPedido.fob = datos.FOB; 660 $scope.notaPedido.fob = datos.FOB;
661 $scope.notaPedido.bomba = datos.bomba; 661 $scope.notaPedido.bomba = datos.bomba;
662 $scope.notaPedido.kilometros = datos.kilometros; 662 $scope.notaPedido.kilometros = datos.kilometros;
663 $scope.$broadcast('addCabecera', { 663 $scope.$broadcast('addCabecera', {
664 label: 'Flete:', 664 label: 'Flete:',
665 valor: datos.FOB ? 'FOB' : (datos.flete ? 'Si' : 'No') 665 valor: datos.FOB ? 'FOB' : (datos.flete ? 'Si' : 'No')
666 }); 666 });
667 if(datos.flete) { 667 if(datos.flete) {
668 $scope.$broadcast('addCabecera', { 668 $scope.$broadcast('addCabecera', {
669 label: 'Bomba:', 669 label: 'Bomba:',
670 valor: datos.bomba ? 'Si' : 'No' 670 valor: datos.bomba ? 'Si' : 'No'
671 }); 671 });
672 $scope.$broadcast('addCabecera', { 672 $scope.$broadcast('addCabecera', {
673 label: 'Kilometros:', 673 label: 'Kilometros:',
674 valor: datos.kilometros 674 valor: datos.kilometros
675 }); 675 });
676 } else { 676 } else {
677 $scope.$broadcast('removeCabecera', 'Bomba:'); 677 $scope.$broadcast('removeCabecera', 'Bomba:');
678 $scope.$broadcast('removeCabecera', 'Kilometros:'); 678 $scope.$broadcast('removeCabecera', 'Kilometros:');
679 $scope.notaPedido.bomba = false; 679 $scope.notaPedido.bomba = false;
680 $scope.notaPedido.kilometros = null; 680 $scope.notaPedido.kilometros = null;
681 } 681 }
682 }, function() { 682 }, function() {
683 683
684 } 684 }
685 ); 685 );
686 } 686 }
687 }; 687 };
688 688
689 $scope.seleccionarMoneda = function() { 689 $scope.seleccionarMoneda = function() {
690 if(validarNotaRemitada()) { 690 if(validarNotaRemitada()) {
691 var modalInstance = $uibModal.open( 691 var modalInstance = $uibModal.open(
692 { 692 {
693 ariaLabelledBy: 'Busqueda de Moneda', 693 ariaLabelledBy: 'Busqueda de Moneda',
694 templateUrl: 'modal-moneda.html', 694 templateUrl: 'modal-moneda.html',
695 controller: 'focaModalMonedaController', 695 controller: 'focaModalMonedaController',
696 size: 'lg' 696 size: 'lg'
697 } 697 }
698 ); 698 );
699 modalInstance.result.then( 699 modalInstance.result.then(
700 function(moneda) { 700 function(moneda) {
701 $scope.abrirModalCotizacion(moneda); 701 $scope.abrirModalCotizacion(moneda);
702 }, function() { 702 }, function() {
703 703
704 } 704 }
705 ); 705 );
706 } 706 }
707 }; 707 };
708 708
709 $scope.abrirModalCotizacion = function(moneda) { 709 $scope.abrirModalCotizacion = function(moneda) {
710 var modalInstance = $uibModal.open( 710 var modalInstance = $uibModal.open(
711 { 711 {
712 ariaLabelledBy: 'Busqueda de Cotización', 712 ariaLabelledBy: 'Busqueda de Cotización',
713 templateUrl: 'modal-cotizacion.html', 713 templateUrl: 'modal-cotizacion.html',
714 controller: 'focaModalCotizacionController', 714 controller: 'focaModalCotizacionController',
715 size: 'lg', 715 size: 'lg',
716 resolve: {idMoneda: function() {return moneda.ID;}} 716 resolve: {idMoneda: function() {return moneda.ID;}}
717 } 717 }
718 ); 718 );
719 modalInstance.result.then( 719 modalInstance.result.then(
720 function(cotizacion) { 720 function(cotizacion) {
721 var articulosTablaTemp = $scope.articulosTabla; 721 var articulosTablaTemp = $scope.articulosTabla;
722 for(var i = 0; i < articulosTablaTemp.length; i++) { 722 for(var i = 0; i < articulosTablaTemp.length; i++) {
723 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio * 723 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio *
724 $scope.notaPedido.cotizacion.VENDEDOR; 724 $scope.notaPedido.cotizacion.VENDEDOR;
725 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio / 725 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio /
726 cotizacion.VENDEDOR; 726 cotizacion.VENDEDOR;
727 } 727 }
728 $scope.articulosTabla = articulosTablaTemp; 728 $scope.articulosTabla = articulosTablaTemp;
729 $scope.notaPedido.moneda = moneda; 729 $scope.notaPedido.moneda = moneda;
730 $scope.notaPedido.cotizacion = cotizacion; 730 $scope.notaPedido.cotizacion = cotizacion;
731 if(moneda.DETALLE === 'PESOS ARGENTINOS') { 731 if(moneda.DETALLE === 'PESOS ARGENTINOS') {
732 $scope.$broadcast('removeCabecera', 'Moneda:'); 732 $scope.$broadcast('removeCabecera', 'Moneda:');
733 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 733 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
734 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 734 $scope.$broadcast('removeCabecera', 'Cotizacion:');
735 }else { 735 }else {
736 $scope.$broadcast('addCabecera', { 736 $scope.$broadcast('addCabecera', {
737 label: 'Moneda:', 737 label: 'Moneda:',
738 valor: moneda.DETALLE 738 valor: moneda.DETALLE
739 }); 739 });
740 $scope.$broadcast('addCabecera', { 740 $scope.$broadcast('addCabecera', {
741 label: 'Fecha cotizacion:', 741 label: 'Fecha cotizacion:',
742 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 742 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
743 }); 743 });
744 $scope.$broadcast('addCabecera', { 744 $scope.$broadcast('addCabecera', {
745 label: 'Cotizacion:', 745 label: 'Cotizacion:',
746 valor: $filter('number')(cotizacion.VENDEDOR, '2') 746 valor: $filter('number')(cotizacion.VENDEDOR, '2')
747 }); 747 });
748 } 748 }
749 }, function() { 749 }, function() {
750 750
751 } 751 }
752 ); 752 );
753 }; 753 };
754 754
755 $scope.agregarATabla = function(key) { 755 $scope.agregarATabla = function(key) {
756 if(key === 13) { 756 if(key === 13) {
757 if($scope.articuloACargar.cantidad === undefined || 757 if($scope.articuloACargar.cantidad === undefined ||
758 $scope.articuloACargar.cantidad === 0 || 758 $scope.articuloACargar.cantidad === 0 ||
759 $scope.articuloACargar.cantidad === null ) { 759 $scope.articuloACargar.cantidad === null ) {
760 focaModalService.alert('El valor debe ser al menos 1'); 760 focaModalService.alert('El valor debe ser al menos 1');
761 return; 761 return;
762 } 762 }
763 delete $scope.articuloACargar.sectorCodigo; 763 delete $scope.articuloACargar.sectorCodigo;
764 $scope.articulosTabla.push($scope.articuloACargar); 764 $scope.articulosTabla.push($scope.articuloACargar);
765 $scope.cargando = true; 765 $scope.cargando = true;
766 } 766 }
767 }; 767 };
768 768
769 $scope.quitarArticulo = function(key) { 769 $scope.quitarArticulo = function(key) {
770 $scope.articulosTabla.splice(key, 1); 770 $scope.articulosTabla.splice(key, 1);
771 }; 771 };
772 772
773 $scope.editarArticulo = function(key, articulo) { 773 $scope.editarArticulo = function(key, articulo) {
774 if(key === 13) { 774 if(key === 13) {
775 if(articulo.cantidad === null || articulo.cantidad === 0 || 775 if(articulo.cantidad === null || articulo.cantidad === 0 ||
776 articulo.cantidad === undefined) { 776 articulo.cantidad === undefined) {
777 focaModalService.alert('El valor debe ser al menos 1'); 777 focaModalService.alert('El valor debe ser al menos 1');
778 return; 778 return;
779 } 779 }
780 articulo.editCantidad = false; 780 articulo.editCantidad = false;
781 articulo.editPrecio = false; 781 articulo.editPrecio = false;
782 } 782 }
783 }; 783 };
784 784
785 $scope.cambioEdit = function(articulo, propiedad) { 785 $scope.cambioEdit = function(articulo, propiedad) {
786 if(propiedad === 'cantidad') { 786 if(propiedad === 'cantidad') {
787 articulo.editCantidad = true; 787 articulo.editCantidad = true;
788 } else if(propiedad === 'precio') { 788 } else if(propiedad === 'precio') {
789 articulo.editPrecio = true; 789 articulo.editPrecio = true;
790 } 790 }
791 }; 791 };
792 792
793 $scope.resetFilter = function() { 793 $scope.resetFilter = function() {
794 $scope.articuloACargar = {}; 794 $scope.articuloACargar = {};
795 $scope.cargando = true; 795 $scope.cargando = true;
796 }; 796 };
797 //Recibe aviso si el teclado está en uso 797 //Recibe aviso si el teclado está en uso
798 $rootScope.$on('usarTeclado', function(event, data) { 798 $rootScope.$on('usarTeclado', function(event, data) {
799 if(data) { 799 if(data) {
800 $scope.mostrarTeclado = true; 800 $scope.mostrarTeclado = true;
801 return; 801 return;
802 } 802 }
803 $scope.mostrarTeclado = false; 803 $scope.mostrarTeclado = false;
804 }); 804 });
805 805
806 $scope.selectFocus = function($event) { 806 $scope.selectFocus = function($event) {
807 // Si el teclado esta en uso no selecciona el valor 807 // Si el teclado esta en uso no selecciona el valor
808 if($scope.mostrarTeclado) { 808 if($scope.mostrarTeclado) {
809 return; 809 return;
810 } 810 }
811 $event.target.select(); 811 $event.target.select();
812 }; 812 };
813 813
814 $scope.salir = function() { 814 $scope.salir = function() {
815 $location.path('/'); 815 $location.path('/');
816 }; 816 };
817 817
818 $scope.parsearATexto = function(articulo) { 818 $scope.parsearATexto = function(articulo) {
819 articulo.cantidad = parseFloat(articulo.cantidad); 819 articulo.cantidad = parseFloat(articulo.cantidad);
820 articulo.precio = parseFloat(articulo.precio); 820 articulo.precio = parseFloat(articulo.precio);
821 }; 821 };
822 822
823 function addArrayCabecera(array) { 823 function addArrayCabecera(array) {
824 for(var i = 0; i < array.length; i++) { 824 for(var i = 0; i < array.length; i++) {
825 $scope.$broadcast('addCabecera', { 825 $scope.$broadcast('addCabecera', {
826 label: array[i].label, 826 label: array[i].label,
827 valor: array[i].valor 827 valor: array[i].valor
828 }); 828 });
829 } 829 }
830 } 830 }
831 831
832 function rellenar(relleno, longitud) { 832 function rellenar(relleno, longitud) {
833 relleno = '' + relleno; 833 relleno = '' + relleno;
834 while (relleno.length < longitud) { 834 while (relleno.length < longitud) {
835 relleno = '0' + relleno; 835 relleno = '0' + relleno;
836 } 836 }
837 837
838 return relleno; 838 return relleno;
839 } 839 }
840 840
841 function validarNotaRemitada() { 841 function validarNotaRemitada() {
842 if(!$scope.notaPedido.idRemito) { 842 if(!$scope.notaPedido.idRemito) {
843 return true; 843 return true;
844 }else{ 844 }else{
845 focaModalService.alert('No se puede editar una nota de pedido remitada'); 845 focaModalService.alert('No se puede editar una nota de pedido remitada');
846 return false; 846 return false;
847 } 847 }
848 } 848 }
849 function formatearPuntosDescarga(puntosDescarga) { 849 function formatearPuntosDescarga(puntosDescarga) {
850 var result = []; 850 var result = [];
851 851
852 puntosDescarga.forEach(function(el) { 852 puntosDescarga.forEach(function(el) {
853 var puntoDescarga = result.filter(function(resultPunto) { 853 var puntoDescarga = result.filter(function(resultPunto) {
854 return resultPunto.id == el.idPuntoDescarga; 854 return resultPunto.id == el.idPuntoDescarga;
855 }); 855 });
856 856
857 if(puntoDescarga.length) { 857 if(puntoDescarga.length) {
858 puntoDescarga[0].articulosAgregados.push({ 858 puntoDescarga[0].articulosAgregados.push({
859 cantidad: el.cantidad, 859 cantidad: el.cantidad,
860 descripcion: el.producto.descripcion, 860 descripcion: el.producto.descripcion,
861 id: el.producto.id 861 id: el.producto.id
862 }); 862 });
863 }else { 863 }else {
864 result.push({ 864 result.push({
865 id: el.puntoDescarga.id, 865 id: el.puntoDescarga.id,
866 id_cliente: el.puntoDescarga.id_cliente, 866 id_cliente: el.puntoDescarga.id_cliente,
867 id_da_config_0: el.puntoDescarga.id_da_config_0, 867 id_da_config_0: el.puntoDescarga.id_da_config_0,
868 latitud: el.puntoDescarga.latitud, 868 latitud: el.puntoDescarga.latitud,
869 longitud: el.puntoDescarga.longitud, 869 longitud: el.puntoDescarga.longitud,
870 descripcion: el.puntoDescarga.descripcion, 870 descripcion: el.puntoDescarga.descripcion,
871 articulosAgregados: [ 871 articulosAgregados: [
872 { 872 {
873 cantidad: el.cantidad, 873 cantidad: el.cantidad,
874 descripcion: el.producto.descripcion, 874 descripcion: el.producto.descripcion,
875 id: el.producto.id 875 id: el.producto.id
876 } 876 }
877 ] 877 ]
878 }); 878 });
879 } 879 }
880 }); 880 });
881 return result; 881 return result;
882 } 882 }
883 883
884 function salir() { 884 function salir() {
885 var notaPedido = { 885 var notaPedido = {
886 id: 0, 886 id: 0,
887 vendedor: {}, 887 vendedor: {},
888 cliente: {}, 888 cliente: {},
889 proveedor: {}, 889 proveedor: {},
890 domicilio: {dom: ''}, 890 domicilio: {dom: ''},
891 moneda: $scope.notaPedido.moneda, 891 moneda: $scope.notaPedido.moneda,
892 cotizacion: $scope.notaPedido.cotizacion 892 cotizacion: $scope.notaPedido.cotizacion
893 }; 893 };
894 if(JSON.stringify($scope.notaPedido) !== JSON.stringify(notaPedido)) { 894 if(JSON.stringify($scope.notaPedido) !== JSON.stringify(notaPedido)) {
895 focaModalService 895 focaModalService
896 .confirm('¿Esta seguro de que desea salir? ' + 896 .confirm('¿Esta seguro de que desea salir? ' +
897 'Se perderán todos los datos cargados.') 897 'Se perderán todos los datos cargados.')
898 .then(function(data) { 898 .then(function(data) {
899 if(data) $location.path('/'); 899 if(data) $location.path('/');
900 }); 900 });
901 }else { 901 }else {
902 $location.path('/'); 902 $location.path('/');
903 } 903 }
904 } 904 }
905 } 905 }
906 ]); 906 ]);
907 907