Coonstraint programming approach to multi-product scheduling