public static ResultadoTransaccion GuardaTarget(clsTarget Target) { resTransaccion = new ResultadoTransaccion(); try { //Abrir Conexion conn = BaseDatos.Conexion(); //Crear Transaccion transaction = conn.BeginTransaction(); //Registrar Direcciones resTransaccion = clsDireccionADO.GuardarDirecciones(Target.ClienteMaster.DireccionInfo, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) { throw new Exception(resTransaccion.Descripcion); } Target.ClienteMaster.DireccionInfo = (clsDireccionInfo) resTransaccion.ObjetoTransaccion; //Registrar Cliente Master resTransaccion = clsClienteMasterADO.GuardarClienteMaster(Target.ClienteMaster, conn, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); idMaster = (Int64)resTransaccion.ObjetoTransaccion; //Registrar empresa competencia Int64 idEmpresaCompetencia = 0; if(Target.EmpresaConQueTrabaja == null) { idEmpresaCompetencia = -1; } else if (Target.EmpresaConQueTrabaja.IsNew) { resTransaccion = AsignarEmpresaCompetencia(Target, conn, transaction); if(resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); idEmpresaCompetencia = (Int64) resTransaccion.ObjetoTransaccion; } else idEmpresaCompetencia = Target.EmpresaConQueTrabaja.Id; //Resitrar Origen Carga Int64 idOrigenCarga = 0; if(Target.OrigenCarga == null) { idOrigenCarga = -1; } else if(Target.OrigenCarga.IsNew) { resTransaccion = AsignarOrigenCarga(Target, conn, transaction); if(resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); idOrigenCarga =(Int64)resTransaccion.ObjetoTransaccion; } else { idOrigenCarga = Target.OrigenCarga.Id; } //Registrar Target objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_N_CLIENTES_TARGET"); objParams[0].Value = idMaster; if (Target.TipoSaludo != null) objParams[1].Value = Target.TipoSaludo.Id; else objParams[1].Value = -1; objParams[2].Value = Target.Cargo; if (Target.VendedorAsignado != null) objParams[3].Value = Target.VendedorAsignado.Id; else objParams[3].Value = -1; objParams[4].Value = Target.Telefono; objParams[5].Value = Target.CuentaSkype; objParams[6].Value = Target.SitioWeb; objParams[7].Value = Target.Email; objParams[8].Value = Target.Estado; objParams[9].Value = Target.Observacion; if (Target.SectorEconomico != null) objParams[10].Value = Target.SectorEconomico.Id; else objParams[10].Value = -1; if (Target.TipoMonedaVtaEstimada != null) objParams[11].Value = Target.TipoMonedaVtaEstimada.Id; else objParams[11].Value = -1; objParams[12].Value = Target.MontoVentaEstimada; objParams[13].Value = Target.NumEmpleados; if (Target.OrigenCliente != null) objParams[14].Value = Target.OrigenCliente.Id; else objParams[14].Value = -1; if (Target.MotivoInteres != null) objParams[15].Value = Target.MotivoInteres.Id; else objParams[15].Value = -1; if (Target.NivelInteres != null) objParams[16].Value = Target.NivelInteres.Id; else objParams[16].Value = -1; objParams[17].Value = idEmpresaCompetencia; objParams[18].Value = idOrigenCarga; if (Target.FormaContactoPreferida != null) objParams[19].Value = Target.FormaContactoPreferida.Id; else objParams[19].Value = -1; objParams[20].Value = Target.PermiteTelOficina; objParams[21].Value = Target.PermiteTelParticular; objParams[22].Value = Target.PermiteTelCelular; objParams[23].Value = Target.PermiteSkype; objParams[24].Value = Target.PermiteEmail; objParams[25].Value = Target.PermiteEmailMasivo; if (Target.DiaPreferido == null) objParams[26].Value = "-1"; else objParams[26].Value = Target.DiaPreferido.Id; if (Target.JornadaPreferida == null) objParams[27].Value = "-1"; else objParams[27].Value = Target.JornadaPreferida.Id; SqlCommand command2 = new SqlCommand("SP_N_CLIENTES_TARGET", conn); command2.Transaction = transaction; command2.Parameters.AddRange(objParams); command2.CommandType = CommandType.StoredProcedure; idTarget = Convert.ToInt64(command2.ExecuteScalar()); Target.Id = idTarget; if(idMaster > 0) { //Productos preferidos //clsClienteMasterADO.BorrarProductos(idTarget, transaction,conn); foreach (var producto in Target.ClienteMaster.ProductosPreferidos) { clsClienteMasterADO.AsignarTipoProducto(producto, idMaster,transaction,conn); } //Tipos Relacion //clsClienteMasterADO.BorrarTipoRelacion(idMaster, transaction, conn); foreach (var relacion in Target.ClienteMaster.TiposRelaciones) { clsClienteMasterADO.AsignarTipoRelacion(relacion, idMaster, transaction, conn); } } //Ejecutar transaccion transaction.Commit(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; resTransaccion.Descripcion = "Se Creo Target con Id " + idMaster.ToString(); //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(Target.GetType().ToString(),Target.Id,Enums.TipoActividadUsuario.Creo,Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { transaction.Rollback(); Log.EscribirLog(ex.Message); resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; resTransaccion.ArchivoError = "clsTargetDao.cs"; resTransaccion.MetodoError = "GuardaTarget"; } finally { conn.Close(); resTransaccion.Accion = Enums.AccionTransaccion.Insertar; Target.Id = idTarget; Target.ClienteMaster.Id = idMaster; resTransaccion.ObjetoTransaccion = Target; } return resTransaccion; }
public static ResultadoTransaccion EliminarTarget(clsTarget Target) { ResultadoTransaccion resTransaccion = new ResultadoTransaccion(); try { transaction = BaseDatos.Conexion().BeginTransaction(); //Eliminar Direcciones if(Target.ClienteMaster.DireccionInfo != null) { foreach (var direccion in Target.ClienteMaster.DireccionInfo.Items) { resTransaccion = new ResultadoTransaccion(); resTransaccion = clsDireccionADO.EliminarDireccion(direccion, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } resTransaccion = new ResultadoTransaccion(); resTransaccion = clsDireccionADO.EliminarDireccionInfo(Target.ClienteMaster.DireccionInfo.IdInfo, transaction); if(resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } //Eliminar Tipos de Relacion resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.BorrarTipoRelacion(Target.ClienteMaster.Id, transaction, conn); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Tipos de Carga resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.BorrarProductos(Target.ClienteMaster.Id, transaction, conn); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Cliente Master resTransaccion = new ResultadoTransaccion(); resTransaccion = clsClienteMasterADO.EliminarClienteMaster(Target.ClienteMaster, transaction); if(resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); //Eliminar Contactos IList<clsContacto> listContactos = new List<clsContacto>(); listContactos = clsClienteMasterADO.ListarContactos(Target.ClienteMaster); foreach (var contacto in listContactos) { resTransaccion = new ResultadoTransaccion(); resTransaccion = clsContactoADO.EliminarContacto(contacto, transaction); if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada) throw new Exception(resTransaccion.Descripcion); } //Eliminar Target objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_E_CLIENTES_TARGET"); objParams[0].Value = Target.Id; SqlCommand command = new SqlCommand("SP_E_CLIENTES_TARGET", BaseDatos.Conexion()); command.Parameters.AddRange(objParams); command.CommandType = CommandType.StoredProcedure; command.Transaction = transaction; command.ExecuteNonQuery(); resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada; transaction.Commit(); //Registrar Actividad LogActividadUsuarios log = new LogActividadUsuarios(Target.GetType().ToString(), Target.Id, Enums.TipoActividadUsuario.Elimino, Base.Usuario.UsuarioConectado.Usuario); LogActividades.clsLogActividadUsuariosADO.GuardaActividad(log); } catch (Exception ex) { transaction.Rollback(); resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada; resTransaccion.Descripcion = ex.Message; Log.EscribirLog(ex.Message); } finally { BaseDatos.CerrarConexion(); } return resTransaccion; }