Just an observation, I don't know your database, but normally from performance point of view, to take advantage of indexes the tables might have, it's better to not use functions on columns if you can avoid it, and use the functions on parameters:
WHERE fact_Ventas.idAnio = CAST(${paramAnio} AS INTEGER) AND fact_Ventas.idMes = CAST(${paramMes} AS INTEGER) AND fact_Ventas.idVendedor = CAST(${paramVendedores} AS INTEGER) AND fact_Ventas.origen = CAST(${paramOrigen} AS INTEGER)
As I don't know your data model it might not be posible and you have your reasons to write the query as you have chosen, but just in case, I had to point it out.
Regards