Example 56 : Packing and unpacking parcels

Printer-friendly version

This example shows how to pack and unpack products from individual parcels.

package com.metapack.dm.test;
 
import com.metapack.deliverymanager.client.Consignment;
import com.metapack.deliverymanager.client.Parcel;
import com.metapack.deliverymanager.client.Product;
import com.metapack.deliverymanager.client.webservices.ConsignmentService;
 
public class Example56 extends ExampleBase {
 
	public void run() throws Exception {
		ConsignmentService service = createConsignmentService();
		Consignment consignment = createDefaultConsignment( "EXAMPLE-56" , 1 );
		consignment.setConsignmentLevelDetailsFlag( false );
 
		Parcel parcel1 = new Parcel();
		parcel1.setParcelWeight( 1 );
		consignment.setParcels( new Parcel[] {
			parcel1
		});
 
		Consignment[] createdConsignments = service.createConsignments( new Consignment[] { consignment } );
 
		String consignmentCode = createdConsignments[0].getConsignmentCode();
 
		// We will first pack three product lines into the parcel
 
		Product product1 = new Product();
		product1.setCountryOfOrigin( "GBR" );
		product1.setProductCode( "SKU-A" );
		product1.setProductQuantity( 3 );
		product1.setProductDescription( "Milk" );
 
		Product product2 = new Product();
		product2.setCountryOfOrigin( "GBR" );
		product2.setProductCode( "SKU-B" );
		product2.setProductQuantity( 2 );
		product2.setProductDescription( "Butter" );
 
		Product product3 = new Product();
		product3.setCountryOfOrigin( "GBR" );
		product3.setProductCode( "SKU-C" );
		product3.setProductQuantity( 6 );
		product3.setProductDescription( "Eggs" );
 
		service.packProductsToParcel( consignmentCode , 1 , new Product[] {
			product1,product2,product3	
		});
 
		/*
		 *  Now we will remove some items from the parcel. As this is just for removal, we only need
		 *  to populate the product code and quantity.
		 */
 
		Product productLineToRemove = new Product();
		productLineToRemove.setProductCode( "SKU-C" );
		productLineToRemove.setProductQuantity( 2 );
 
		service.unpackProductsFromParcel( consignmentCode , 1 , new Product[] {
			productLineToRemove
		});
 
		/*
		 * At this point, the parcel will have 4 eggs. So let's remove the remaining 4.
		 */
 
		productLineToRemove.setProductQuantity( 4 );
		service.unpackProductsFromParcel( consignmentCode , 1 , new Product[] {
			productLineToRemove
		});
 
		/*
		 * Now that all eggs have been removed, we will remove all the milk. However, we will
		 * assume that we don't know there are 3 units of milk, and instruct DM to remove all
		 * of it (by setting the quantity to a very large number). 
		 */
 
		productLineToRemove.setProductCode( "SKU-A" );
		productLineToRemove.setProductQuantity( 999999 );
		service.unpackProductsFromParcel( consignmentCode , 1 , new Product[] {
			productLineToRemove
		});
	}
}