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"); } }