private bool CheckPermissions2(DataRow row, FormActions actionType) { if (row.GetSourceMethodNew() == SourceMethods.None) return true; var permission = row.GetLocType() == LocTypes.S ? UserStoreList[row.GetLoc()] : UserWhList[row.GetLoc()]; switch (permission) { case LocPermissionTypes.Full: { return true; } case LocPermissionTypes.Supplier: { switch (actionType) { case FormActions.Add: { return true; } case FormActions.Modify: { if (row.GetSourceMethodNew() == SourceMethods.S) return true; break; } case FormActions.Delete: { if (row.GetSourceMethodNew() == SourceMethods.S) return true; break; } case FormActions.ModifyCancel: { return true; } case FormActions.Restore: { return true; } } break; } case LocPermissionTypes.WarehouseTransit: { switch (actionType) { case FormActions.Add: { return true; } case FormActions.Modify: { return true; } case FormActions.Delete: { if (row.GetSourceMethodNew() == SourceMethods.W || row.GetSourceMethodNew() == SourceMethods.T) return true; break; } case FormActions.ModifyCancel: { return true; } case FormActions.Restore: { return true; } } break; } } return false; }
private bool CheckPermissions3(DataRow row, IEnumerable<FieldValue> setValues) { var action = row.GetAction(); var permission = row.GetLocType() == LocTypes.S ? UserStoreList[row.GetLoc()] : UserWhList[row.GetLoc()]; switch (permission) { case LocPermissionTypes.Full: { return true; } case LocPermissionTypes.Supplier: { foreach (var fieldValue in setValues) { if (fieldValue.Field == "DIM_ITEMLOC_SOURCEMETHOD_NEW" && (Convert.ToChar(fieldValue.Value) == (char)SourceMethods.W || Convert.ToChar(fieldValue.Value) == (char)SourceMethods.T)) return false; } break; } case LocPermissionTypes.WarehouseTransit: { foreach (var fieldValue in setValues) { if (action == Actions.Leave) { if (fieldValue.Field == "DIM_ITEMLOC_SOURCEMETHOD_NEW" && Convert.ToChar(fieldValue.Value) == (char)SourceMethods.S) return false; } else if (action == Actions.Modify) { if (row.GetSourceMethod() == SourceMethods.S) { if (fieldValue.Field == "DIM_ITEMLOC_SOURCEMETHOD_NEW" && Convert.ToChar(fieldValue.Value) == (char)SourceMethods.S) return false; } } } break; } } return true; }