Ejemplo n.º 1
0
        private void BuscarTargetAccount()
        {
            ResultadoTransaccion resultado = new ResultadoTransaccion();

            resultado = LogicaNegocios.Clientes.clsTargetAccount.ObtenerTargetAccountPorIdSource(ObjProspecto.Id);
            if (resultado.Estado == Enums.EstadoTransaccion.Aceptada)
            {
                TargetAccount = new clsTargetAccount();
                TargetAccount = (clsTargetAccount)resultado.ObjetoTransaccion;

                if (TargetAccount == null)
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show(resultado.Descripcion, "Target Account", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 2
0
        private void BuscarTargetAccount()
        {
            ResultadoTransaccion resultado = new ResultadoTransaccion();

            resultado = LogicaNegocios.Clientes.clsTargetAccount.ObtenerTargetAccountPorIdSource(ObjProspecto.Id);
            if (resultado.Estado == Enums.EstadoTransaccion.Aceptada)
            {
                TargetAccount = new clsTargetAccount();
                TargetAccount = (clsTargetAccount)resultado.ObjetoTransaccion;

                if (TargetAccount == null)
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show(resultado.Descripcion, "Target Account", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 3
0
        private void BuscarTargetAccount()
        {
            ResultadoTransaccion resultado = new ResultadoTransaccion();

                    resultado = LogicaNegocios.Clientes.clsTargetAccount.ObtenerTargetAccountPorIdSource(IdTargetSource);
                    if (resultado.Estado == Enums.EstadoTransaccion.Aceptada)
                    {
                        TargetAccount = new clsTargetAccount();
                        TargetAccount = (clsTargetAccount)resultado.ObjetoTransaccion;

                        if(TargetAccount == null)
                        {
                            MessageBox.Show("El Target buscado no existe.", "Target Account", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            tabTargetAccount.Enabled = false;

                            return;
                        }

                        CargarFormulario();
                    }
                    else
                    {
                        MessageBox.Show(resultado.Descripcion, "Target Account", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
        }
Ejemplo n.º 4
0
        private void frmTargetAccount_Load(object sender, EventArgs e)
        {
            TargetAccount = new clsTargetAccount();
                LimpiarLabelsResumen();
                //METODO QUE USARA LEO PARA CREAR EL TARGET ACCOUNT
                //FORMA 1: PARAMETROS POR OBJETO TARGETACCOUNT
                //TargetAccount = new clsTargetAccount("PRUEBAAAAA", 1);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount(TargetAccount);

                //FORMA 2: PARAMETROS POR PARAMETROS EN EL METODO
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 7", 7);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 8", 8);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 9", 9);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 10", 10);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 11", 11);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 12", 12);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 13", 13);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 14", 14);
                //LogicaNegocios.Clientes.clsTargetAccount.CreatTargetAccount("PRUEBA 15", 15);

                CargarPaises();
                CargarProductos();
                CargarTraficos();
                CargarOrigenesCarga();
                CargarDestinosCarga();
                CargarTraficosExistentes();
                CargarUnidadesDeMedida();
                CargarTerminoCompra();
                CargarIncoTerms();
                CargarEmpresasCompetencia();
                CargarServiciosCoplementarios();
                CargarObjeciones();
                //CargarAccionesTomar();

                BuscarTargetAccount();

                ValidarAcciones();
        }
Ejemplo n.º 5
0
        public static ResultadoTransaccion ActualizarPaso1(clsTargetAccount targetaccount)
        {
            SqlConnection conn = null;
            SqlTransaction transaction = null;
            ResultadoTransaccion resTransaccion = null;

            try
            {
                //Abrir Conexion
                conn = BaseDatos.Conexion();

                //Crear Transaccion
                transaction = conn.BeginTransaction();

                //Registrar Direcciones
                resTransaccion = clsDireccionADO.GuardarDirecciones(targetaccount.ClienteMaster.DireccionInfo, conn,
                                                                    transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                {
                    throw new Exception(resTransaccion.Descripcion);
                }
                targetaccount.ClienteMaster.DireccionInfo = (clsDireccionInfo) resTransaccion.ObjetoTransaccion;

                //Registrar Cliente Master
                resTransaccion = clsClienteMasterADO.ActualizarClienteMaster(targetaccount.ClienteMaster, conn,
                                                                          transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Actualizar Target Account Paso 1
                resTransaccion = ActualizarTargetAccountInfGeneralP1(targetaccount,conn,transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Borrar traficos
                resTransaccion = BorrarTraficosTargetAccount(targetaccount.ClienteMaster.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Guardar Traficos
                Int64 IdTrafico = 0;

                foreach (var trafico in targetaccount.Traficos)
                {
                    IdTrafico = trafico.Id;
                    if (trafico.IsNew)
                    {
                        resTransaccion = new ResultadoTransaccion();
                        resTransaccion = clsTipoProductosADO.CrearNuevoTrafico(trafico, conn, transaction);
                        if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                            throw new Exception(resTransaccion.Descripcion);

                        trafico.Id = (Int64)resTransaccion.ObjetoTransaccion;
                    }

                    resTransaccion = AsignarTraficoTargetAccount(targetaccount.ClienteMaster.Id, trafico.Id, conn,
                                                                 transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                //Borrar Origenes
                resTransaccion = BorrarOrigenesCargaTargetAccount(targetaccount.ClienteMaster.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Guardar Origenes de Carga
                Int64 idOrigenCarga = 0;
                foreach (var origen in targetaccount.OrigenesCarga)
                {
                    idOrigenCarga = origen.Id;
                    if(origen.IsNew)
                    {
                        resTransaccion = AgregarOrigenCarga(origen, conn, transaction);
                        if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                            throw new Exception(resTransaccion.Descripcion);

                        idOrigenCarga = (Int64)resTransaccion.ObjetoTransaccion;
                    }

                    resTransaccion = AsignarOrigenCargaTargetAccount(targetaccount.ClienteMaster.Id, idOrigenCarga,conn,transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);

                }

                //Borrar Destinos
                resTransaccion = BorrarDestinosCargaTargetAccount(targetaccount.ClienteMaster.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Guardar Destinos de Carga
                Int64 idDestinoCarga = 0;
                foreach (var destino in targetaccount.DestinosCarga)
                {
                    idDestinoCarga = destino.Id;
                    if (destino.IsNew)
                    {
                        resTransaccion = AgregarDestinoCarga(destino, conn, transaction);
                        if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                            throw new Exception(resTransaccion.Descripcion);

                        idDestinoCarga = (Int64)resTransaccion.ObjetoTransaccion;
                    }

                    resTransaccion = AsignarDestinoCargaTargetAccount(targetaccount.ClienteMaster.Id, idDestinoCarga, conn, transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);

                }

                //Cambiar Estado Meta
                resTransaccion = AccesoDatos.Direccion.Metas.clsMetaAdo.GuardarCambioEstadoTransaction(targetaccount.IdTargetSource, Convert.ToInt16(targetaccount.Estado),conn,transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Ejecutar transaccion
                transaction.Commit();

                resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada;

            }
            catch(Exception ex)
            {
                transaction.Rollback();
                Log.EscribirLog(ex.Message);

                resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada;
                resTransaccion.Descripcion = ex.Message;
                resTransaccion.ArchivoError = "clsTargetAccountADO";
                resTransaccion.MetodoError = MethodBase.GetCurrentMethod().Name;
            }
            finally
            {
                conn.Close();

            }

            return resTransaccion;
        }
Ejemplo n.º 6
0
        public static ResultadoTransaccion ActualizarPaso3(clsTargetAccount targetaccount)
        {
            SqlConnection conn = null;
            SqlTransaction transaction = null;
            ResultadoTransaccion resTransaccion = null;

            try
            {
                //Abrir Conexion
                conn = BaseDatos.Conexion();

                //Crear Transaccion
                transaction = conn.BeginTransaction();

                //Actualizar Target Account Paso 3
                resTransaccion = ActualizarTargetAccountInfVisitaP3(targetaccount, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Asignar productos
                resTransaccion = clsClienteMasterADO.BorrarProductos(targetaccount.ClienteMaster.Id, transaction,conn);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                foreach (var producto in targetaccount.ClienteMaster.ProductosPreferidos)
                {
                   resTransaccion = clsClienteMasterADO.AsignarTipoProducto(producto, targetaccount.ClienteMaster.Id, transaction, conn);
                   if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                       throw new Exception(resTransaccion.Descripcion);

                }

                //Servicios Complementarios
                resTransaccion = BorrarServiciosComplementariosTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                foreach (var servicio in targetaccount.ServiciosComplementarios)
                {
                    resTransaccion = AsignarServicioComplementarioTargetAccount(targetaccount.Id, servicio,conn,transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                //Personales
                resTransaccion = BorrarPersonalesTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);
                foreach (var personal in targetaccount.Personales)
                {
                    resTransaccion = AsignarPersonalesTargetAccount(targetaccount.Id, personal, conn, transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);

                }

                //Objeciones
                resTransaccion = BorrarObjecionesTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);
                foreach (var objecion in targetaccount.Objeciones)
                {
                    resTransaccion = AsignarObjecionesTargetAccount(targetaccount.Id, objecion, conn, transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                //Acciones Tomar
                resTransaccion = BorrarAccionesTomarTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                resTransaccion = AsignarAccionTomarTargetAccount(targetaccount.Id, targetaccount.AccionTomar, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //foreach (var accion in targetaccount.AccionesTomar)
                //{
                //    if(accion.IsNew)
                //    {
                //        resTransaccion = CrearAccionATomar(accion, conn, transaction);
                //        if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                //            throw new Exception(resTransaccion.Descripcion);

                //        accion.Id = Convert.ToInt64(resTransaccion.ObjetoTransaccion);
                //    }

                //    resTransaccion = AsignarAccionTomarTargetAccount(targetaccount.Id, accion, conn, transaction);
                //    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                //        throw new Exception(resTransaccion.Descripcion);
                //}

                //Cambiar Estado Meta
                resTransaccion = AccesoDatos.Direccion.Metas.clsMetaAdo.GuardarCambioEstadoTransaction(targetaccount.IdTargetSource, Convert.ToInt16(targetaccount.Estado), conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Ejecutar transaccion
                transaction.Commit();

                resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada;

            }
            catch (Exception ex)
            {
                transaction.Rollback();
                Log.EscribirLog(ex.Message);

                resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada;
                resTransaccion.Descripcion = ex.Message;
                resTransaccion.ArchivoError = "clsTargetAccountADO";
                resTransaccion.MetodoError = MethodBase.GetCurrentMethod().Name;
            }
            finally
            {
                conn.Close();

            }

            return resTransaccion;
        }
Ejemplo n.º 7
0
        public static ResultadoTransaccion ActualizarPaso2(clsTargetAccount targetaccount)
        {
            SqlConnection conn = null;
            SqlTransaction transaction = null;
            ResultadoTransaccion resTransaccion = null;

            try
            {
                //Abrir Conexion
                conn = BaseDatos.Conexion();

                //Crear Transaccion
                transaction = conn.BeginTransaction();

                //Actualizar Target Account Paso 2
                resTransaccion = ActualizarTargetAccountInfLlamadaP2(targetaccount, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Borrar empresas competencia
                resTransaccion = BorrarEmpresaCompetenciaTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Registrar empresa competencia
                Int64 idEmpresaCompetencia = 0;

                foreach (clsTargetAccountCompetencia competencia in targetaccount.EmbarcaCon)
                {
                    idEmpresaCompetencia = competencia.Id;
                    if(competencia.IsNew)
                    {
                        resTransaccion = AgregarEmpresaCompetencia(competencia, conn, transaction);
                        if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                            throw new Exception(resTransaccion.Descripcion);

                        idEmpresaCompetencia = (Int64)resTransaccion.ObjetoTransaccion;
                    }

                    resTransaccion = AsignarEmpresaCompetenciaTargetAccount(targetaccount.Id, idEmpresaCompetencia,
                                                                            conn, transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                //Borrar Personas Toman Desiciones
                resTransaccion = BorrarTomaDesicionesTargetAccount(targetaccount.Id, conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Asignar Personas toman Desiciones
                foreach (var tomadesicion in targetaccount.TomaDesiciones)
                {
                    resTransaccion = AsignarTomaDesicionTargetAccount(targetaccount.Id, tomadesicion, conn, transaction);
                    if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                        throw new Exception(resTransaccion.Descripcion);
                }

                //Cambiar Estado Meta
                resTransaccion = AccesoDatos.Direccion.Metas.clsMetaAdo.GuardarCambioEstadoTransaction(targetaccount.IdTargetSource, Convert.ToInt16(targetaccount.Estado), conn, transaction);
                if (resTransaccion.Estado == Enums.EstadoTransaccion.Rechazada)
                    throw new Exception(resTransaccion.Descripcion);

                //Ejecutar transaccion
                transaction.Commit();

                resTransaccion.Estado = Enums.EstadoTransaccion.Aceptada;

            }
            catch (Exception ex)
            {
                transaction.Rollback();
                Log.EscribirLog(ex.Message);

                resTransaccion.Estado = Enums.EstadoTransaccion.Rechazada;
                resTransaccion.Descripcion = ex.Message;
                resTransaccion.ArchivoError = "clsTargetAccountADO";
                resTransaccion.MetodoError = MethodBase.GetCurrentMethod().Name;
            }
            finally
            {
                conn.Close();

            }

            return resTransaccion;
        }
Ejemplo n.º 8
0
        private static ResultadoTransaccion ActualizarTargetAccountInfVisitaP3(clsTargetAccount targetaccount, SqlConnection conn, SqlTransaction transaction)
        {
            ResultadoTransaccion res = new ResultadoTransaccion();

            try
            {
                objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_A_CLIENTES_TARGET_ACCOUNT_VISITA_P3");
                objParams[0].Value = targetaccount.Id;
                objParams[1].Value = targetaccount.ObservacionVisita;
                objParams[2].Value = targetaccount.Estado;

                SqlCommand command3 = new SqlCommand("SP_A_CLIENTES_TARGET_ACCOUNT_VISITA_P3", conn);
                command3.Transaction = transaction;
                command3.Parameters.AddRange(objParams);
                command3.CommandType = CommandType.StoredProcedure;
                command3.ExecuteNonQuery();

                res.Estado = Enums.EstadoTransaccion.Aceptada;

            }
            catch (Exception ex)
            {
                res.Estado = Enums.EstadoTransaccion.Rechazada;
                res.Descripcion = ex.Message;
                Log.EscribirLog(ex.Message);
            }
            return res;
        }
Ejemplo n.º 9
0
        private static ResultadoTransaccion ActualizarTargetAccountInfGeneralP1(clsTargetAccount targetaccount, SqlConnection conn, SqlTransaction transaction)
        {
            ResultadoTransaccion res = new ResultadoTransaccion();

            try
            {
                objParams = SqlHelperParameterCache.GetSpParameterSet(conn, "SP_A_CLIENTES_TARGET_ACCOUNT_INFGENERAL_P1");
                objParams[0].Value = targetaccount.Id;
                objParams[1].Value = targetaccount.TelefonoEmpresa;
                objParams[2].Value = targetaccount.TelefonoDirecto;
                if (targetaccount.EmbarquesPorMes.HasValue)
                    objParams[3].Value = targetaccount.EmbarquesPorMes;
                else
                    objParams[3].Value = -1;

                if (targetaccount.CantidadLCL.HasValue)
                    objParams[4].Value = targetaccount.CantidadLCL;
                else
                    objParams[4].Value = -1;

                objParams[5].Value = targetaccount.UMLCL.Id;

                if (targetaccount.CantidadFCL.HasValue)
                    objParams[6].Value = targetaccount.CantidadFCL;
                else
                    objParams[6].Value = -1;

                objParams[7].Value = targetaccount.UMFCL.Id;

                if (targetaccount.CantidadAereo.HasValue)
                    objParams[8].Value = targetaccount.CantidadAereo;
                else
                    objParams[8].Value = -1;

                objParams[9].Value = targetaccount.UMAereo.Id;
                objParams[10].Value = targetaccount.TerminoCompra.Id;
                objParams[11].Value = targetaccount.IncoTerm.Id32;
                objParams[12].Value = targetaccount.ObservacionInfGeneral;
                objParams[13].Value = targetaccount.Estado;
                SqlCommand command3 = new SqlCommand("SP_A_CLIENTES_TARGET_ACCOUNT_INFGENERAL_P1", conn);
                command3.Transaction = transaction;
                command3.Parameters.AddRange(objParams);
                command3.CommandType = CommandType.StoredProcedure;
                command3.ExecuteNonQuery();

                res.Estado = Enums.EstadoTransaccion.Aceptada;

            }
            catch (Exception ex)
            {
                res.Estado = Enums.EstadoTransaccion.Rechazada;
                res.Descripcion = ex.Message;
                Log.EscribirLog(ex.Message);
            }
            return res;
        }
Ejemplo n.º 10
0
        public static ResultadoTransaccion ObtenerTargetAccountPorIdSource(Int64 IdTargetSource)
        {
            ResultadoTransaccion res = new ResultadoTransaccion();
            clsTargetAccount taccount = null;
            try
            {

                objParams = SqlHelperParameterCache.GetSpParameterSet(BaseDatos.Conexion(), "SP_C_CLIENTES_TARGET_ACCOUNT_IDSOURCE");
                objParams[0].Value = IdTargetSource;
                SqlCommand command = new SqlCommand("SP_C_CLIENTES_TARGET_ACCOUNT_IDSOURCE", BaseDatos.Conexion());
                command.Parameters.AddRange(objParams);
                command.CommandType = CommandType.StoredProcedure;
                dreader = command.ExecuteReader();

                while (dreader.Read())
                {
                    taccount = new  clsTargetAccount();

                    //PASO 1
                    taccount.ClienteMaster = clsClienteMasterADO.ObtenerClienteMasterPorId(Convert.ToInt64(dreader["IdMaster"]));

                    //if (dreader["IdDireccionInfo"] is DBNull)
                    //    taccount.ClienteMaster.DireccionInfo = null;
                    //else
                    //    taccount.ClienteMaster.DireccionInfo =
                    //        clsDireccionADO.ListarDireccionesPorIdInfo(Convert.ToInt64(dreader["IdDireccionInfo"]));

                    taccount.ClienteMaster.UsuarioCreo = new clsUsuario();
                    taccount.ClienteMaster.UsuarioCreo.Nombre = dreader["NombreUsuario"].ToString();
                    taccount.ClienteMaster.UsuarioCreo.ApellidoPaterno = dreader["ApellidoPaterno"].ToString();
                    taccount.ClienteMaster.UsuarioCreo.ApellidoMaterno = dreader["ApellidoMaterno"].ToString();

                    taccount.Id = Convert.ToInt64(dreader["IdTargetAccount"]);
                    taccount.IdTargetSource = Convert.ToInt64(dreader["IdTargetSource"]);

                    taccount.TelefonoEmpresa = dreader["TelefonoEmpresa"].ToString();
                    taccount.TelefonoDirecto = dreader["TelefonoDirecto"].ToString();

                    if (dreader["EmbarquesPorMes"] is DBNull)
                        taccount.EmbarquesPorMes = null;
                    else
                        taccount.EmbarquesPorMes = Convert.ToInt16(dreader["EmbarquesPorMes"]);

                    if (dreader["CantidadLCL"] is DBNull)
                        taccount.CantidadLCL = null;
                    else
                        taccount.CantidadLCL = Convert.ToInt16(dreader["CantidadLCL"]);

                    if (dreader["UMLCL"] is DBNull)
                        taccount.UMLCL = new clsItemParametro();
                    else
                        taccount.UMLCL = Parametros.clsParametrosDAO.BuscarParametroPorId(Convert.ToInt16(dreader["UMLCL"]));

                    if (dreader["CantidadFCL"] is DBNull)
                        taccount.CantidadFCL = null;
                    else
                        taccount.CantidadFCL = Convert.ToInt16(dreader["CantidadFCL"]);

                    if (dreader["UMFCL"] is DBNull)
                        taccount.UMFCL = new clsItemParametro();
                    else
                        taccount.UMFCL = Parametros.clsParametrosDAO.BuscarParametroPorId(Convert.ToInt16(dreader["UMFCL"]));

                    if (dreader["CantidadAereo"] is DBNull)
                        taccount.CantidadAereo = null;
                    else
                        taccount.CantidadAereo = Convert.ToInt16(dreader["CantidadAereo"]);

                    if (dreader["UMAereo"] is DBNull)
                        taccount.UMAereo = new clsItemParametro();
                    else
                        taccount.UMAereo = Parametros.clsParametrosDAO.BuscarParametroPorId(Convert.ToInt16(dreader["UMAereo"]));

                    if (dreader["IdTerminoCompra"] is DBNull)
                        taccount.TerminoCompra = new clsItemParametro();
                    else
                        taccount.TerminoCompra = Parametros.clsParametrosDAO.BuscarParametroPorId(Convert.ToInt16(dreader["IdTerminoCompra"]));

                    if (dreader["IdIncoTerm"] is DBNull)
                        taccount.IncoTerm = new clsIncoTerm();
                    else
                        taccount.IncoTerm = Parametros.clsParametrosClientesDAO.ObtenerIncoTermPorId(Convert.ToInt16(dreader["IdIncoTerm"]));

                    taccount.Traficos = ObtenerTraficosTargetAccount(taccount.ClienteMaster.Id);

                    taccount.OrigenesCarga = ObtenerOrigenCargaTargetAccount(taccount.ClienteMaster.Id);
                    taccount.DestinosCarga = ObtenerDestinoCargaTargetAccount(taccount.ClienteMaster.Id);

                    taccount.ObservacionInfGeneral = dreader["ObservacionInfGral"].ToString();

                    //PASO 2
                    taccount.ContactoNombre = dreader["ContactoNombre"].ToString();
                    taccount.ContactoEmail = dreader["ContactoEmail"].ToString();
                    taccount.ContactoCargo = dreader["ContactoPosicion"].ToString();
                    taccount.ObservacionLlamadaTelefonica = dreader["ObservacionTelefonico"].ToString();

                    taccount.EmbarcaCon = ObtenerEmpresasCompetenciaTargetAccount(taccount.Id);
                    taccount.TomaDesiciones = ObtenerTomaDesicionesTargetAccount(taccount.Id);

                    //PASO 3
                    taccount.ObservacionVisita = dreader["ObservacionVisita"].ToString();
                    taccount.ClienteMaster.ProductosPreferidos =
                        Clientes.clsClienteMasterADO.ObtenerProductosPreferidos(taccount.ClienteMaster.Id);

                    taccount.ServiciosComplementarios = ObtenerServiciosComplementariosTargetAccount(taccount.Id);
                    taccount.Personales = ObtenerPersonalesTargetAccount(taccount.Id);
                    taccount.Objeciones = ObtenerObjecionesTargetAccount(taccount.Id);
                    taccount.AccionTomar = ObtenerAccionTomarTargetAccount(taccount.Id);

                    taccount.Estado = (Enums.EstadosMetas)Convert.ToInt16(dreader["Estado"]);

                }
                res.Estado = Enums.EstadoTransaccion.Aceptada;
                res.ObjetoTransaccion = taccount;

            }
            catch (Exception ex)
            {
                Log.EscribirLog(ex.Message);

                res.Estado = Enums.EstadoTransaccion.Rechazada;
                res.Descripcion = ex.Message;
                res.Accion = Enums.AccionTransaccion.Consultar;
            }
            finally
            {
                if (!dreader.IsClosed) dreader.Close();
                BaseDatos.CerrarConexion();
            }

            return res;
        }