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); }
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); }