// This file has been generated by NetDynamics Studio on Wed Jun. 30, 1999 16:45

package securityModule;


import java.awt.event.*;
import spider.event.*;
import spider.database.*;
import spider.visual.*;
import spider.*;
import spider.util.*;
import spider.html.*;
import spider.session.*;
 

//[[SPIDER_CLASS BEGIN
public class priv_pgCancel extends priv_pgCommon
//]]SPIDER_CLASS END
{
	private CSpValue security;
	private CSpValue fin, company_no;
	private CSpValue trans_number, cupidID, CDSID, ctry;
	private CSpValue RelativeNo, surname, forename; 	
	private long returnCode;
		
	//[[SPIDER_EVENTS BEGIN
	
	//[[SPIDER_EVENT<priv_Logout_onWebEvent>
	public int priv_Logout_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		command = doAction(event);
		return(command);
	}
	//]]SPIDER_EVENT<priv_Logout_onWebEvent>

	//[[SPIDER_EVENT<priv_MainMenu_onWebEvent>
	public int priv_MainMenu_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		command = doAction(event);
		return(command);
	}
	//]]SPIDER_EVENT<priv_MainMenu_onWebEvent>

	//[[SPIDER_EVENT<priv_Logout_onBeforeHtmlOutputEvent>
	public int priv_Logout_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
	  if(returnCode == 0)
			{
					CSpHref logout = (CSpHref)event.getSource();                       
		         	logout.setHtmlText (                                           
		                             CSpUtil.replaceSubstring (                 
		                             logout.getHtmlText (),                     
		                             ">",                                       
		                             " onClick=\"return confirmCancel();\">"));  
					return (PROCEED);
			}
	  else
	  		{
	  			return(SKIP);
	  		}
				
		}
	//]]SPIDER_EVENT<priv_Logout_onBeforeHtmlOutputEvent>

	//[[SPIDER_EVENT<hrefViewAppHistory_onWebEvent>
	public int hrefViewAppHistory_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		CSpPage nextPage = CSpider.getPage("priv_pgViewHistory");
		  //do your select here for the particular dataobject
		 nextPage.setDisplayFieldValue("priv_hdFin", fin);
		 nextPage.setDisplayFieldValue("priv_hdCompanyNo", company_no);
		 command = nextPage.load(false);
		return(command);
	}
	//]]SPIDER_EVENT<hrefViewAppHistory_onWebEvent>

	//[[SPIDER_EVENT<hrefVehicleSpec_onWebEvent>
	public int hrefVehicleSpec_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		command = doAction(event);
		return(command);
	}
	//]]SPIDER_EVENT<hrefVehicleSpec_onWebEvent>

	//[[SPIDER_EVENT<hrefReports_onBeforeHtmlOutputEvent>
	public int hrefReports_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
		if (security.toString().equalsIgnoreCase("HR")) {
			return (PROCEED);
		} else {
			return (SKIP);
		}
		
	}
	//]]SPIDER_EVENT<hrefReports_onBeforeHtmlOutputEvent>

	//[[SPIDER_EVENT<hrefReports_onWebEvent>
	public int hrefReports_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		command = doAction(event);
		return(command);
	}
	//]]SPIDER_EVENT<hrefReports_onWebEvent>

	//[[SPIDER_EVENT<hrefRequestApproval_onWebEvent>
	public int hrefRequestApproval_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		 CSpPage nextPage = CSpider.getPage("priv_pgReqApp");
		  //do your select here for the particular dataobject
		 nextPage.setDisplayFieldValue("priv_hdFin", fin);
		 nextPage.setDisplayFieldValue("priv_hdCompanyNo", company_no);
		 command = nextPage.load(false);
		return(command);
	}
	//]]SPIDER_EVENT<hrefRequestApproval_onWebEvent>

	//[[SPIDER_EVENT<this_onBeforeDisplayEvent>
	public int this_onBeforeDisplayEvent(CSpDisplayEvent event)
	{
		int command = PROCEED;
		
		security = CSpider.getUserSessionObject("usSecurityFlag");
		fin = getDisplayFieldValue("priv_hdFin");
		company_no = getDisplayFieldValue("priv_hdCompanyNo");
		cupidID = getDisplayFieldValue("priv_CupidID");
		long transNum = getDisplayFieldValue("priv_TransactionNo").longValue();
		trans_number = (CSpValue) new CSpLong(transNum);
		CDSID = CSpider.getUserSessionObject("usCdsid");
		forename = getDisplayFieldValue("priv_Forename");
		surname = getDisplayFieldValue("priv_Surname");
		RelativeNo = getDisplayFieldValue("priv_RelativeNo");
		ctry = (CSpValue) new CSpString("GBR");
				
		CSpProcedure CancelTrans = (CSpProcedure) CSpider.getDataObject("priv_sprCancelTransaction");
					  //uncomment these lines that get the session objects
			try
					{
						CancelTrans.clearAllValues();
						//get the input parameters
						CancelTrans.setValue("Parameter_I_CUPID_ID", cupidID);
	        			CancelTrans.setValue("Parameter_I_TRANSACTION_NO", trans_number);
	        			CancelTrans.setValue("Parameter_I_COUNTRY_CODE", ctry);
				        CancelTrans.setValue("Parameter_I_CREATE_ID", CDSID);
				        CSpValue  sourceCode = (CSpValue) new CSpString("713");
	        			CancelTrans.setValue("Parameter_I_SOURCE_CODE", sourceCode);
	        			String entID = "PRVLG001";
	        			CSpValue enttID = (CSpValue) new CSpString(entID);
	        			CancelTrans.setValue("Parameter_I_ENTITLEMENT_ID",enttID);  
	       
						CancelTrans.execute();
			
						if(CancelTrans.succeeded()){
			

							String returnMessage = CancelTrans.getValue(0, "Parameter_O_RETURN_MESSAGE").stringValue();
							returnCode = CancelTrans.getValue(0, "Parameter_O_RETURN_CODE").longValue();
								if(returnCode == 0)
									{
						  				 command =  priv_deleteTrans();
						
								 	}
									
								 else 
									{
										String messageOne = "This Request has already been used and cannot be cancelled on Privilege Club.";
								 		setDisplayFieldValue("priv_CancelMessage", new CSpString(messageOne));
								 		String messageTwo = "Do you wish to ";
										setDisplayFieldValue("priv_LogoutMessage", new CSpString(messageTwo));
										String messageThree = " or ";
										setDisplayFieldValue("priv_LogoutOne", new CSpString(messageThree));
															 		
								 		command = PROCEED;
										
								 	}	
									
								}	
							else
									{	
										String messageOne = "The request cancellation has failed on the Vehicle Information System. Please try later.";
								 		setDisplayFieldValue("priv_CancelMessage", new CSpString(messageOne));
						 				String messageTwo = "Do you wish to ";
										setDisplayFieldValue("priv_LogoutMessage", new CSpString(messageTwo));
										String messageThree = " or ";
										setDisplayFieldValue("priv_LogoutOne", new CSpString(messageThree));
														
						 				command = PROCEED;
								
								}
					}
					catch(Exception ex){
								htmlMsg ("Error: " + ex);              
			        			userLog (this, "Error: " + ex);  					
			 					command = STOP;
						}
					finally
					{
						 return(command);
					}
								
					
	}
	//]]SPIDER_EVENT<this_onBeforeDisplayEvent>

	//[[SPIDER_EVENT<hrefMainMenu_onWebEvent>
	public int hrefMainMenu_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		command = doAction(event);
		return(command);
	}
	//]]SPIDER_EVENT<hrefMainMenu_onWebEvent>

	//[[SPIDER_EVENT<href_pgCancelRequest_onWebEvent>
	public int href_pgCancelRequest_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		CSpPage nextPage = CSpider.getPage("priv_pgCancelRequest");
		  //do your select here for the particular dataobject
		 nextPage.setDisplayFieldValue("priv_hdFin", fin);
		 nextPage.setDisplayFieldValue("priv_hdCompanyNo", company_no);
		 command = nextPage.load(false);
		return(command);
	}
	//]]SPIDER_EVENT<href_pgCancelRequest_onWebEvent>

	//[[SPIDER_EVENT<priv_MainMenu_onBeforeHtmlOutputEvent>
	public int priv_MainMenu_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
		if(returnCode == 0)
			return (PROCEED);
		else
			return(SKIP);
	}
	//]]SPIDER_EVENT<priv_MainMenu_onBeforeHtmlOutputEvent>

	//[[SPIDER_EVENT<priv_btnMainMenu_onWebEvent>
	public int priv_btnMainMenu_onWebEvent(CSpWebEvent event)
	{
		int command = PROCEED;
		//load the request approval page
			CSpPage nextPage = CSpider.getPage("priv_pgMainMenu");
			command = nextPage.load(false);
		return(command);
	}
	//]]SPIDER_EVENT<priv_btnMainMenu_onWebEvent>

	//[[SPIDER_EVENT<priv_btnMainMenu_onBeforeHtmlOutputEvent>
	public int priv_btnMainMenu_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
		if(returnCode == 0)
			return (SKIP);
		else
			return (PROCEED);
	}
	//]]SPIDER_EVENT<priv_btnMainMenu_onBeforeHtmlOutputEvent>

	//[[SPIDER_EVENT<priv_LogoutMessage_onBeforeHtmlOutputEvent>
	public int priv_LogoutMessage_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
			return (PROCEED);
	}
	//]]SPIDER_EVENT<priv_LogoutMessage_onBeforeHtmlOutputEvent>

	//[[SPIDER_EVENT<priv_LogoutOne_onBeforeHtmlOutputEvent>
	public int priv_LogoutOne_onBeforeHtmlOutputEvent(CSpHtmlOutputEvent event)
	{
		
			return (PROCEED);
	
	}
	//]]SPIDER_EVENT<priv_LogoutOne_onBeforeHtmlOutputEvent>

	//]]SPIDER_EVENTS END
	
	private int priv_deleteTrans()
{
	int command = PROCEED;
		try
		{	
			
			CSpMultiSQL deleteTrans = (CSpMultiSQL) CSpider.getDataObject("priv_UpdTransaction");
				
				deleteTrans.clearDynamicCriteria();
				
				deleteTrans.addDynamicCriterion("PRIV_PRIV_TRANSACTION_FIN",
									CSpCriteriaSQLObject.EQUAL_TO_STR_OPERATOR,
									fin);
									
				deleteTrans.addDynamicCriterion("PRIV_PRIV_TRANSACTION_COMPANY_NO",
									CSpCriteriaSQLObject.EQUAL_TO_INT_OPERATOR,
									company_no);	
												
				deleteTrans.addDynamicCriterion("PRIV_PRIV_TRANSACTION_RELATIVE_NO",
									CSpCriteriaSQLObject.EQUAL_TO_STR_OPERATOR,
									RelativeNo);   
				deleteTrans.addDynamicCriterion("PRIV_PRIV_TRANSACTION_TRANSACTION_NO",
									CSpCriteriaSQLObject.EQUAL_TO_STR_OPERATOR,
									trans_number);   		
			//get current time to know when record was added
			CSpDatetime timeStamp = new CSpDatetime();
			String dateCancelled = timeStamp.format("dd/mm/yyyy");

			//now set up the data object values
			deleteTrans.setValue("PRIV_PRIV_TRANSACTION_STATUS_CD", new CSpString("C"));
			deleteTrans.setValue ("PRIV_PRIV_TRANSACTION_DATE_CANCELLED", new CSpString(dateCancelled));
			//now update the database
			 	deleteTrans.executeUpdate();
	 
			if(deleteTrans.succeeded() && command == PROCEED)
				   {
						//put code for success
						String messageOne = "This Request has been successfully cancelled.";
						setDisplayFieldValue("priv_CancelMessage", new CSpString(messageOne));
						String messageTwo = "Do you wish to ";
						setDisplayFieldValue("priv_LogoutMessage", new CSpString(messageTwo));
						String messageThree = " or ";
						setDisplayFieldValue("priv_LogoutOne", new CSpString(messageThree));
						command = PROCEED;	 				
					}
				else
					{
						String errorMsg = "Cancelling a transaction has failed";
						htmlMsg ("Error: " + errorMsg);              
        				userLog (this, "Error: " + errorMsg);  					
 						command = STOP;	
					}
				
		}
		catch(Exception ex)
		{
					htmlMsg ("Error: " + ex);              
        			userLog (this, "Error: " + ex);  					
 					command = STOP;
		}
	
	finally
	{
	
		return (command);
	}
}
	 

	
	
	
	
}

