ParseConfirmBookResponse.java 2.94 KB
Newer Older
ED-DRIF committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
package com.fractalite.hermes.teldar.parsers;

import java.io.IOException;
import java.text.ParseException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;

import org.apache.camel.Exchange;
import org.apache.camel.InvalidPayloadException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;

import com.fractalite.hermes.teldar.tools.ObjectToXml;
import com.fractalite.models.commerce.Order;
import com.fractalite.models.commerce.OrderStatus;
import com.fractalite.models.commerce.TermOfSale;
import com.fractalite.models.travel.stay.StayItem2;
import com.gekko_holding.webservice.v2_4.BookHotelResponse;
import com.gekko_holding.webservice.v2_4.BookResponse;
import com.gekko_holding.webservice.v2_4.Segment;

ED-DRIF committed
24
public class ParseConfirmBookResponse extends TeldarParsers {
ED-DRIF committed
25 26 27 28 29 30 31

	protected static Logger logger = LoggerFactory.getLogger(ParseConfirmBookResponse.class);

	@Override
	public void process(Exchange exchange) throws InvalidPayloadException, ParserConfigurationException, SAXException,
			IOException, XPathExpressionException, ParseException {

ED-DRIF committed
32
		logger.info("Invoking TELDAR ParseBookHotelResponsee Processor.......");
ED-DRIF committed
33 34 35 36
		Order oldOrder = exchange.getProperty("order", Order.class);
		String custoNumber = exchange.getProperty("custoNumber", String.class);
		BookHotelResponse respbookhotel = exchange.getIn().getBody(BookHotelResponse.class);
		Order order = printHotelInfo(respbookhotel.getBookResponse(), oldOrder, custoNumber);
ED-DRIF committed
37
		logger.info("new oneeeesss " + ObjectToXml.printXML(order));
ED-DRIF committed
38
		exchange.getIn().setBody(order);
ED-DRIF committed
39
		logger.info("End TELDAR ParseBookHotelResponse Processor.......");
ED-DRIF committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
	}

	private Order printHotelInfo(BookResponse bookHotels, Order order, String custoNumber) {

		if (bookHotels != null && bookHotels.getBookingId() != null) {

			logger.info(" \n bookHotels" + bookHotels + "̣ size " + bookHotels.getBookingId());
			order.setNumber(bookHotels.getBookingId());

			for (Segment respSegment : bookHotels.getSegments().getSegment()) {

				order.setStatus(OrderStatus.CONFIRMED);

				TermOfSale termsOfSalePayable = new TermOfSale();
				termsOfSalePayable.setCode("PAYEDBY");
ED-DRIF committed
55
				termsOfSalePayable.setDescription("  Teldar Hotels Group " + respSegment.getSupplierBookingNumber());
ED-DRIF committed
56 57 58 59 60 61 62 63 64 65 66 67
				order.getPricing().getItems(StayItem2.class).get(0).getProduct().getTermsOfSales()
						.add(termsOfSalePayable);
				for (StayItem2 lineItem : order.getPricing().getItems(StayItem2.class)) {

					lineItem.setStatus(OrderStatus.CONFIRMED);
					lineItem.setReference(bookHotels.getBookingId());
				}
				// SupplierBookingNumber

				if (respSegment.getSupplierBookingNumber() != null) {
					order.setNumber(bookHotels.getBookingId() + "_" + respSegment.getSupplierBookingNumber() + "_"
							+ custoNumber);
ED-DRIF committed
68 69 70

					logger.info("seggggggg " + respSegment.getSupplierBookingNumber());
					logger.info("seggggId " + bookHotels.getBookingId());
ED-DRIF committed
71 72 73 74 75 76 77 78 79
				}

			}
		}

		return order;

	}
}