Selecting correct carton based on qty
Is there a better way to achieve this rather than an If statement?


Yes. You could have an enumeration of the container types and their capacities, in increasing order by capacity,
loop over in order,
and as soon as you find one that's big enough, return it.

It's perhaps easier to see after you simplify the if-else chain,
by removing redundant conditions, for example:

 if (qty &lt;= 300)
 {
     return CartonType.SMALL_PASCAL;
 }
 if (qty &lt;= 600)
 {
     return CartonType.SMALL_PASCAL;
 }
 if (qty &lt;= 1200)
 {
     return CartonType.BABY_BOX;
 }
 // ...