Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
        }