package CreditApplication;


import com.dnbi.eai.service.creditapp.CreditAppServiceStub.ArrayOfFieldDTO;
import com.dnbi.eai.service.creditapp.CreditAppServiceStub.FieldDTO;

import com.dnbi.eai.service.creditapp.CreditAppServiceStub.FieldTypeEnum;
import com.dnbi.eai.service.creditapp.CreditAppServiceStub.ApplyForCreditResponse;
import com.dnbi.eai.service.creditapp.CreditAppServiceStub.ApplyForCreditResult;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;


public class ApplyForCredit{

	public static void main(String[] args)throws Exception{
		
	
		
		applyForCredit test = new applyForCredit();
		
		test.testapplyForCredit();

		
	}

	public void setHeader(com.dnbi.eai.service.creditapp.CreditAppServiceStub stub) {

		OMFactory abstractFactory = OMAbstractFactory.getOMFactory();

		OMNamespace namespace = abstractFactory.createOMNamespace(
				"", "http://com.dnbi.eai.service.CreditApplication");

		OMElement element = abstractFactory.createOMElement("LOGIN_ID",
				namespace);
		OMElement element1 = abstractFactory.createOMElement("LOGIN_PASSWORD",
				namespace);
		OMElement element2 = abstractFactory.createOMElement("LOGIN_TOKEN",
				namespace);

		
		element.setText("name@dnb.com");
		element1.setText("password");
		stub._getServiceClient().addHeader(element);
		stub._getServiceClient().addHeader(element1);

	}
	
	public void testapplyForCredit(){
        System.out.println("testapplyForCredit...........");
        try{
           com.dnbi.eai.service.creditapp.CreditAppServiceStub  stub = new com.dnbi.eai.service.creditapp.CreditAppServiceStub("http://www2.dnbi.com/dnbi/services/CreditApplication");
           setHeader(stub);
	       com.dnbi.eai.service.creditapp.CreditAppServiceStub.ApplyForCredit param71 = new com.dnbi.eai.service.creditapp.CreditAppServiceStub.ApplyForCredit();
	       FieldDTO[] fields = new FieldDTO[22];
           int i = 0;
           FieldDTO field = new FieldDTO();  
           field.setName("BizInfo-BureauName");
		   field.setValue("dnb");
		   field.setFieldType(FieldTypeEnum.GENERAL);
		   fields[i++] = field;
           
		   field = new FieldDTO();
		   field.setName("BizInfo-BusinessName");
		   field.setValue("JAMES A KILEY MD");
		   field.setFieldType(FieldTypeEnum.GENERAL);
		   fields[i++] = field;
		 
		 	field = new FieldDTO();
			field.setName("BizInfo-StreetAddress");
			field.setValue("1600 CREEKSIDE DR STE 3700 ");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;
      
         
			field = new FieldDTO();
			field.setName("BizInfo-City");
			field.setValue("FOLSOM");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;


			field = new FieldDTO();
			field.setName("BizInfo-State");
			field.setValue("CA");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;


			field = new FieldDTO();
			field.setName("BizInfo-ZIPCode");
			field.setValue("95630");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;
			
			field = new FieldDTO();
			field.setName("BizInfo-BusinessPhone");
			field.setValue("1234567890");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;

			field = new FieldDTO();
			field.setName("BizProfile-ContactFirstName");
			field.setValue("Vips");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;

			field = new FieldDTO();
			field.setName("BizProfile-ContactLastName");
			field.setValue("WS");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;

    
			field = new FieldDTO();
			field.setName("BizInfo-Country");
			field.setValue("US");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;

			field = new FieldDTO();
			field.setName("BizProfile-ContactTitleinBusiness");
			field.setValue("QA");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;
			
           field = new FieldDTO();
           field.setName("BizProfile-ContactDepartment");
           field.setValue("QA");
           field.setFieldType( FieldTypeEnum.GENERAL);
           fields[i++] = field;

           field = new FieldDTO();
           field.setName("BizProfile-ContactPhoneNumber");
           field.setValue("1236589740");
           field.setFieldType( FieldTypeEnum.GENERAL);
           fields[i++] = field;
        
           field = new FieldDTO();
			field.setName("BizProfile-ContactSecondaryPhone");
			field.setValue("1236589740");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;


			field = new FieldDTO();
			field.setName("BizProfile-ContactFaxNumber");
			field.setValue("5632147890");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;


			field = new FieldDTO();
			field.setName("BizProfile-ContactE-mailAddress");
			field.setValue("a@b.com");
			field.setFieldType(FieldTypeEnum.GENERAL);
			fields[i++] = field;

        
           field = new FieldDTO();
           field.setName("BizProfile-Territory");
           field.setValue( "West");
           field.setFieldType( FieldTypeEnum.GENERAL);
           fields[i++] = field;

           field = new FieldDTO();
           field.setName( "BizProfile-BusinessUnit");
           field.setValue("Business Unit 1");
           field.setFieldType(FieldTypeEnum.GENERAL);
           fields[i++] = field;

        field = new FieldDTO();
        field.setName("BizProfile-CustomerType");
        field.setValue( "Platinum");
        field.setFieldType( FieldTypeEnum.GENERAL);
        fields[i++] = field;
        
        
        field = new FieldDTO();
        field.setName ("BizProfile-SICCode");
        field.setValue("8111");
        field.setFieldType(FieldTypeEnum.GENERAL);
        fields[i++] = field;

        field = new FieldDTO();
        field.setName("BizProfile-BusinessStructure");
        field.setValue( "LLC");
        field.setFieldType( FieldTypeEnum.GENERAL);
        fields[i++] = field;
        
        field = new FieldDTO();
        field.setName("BizInfo-RequestedAmount");
        field.setValue("223");
        field.setFieldType(FieldTypeEnum.GENERAL);
        fields[i++] = field;        
        
        ArrayOfFieldDTO arrfdto = new ArrayOfFieldDTO();
        arrfdto.setFieldDTO(fields);
        System.out.println("result" +arrfdto.getFieldDTO());
        param71.setIn0(arrfdto);
        param71.setIn1(true);
        ApplyForCreditResponse response = stub.applyForCredit(param71);
        ApplyForCreditResult result = response.getOut();
   
        System.out.println("result application created is " +result.getApplicationCreated()); 
        System.out.println("result application id is " +result.getApplicationId());
      
        System.out.println("result status is "+result.getApplicationECF().getApplication().getStatus());
        System.out.println("result fielddto "+result.getApplicationECF().getApplicationValues().getFieldDTO());
        
        
        if(result.getExactMatchFound())
        {	
        //System.out.println("result "+result.getExactMatchFound());
        	System.out.println("strong match is found");
        }
        else
        if(result.getBureauPullErrorFlag()){
        	//System.out.println("result "+result.getBureauPullErrorFlag());
        	System.out.println("There was error in pulling the bureau");
        }
        	
        if(result.getListOfSimilarsFound()){	
        	System.out.println("List Of Similars Found");
        	
        }else if (result.getNoMatchFound()){
        	System.out.println("No Match Found");
        	
        }      
        System.out.println("result credit limit is "+result.getApplicationECF().getCreditTerms().getCreditLimit());
       
        System.out.println("result CreditTermsStatus is "+result.getApplicationECF().getCreditTerms().getCreditTermsStatus());
       
        System.out.println("result EarlyPaymentDiscount is "+result.getApplicationECF().getCreditTerms().getEarlyPaymentDiscount());
       
        System.out.println("result PaymentTerms is "+result.getApplicationECF().getCreditTerms().getPaymentTerms());
        
        System.out.println("result AnalystInstruction is "+result.getApplicationECF().getDecisionOutcome().getAnalystInstruction());
        
        System.out.println("result Outcome is "+result.getApplicationECF().getDecisionOutcome().getOutcome());
        System.out.println("result TriggeredBy is "+result.getApplicationECF().getDecisionOutcome().getTriggeredBy());
        System.out.println("result ScoreDTO is "+result.getApplicationECF().getScoreList().getScoreDTO());
        System.out.println("result BureauCompanyDTO is "+result.getBureauCompanyList().getBureauCompanyDTO());
        System.out.println("result BureauCompanyDTO is "+result.getBureauPullError().getErrorCode());
        System.out.println("result ErrorMessage is "+result.getBureauPullError().getErrorMessage());
        System.out.println("result RecommendedAction is "+result.getBureauPullError().getRecommendedAction());
          
        System.out.println("result FieldErrorDTO is "+result.getErrorFieldList().getFieldErrorDTO());
       
   
        }catch(Exception e){ } 
	
	}	
     

}
