예제 #1
0
        public static bool CrearCliente(Entidades.ViewModels.Cliente.NuevoCliente cliente, string uriLogo)
        {
            var repo = new ClienteRepository();
            var clienteNuevo = new Entidades.Models.Cliente();

            var rut = Convert.ToInt32(cliente.Rut.Replace(".","").Replace(".","").Split('-')[0]);
            var dv = cliente.Rut.Split('-')[1];

            clienteNuevo.Rut = rut;
            clienteNuevo.DV = dv;
            clienteNuevo.Nombre = cliente.Nombre;
            clienteNuevo.NombreFantasia = cliente.NombreFantasia;
            clienteNuevo.GiroComercial = cliente.GiroComercial;
            clienteNuevo.CodigoActividadEconomica = cliente.CodigoActividadEconomica;
            clienteNuevo.FranquiciaId = cliente.Franquicia;
            clienteNuevo.Logo = uriLogo;

            clienteNuevo.EstadoCliente = EstadoCliente.Deshabilitado;

            repo.Insertar(clienteNuevo);
            repo.GuardarCambios();
            var clienteCreado = repo.Filtrar(c => c.Rut == rut).FirstOrDefault();

            if (clienteCreado != null)
            {
                // Creacion de la sucursal

                var sucursal = new Entidades.Models.Sucursal()
                {
                    ClienteId = clienteCreado.Id,
                    EstadoSucursal = EstadoSucursal.Habilitado,
                    CodigoSucursalSII = cliente.CodigoSucursalSII,
                    Identificador = cliente.Sucursal
                };

                var sucuRepository = new Repositorio.Repository.SucursalRepository();
                sucuRepository.Insertar(sucursal);
                sucuRepository.GuardarCambios();

                var sucursalCreada =
                    sucuRepository.Filtrar(s => s.Identificador == cliente.Sucursal && s.ClienteId == clienteCreado.Id)
                        .FirstOrDefault();

                if (sucursalCreada != null)
                {
                    var contacto = new Entidades.Models.ContactoSucursal()
                    {
                        EstadoDireccionSucursal = EstadoContactoSucursal.Habilitada,
                        Orden = 1,
                        NombreContacto = cliente.NombreContacto,
                        FechaCreaccion = DateTime.Now,
                        FechaCierre = new DateTime(2000,1,1),
                        Telefono = cliente.Telefono,
                        CorreoContacto = cliente.Correo,
                        Direccion = cliente.Direccion,
                        Comuna = cliente.Comuna,
                        Ciudad = cliente.Ciudad,
                        SucursalId = sucursalCreada.Id
                    };
                    var contactoRepository = new Repositorio.Repository.ContactoSucursalRepository();
                    contactoRepository.Insertar(contacto);
                    contactoRepository.GuardarCambios();

                    var contactoCreado =
                        contactoRepository.Filtrar(c => c.SucursalId == sucursalCreada.Id && c.Orden == 1)
                            .FirstOrDefault();

                    if (contactoCreado != null)
                    {
                        var resultado = Servicio.UsuarioService.AgregarUsuario("", "", cliente.Rut, cliente.NombreContacto, cliente.Correo, false);
                    }
                }

            }
            else
            {
                return false;
            }

            return true;
        }