Subversion Repositories SmartDukaan

Rev

Rev 20666 | Rev 20960 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20640 amit.gupta 1
package com.aramex.impl;
2
 
3
import in.shop2020.model.v1.order.Order;
4
 
20642 amit.gupta 5
import java.util.Calendar;
20640 amit.gupta 6
import java.util.List;
7
 
20642 amit.gupta 8
import com.aramex.stub.Address;
9
import com.aramex.stub.ArrayOfShipment;
10
import com.aramex.stub.ClientInfo;
11
import com.aramex.stub.Contact;
12
import com.aramex.stub.LabelInfo;
13
import com.aramex.stub.Money;
14
import com.aramex.stub.Party;
15
import com.aramex.stub.ProcessedShipment;
16
import com.aramex.stub.Service_1_0_PortType;
17
import com.aramex.stub.Service_1_0_Service;
18
import com.aramex.stub.Service_1_0_ServiceLocator;
19
import com.aramex.stub.Shipment;
20
import com.aramex.stub.ShipmentCreationRequest;
21
import com.aramex.stub.ShipmentCreationResponse;
22
import com.aramex.stub.ShipmentDetails;
23
import com.aramex.stub.Weight;
20640 amit.gupta 24
import com.providers.logistics.Provider;
20642 amit.gupta 25
import com.providers.logistics.ShipmentInfo;
20640 amit.gupta 26
 
27
public class Aramex implements Provider {
28
 
20642 amit.gupta 29
	public String getAirwayBillNo(List<Order> orders) throws Exception{
20649 amit.gupta 30
		try {
31
			Order oneOrder = orders.get(0);
32
			Party consignee = getConsigneeParty(oneOrder);
20666 amit.gupta 33
			Party shipper = getTestShipper();
34
			shipper.setReference1(oneOrder.getLogisticsTransactionId());
35
			Shipment shp = getShipment(new ShipmentInfo(orders), consignee, shipper);
20649 amit.gupta 36
			return getAwb(shp);
37
		} catch (Exception e) {
38
			e.printStackTrace();
39
			throw e;
40
		}
20640 amit.gupta 41
	}
20642 amit.gupta 42
 
43
	private Shipment getShipment(ShipmentInfo shipmentInfo, Party consignee, Party shipper) {
44
		Shipment shp = new Shipment();
45
		ShipmentDetails details = new ShipmentDetails();
46
		details.setProductGroup("DOM");
47
		details.setProductType("CDA");
48
		details.setPaymentType("P");
49
		details.setChargeableWeight(new Weight("KG", shipmentInfo.getTotalWeightInKg()));
20650 amit.gupta 50
		details.setActualWeight(new Weight("KG", shipmentInfo.getTotalWeightInKg()));
20642 amit.gupta 51
		details.setDescriptionOfGoods("Electronics");
52
		details.setGoodsOriginCountry("IN");
20938 amit.gupta 53
		if(shipmentInfo.getNetPayable()==0){
20642 amit.gupta 54
			details.setServices("CODS");
20938 amit.gupta 55
			details.setCashOnDeliveryAmount(new Money("INR", shipmentInfo.getNetPayable()));
20642 amit.gupta 56
		}
57
		details.setCustomsValueAmount(new Money("INR", shipmentInfo.getTotalAmount()));
58
		details.setNumberOfPieces(shipmentInfo.getTotalPcs());
59
 
60
		shp.setDetails(details);
61
		shp.setShipper(shipper);
62
		shp.setConsignee(consignee);
63
		shp.setPickupLocation("Gurgaon");
64
		shp.setShippingDateTime(Calendar.getInstance());
65
		Calendar dueDate = Calendar.getInstance();
66
		dueDate.add(Calendar.DATE, 4);
67
		shp.setDueDate(dueDate);
68
 
69
		return shp;
70
	}
20640 amit.gupta 71
 
20642 amit.gupta 72
	private Party getConsigneeParty(Order order) {
73
		Party consignee = new Party();
74
 
75
		Address consigneeAddress = new Address();
76
		consigneeAddress.setCountryCode("IN");
77
		consigneeAddress.setLine1(order.getCustomer_address1());
78
		consigneeAddress.setLine2(order.getCustomer_address2());
79
		consigneeAddress.setPostCode(order.getCustomer_pincode());
80
		consigneeAddress.setStateOrProvinceCode(order.getCustomer_state());
81
		consigneeAddress.setCity(order.getCustomer_city());
20650 amit.gupta 82
 
20642 amit.gupta 83
		Contact contact = new Contact();
20650 amit.gupta 84
		contact.setPhoneNumber1(order.getCustomer_mobilenumber());
20642 amit.gupta 85
		contact.setCellPhone(order.getCustomer_mobilenumber());
86
		contact.setPersonName(order.getCustomer_name());
87
		contact.setEmailAddress(order.getCustomer_email());
20650 amit.gupta 88
		contact.setCompanyName(order.getCustomer_name());
20642 amit.gupta 89
 
90
		consignee.setPartyAddress(consigneeAddress);
91
		consignee.setContact(contact);
92
 
93
		return consignee;
94
	}
95
 
96
	private String getAwb(Shipment shipment) throws Exception{
97
		Service_1_0_Service aramexService = new Service_1_0_ServiceLocator();
98
		Service_1_0_PortType service = aramexService.getBasicHttpBinding_Service_1_0();
99
		ShipmentCreationRequest parameters = new ShipmentCreationRequest();
100
		ArrayOfShipment shipments = new ArrayOfShipment();
101
		Shipment [] shipArray = new Shipment[1];
102
 
103
 
104
		shipArray[0]=shipment;
105
		shipments.setShipment(shipArray);
106
 
107
		LabelInfo labelInfo = new LabelInfo();
108
		labelInfo.setReportID(9729);
109
		labelInfo.setReportType("URL");
110
		parameters.setLabelInfo(labelInfo);
20665 amit.gupta 111
		parameters.setClientInfo(getLiveClientInfo());
20642 amit.gupta 112
		parameters.setShipments(shipments);
113
 
114
 
115
		ShipmentCreationResponse scr = service.createShipments(parameters);
20650 amit.gupta 116
		if(scr.getHasErrors()){
117
			if(scr.getNotifications() != null && scr.getNotifications().getNotification() != null){
118
				System.out.println("Some error " +  scr.getNotifications().getNotification(0).getMessage());
119
			}
120
			ProcessedShipment s = scr.getShipments().getProcessedShipment(0); 
121
			if (s!=null && s.getNotifications() != null && s.getNotifications().getNotification() != null) {
122
				System.out.println("Some error in shipment" +  s.getNotifications().getNotification(0).getMessage());
123
			}
20642 amit.gupta 124
			throw new Exception();
125
		}
126
		ProcessedShipment ps = scr.getShipments().getProcessedShipment(0);
127
		return ps.getID();
128
	}
129
 
20665 amit.gupta 130
	private static ClientInfo getLiveClientInfo() {
20642 amit.gupta 131
		ClientInfo clientInfo = new ClientInfo();
132
		clientInfo.setAccountCountryCode("IN");
20665 amit.gupta 133
		clientInfo.setAccountNumber("50615758");
20642 amit.gupta 134
		clientInfo.setVersion("v1.0");	
135
		clientInfo.setAccountEntity("DEL");
20665 amit.gupta 136
		clientInfo.setUserName("adonismobitrade@yahoo.com");
137
		clientInfo.setPassword("Adonis@12345");
138
		clientInfo.setAccountPin("321321");
20642 amit.gupta 139
		return clientInfo;
140
	}
141
 
20665 amit.gupta 142
	/*private static ClientInfo getTestClientInfo() {
143
		ClientInfo clientInfo = new ClientInfo();
144
		clientInfo.setAccountCountryCode("IN");
145
		clientInfo.setAccountNumber("50615758");
146
		clientInfo.setVersion("v1.0");	
147
		clientInfo.setAccountEntity("DEL");
148
		clientInfo.setUserName("adonismobitrade@yahoo.com");
149
		clientInfo.setPassword("Adonis@12345");
150
		clientInfo.setAccountPin("231164");
151
		return clientInfo;
152
	}*/
153
 
20642 amit.gupta 154
	private Party getTestShipper() {
155
		Party shipper = new Party();
20665 amit.gupta 156
		shipper.setAccountNumber("50615758");
20642 amit.gupta 157
		Contact sc = new Contact();
20665 amit.gupta 158
		sc.setEmailAddress("adonismobitrade@yahoo.com");
159
		sc.setCellPhone("9311608716");
160
		sc.setCompanyName("Adonis Mobitrade Pvt Ltd");
161
		sc.setPersonName("Deenanath Gupta");
162
		sc.setPhoneNumber1("9311608716");
20642 amit.gupta 163
		shipper.setContact(sc);
164
		Address shipperAddress = new Address();
20665 amit.gupta 165
		shipperAddress.setLine1("Plot No. 485, Udyog Vihar Phase V");
166
		shipperAddress.setCity("Gurgoan");
20642 amit.gupta 167
		shipperAddress.setCountryCode("IN");
20665 amit.gupta 168
		shipperAddress.setPostCode("122016");
20642 amit.gupta 169
		shipper.setPartyAddress(shipperAddress);
170
		return shipper;
171
	}
20650 amit.gupta 172
 
20640 amit.gupta 173
}