/// <summary> /// Envia los cambios del tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasDataTable a la base de datos. /// </summary> public static void Update(tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasDataTable dataTable) { ApplicationAssert.Check(dataTable != null, "El argumento dataTable no debe ser nulo.", ApplicationAssert.LineNumber); ApplicationAssert.Check(dataTable.Rows.Count > 0, "El argumento dataTable debe poseer alguna fila.", ApplicationAssert.LineNumber); if (TableIsValid(dataTable)) { string PerfilesSuperiores = mz.erp.businessrules.Variables.GetValueString("Seguridad.Perfiles.PerfilesSuperiores"); string IdCajaTemporalDefault = mz.erp.businessrules.Variables.GetValueString("Cajas.CajaTemporalDefault"); ArrayList PerfilesSuperioresList = mz.erp.systemframework.Util.Parse(PerfilesSuperiores); DataTable tableUsuariosSegunPerfiles = null; if (!PerfilesSuperioresList.Contains(mz.erp.businessrules.Security.IdPerfil.ToString())) { ArrayList CajasAAgregar = ObtenerCajasAAgregar(dataTable); tableUsuariosSegunPerfiles = mz.erp.businessrules.sy_Usuarios.GetUsuariosActivosSegunPerfiles(PerfilesSuperiores); foreach (DataRow rowU in tableUsuariosSegunPerfiles.Rows) { //Recupero las Cajas de la Base de datos para el usuario en cuestion ArrayList cajasUsuarioDB = mz.erp.businessrules.tfi_ResponsablesCajas.GetCajas(Convert.ToString(rowU["IdUsuario"])); foreach (string IdCaja in CajasAAgregar) { //Sino contiene la caja en la base de datos if (!cajasUsuarioDB.Contains(IdCaja)) { //Chequeo que ya no haya agregado la tupla en el dataset if (dataTable.FindByIdCajaIdResponsable(IdCaja, Convert.ToString(rowU["IdUsuario"])) == null) { tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasRow rowRC = dataTable.Newtfi_ResponsablesCajasRow(); mz.erp.businessrules.tfi_ResponsablesCajas.SetRowDefaultValues(rowRC); rowRC.IdResponsable = Convert.ToString(rowU["IdUsuario"]); rowRC.IdCaja = IdCaja; dataTable.Addtfi_ResponsablesCajasRow(rowRC); } } } } } mz.erp.dataaccess.tfi_ResponsablesCajas.Update(dataTable); //Elimina las filas del dataset asociadas a usuarios superiores siempre y cuando el que agrega no es un usuario superior ArrayList aux = new ArrayList(); if (!PerfilesSuperioresList.Contains(mz.erp.businessrules.Security.IdPerfil.ToString())) { foreach (DataRow row in dataTable.Rows) { foreach (DataRow rowU in tableUsuariosSegunPerfiles.Rows) { if (Convert.ToString(rowU["IdUsuario"]).Equals(Convert.ToString(row["IdResponsable"]))) { aux.Add(row); } } } foreach (DataRow rowAux in aux) { dataTable.Rows.Remove(rowAux); } } } }
public static ArrayList ObtenerCajasAAgregar(tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasDataTable dataTable) { ArrayList res = new ArrayList(); foreach (DataRow row in dataTable.Rows) { if (row.RowState.Equals(DataRowState.Added)) { res.Add(Convert.ToString(row["IdCaja"])); } } return(res); }
public static bool TableIsValid(tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasDataTable dataTable) { /* * foreach(DataRow row in dataTable.Rows) * { * if(row.RowState.Equals(DataRowState.Deleted)) * { * string IdCaja = Convert.ToString(row["IdCaja", DataRowVersion.Original]); * DataSet data = mz.erp.businessrules.tfi_InstanciasCaja.GetListByIdCaja(IdCaja); * if(data.Tables[0].Rows.Count > 0) * { * row.SetColumnError( "IdCaja", "La Caja " + IdCaja + " no se puede eliminar porque ha sido usada"); * return false; * } * * * } * } * foreach(DataRow row in dataTable.Rows) * { * if(row.RowState.Equals(DataRowState.Modified)) * { * string IdCaja = Convert.ToString(row["IdCaja", DataRowVersion.Original]); * string IdCajaActual = Convert.ToString(row["IdCaja", DataRowVersion.Current]); * if(!IdCaja.Equals(IdCajaActual)) * { * row.SetColumnError( "IdCaja", "No se puede modificar el IdCaja. Elimine y Vuelva a crear la Caja"); * return false; * } * * * } * } */ return(true); }
public static void Update(tfi_ResponsablesCajasDataset.tfi_ResponsablesCajasDataTable dataTable, SqlTransaction trx) { SqlDataAdapter adapter = new SqlDataAdapter(); adapter.TableMappings.AddRange( new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "tfi_ResponsablesCajas", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("IdCaja", "IdCaja"), new System.Data.Common.DataColumnMapping("IdResponsable", "IdResponsable"), new System.Data.Common.DataColumnMapping("FechaCreacion", "FechaCreacion"), new System.Data.Common.DataColumnMapping("IdConexionCreacion", "IdConexionCreacion"), new System.Data.Common.DataColumnMapping("UltimaModificacion", "UltimaModificacion"), new System.Data.Common.DataColumnMapping("IdConexionUltimaModificacion", "IdConexionUltimaModificacion"), new System.Data.Common.DataColumnMapping("IdReservado", "IdReservado"), new System.Data.Common.DataColumnMapping("RowId", "RowId"), new System.Data.Common.DataColumnMapping("IdEmpresa", "IdEmpresa"), new System.Data.Common.DataColumnMapping("IdSucursal", "IdSucursal") } ) } ); SqlCommand sqlCommandUpdate = new SqlCommand("Pr_tfi_ResponsablesCajas_Update", trx.Connection); sqlCommandUpdate.Transaction = trx; sqlCommandUpdate.CommandType = CommandType.StoredProcedure; sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdCaja", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdCaja", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdResponsable", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdResponsable", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@UltimaModificacion", SqlDbType.Timestamp, 8, ParameterDirection.InputOutput, false, ((System.Byte)(0)), ((System.Byte)(0)), "UltimaModificacion", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdConexionUltimaModificacion", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdConexionUltimaModificacion", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdReservado", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdReservado", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdEmpresa", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdEmpresa", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdSucursal", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdSucursal", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@OldIdCaja", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdCaja", DataRowVersion.Original, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@OldIdResponsable", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdResponsable", DataRowVersion.Original, null)); SqlCommand sqlCommandDelete = new SqlCommand("Pr_tfi_ResponsablesCajas_Delete", trx.Connection); sqlCommandDelete.Transaction = trx; sqlCommandDelete.CommandType = CommandType.StoredProcedure; sqlCommandDelete.Parameters.Add(new SqlParameter("@IdCaja", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdCaja", DataRowVersion.Original, null)); sqlCommandDelete.Parameters.Add(new SqlParameter("@IdResponsable", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdResponsable", DataRowVersion.Original, null)); sqlCommandDelete.Parameters.Add(new SqlParameter("@UltimaModificacion", SqlDbType.Timestamp, 8, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "UltimaModificacion", DataRowVersion.Original, null)); SqlCommand sqlCommandInsert = new SqlCommand("Pr_tfi_ResponsablesCajas_Insert", trx.Connection); sqlCommandInsert.Transaction = trx; sqlCommandInsert.CommandType = CommandType.StoredProcedure; sqlCommandInsert.Parameters.Add(new SqlParameter("@IdCaja", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdCaja", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@IdResponsable", SqlDbType.VarChar, 20, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdResponsable", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@FechaCreacion", SqlDbType.DateTime, 0, ParameterDirection.InputOutput, false, ((System.Byte)(0)), ((System.Byte)(0)), "FechaCreacion", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@IdConexionCreacion", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdConexionCreacion", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@IdReservado", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdReservado", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@IdEmpresa", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdEmpresa", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@IdSucursal", SqlDbType.BigInt, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdSucursal", DataRowVersion.Current, null)); adapter.UpdateCommand = sqlCommandUpdate; adapter.DeleteCommand = sqlCommandDelete; adapter.InsertCommand = sqlCommandInsert; adapter.Update(dataTable); }