/// <summary> /// Envia los cambios del tsy_TipoProductoDataset.tsy_TipoProductoDataTable a la base de datos. /// </summary> public static void Update(tsy_TipoProductoDataset.tsy_TipoProductoDataTable 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)) { mz.erp.dataaccess.tsy_TipoProducto.Update(dataTable); } }
public static bool TableIsValid(tsy_TipoProductoDataset.tsy_TipoProductoDataTable dataTable) { foreach (DataRow row in dataTable.Rows) { if (row.RowState.Equals(DataRowState.Added)) { string tipo = Convert.ToString(row["Descripcion"]); if (tipo.Trim().Equals(string.Empty)) { row.SetColumnError("Descripcion", "La Descripción del Tipo de producto no puede ser vacía"); return(false); } } else if (row.RowState.Equals(DataRowState.Deleted)) { bool ok = true; string IdTipoProducto = Convert.ToString(row["IdTipoProducto", DataRowVersion.Original]); DataSet data = mz.erp.businessrules.tsh_Productos.GetListByIdTipoProducto(IdTipoProducto); if (data.Tables[0].Rows.Count > 0) { row.SetColumnError("IdTipoProducto", "El tipo de producto " + IdTipoProducto + " no se puede eliminar porque esta siendo utilizado por un producto"); ok = false; } DataTable tableVars = sy_VariablesEx.GetListByCola("TipoDeProducto"); if (tableVars.Rows.Count > 0) { foreach (DataRow rowV in tableVars.Rows) { string valor = Convert.ToString(rowV["ValorDefault"]); if (valor.Equals(IdTipoProducto)) { string IdVariable = Convert.ToString(rowV["IdVariable"]); string error = row.GetColumnError("IdTipoProducto"); if (!error.Equals(string.Empty)) { row.SetColumnError("IdTipoProducto", error + " y por la variable " + IdVariable); } else { row.SetColumnError("IdTipoProducto", "El tipo de producto " + IdTipoProducto + " no se puede eliminar porque esta siendo utilizado por la variable " + IdVariable); } ok = false; } } } return(ok); } else if (row.RowState.Equals(DataRowState.Modified)) { bool ok = true; string IdTipoProducto = Convert.ToString(row["IdTipoProducto", DataRowVersion.Original]); string IdTipoProductoActual = Convert.ToString(row["IdTipoProducto", DataRowVersion.Current]); if (!IdTipoProducto.Equals(IdTipoProductoActual)) { row.SetColumnError("IdTipoProducto", "No se puede modificar el IdTipoProducto. Elimine y Vuelva a crear el tipo de producto"); ok = false; } bool Activo = Convert.ToBoolean(row["Activo", DataRowVersion.Current]); if (!Activo) //Si desactivo un tipo me fijo q no lo este usando un producto { DataSet data = mz.erp.businessrules.tsh_Productos.GetListByIdTipoProducto(IdTipoProducto); if (data.Tables[0].Rows.Count > 0) { row.SetColumnError("Activo", "El tipo de producto " + IdTipoProducto + " no se puede desactivar porque esta siendo utilizado por un producto"); ok = false; } DataTable tableVars = sy_VariablesEx.GetListByCola("TipoDeProducto"); if (tableVars.Rows.Count > 0) { foreach (DataRow rowV in tableVars.Rows) { string valor = Convert.ToString(rowV["ValorDefault"]); if (valor.Equals(IdTipoProducto)) { string IdVariable = Convert.ToString(rowV["IdVariable"]); string error = row.GetColumnError("Activo"); if (!error.Equals(string.Empty)) { row.SetColumnError("Activo", error + " y por la variable " + IdVariable); } else { row.SetColumnError("Activo", "El tipo de producto " + IdTipoProducto + " no se puede desactivar porque esta siendo utilizado por la variable " + IdVariable); } ok = false; } } } } string tipo = Convert.ToString(row["Descripcion"]); if (tipo.Trim().Equals(string.Empty)) { row.SetColumnError("Descripcion", "La Descripción del Tipo de producto no puede ser vacía"); ok = false; } return(ok); } } return(true); }
public static void Update(tsy_TipoProductoDataset.tsy_TipoProductoDataTable dataTable, SqlTransaction trx) { SqlDataAdapter adapter = new SqlDataAdapter(); adapter.TableMappings.AddRange( new System.Data.Common.DataTableMapping[] { new System.Data.Common.DataTableMapping("Table", "tsy_TipoProducto", new System.Data.Common.DataColumnMapping[] { new System.Data.Common.DataColumnMapping("IdTipoProducto", "IdTipoProducto"), new System.Data.Common.DataColumnMapping("Descripcion", "Descripcion"), 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("AfectaStock", "AfectaStock"), new System.Data.Common.DataColumnMapping("Activo", "Activo") } ) } ); SqlCommand sqlCommandUpdate = new SqlCommand("Pr_tsy_TipoProducto_Update", trx.Connection); sqlCommandUpdate.Transaction = trx; sqlCommandUpdate.CommandType = CommandType.StoredProcedure; sqlCommandUpdate.Parameters.Add(new SqlParameter("@IdTipoProducto", SqlDbType.VarChar, 1, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdTipoProducto", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@Descripcion", SqlDbType.VarChar, 50, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Descripcion", 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("@OldIdTipoProducto", SqlDbType.VarChar, 1, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdTipoProducto", DataRowVersion.Original, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@AfectaStock", SqlDbType.Bit, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "AfectaStock", DataRowVersion.Current, null)); sqlCommandUpdate.Parameters.Add(new SqlParameter("@Activo", SqlDbType.Bit, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Activo", DataRowVersion.Current, null)); SqlCommand sqlCommandDelete = new SqlCommand("Pr_tsy_TipoProducto_Delete", trx.Connection); sqlCommandDelete.Transaction = trx; sqlCommandDelete.CommandType = CommandType.StoredProcedure; sqlCommandDelete.Parameters.Add(new SqlParameter("@IdTipoProducto", SqlDbType.VarChar, 1, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdTipoProducto", 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_tsy_TipoProducto_Insert", trx.Connection); sqlCommandInsert.Transaction = trx; sqlCommandInsert.CommandType = CommandType.StoredProcedure; sqlCommandInsert.Parameters.Add(new SqlParameter("@IdTipoProducto", SqlDbType.VarChar, 1, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "IdTipoProducto", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@Descripcion", SqlDbType.VarChar, 50, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Descripcion", 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("@AfectaStock", SqlDbType.Bit, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "AfectaStock", DataRowVersion.Current, null)); sqlCommandInsert.Parameters.Add(new SqlParameter("@Activo", SqlDbType.Bit, 0, ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Activo", DataRowVersion.Current, null)); adapter.UpdateCommand = sqlCommandUpdate; adapter.DeleteCommand = sqlCommandDelete; adapter.InsertCommand = sqlCommandInsert; adapter.Update(dataTable); }