public ResultadoEntidad DarBajaAccesorio(AccesorioEntidad AccesorioEntidadObjeto, SqlTransaction Transaccion, SqlConnection Conexion)
        {
            AccesorioProceso AccesorioProcesoObjeto = new AccesorioProceso();
            ResultadoEntidad Resultado = new ResultadoEntidad();

            Resultado = InsertarHistorialAccesorio(Conexion, Transaccion, AccesorioEntidadObjeto);
            if (Resultado.ErrorId == (int)ConstantePrograma.Accesorio.HistorialAccesorioGuardadoCorrectamente)
            {
                Resultado = EliminarAccesorio(Conexion, Transaccion, AccesorioEntidadObjeto);
                if (Resultado.ErrorId == (int)ConstantePrograma.Accesorio.AccesorioEliminadoCorrectamente)
                {
                    Resultado.ErrorId = (int)ConstantePrograma.BajaActivo.BajaActivoCorrecta;
                }
            }

            return(Resultado);
        }
        public bool BuscarAccesorioNoActivoFijo(TemporalAccesorioEntidad TemporalAccesorioObjetoEntidad)
        {
            ResultadoEntidad Resultado = new ResultadoEntidad();
            AccesorioEntidad BusquedaAccesorioObjetoEntidad = new AccesorioEntidad();
            AccesorioProceso AccesorioProcesoObjeto         = new AccesorioProceso();
            bool             ExisteAccesorio = false;

            BusquedaAccesorioObjetoEntidad.TipoAccesorioId = TemporalAccesorioObjetoEntidad.TipoAccesorioId;

            //Dependiendo del Tipo de Accesorio se va ha hacer la busqueda
            if (TemporalAccesorioObjetoEntidad.TipoAccesorioId != (int)ConstantePrograma.TipoAccesorio.ActivoFijo)
            {
                BusquedaAccesorioObjetoEntidad.Descripcion = TemporalAccesorioObjetoEntidad.Descripcion;
                Resultado = AccesorioProcesoObjeto.SeleccionarAccesorio(BusquedaAccesorioObjetoEntidad);

                if (Resultado.ResultadoDatos.Tables[0].Rows.Count > 0)
                {
                    ExisteAccesorio = true;
                }
            }

            return(ExisteAccesorio);
        }
        public ResultadoEntidad GuardarAsignacionGeneral(ActivoEntidad ActivoRecibidoObjetoEntidad)
        {
            ResultadoEntidad Resultado               = new ResultadoEntidad();
            ActivoEntidad    ActivoObjetoEntidad     = new ActivoEntidad();
            AccesorioEntidad AccesorioObjetoEntidad  = new AccesorioEntidad();
            AccesorioProceso AccesorioProcesoNegocio = new AccesorioProceso();

            //Validamos que ninguno de los activos del documento este asignado a un empleado
            ActivoObjetoEntidad.CompraId         = ActivoRecibidoObjetoEntidad.CompraId;
            ActivoObjetoEntidad.TipoDeMovimiento = (int)ConstantePrograma.TipoMovimiento.Asignacion;

            Resultado = SeleccionarMovimientoPorDocumento(ActivoObjetoEntidad);

            if (Resultado.ResultadoDatos.Tables[0].Rows.Count == 0)
            {
                //Ahora se valida que ninguno de los activos del documento este asignado a otro activo
                AccesorioObjetoEntidad.CompraId = ActivoRecibidoObjetoEntidad.CompraId;
                Resultado = AccesorioProcesoNegocio.SeleccionarAccesorioPorDocumento(AccesorioObjetoEntidad);

                if (Resultado.ResultadoDatos.Tables[0].Rows.Count == 0)
                {
                    //Si pasó la validación, ahora se insertan los movimientos de asignacion
                    Resultado = InsertarMovimientoAsignacionGeneral(ActivoRecibidoObjetoEntidad);
                }
                else
                {
                    Resultado.DescripcionError = TextoError.DocumentoProcesado;
                }
            }
            else
            {
                Resultado.DescripcionError = TextoError.DocumentoProcesado;
            }

            return(Resultado);
        }
示例#4
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);
        }