As far as I know we say something is turing complete (eg: a programming language) when it can compute any function and can do any task.
No. A model of computation is Turing-complete if it can compute any Turing-computable function (i.e., any computable function that can be computed by a Turing Machine).
An alternative, but exactly equivalent way to phrase it, is that a model of computation is Turing-complete if it can simulate any Turing Machine.
Another equivalent way is that a model of computation is Turing-complete if it can simulate a Universal Turing Machine (which is just a Turing Machine which can simulate any other Turing Machine).
Yet another way to phrase it is that a model of computation is Turing-complete if it can simulate another Turing-complete model of computation. This is, in fact, how most Turing-complete models of computation are proven to be Turing-complete. Usually, the proof is not done using Turing Machines but using some other, more mathematically "simple" Turing-complete model of computation such as Rule 110, Conway's Game of Life, Cyclic Tag Systems or other Tag Systems, or even by implementing an interpreter for a simple Turing-complete programming language such as Brainfuck.
But since Halting Problem can't be solved by any programming language so every programming language should be Turing Incomplete. Right?
The Halting Problem is undecidable, which means the function $\mathit{Halts}(P, i)$ cannot be computed by a Turing Machine. That is the whole point of the Halting Problem.
Since $\mathit{Halts}(P, i)$ cannot be computed by a Turing Machine, it is irrelevant for determining Turing-completeness.
Note that Turing-completeness only refers to computable functions on the natural numbers. It does not refer to non-computable functions (such as $\mathit{Halts}(P, i)$), and it does not refer to operations which are not functions (such as printing, reading from a keyboard, launching a nuclear missile, etc.).
Also note that, according to the Church-Turing Thesis, the terms "effectively calculable", "computable", and "Turing-computable" are the same thing, meaning that everything that can be computed by a physically implementable machine at all can be computed by a Turing Machine, and, additionally, that the "intuitive" notion of "computable" is the same as the formal notion of "can be computed by a Turing Machine". Furthermore, this means that no model of computation that can be physically implemented can be more powerful than a Turing Machine.
So, in this particular sense, we can say that "something is Turing-complete if it can compute everything that can be computed at all". But that does not mean "compute any function" or "do any task".
But again, keep in mind that this only applies to computable functions on the natural numbers. For example, C++ can print to the screen, which a Turing Machine cannot. But that does not mean that C++ is more computationally powerful than a Turing Machine.
Some people have jokingly coined the term "Tetris-complete" or "Pacman-complete" to describe a programming language which can draw to the screen, receive asynchronous, interactive, input events, interact with the operating system, call third-party and system libraries, model the passage of time, etc. In other words: a programming language which can be used to implement real-world, interactive, macOS/Windows/Linux/Android/… (GUI) applications.
Most real-world programming languages are both Turing-complete and Tetris-complete, whereas the models of computation we are often talking about when discussing Turing-completeness are often not Tetris-complete: e.g., Turing Machines, λ-calculus, Rule 110, Tag Systems, etc.
OTOH, it is possible to have a programming language which is not Turing-complete but Tetris-complete. For example, it is possible to model event-driven interactivity as finite co-recursion over co-data rather than infinite recursion over data.