controller.js 10.2 KB
angular.module('focaAbmCliente')
    .controller('focaAbmClienteController', [
        '$scope', 'focaBotoneraLateralService', '$timeout', '$uibModal','focaModalService',
        'focaAbmClienteService','$filter',
        function($scope, focaBotoneraLateralService, $timeout, $uibModal,focaModalService,
                focaAbmClienteService, $filter) {
            $scope.cliente= {
                NOM: undefined,
                COD: undefined
            };

            $scope.botonCliente = [
                {
                    label: 'Cliente',
                    image: 'cliente.png'
                },
                {
                    label: 'Nuevo Cliente',
                    image: 'nuevoCliente.png'
                }
            ];

            $scope.botonera = [
                {
                    label: 'Datos Cliente',
                    image: 'datoscliente.png',
                },
                {
                    label: 'Domicilios de entrega',
                    image: 'domicilioDeEntrega.png'
                },
                {
                    label: 'Lista de precios',
                    image: 'precios-condiciones.png'
                },
                {
                    label: 'Plazos',
                    image: 'plazos.png'
                }
            ];

            //SETEO BOTONERA LATERAL
            $timeout(function() {
                focaBotoneraLateralService.showSalir(true);
                focaBotoneraLateralService.showPausar(false);
                focaBotoneraLateralService.showCancelar(false);
                focaBotoneraLateralService.showGuardar(false);
            });

            $scope.seleccionarCliente = function() {
                $scope.$broadcast('cleanCabecera');
                var datos = null;
                focaAbmClienteService.getAllClientes()
                        .then(function (res) {
                            datos = res.data;
                            focaModalService.modal({
                                titulo: 'Clientes',
                                data: datos,
                                size: 'md',
                                columnas: [
                                    {
                                        propiedad: 'COD',
                                        nombre: 'Codigo'
                                    },
                                    {
                                        propiedad: 'NOM',
                                        nombre: 'Nombre'
                                    },
                                    {
                                        propiedad: 'CUIT',
                                        nombre: 'CUIT'
                                    }
                                ],
                            }).then(function (res) {
                                $scope.cliente.NOM = res.NOM;
                                $scope.cliente.COD = res.COD;
                                $scope.cliente.MOD = res.MOD;
                                $scope.$broadcast('addCabecera', {
                                    label: 'Cliente:',
                                    valor: $filter('rellenarDigitos')
                                           ($scope.cliente.COD, 5) + ' - ' + $scope.cliente.NOM
                                });
                            }).catch(function (e) {
                                console.log(e);
                            });
                        });
            };

            $scope.seleccionarNuevoCliente = function () {
                if ($scope.cliente.NOM !== undefined && $scope.cliente.COD !== undefined) {
                    $scope.$broadcast('cleanCabecera');
                    $scope.cliente= {};
                }
                var modalInstanceCliente = $uibModal.open(
                    {
                        ariaLabelledBy: '',
                        templateUrl: 'foca-modal-nuevo-cliente.html',
                        controller: 'focaModalClienteController',
                        resolve: {
                            idCliente: function () { return null; },
                        },
                        size: 'lg',
                    }
                );
                modalInstanceCliente.result
                        .then( function(data) {
                        if (data) {
                            $scope.cliente.NOM = data.NOM;
                            $scope.cliente.COD = data.COD;
                            $scope.$broadcast('cleanCabecera');
                            $scope.$broadcast('addCabecera', {
                                    label: 'Cliente:',
                                    valor: $filter('rellenarDigitos')($scope.cliente.NOM)
                                });
                        }
                    });
            };

            $scope.seleccionarDatosCliente = function () {
                if ($scope.cliente.NOM === undefined || $scope.cliente.COD === undefined) {
                    focaModalService.alert('Seleccione cliente');
                    return;
                } else {
                    var modalInstanceCliente = $uibModal.open(
                        {
                            ariaLabelledBy: '',
                            templateUrl: 'foca-modal-cliente.html',
                            controller: 'focaModalClienteController',
                            resolve: {
                                idCliente: function () { return $scope.cliente.COD; },
                            },
                            size: 'lg',
                        }
                    );
                    modalInstanceCliente.result
                        .then( function(data) {
                        if (data) {
                            $scope.cliente.NOM = data.NOM;
                            $scope.$broadcast('cleanCabecera');
                            $scope.$broadcast('addCabecera', {
                                    label: 'Cliente:',
                                    valor: $filter('rellenarDigitos')($scope.cliente.NOM)
                                });
                        }
                    });
                }
            };

            $scope.seleccionarDomiciliosDeEntrega = function () {
                if ($scope.cliente.NOM === undefined || $scope.cliente.COD === undefined) {
                    focaModalService.alert('Seleccione un cliente');
                    return;
                }
                var modalInstanceDomicilio = $uibModal.open(
                    {
                        ariaLabelledBy: 'Busqueda de Domicilios',
                        templateUrl: 'modal-domicilio.html',
                        controller: 'focaModalDomicilioController',
                        resolve: {
                            idCliente: function () { return $scope.cliente.COD; },
                            esNuevo: function () { return $scope.cliente.esNuevo; }
                        },
                        size: 'lg',
                    }
                );
                modalInstanceDomicilio.result.then( function(data) {
                    if (data) {
                        $scope.$broadcast('addCabecera', {
                            label: 'Domicilio:',
                            valor: data.Calle + ' ' + data.Numero + ' - ' + data.Localidad +
                                   ' - ' + data.Provincia
                        });
                    }
                });
            };

            $scope.seleccionarListaDePrecios = function () {
                if ($scope.cliente.NOM === undefined || $scope.cliente.COD === undefined) {
                    focaModalService.alert('Seleccione cliente');
                    return;
                }
                var modalInstance = $uibModal.open(
                    {
                        ariaLabelledBy: 'Precio-Condicion: Listas',
                        templateUrl: 'modal-precios.html',
                        controller: 'focaModalListaPreciosController',
                        size: 'lg',
                        resolve : {
                            idListaPrecio : function () { return $scope.cliente.MOD || null; },
                            idCliente : function () { return $scope.cliente.COD; }
                        }
                    }
                );
                modalInstance.result.then( function (data) {
                    if (data) {
                        $scope.cliente.MOD = data.listaPrecio.ID;
                        $scope.$broadcast('addCabecera', {
                            label: 'Precio y Condicion:',
                            valor: $filter('rellenarDigitos')(parseInt(data.listaPrecio.ID), 4) +
                            ' - ' + data.listaPrecio.DES
                        });
                    }
                });
            };

            $scope.seleccionarPlazos = function () {
                if ($scope.cliente.NOM === undefined || $scope.cliente.COD === undefined) {
                    focaModalService.alert('Seleccione cliente');
                    return;
                }
                var modalInstance = $uibModal.open(
                    {
                        ariaLabelledBy: 'Plazos',
                        templateUrl: 'modal-plazos.html',
                        controller: 'focaModalListaPlazosController',
                        size: 'lg',
                        resolve: {
                            idCliente: function () {
                                return $scope.cliente.COD || null;
                            }
                        }
                    }
                );
                modalInstance.result.then( function (data) {
                    if (data) {
                        var plazosConcat = '';
                        for (var i = 0; i < data.plazoPago.length; i++) {
                            plazosConcat += data.plazoPago[i].dias + ', ';
                        }
                        plazosConcat = plazosConcat.substring(0, plazosConcat.length - 2);
                        $scope.$broadcast('addCabecera', {
                            label: 'Plazos:',
                            valor: $filter('rellenarDigitos')(plazosConcat)
                        }); 
                    }
                });
            };
    }
]);