angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', [ '$scope', '$uibModal', 'crearNotaPedidoService', function ($scope, $uibModal, crearNotaPedidoService) { $scope.notaPedido = {}; $scope.articulosTabla = []; var idLista; var notaPedidoTemp = crearNotaPedidoService.getNotaPedido(); $scope.domiciliosCliente = crearNotaPedidoService.getDomicilios(1); crearNotaPedidoService.getPrecioCondicion().then( function (res) { $scope.precioCondiciones = res.data; } ); if (notaPedidoTemp != undefined) { notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga); $scope.notaPedido = notaPedidoTemp; $scope.notaPedido.flete = ($scope.notaPedido.flete).toString(); $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString(); $scope.notaPedido.precioCondicion = 2; } else { $scope.notaPedido.fechaCarga = new Date(); $scope.notaPedido.domicilio = [{ id: 0 }] $scope.notaPedido.bomba = '1'; $scope.notaPedido.flete = '1'; } $scope.addNewDom = function () { $scope.notaPedido.domicilio.push({ 'id': 0 }); } $scope.removeNewChoice = function (choice) { if ($scope.notaPedido.domicilio.length > 1) { $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex(c => c.$$hashKey == choice.$$hashKey), 1) } } $scope.crearNotaPedido = function () { var notaPedido = { idNotaPedido: 0, precioCondicion: $scope.notaPedido.precioCondicion, fechaCarga: $scope.notaPedido.fechaCarga, vendedor: $scope.notaPedido.vendedor, cliente: $scope.notaPedido.cliente, producto: $scope.notaPedido.producto, bomba: $scope.notaPedido.bomba, petrolera: $scope.notaPedido.petrolera, domicilio: $scope.notaPedido.domicilio, kilometros: $scope.notaPedido.kilometros, jurisdiccionIIBB: $scope.notaPedido.jurisdiccionIIBB, costoFinanciacion: $scope.notaPedido.costoFinanciacion, flete: $scope.notaPedido.flete, costoUnitarioKmFlete: $scope.notaPedido.costoUnitarioKmFlete, articulosTabla: $scope.articulosTabla } crearNotaPedidoService.crearNotaPedido(notaPedido).then( function (res) { alert('Nota pedido creada') } ) } $scope.siguienteTab = function () { $scope.active = 1; } $scope.seleccionarArticulo = function () { if(idLista==undefined){ alert('primero seleccione una lista de precio y condicion'); return; } var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Productos', templateUrl: 'modal-busqueda-productos.html', controller: 'modalBusquedaProductosCtrl', resolve: {idLista: function() {return idLista}}, size: 'lg' } ) modalInstance.result.then( function (producto) { var newArt = { codigo: producto.FiltroSectorCodigo, item: $scope.articulosTabla.length + 1, nombre: producto.descripcion, precio: producto.precio, costoUnitario: producto.costo, cantidad: 1 } $scope.articulosTabla.unshift(newArt); }, function () { // funcion ejecutada cuando se cancela el modal } ); } $scope.seleccionarVendedor = function () { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Vendedores', templateUrl: 'modal-vendedores.html', controller: 'modalVendedoresCtrl', size: 'lg' } ) modalInstance.result.then( function (vendedor) { $scope.notaPedido.vendedor = vendedor.NomVen; }, function () { } ); } $scope.seleccionarPetrolera = function() { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Petrolera', templateUrl: 'modal-petroleras.html', controller: 'modalPetrolerasCtrl', size: 'lg' } ) modalInstance.result.then( function (petrolera) { $scope.notaPedido.petrolera = petrolera.NOM; }, function () { } ); } $scope.seleccionarCliente = function() { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Cliente', templateUrl: 'foca-busqueda-cliente-modal.html', controller: 'focaBusquedaClienteModalController', size: 'lg' } ) modalInstance.result.then( function (cliente) { $scope.notaPedido.cliente = cliente.nom; }, function () { } ); } $scope.obtenerDomicilios = function (id) { crearNotaPedidoService.getDomicilios(id).then( function (res) { $scope.notaPedido.domicilio = res.data; } ) } $scope.getSubTotal = function(item) { var subTotal=0; var array = $scope.articulosTabla.filter(a=>a.item<=item); for(var i = 0; i< array.length; i++) { subTotal+=array[i].precio*array[i].cantidad } return subTotal.toFixed(2); } $scope.cargarArticulos = function() { idLista=$scope.notaPedido.precioCondicion; } } ] ) .controller('notaPedidoListaCtrl', [ '$scope', 'crearNotaPedidoService', '$location', function ($scope, crearNotaPedidoService, $location) { crearNotaPedidoService.obtenerNotaPedido().then(function (datos) { $scope.notaPedidos = datos.data; }); $scope.editar = function (notaPedido) { crearNotaPedidoService.setNotaPedido(notaPedido); $location.path('/venta-nota-pedido/abm/'); } $scope.crearPedido = function () { $location.path('/venta-nota-pedido/abm/'); } } ])