Exemplo n.º 1
0
        protected void btnRegistroEntidadCliente_Click(object sender, EventArgs e)
        {
            try
            {
                DataUser = (MSSQLSUL.Seguridad.Usuario)Session["Usuario"];
                var  Cliente             = new ClienteBL(DataUser);
                int  tipoCliente         = Convert.ToInt32(hdTipoCliente.Value);
                var  CodCli              = Request.QueryString["CodCli"];
                var  EditProveedor       = string.IsNullOrEmpty(CodCli) ? false : true;
                var  folio               = new GeneraFolioBL(DataUser);
                var  numeroFolio         = new Folio();
                bool GeneroActualizacion = false;
                if (!EditProveedor)
                {
                    numeroFolio = folio.GetFolioFicha(2, 8, false);
                }



                Direccion               _dir            = new Direccion();
                Cliente                 _cli            = new Cliente();
                Informacion_Empresa     _infoEmpresa    = new Informacion_Empresa();
                Direccion               _dirFacturacion = new Direccion();
                Informacion_Facturacion _infoFact       = new Informacion_Facturacion();
                if (tipoCliente.Equals(Convert.ToInt32(TipoCliente.Natural)))
                {
                    _dirFacturacion = new Direccion
                    {
                        pais           = txtNatPais.Text,
                        region         = txtNatRegion.Text,
                        ciudad         = txtNatCiudad.Text,
                        direccion      = txtNatDireccion.Text,
                        zip            = txtNatZip.Text,
                        giro_actividad = TxtNatGiroActividad.Text
                    };

                    _cli = new Cliente
                    {
                        id_tipo_cliente  = tipoCliente,
                        id_codigo_folio  = numeroFolio.idFolio,
                        nombre           = txtNatNombre.Text,
                        rut              = txtNatRut.Text,
                        area_profesion   = txtNatProfesion.Text,
                        identidad        = cmboNatIdentidad.Text,
                        fecha_nacimiento = Convert.ToDateTime(txtNatFechaNac.Text),
                        contacto1        = txtNatFono.Text,
                        contacto2        = txtNatEmail.Text,
                        NombreEntidad    = NombreEntidad.Cliente.ToString()
                    };

                    _infoFact = new Informacion_Facturacion
                    {
                        nombre_cuenta       = txtCtaFactNatNombre.Text,
                        rut                 = txtCtaFactNatRUT.Text,
                        banco               = txtCtaFactNatBanco.Text,
                        tipo_cuenta         = txtCtaFactNatTipoCta.Text,
                        numero_cuenta       = txtCtaFactNatNumCta.Text,
                        correo_confirmacion = txtCtaFactNatEmailConfirm.Text
                    };

                    if (EditProveedor)
                    {
                        var OldDireccionEdit = (Direccion)Session["DireccionFacturacionEdit"];
                        _dirFacturacion.id_direccion = Convert.ToInt32(hdIdDireccionFacturacion.Value);
                        if (Extentions.CompareObject(OldDireccionEdit, _dirFacturacion))
                        {
                            if (!Cliente.UpdateDireccion(_dirFacturacion))
                            {
                                throw new Exception("No se pudo actualizar registro Direccion Id: " + _dirFacturacion.id_direccion.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        var OldInfoFacturacionEdit = (Informacion_Facturacion)Session["InfoFacturacionEdit"];
                        _infoFact.id = Convert.ToInt32(hdIdInfoFactura.Value);
                        if (Extentions.CompareObject(OldInfoFacturacionEdit, _infoFact))
                        {
                            if (!Cliente.UpdateInfoFacturacion(_infoFact))
                            {
                                throw new Exception("No se pudo actualizar registro Informacion de Facturacion Id: " + _cli.id.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        var OldClienteEdit = (Cliente)Session["ClienteEdit"];
                        _cli.id = Convert.ToInt32(hdIdCliente.Value);
                        if (Extentions.CompareObject(OldClienteEdit, _cli))
                        {
                            if (!Cliente.UpdateCliente(_cli))
                            {
                                throw new Exception("No se pudo actualizar registro Cliente Id: " + _cli.id.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        if (GeneroActualizacion)
                        {
                            Cliente.UpdateContadorActualizacion(_cli.id);
                        }

                        (this.Master as NavContenido).MostrarMensaje("Datos Actualizados correctamente.");
                        // Session.Remove("PasoLoad");
                    }
                    else
                    {
                        _dirFacturacion = Cliente.AddDireccion(_dirFacturacion);
                        //_cli.id_direcion = _dirFacturacion.id_direccion;
                        _infoFact.id_direccion = _dirFacturacion.id_direccion;
                        _infoFact            = Cliente.AddInfoFacturacion(_infoFact);
                        _cli.id_info_factura = _infoFact.id;
                        _cli = Cliente.AddCliente(_cli);
                        //(this.Master as NavContenido).MostrarMensajeRedirect("Datos ingresados correctamente.", "/Proveedor.aspx");
                        (this.Master as NavContenido).MostrarMensaje("Datos ingresados correctamente.");
                        // Session.Remove("PasoLoad");
                    }
                }
                else
                {
                    _dir = new Direccion
                    {
                        pais      = txtPais.Text,
                        region    = txtRegion.Text,
                        ciudad    = txtCiudad.Text,
                        direccion = TxtDirección.Text,
                        zip       = txtCodigoPostal.Text
                    };

                    _cli = new Cliente
                    {
                        id_tipo_cliente  = tipoCliente,
                        id_codigo_folio  = numeroFolio.idFolio,
                        nombre           = TxtRepreNombre.Text,
                        rut              = TxtRepreRutID.Text,
                        area_profesion   = TxtRepreProfesion.Text,
                        identidad        = cmboIdentidad.Text,
                        fecha_nacimiento = Convert.ToDateTime(TxtRepreCumple.Text),
                        contacto1        = TxtRepreTelefono.Text,
                        contacto2        = TxtRepreEmail.Text,
                        NombreEntidad    = NombreEntidad.Cliente.ToString()
                    };

                    _infoEmpresa = new Informacion_Empresa
                    {
                        rut             = TxtInfCompIDRUT.Text,
                        razon_social    = TxtInfCompRazonSocial.Text,
                        nombre_fantasia = TxtInfCompNombreFantasia.Text,
                        fecha_fundacion = Convert.ToDateTime(TxtInfCompFechaFundacion.Text),
                        pagina_web      = TxtInfCompPaginaWeb.Text,
                        contacto_corp1  = TxtInfCompTelefono.Text,
                        contacto_corp2  = TxtInfCompEmail.Text
                    };

                    _dirFacturacion = new Direccion
                    {
                        pais           = TxtFactPais.Text,
                        region         = TxtFactEstadoRegion.Text,
                        ciudad         = TxtFactCiudad.Text,
                        direccion      = TxtFactDir.Text,
                        zip            = TxtFactCodPostal.Text,
                        giro_actividad = TxtFactGiroActividad.Text
                    };

                    _infoFact = new Informacion_Facturacion
                    {
                        nombre_cuenta       = txtCtaFactNombre.Text,
                        rut                 = txtCtaFactRUTID.Text,
                        banco               = txtCtaFactBanco.Text,
                        tipo_cuenta         = txtCtaFactTipoCuenta.Text,
                        numero_cuenta       = txtCtaFactNumCta.Text,
                        correo_confirmacion = txtCtaFactEmail.Text
                    };


                    if (EditProveedor)
                    {
                        var OldDireccionEdit = (Direccion)Session["DirClienteEdit"];
                        _dir.id_direccion = Convert.ToInt32(hdIdDireccion.Value);
                        if (Extentions.CompareObject(OldDireccionEdit, _dir))
                        {
                            if (!Cliente.UpdateDireccion(_dir))
                            {
                                throw new Exception("No se pudo actualizar registro Direccion Id: " + _dir.id_direccion.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        var OldDireccionFactEdit = (Direccion)Session["DireccionFacturacionEdit"];
                        _dirFacturacion.id_direccion = Convert.ToInt32(hdIdDireccionFacturacion.Value);
                        if (Extentions.CompareObject(OldDireccionFactEdit, _dirFacturacion))
                        {
                            if (!Cliente.UpdateDireccion(_dirFacturacion))
                            {
                                throw new Exception("No se pudo actualizar registro Direccion Id: " + _dirFacturacion.id_direccion.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }

                        var OldInfoEmpresa = (Informacion_Empresa)Session["InfoEmpresaEdit"];
                        _infoEmpresa.id = Convert.ToInt32(hdIdInfoEmpresa.Value);
                        if (Extentions.CompareObject(OldInfoEmpresa, _infoEmpresa))
                        {
                            if (!Cliente.UpdateInfoEmpresa(_infoEmpresa))
                            {
                                throw new Exception("No se pudo actualizar registro Informacion empresa Id: " + _infoEmpresa.id.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        var OldInfoFacturacionEdit = (Informacion_Facturacion)Session["InfoFacturacionEdit"];
                        _infoFact.id = Convert.ToInt32(hdIdInfoFactura.Value);

                        if (Extentions.CompareObject(OldInfoFacturacionEdit, _infoFact))
                        {
                            if (!Cliente.UpdateInfoFacturacion(_infoFact))
                            {
                                throw new Exception("No se pudo actualizar registro Informacion de Facturacion Id: " + _cli.id.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        var OldClienteEdit = (Cliente)Session["ClienteEdit"];
                        _cli.id = Convert.ToInt32(hdIdCliente.Value);
                        if (Extentions.CompareObject(OldClienteEdit, _cli))
                        {
                            if (!Cliente.UpdateCliente(_cli))
                            {
                                throw new Exception("No se pudo actualizar registro Cliente Id: " + _cli.id.ToString());
                            }
                            else
                            {
                                GeneroActualizacion = true;
                            }
                        }
                        if (GeneroActualizacion)
                        {
                            Cliente.UpdateContadorActualizacion(_cli.id);
                        }

                        (this.Master as NavContenido).MostrarMensaje("Datos Actualizados correctamente.");
                        // Session.Remove("PasoLoad");
                    }
                    else
                    {
                        _dir = Cliente.AddDireccion(_dir);
                        _cli.id_direccion = _dir.id_direccion;

                        _dirFacturacion        = Cliente.AddDireccion(_dirFacturacion);
                        _infoFact.id_direccion = _dirFacturacion.id_direccion;

                        _infoEmpresa         = Cliente.AddInfoEmpresa(_infoEmpresa);
                        _cli.id_info_empresa = _infoEmpresa.id;

                        _infoFact            = Cliente.AddInfoFacturacion(_infoFact);
                        _cli.id_info_factura = _infoFact.id;

                        _cli = Cliente.AddCliente(_cli);

                        //Session.Remove("PasoLoad");
                        (this.Master as NavContenido).MostrarMensajeRedirect("Datos ingresados correctamente.", "/Proveedor.aspx");
                    }
                }
            }
            catch (Exception ex)
            {
                (this.Master as NavContenido).MostrarError("Ha ocurrido un error ", "Error", ex);
            }
            finally
            {
                Session.Remove("DireccionFacturacionEdit");
                Session.Remove("ClienteEdit");
                Session.Remove("InfoFacturacionEdit");
                Session.Remove("InfoEmpresaEdit");
                Session.Remove("DirClienteEdit");
            }
        }