/// <summary> /// Crea el Nuevo Contacto /// </summary> /// <param name="oContactoBE">Datos del Contacto a Actualizar</param> /// <returns>Crea el Nuevo Contacto</returns> public Guid CrearContacto(ContactoBE oContactoBE) { IOrganizationService servicio; servicio = ConexionCRMDA.ObtenerConexion(); SOLE.Contact Contacto = new SOLE.Contact(); Guid guidContacto; // ??? del tipo Guid try { Contacto.FirstName = oContactoBE.Sole_nombres; Contacto.LastName = oContactoBE.Sole_apellidos; Contacto.sole_tipodocumento = new OptionSetValue((int)oContactoBE.Sole_tipodocumento); Contacto.sole_numerodocumento = oContactoBE.Sole_numerodocumento; if (oContactoBE.Sole_tipoContacto == 365230000) { Contacto.sole_estadosole = new OptionSetValue((int)oContactoBE.Sole_estadoSole); } Contacto.sole_tipocontacto = new OptionSetValue((int)oContactoBE.Sole_tipoContacto); Contacto.Telephone1 = oContactoBE.Sole_telefono1; Contacto.EMailAddress1 = oContactoBE.Sole_correoelectronico1; //if (oContactoBE.Sole_fechanacimiento.ToString() != "01-01-1900 0:00:00" && oContactoBE.Sole_fechanacimiento.ToString() != "01-01-0001 0:00:00") //{ // Contacto.BirthDate = oContactoBE.Sole_fechanacimiento; //} Contacto.Telephone2 = oContactoBE.Sole_telefono2; Contacto.Telephone3 = oContactoBE.Sole_telefono3; Contacto.EMailAddress2 = oContactoBE.Sole_correoelectronico2; Contacto.EMailAddress3 = oContactoBE.Sole_correoelectronico3; //Contacto.GenderCode = new OptionSetValue((int)oContactoBE.Sole_sexo); //Contacto.sole_estilovida = new OptionSetValue((int)oContactoBE.Sole_estilovida); //Contacto.sole_ocupacion = new OptionSetValue((int)oContactoBE.Sole_ocupacion); //Contacto.sole_perfilcliente = new OptionSetValue((int)oContactoBE.Sole_perfilcliente); //Contacto.sole_fuenteorigen = new OptionSetValue((int)oContactoBE.Sole_fuenteorigen); //Contacto.sole_tipofuenteorigen = new OptionSetValue((int)oContactoBE.Sole_fuenteorigen); if (oContactoBE.Sole_tipoclientepotencial != 0) { Contacto.sole_tipoclientepotencial = new OptionSetValue((int)oContactoBE.Sole_tipoclientepotencial); } //if (oContactoBE.Sole_fechaconversion.ToString() != "01-01-1900 0:00:00" && oContactoBE.Sole_fechaconversion.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechaconversion = oContactoBE.Sole_fechaconversion; //} Contacto.sole_interesbano = oContactoBE.Sole_interesbano; Contacto.sole_interescocina = oContactoBE.Sole_interescocina; Contacto.sole_interesdescanso = oContactoBE.Sole_interesdescanso; //if (oContactoBE.Sole_estadoSole != 0) //{ // Contacto.sole_estadosole = new OptionSetValue((int)oContactoBE.Sole_estadoSole); //} //if (oContactoBE.Sole_fechanuevo.ToString() != "01-01-1900 0:00:00" && oContactoBE.Sole_fechanuevo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechanuevo = oContactoBE.Sole_fechanuevo; //} //if (oContactoBE.Sole_fechaactivo.ToString() != "01-01-1900 0:00:00" && oContactoBE.Sole_fechaactivo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechaactivo = oContactoBE.Sole_fechaactivo; //} //if (oContactoBE.Sole_fechaincativo.ToString() != "01-01-1900 0:00:00" && oContactoBE.Sole_fechaincativo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechainactivo = oContactoBE.Sole_fechaincativo; //} Contacto.DoNotEMail = oContactoBE.Sole_permissionmarketingcorreo; Contacto.DoNotPhone = oContactoBE.Sole_permissionmarketingtelefono; Contacto.sole_departamentoid = new EntityReference(SOLE.sole_departamento.EntityLogicalName, Guid.Parse(oContactoBE.Sole_departamento)); Contacto.sole_provinciaid = new EntityReference(SOLE.sole_provincia.EntityLogicalName, Guid.Parse(oContactoBE.Sole_provincia)); Contacto.sole_distritoid = new EntityReference(SOLE.sole_distrito.EntityLogicalName, Guid.Parse(oContactoBE.Sole_distrito)); Contacto.Address1_Name = oContactoBE.Sole_direccion; //Validamos si el Campo Sole Tienda Asignada tiene Datos if (oContactoBE.Sole_tienda != "") { //Como Tiene Datos, buscamos el Guid del Usuario de la Tienda Asignada string guidUsuario; guidUsuario = oFuncionesDA.ObtieneUsuarioIdxTiendaAsignada(oContactoBE.Sole_tienda); // Busca el id del usuario por la tienda asignada if (guidUsuario != "") { Contacto.OwnerId = new EntityReference("systemuser", Guid.Parse(guidUsuario)); // Referncia de una entidad que esta relacionada con Contacto guidContacto = servicio.Create(Contacto); // ocupamos uno de los metodos de IOrganizationServices return(guidContacto); } else { guidContacto = servicio.Create(Contacto); return(guidContacto); } } else { guidContacto = servicio.Create(Contacto); return(guidContacto); } } catch (Exception ex) { oBitacoraErroresBE.Codigo = ex.HResult.ToString(); oBitacoraErroresBE.Proceso = "Crear Contacto"; oBitacoraErroresBE.Error = ex.Source; oBitacoraErroresBE.Descripcion = ex.Message; oBitacoraErroresBE.IdRegistro = oContactoBE.ContactoId; oBitacoraErroresBE.Entidad = "Contacto"; oBitacoraErroresBE.EstadoCarga = "0"; oFuncionesDA.RegistraBitacoraErrores(oBitacoraErroresBE); //oFuncionesDA.ActualizarEstadoTablaContacto(oContactoBE.ContactoId); string Mensaje = "Error al Crear el Contacto. Se ha producido el siguiente error: " + ex.Message; ZthMetodosVarios.Metodos.GuardarLog(Ruta, Mensaje); //ZthEnvioCorreos_CRM365.Metodos.EnviarCorreoError(CorreoSoporte, CorreoCliente, "Integración MACAL", Ruta, Mensaje, CorreoClave, Port, Host); throw ex; } }
/// <summary> /// Actualiza los Datos del Contactogithub /// </summary> /// <param name="guidContacto">Guid del Contacto a Actualizar</param> /// <param name="oContactoBE">Datos del Contacto a Actualizar</param> /// <returns>Actualiza los Datos del Contacto</returns> public Boolean ActualizaContacto(string guidContacto, ContactoBE oContactoBE) { IOrganizationService servicio; // Instancia del servicio servicio = ConexionCRMDA.ObtenerConexion(); // asginamos la cadena de conexión SOLE.Contact Contacto = new SOLE.Contact(); // Instancia de la entidad Contacto try { // guid esta dentro del crm Contacto.ContactId = Guid.Parse(guidContacto); /* * Resumen: * Asignamos campos de BE a Campos de la entidad contacto de CRM (Campos de BE contienen los datos de SQL Server) * Actualizamos el contacto del CRM */ Contacto.FirstName = oContactoBE.Sole_nombres; Contacto.LastName = oContactoBE.Sole_apellidos; Contacto.Telephone1 = oContactoBE.Sole_telefono1; Contacto.EMailAddress1 = oContactoBE.Sole_correoelectronico1; //if (oContactoBE.Sole_fechanacimiento.ToString() != "01-01-0001 0:00:00") //{ // Contacto.BirthDate = oContactoBE.Sole_fechanacimiento; //} //Contacto.GenderCode = new OptionSetValue((int)oContactoBE.Sole_sexo); Contacto.Telephone2 = oContactoBE.Sole_telefono2; Contacto.Telephone3 = oContactoBE.Sole_telefono3; Contacto.EMailAddress2 = oContactoBE.Sole_correoelectronico2; Contacto.EMailAddress3 = oContactoBE.Sole_correoelectronico3; //Contacto.sole_estilovida = new OptionSetValue((int)oContactoBE.Sole_estilovida); //Contacto.sole_ocupacion = new OptionSetValue((int)oContactoBE.Sole_ocupacion); //Contacto.sole_perfilcliente = new OptionSetValue((int)oContactoBE.Sole_perfilcliente); //Contacto.sole_tipoclientepotencial = new OptionSetValue((int)oContactoBE.Sole_tipoclientepotencial); //Contacto.sole_fuenteorigen = new OptionSetValue((int)oContactoBE.Sole_fuenteorigen); //Contacto.sole_tipofuenteorigen = new OptionSetValue((int)oContactoBE.Sole_fuenteorigen); //if (oContactoBE.Sole_fechaconversion.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechaconversion = oContactoBE.Sole_fechaconversion; //} Contacto.sole_interesbano = oContactoBE.Sole_interesbano; Contacto.sole_interescocina = oContactoBE.Sole_interescocina; Contacto.sole_interesdescanso = oContactoBE.Sole_interesdescanso; if (oContactoBE.Sole_estadoSole != 0) { Contacto.sole_estadosole = new OptionSetValue((int)oContactoBE.Sole_estadoSole); } //if (oContactoBE.Sole_fechanuevo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechanuevo = oContactoBE.Sole_fechanuevo; //} //if (oContactoBE.Sole_fechaactivo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechaactivo = oContactoBE.Sole_fechaactivo; //} //if (oContactoBE.Sole_fechaincativo.ToString() != "01-01-0001 0:00:00") //{ // Contacto.sole_fechainactivo = oContactoBE.Sole_fechaincativo; //} Contacto.DoNotEMail = oContactoBE.Sole_permissionmarketingcorreo; Contacto.DoNotPhone = oContactoBE.Sole_permissionmarketingtelefono; Contacto.sole_departamentoid = new EntityReference(SOLE.sole_departamento.EntityLogicalName, Guid.Parse(oContactoBE.Sole_departamento)); Contacto.sole_provinciaid = new EntityReference(SOLE.sole_provincia.EntityLogicalName, Guid.Parse(oContactoBE.Sole_provincia)); Contacto.sole_distritoid = new EntityReference(SOLE.sole_distrito.EntityLogicalName, Guid.Parse(oContactoBE.Sole_distrito)); Contacto.Address1_Name = oContactoBE.Sole_direccion; Contacto.sole_zona = new OptionSetValue((int)oContactoBE.Sole_zona); if (oContactoBE.Sole_nse != 0) { Contacto.sole_nse = new OptionSetValue((int)oContactoBE.Sole_nse); } return(true); } catch (Exception ex) { /* * * * Guardamos los datos en la variables de BE de la clase bitácora errores * */ oBitacoraErroresBE.Codigo = ex.HResult.ToString(); // La asignacion de un identificador oBitacoraErroresBE.Proceso = "Actualizar Contacto"; // Nombre del proceso oBitacoraErroresBE.Error = ex.Source; // Fuente de error oBitacoraErroresBE.Descripcion = ex.Message; // Mensaje descriptivo de la excepción oBitacoraErroresBE.IdRegistro = oContactoBE.ContactoId; // ID donde se haya el error oBitacoraErroresBE.Entidad = "Contacto"; // entidad del error oBitacoraErroresBE.EstadoCarga = "0"; // Carga cero oFuncionesDA.RegistraBitacoraErrores(oBitacoraErroresBE); //oFuncionesDA.ActualizarEstadoTablaContacto(oContactoBE.ContactoId); string Mensaje = "Error al Actualizar el Contacto. Se ha producido el siguiente error: " + ex.Message; ZthMetodosVarios.Metodos.GuardarLog(Ruta, Mensaje); //ZthEnvioCorreos_CRM365.Metodos.EnviarCorreoError(CorreoSoporte, CorreoCliente, "Integración MACAL", Ruta, Mensaje, CorreoClave, Port, Host); throw ex; } }