Crash when quoting line with no product (sale_promotion)
``` Traceback (most recent call last): File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/protocols/wrappers.py", line 189, in wrapper return func(request, pool, *args, **kwargs) File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/protocols/dispatcher.py", line 204, in _dispatch result = rpc.result(meth(*c_args, **c_kwargs)) File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/model/modelview.py", line 720, in wrapper return func(cls, records, *args, **kwargs) File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/model/workflow.py", line 37, in wrapper result = func(cls, filtered, *args, **kwargs) File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/modules/sale_promotion/sale.py", line 59, in quote sale.apply_promotion() File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/modules/sale_promotion/sale.py", line 69, in apply_promotion promotion.apply(self) File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/modules/sale_promotion/sale.py", line 281, in apply if not self.is_valid_sale_line(line): File "/home/vant/Documentos/GitLab/customer/.venv/lib/python3.8/site-packages/trytond/modules/sale_promotion/sale.py", line 270, in is_valid_sale_line and not set(parents(line.product.categories_all)).intersection( AttributeError: 'NoneType' object has no attribute 'categories_all' ```
issue