Error while checking the validation of a multi select question

Dear All

My first question is a multi select (Yes no) option question where I ask if the household owns the following asset.
Q1. Does the HH owns :
1 TV
2 Sofa
3 Fridge …

Now once they select the asset they own they will be asked a follow up question on whether they have purchased that item in the last 12 months or before.
For each asset : Q2. Have you purchased in the last 12 months :1: Yes
Now in the last module on expenditure I ask them Q3. if they have purchased non food items and the question is also a multiselect question (Yes No) option and for those items which are there in the asset module i want to put a validation where by when they select TV (in the last 12 months ) they cannot say they have not incurred expenses for TV in the last module:

((asset[121].as1a==1) && (self.Yes.Contains(3115))) || !(asset[121].as1a==1)

I did put this validation and it works but I am getting the validation message even when I said I do not own the asset. For example in Q1, I said I do not own TV and in the last module on expenditure even when I say I do not incur expenditure in TV (its No in TV) I still get an error message. how to change the validation so that the check should only be done when in Question 1: the asset is owned by the HH and not when it is not owned.

Assuming 121 is a code of TV what is 3115 then?

What is as1a? Is it Q1, or Q2, or Q3 in your numeration? What are the variable names for the other two?

You put this validation where? (for which question?) This matters for the interpretation of the keyword self.