public ResultadoEntidad SeleccionarAsignacion(ActivoEntidad ActivoObjetoEntidad, TemporalAsignacionEntidad TemporalAsignacionObjetoEntidad)
        {
            ResultadoEntidad  Resultado                   = new ResultadoEntidad();
            ResultadoEntidad  ResultadoAsignacion         = new ResultadoEntidad();
            ResultadoEntidad  ResultadoTemporalAsignacion = new ResultadoEntidad();
            AsignacionProceso AsignacionProcesoNegocio    = new AsignacionProceso();
            DataTable         TablaAsignacion             = new DataTable();
            DataSet           ResultadoDatos              = new DataSet();
            DataRow           Registro;
            int CantidadActivosAgregados = 0;

            TablaAsignacion.Columns.Add("TemporalAsignacionDetalleId");
            TablaAsignacion.Columns.Add("ActivoId");
            TablaAsignacion.Columns.Add("CondicionId");
            TablaAsignacion.Columns.Add("NombreCondicion");
            TablaAsignacion.Columns.Add("Descripcion");
            TablaAsignacion.Columns.Add("NumeroSerie");
            TablaAsignacion.Columns.Add("Modelo");
            TablaAsignacion.Columns.Add("Color");
            TablaAsignacion.Columns.Add("CodigoBarrasParticular");

            // Se buscan los activos que ya tenia asignados el empleado
            if (ActivoObjetoEntidad.EmpleadoId != 0)
            {
                ResultadoAsignacion = SeleccionarAsignacionPorEmpleado(ActivoObjetoEntidad);

                if (ResultadoAsignacion.ResultadoDatos.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow Activo in ResultadoAsignacion.ResultadoDatos.Tables[0].Rows)
                    {
                        Registro = TablaAsignacion.NewRow();
                        Registro["TemporalAsignacionDetalleId"] = "0";
                        Registro["ActivoId"]               = Activo["ActivoId"].ToString();
                        Registro["CondicionId"]            = Activo["CondicionId"].ToString();
                        Registro["NombreCondicion"]        = Activo["NombreCondicion"].ToString();
                        Registro["Descripcion"]            = Activo["Descripcion"].ToString();
                        Registro["NumeroSerie"]            = Activo["NumeroSerie"].ToString();
                        Registro["Modelo"]                 = Activo["Modelo"].ToString();
                        Registro["Color"]                  = Activo["Color"].ToString();
                        Registro["CodigoBarrasParticular"] = Activo["CodigoBarrasParticular"].ToString();
                        TablaAsignacion.Rows.Add(Registro);
                    }

                    TablaAsignacion.AcceptChanges();
                }
            }

            // Se buscan los activos que se han agregado a la asignación temporal
            if (TemporalAsignacionObjetoEntidad.TemporalAsignacionId != 0)
            {
                ResultadoTemporalAsignacion = SeleccionarTemporalAsignacionDetalle(TemporalAsignacionObjetoEntidad);

                if (ResultadoTemporalAsignacion.ResultadoDatos.Tables[0].Rows.Count > 0)
                {
                    CantidadActivosAgregados = ResultadoTemporalAsignacion.ResultadoDatos.Tables[0].Rows.Count;

                    foreach (DataRow Activo in ResultadoTemporalAsignacion.ResultadoDatos.Tables[0].Rows)
                    {
                        Registro = TablaAsignacion.NewRow();
                        Registro["TemporalAsignacionDetalleId"] = Activo["TemporalAsignacionDetalleId"].ToString();
                        Registro["ActivoId"]               = Activo["ActivoId"].ToString();
                        Registro["CondicionId"]            = Activo["CondicionId"].ToString();
                        Registro["NombreCondicion"]        = Activo["NombreCondicion"].ToString();
                        Registro["Descripcion"]            = Activo["Descripcion"].ToString();
                        Registro["NumeroSerie"]            = Activo["NumeroSerie"].ToString();
                        Registro["Modelo"]                 = Activo["Modelo"].ToString();
                        Registro["Color"]                  = Activo["Color"].ToString();
                        Registro["CodigoBarrasParticular"] = Activo["CodigoBarrasParticular"].ToString();
                        TablaAsignacion.Rows.Add(Registro);
                    }

                    TablaAsignacion.AcceptChanges();
                }
            }

            ResultadoDatos.Tables.Add(TablaAsignacion);

            Resultado.ResultadoDatos  = ResultadoDatos;
            Resultado.NuevoRegistroId = CantidadActivosAgregados;

            return(Resultado);
        }
Beispiel #2
0
        public ResultadoEntidad GuardarActivo(SqlConnection Conexion, SqlTransaction Transaccion, CompraEntidad CompraObjetoEntidad, DataSet dsActivo, Int16 TipoMovimientoId)
        {
            ResultadoEntidad  Resultado                = new ResultadoEntidad();
            ResultadoEntidad  ResultadoMovimiento      = new ResultadoEntidad();
            ActivoProceso     ActivoProcesoNegocio     = new ActivoProceso();
            ActivoEntidad     ActivoObjetoEntidad      = new ActivoEntidad();
            AsignacionEntidad AsignacionObjetoEntidad  = new AsignacionEntidad();
            AccesorioProceso  AccesorioProcesoNegocio  = new AccesorioProceso();
            AsignacionProceso AsignacionProcesoNegocio = new AsignacionProceso();
            AccesorioEntidad  AccesorioObjetoEntidad   = new AccesorioEntidad();
            Int16             UsuarioId                = 0;
            Int16             ActivoId = 0;

            UsuarioId = CompraObjetoEntidad.UsuarioIdInserto;

            //Se barren los activos y se insertan
            foreach (DataRow dtRegistro in dsActivo.Tables[0].Rows)
            {
                ActivoObjetoEntidad.CompraId         = CompraObjetoEntidad.CompraId;
                ActivoObjetoEntidad.TemporalActivoId = int.Parse(dtRegistro["TemporalActivoId"].ToString());
                //ActivoObjetoEntidad.EstatusId = EstatusId;

                Resultado = ActivoProcesoNegocio.GuardarActivo(Conexion, Transaccion, ActivoObjetoEntidad);

                //Si el activo se guardo correctamente se obtiene su ID, se inserta el movimiento de alta y se inserta los accesorios
                if (Resultado.ErrorId == (int)ConstantePrograma.Activo.ActivoGuardadoCorrectamente)
                {
                    ActivoId = (Int16)Resultado.NuevoRegistroId;

                    //Ahora se inserta el movimiento de alta
                    ResultadoMovimiento = GuardarMovimientoAlta(dtRegistro, ActivoId, UsuarioId, Conexion, Transaccion);

                    if (ResultadoMovimiento.ErrorId == (int)ConstantePrograma.Movimiento.MovimientoAltaGuardadoCorrectamente)
                    {
                        //Si el tipo de movimiento es Asignacion (pantalla Historial) se inserta el movimiento de Asignacion
                        if (TipoMovimientoId == (Int16)ConstantePrograma.TipoMovimiento.Asignacion)
                        {
                            //AsignacionObjetoEntidad.ActivoId = (Int16)Resultado.NuevoRegistroId;
                            //AsignacionObjetoEntidad.EmpleadoId = Int16.Parse(dtRegistro["EmpleadoId"].ToString());
                            //AsignacionObjetoEntidad.UsuarioIdInserto = UsuarioId;
                            //Resultado = AsignacionProcesoNegocio.GuardarAsignacion(Conexion, Transaccion, AsignacionObjetoEntidad);
                            ResultadoMovimiento = GuardarMovimientoAsignacion(dtRegistro, ActivoId, UsuarioId, Conexion, Transaccion);
                        }

                        if (ResultadoMovimiento.ErrorId == (int)ConstantePrograma.Movimiento.MovimientoAltaGuardadoCorrectamente ||
                            ResultadoMovimiento.ErrorId == (int)ConstantePrograma.Movimiento.MovimientoAsignacionGuardadoCorrectamente)
                        {
                            // Si el tipo de activo es de Vehiculo, entones puede tener accesorios, y se insertan
                            if (Int16.Parse(dtRegistro["TipoActivoId"].ToString()) == (Int16)ConstantePrograma.TipoAtivoConAccesorio.TipoActivoVehículoId)
                            {
                                AccesorioObjetoEntidad.ActivoId         = ActivoId;
                                AccesorioObjetoEntidad.TemporalActivoId = int.Parse(dtRegistro["TemporalActivoId"].ToString());
                                AccesorioObjetoEntidad.UsuarioIdInserto = UsuarioId;

                                Resultado = AccesorioProcesoNegocio.GuardarAccesorio(Conexion, Transaccion, AccesorioObjetoEntidad);

                                //Si el accesorio(s) no se guardo correctamente se sale
                                if (Resultado.ErrorId != (int)ConstantePrograma.Accesorio.AccesorioGuardadoCorrectamente)
                                {
                                    break;
                                }
                            }
                        }
                        else
                        {
                            Resultado.ErrorId = ResultadoMovimiento.ErrorId;
                            break;
                        }
                    }
                    else
                    {
                        Resultado.ErrorId = ResultadoMovimiento.ErrorId;
                        break;
                    }
                }
                else
                {
                    break;
                }
            }

            return(Resultado);
        }