William Jiang

JavaScript,PHP,Node,Perl,LAMP Web Developer – http://williamjxj.com; https://github.com/williamjxj?tab=repositories

oracle_package.sql

create or replace PACKAGE BODY oracle_package
AS
	------------ 1. AGENT table --------------
	FUNCTION f_agent (
   agent_id IN AGENT.AGENTID%TYPE,
    agency_id IN AGENT.AGENCYID%TYPE,
    fname IN AGENT.FIRSTNAME%TYPE,
    mname IN AGENT.MIDDLENAME%TYPE,
    lname IN AGENT.LASTNAME%TYPE,
    n_gender IN AGENT.GENDER%TYPE,
    n_dob IN AGENT.DOB%TYPE,
    tax_id IN AGENT.TAXID%TYPE,
    alt_tax_id IN AGENT.ALTTAXID%TYPE,
    business_from IN AGENT.BUSINESSFROM%TYPE,
    business_type IN AGENT.BUSINESSTYPE%TYPE,
    n_status IN AGENT.STATUS%TYPE,
    is1 IN AGENT.ISVESTEDPERSONAL%TYPE,
    is2 IN AGENT.ISVESTEDOVERRIDE%TYPE,
    email IN AGENT.EMAILADDRESS%TYPE,
    agent_level IN AGENT.AGENTLEVEL%TYPE,
		user IN varchar2,
    o_agency IN AGENT.ORIGINALAGENCY%TYPE,
    company_name IN AGENT.COMPANYNAME%TYPE
    )
			RETURN VARCHAR2
	IS
		v_today CONSTANT DATE := sysdate;
		v_status VARCHAR2(100);
		v_agent_id NUMBER := agent_id;
	BEGIN
		IF agent_id > 0 THEN
			v_status := 'UPDATE: ';
				UPDATE AGENT SET
					AGENCYID=agency_id, FIRSTNAME=fname, MIDDLENAME=mname, LASTNAME=lname, GENDER=n_gender, DOB=n_dob, TAXID=tax_id, ALTTAXID=alt_tax_id, BUSINESSFROM=business_from, BUSINESSTYPE=business_type, STATUS=n_status, ISVESTEDPERSONAL=is1, AGENTLEVEL=agent_level, ISVESTEDOVERRIDE=is2, EMAILADDRESS=email, MODIFY_DATE=v_today, COMPANYNAME=company_name,
					ORIGINALAGENCY=o_agency, MODIFY_USER=user WHERE AGENTID = agent_id;
		ELSE
			v_status := 'INSERT: ';
			insert into AGENT values(agency_id, SEQ_AGENT_AGENTID.NEXTVAL,
				fname, mname, lname, n_gender, n_dob, tax_id, alt_tax_id, business_from,
				business_type, n_status, is1, is2, email, v_today, NULL, user, NULL, agent_level, 0, o_agency, company_name, 'N'
				);
		END IF;
		COMMIT;
		IF v_agent_id = 0 then
			select agentid into v_agent_id from agent where agencyid=agency_id and firstname=fname and lastname=lname;
		END IF;
		RETURN v_status || to_char(v_agent_id);
	--exception handler code that should include a RETURN.
	EXCEPTION
		when OTHERS then
		rollback;
		-- Return status is: Oralce: bf:03-DEC-07,v_bf:03-DEC-07,dob:03-DEC-07,v_dob:03-DEC-077759
		-- v_status := 'Oralce: bf:'||business_from||',v_bf:'||v_bf||',dob:'||dob||',v_dob:'||v_dob;
	END f_agent;
	------------ 2. AGENTCONTACT table --------------
	FUNCTION f_agent_contact (
    agent_id IN AGENTCONTACT.AGENTID%TYPE,
    n_attn IN AGENTCONTACT.ATTN%TYPE,
    addr1 IN AGENTCONTACT.ADDRESS1%TYPE,
    addr2 IN AGENTCONTACT.ADDRESS2%TYPE,
    n_city IN AGENTCONTACT.CITY%TYPE,
    n_state IN AGENTCONTACT.STATE%TYPE,
    n_country IN AGENTCONTACT.COUNTRY%TYPE,
    maddr1 IN AGENTCONTACT.MADDRESS1%TYPE,
    maddr2 IN AGENTCONTACT.MADDRESS2%TYPE,
    n_mcity IN AGENTCONTACT.MCITY%TYPE,
    n_mstate IN AGENTCONTACT.MSTATE%TYPE,
    n_mcountry IN AGENTCONTACT.MCOUNTRY%TYPE,
    n_phone1 IN AGENTCONTACT.PHONE1%TYPE,
    n_phone2 IN AGENTCONTACT.PHONE2%TYPE,
    n_mobile IN AGENTCONTACT.MOBILE%TYPE,
    n_fax IN AGENTCONTACT.FAX%TYPE,
    n_comments IN AGENTCONTACT.COMMENTS%TYPE,
    user IN varchar2,
    n_zip IN AGENTCONTACT.ZIP%TYPE,
    n_mzip IN AGENTCONTACT.MZIP%TYPE,
    s_addr1 IN AGENTCONTACT.SADDRESS1%TYPE,
    s_addr2 IN AGENTCONTACT.SADDRESS2%TYPE,
    s_city IN AGENTCONTACT.SCITY%TYPE,
    s_state IN AGENTCONTACT.SSTATE%TYPE,
    s_country IN AGENTCONTACT.SCOUNTRY%TYPE,
    s_zip IN AGENTCONTACT.SZIP%TYPE)
		RETURN VARCHAR2
	IS
		v_count NUMBER;
		v_today CONSTANT DATE := sysdate;
		v_status varchar2(100);
	BEGIN
		select count(*) into v_count from AGENTCONTACT where AGENTID = agent_id;
		IF v_count > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE AGENTCONTACT SET
					ATTN=n_attn, ADDRESS1=addr1, ADDRESS2=addr2, CITY=n_city, STATE=n_state, COUNTRY=n_country, ZIP=n_zip,
					MADDRESS1=maddr1, MADDRESS2=maddr2, MCITY=n_mcity, MSTATE=n_mstate, MCOUNTRY=n_mcountry, MZIP=n_mzip,
					PHONE1=n_phone1, PHONE2=n_phone2, MOBILE=n_mobile, FAX=n_fax, COMMENTS=n_comments, MODIFY_DATE=v_today, MODIFY_USER=user,
SADDRESS1=s_addr1, SADDRESS2=s_addr2, SCITY=s_city, SSTATE=s_state, SCOUNTRY=s_country, SZIP=s_zip
			WHERE AGENTID = agent_id;
		ELSE
			v_status := 'INSERT: ';
			-- record not exists, do 'insert'.
			INSERT into AGENTCONTACT values( agent_id,
				n_attn, addr1, addr2, n_city, n_state, n_country, n_zip,
				maddr1, maddr2, n_mcity, n_mstate, n_mcountry, n_mzip,
				n_phone1, n_phone2, n_mobile, n_fax, n_comments, v_today, '', user, '',
			s_addr1, s_addr2, s_city, s_state, s_country, s_zip);
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_agent_contact;
	------------ 3. AGENTCRM table --------------
	FUNCTION f_agent_crm (
		agent_id IN AGENTCRM.AGENTID%TYPE,
		note_id IN AGENTCRM.NOTEID%TYPE,
		note_date IN AGENTCRM.NOTEDATE%TYPE,
		note_header IN AGENTCRM.NOTEHEADER%TYPE,
		n_note IN AGENTCRM.NOTE%TYPE,
		user IN varchar2)
		RETURN VARCHAR2
	IS
		v_count NUMBER;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE := sysdate;
	BEGIN
		select count(*) into v_count from agentcrm where AGENTID = agent_id and NOTEID = note_id;
		IF v_count > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE agentcrm SET
				NOTEDATE=note_date, NOTEHEADER=note_header, NOTE=n_note, MODIFY_DATE=v_today, MODIFY_USER=user
			WHERE AGENTID = agent_id and NOTEID = note_id;
		ELSE
			-- record not exists, do 'insert'.
			v_status := 'INSERT: ';
			INSERT into agentcrm values(
				agent_id, SEQ_AGENTCRM_NOTEID.nextval, note_date,
				note_header, n_note, v_today, '', user, '');
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id) || ', ' || to_char(note_id);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_agent_crm;
	------------ 4. AGENTDOCS table --------------
	FUNCTION f_agent_docs (
		agent_id IN AGENTDOCS.AGENTID%TYPE,
		doc_date IN AGENTDOCS.DOCDATE%TYPE,
		doc_header IN AGENTDOCS.DOCHEADER%TYPE,
		user IN varchar2,
		doc_id IN AGENTDOCS.DOCID%TYPE
		)
		RETURN VARCHAR2
	IS
		v_count NUMBER;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE := sysdate;
	BEGIN
		select count(*) into v_count from agentdocs where AGENTID = agent_id and DOCID = doc_id;
		IF v_count > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE agentdocs SET
				DOCDATE=doc_date,
				DOCHEADER=doc_header, MODIFY_DATE=v_today, MODIFY_USER=user
			WHERE AGENTID = agent_id and DOCID = doc_id;
		ELSE
			v_status := 'INSERT: dummy';
			--INSERT into agentdocs values( agent_id, SEQ_AGENTDOCS_DOCID.nextval, doc_date, doc_header, NULL, v_today, NULL, user, NULL, '');
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_agent_docs;
	------------ 5. AGENTLICENSES table --------------
	FUNCTION f_agent_licenses (
		agent_id IN AGENTLICENSES.AGENTID%TYPE,
		n_ec_coverage IN AGENTLICENSES.EO_COVERAGE%TYPE,
		n_eo_expiration IN AGENTLICENSES.EO_EXPIRATION%TYPE,
		license_type IN AGENTLICENSES.LICENSETYPE%TYPE,
		n_state IN AGENTLICENSES.STATE%TYPE,
		n_resident IN AGENTLICENSES.RESIDENT%TYPE,
		license_no IN AGENTLICENSES.LICENSENO%TYPE,
		issue_date IN AGENTLICENSES.ISSUEDATE%TYPE,
		expiry_date IN AGENTLICENSES.EXPIRYDATE%TYPE,
		n_status IN AGENTLICENSES.STATUS%TYPE,
    user IN varchar2,
		license_id IN AGENTLICENSES.LICENSEID%TYPE)
		RETURN VARCHAR2
	IS
		v_count NUMBER default license_id;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE := sysdate;
	BEGIN
		IF license_id > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE AGENTLICENSES SET
				EO_COVERAGE=n_ec_coverage, EO_EXPIRATION=n_eo_expiration,
				LICENSETYPE=license_type, STATE=n_state,
				RESIDENT=n_resident, LICENSENO=license_no,
				ISSUEDATE=issue_date, EXPIRYDATE=expiry_date, STATUS=n_status,
				MODIFY_DATE=v_today, MODIFY_USER=user
			WHERE LICENSEID = license_id;
		ELSE
			v_status := 'INSERT: ';
			select seq_agentlicenses_licenseid.nextval into v_count from dual;
			INSERT into AGENTLICENSES values(
				agent_id, n_ec_coverage, n_eo_expiration,
				license_type, n_state, n_resident,
				license_no, issue_date, expiry_date, n_status, v_today, '', user, '',
				v_count);
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id) || ', ' || to_char(v_count);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_agent_licenses;

	------------ 6. APPOINTMENT table --------------
	FUNCTION f_appointment (
		agent_id IN APPOINTMENT.AGENTID%TYPE,
		carrier_id IN APPOINTMENT.CARRIERID%TYPE,
		n_state IN APPOINTMENT.STATE%TYPE,
		appt_type IN APPOINTMENT.APPTTYPE%TYPE,
		rece_date IN APPOINTMENT.RECEIVEDDATE%TYPE,
		to_carrier_date IN APPOINTMENT.TOCARRIERDATE%TYPE,
		confirm_date IN APPOINTMENT.CONFIRMEDDATE%TYPE,
		n_status IN APPOINTMENT.STATUS%TYPE,
		n_reason IN APPOINTMENT.REASON%TYPE,
		producer_code IN APPOINTMENT.PRODUCERCODE%TYPE,
		n_note IN APPOINTMENT.NOTE%TYPE,
		id_type IN APPOINTMENT.IDTYPE%TYPE,
    user IN varchar2)
		RETURN VARCHAR2
	IS
		v_count NUMBER;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE := sysdate;

	BEGIN
		select count(*) into v_count from APPOINTMENT 
		where AGENTID = agent_id 
		and CARRIERID = carrier_id 
		and PRODUCERCODE = producer_code
		and STATE = n_state;
		-- and APPTTYPE=appt_type
		IF v_count > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE APPOINTMENT SET
				APPTTYPE=appt_type, RECEIVEDDATE=rece_date,
				TOCARRIERDATE=to_carrier_date,
				CONFIRMEDDATE=confirm_date, STATUS=n_status,
				REASON=n_reason, 
				NOTE=n_note, IDTYPE=id_type, MODIFY_DATE=v_today, MODIFY_BY=user
			WHERE AGENTID = agent_id and CARRIERID = carrier_id and STATE = n_state
				and PRODUCERCODE = producer_code;
		ELSE
			v_status := 'INSERT: ';
			INSERT into APPOINTMENT values( agent_id,
				carrier_id, n_state, appt_type, rece_date,
				to_carrier_date, 	confirm_date,	n_status,
				n_reason, producer_code, n_note, id_type, v_today, NULL, user, '');
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id) || ',' || to_char(carrier_id);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_appointment;
	------------ 7. AGENTCONTRACTS table --------------
	FUNCTION f_agent_contracts (
    agent_id IN AGENTCONTRACTS.AGENTID%TYPE,
    natp_grad_date IN AGENTCONTRACTS.NATP_GRADDATE%TYPE,
    n_pay_on_issuance IN AGENTCONTRACTS.PAY_ON_ISSUANCE%TYPE,
    n_contract IN AGENTCONTRACTS.CONTRACT%TYPE,
    n_effective_date IN AGENTCONTRACTS.EFFECTIVE_DATE%TYPE,
    until_date IN AGENTCONTRACTS.UNTILDATE%TYPE,
    n_california_adv IN AGENTCONTRACTS.CALIFORNIA_ADV%TYPE,
    n_california_adv_amt IN AGENTCONTRACTS.CALIFORNIA_ADV_AMT%TYPE,
    n_dsmrsm_annuaised_adv IN AGENTCONTRACTS.DSMRSM_ANNUALISED_ADV%TYPE,
    n_dsmrsm_annuaised_adv_amt IN AGENTCONTRACTS.DSMRSM_ANNUALISED_ADV_AMT%TYPE,
    n_dbtblnc_with_renewal IN AGENTCONTRACTS.DBTBLNC_WITH_RENEWAL%TYPE,
    n_dbtblnc_with_renewal_amt IN AGENTCONTRACTS.DBTBLNC_WITH_RENEWAL_AMT%TYPE,
    n_dbtblnc_with_newbusiness IN AGENTCONTRACTS.DBTBLNC_WITH_NEWBUSINESS%TYPE,
    n_dbtblnc_with_newbusiness_amt IN AGENTCONTRACTS.DBTBLNC_WITH_NEWBUSINESS_AMT%TYPE,
    n_reserve_amnt_percent IN AGENTCONTRACTS.RESERVE_AMNT_PERCENT%TYPE,
    n_reserve_release_period IN AGENTCONTRACTS.RESERVE_RELEASE_PERIOD%TYPE,
    payment_method IN AGENTCONTRACTS.PAYMENTMETHOD%TYPE,
    n_bank IN AGENTCONTRACTS.BANK%TYPE,
    account_type IN AGENTCONTRACTS.ACCOUNTTYPE%TYPE,
    account_no IN AGENTCONTRACTS.ACCOUNTNO%TYPE,
    routing_no IN AGENTCONTRACTS.ROUTINGNO%TYPE,
    user IN varchar2,
	contract_id IN AGENTCONTRACTS.CONTRACTID%TYPE
	)
		RETURN VARCHAR2
	IS
		v_count NUMBER default contract_id;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE := sysdate;
	BEGIN
		IF contract_id > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE agentcontracts SET
					NATP_GRADDATE=natp_grad_date, PAY_ON_ISSUANCE=n_pay_on_issuance,
					CONTRACT=n_contract, EFFECTIVE_DATE=n_effective_date,
					UNTILDATE=until_date, CALIFORNIA_ADV=n_california_adv,
					CALIFORNIA_ADV_AMT=n_california_adv_amt, DSMRSM_ANNUALISED_ADV=n_dsmrsm_annuaised_adv,
					DSMRSM_ANNUALISED_ADV_AMT=n_dsmrsm_annuaised_adv_amt,
					DBTBLNC_WITH_RENEWAL=n_dbtblnc_with_renewal,
					DBTBLNC_WITH_RENEWAL_AMT=n_dbtblnc_with_renewal_amt,
					DBTBLNC_WITH_NEWBUSINESS=n_dbtblnc_with_newbusiness,
					DBTBLNC_WITH_NEWBUSINESS_AMT=n_dbtblnc_with_newbusiness_amt,
					RESERVE_AMNT_PERCENT=n_reserve_amnt_percent,
					RESERVE_RELEASE_PERIOD=n_reserve_release_period,
					PAYMENTMETHOD=payment_method, BANK=n_bank,
					ACCOUNTTYPE=account_type, ACCOUNTNO=account_no, ROUTINGNO=routing_no,
					MODIFY_DATE=v_today, MODIFY_USER=user
			WHERE CONTRACTID = contract_id;
		ELSE
			select seq_agentcontracts_contractid.nextval into v_count from dual;
			v_status := 'INSERT: ';
			INSERT into agentcontracts values(agent_id,
				natp_grad_date,
				n_pay_on_issuance,
				n_contract,
				n_effective_date,
				until_date,
				n_california_adv,
				n_california_adv_amt,
				n_dsmrsm_annuaised_adv,
				n_dsmrsm_annuaised_adv_amt,
				n_dbtblnc_with_renewal,
				n_dbtblnc_with_renewal_amt,
				n_dbtblnc_with_newbusiness,
				n_dbtblnc_with_newbusiness_amt,
				n_reserve_amnt_percent,
				n_reserve_release_period,
				payment_method,
				n_bank,
				account_type,
				account_no,
				routing_no,
				v_today,
				'',
				user,
				NULL,
				v_count
				);
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id) || to_char(v_count);

	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;
	END f_agent_contracts;
	------------ 8. Others --------------
	PROCEDURE debugMsg(msg VARCHAR2)
	is
	BEGIN
		dbms_output.put_line('[' || to_char(sysdate, 'YYYYMMDD HH24:MI:SS') || '] - ' || msg);
	END debugMsg;

	procedure delete_agent(agent_id NUMBER)
	AS
	begin
		delete from agentcrm where agentid = agent_id;
		delete from agentdocs where agentid = agent_id;
		delete from agentcontact where agentid = agent_id;
		delete from agentcontracts where agentid = agent_id;
		delete from appointment where agentid = agent_id;
		delete from agentlicenses where agentid = agent_id;
		delete from AGENT where agentid = agent_id;
		commit;
	exception
		when others then
			debugMsg(sqlerrm);
			rollback;
	end delete_agent;

	---------------- 10. f_reminder ------------------
	FUNCTION f_reminder (
		reminder_id IN AGENTREMINDER.REMINDERID%TYPE,
		-- user_id IN AGENTREMINDER.USERID%TYPE,
		agent_id IN AGENTREMINDER.AGENTID%TYPE,
		r_subject IN AGENTREMINDER.SUBJECT%TYPE,
		r_message AGENTREMINDER.MESSAGE%TYPE,
		show_message  AGENTREMINDER.SHOWMESSAGE%TYPE,
		do_not_show AGENTREMINDER.DONOTSHOW%TYPE,
		r_warning IN AGENTREMINDER.WARNING%TYPE,
		user IN varchar2)
		RETURN VARCHAR2
	IS
		v_user_id AUTHUSERS.USERID%TYPE;
		v_status VARCHAR2(100);
		v_today CONSTANT DATE default sysdate;
		v_count AGENTREMINDER.REMINDERID%TYPE default reminder_id;
		--v_show_date DATE := to_date(show_message, 'DD-MON-YY HH24:MI');
		v_show_date DATE := show_message;
	BEGIN
		--return to_char(v_show_date,  'DD-MON-YY HH24:MI') || ', ' || to_char(show_message,  'DD-MON-YY HH24:MI');
		IF reminder_id > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE agentreminder SET
				MESSAGE=r_message, SUBJECT=r_subject, SHOWMESSAGE=v_show_date, DONOTSHOW=do_not_show, WARNING=r_warning, MODIFY_DATE=v_today
			WHERE REMINDERID=reminder_id;
		ELSE
			v_status := 'INSERT: ';
			select userid into v_user_id from authusers where username=user;
			if v_user_id > 0 then
				select seq_agentreminder.nextval into v_count from dual;
				INSERT into agentreminder values(
					v_count, v_user_id, agent_id, r_subject, r_message,
					v_show_date, do_not_show, r_warning, v_today, '');
			end if;
		END IF;
		COMMIT;
		RETURN v_status || to_char(agent_id) || ', ' || to_char(v_count);
	EXCEPTION
		WHEN OTHERS THEN
			-- debugMsg(sqlerrm);
			ROLLBACK;

	END f_reminder;

	-------------  f_agenttraining ---------------
	FUNCTION f_agent_training (
		m0 IN AGENTTRAINING.TRAINID%TYPE,
		m1 IN AGENTTRAINING.AGENTID%TYPE,
		m2 IN AGENTTRAINING.COURSENAME%TYPE,
		m3 IN AGENTTRAINING.COURSEDATE%TYPE,
		m4 IN AGENTTRAINING.CARRIERID%TYPE,
		m5 IN AGENTTRAINING.NOTES%TYPE)
		RETURN VARCHAR2
	IS
		v_count NUMBER;
		v_status VARCHAR2(100);
	BEGIN
		IF m0 > 0 THEN
			v_status := 'UPDATE: ';
			UPDATE AGENTTRAINING SET
				COURSENAME=m2, COURSEDATE=m3,CARRIERID=m4,NOTES=m5
			WHERE TRAINID=m0;
		ELSE
			v_status := 'INSERT: ';
			select seq_agenttraining_trainid.nextval into v_count from dual;
			INSERT into AGENTTRAINING values (v_count, m1, m2, m3, m4, m5);
		END IF;
		COMMIT;
		RETURN v_status || to_char(m1) || ', ' || to_char(v_count);
	EXCEPTION
		WHEN OTHERS THEN
			ROLLBACK;
	END f_agent_training;

END agent_management;

One response to “oracle_package.sql

  1. powercashadvance.com 10/26/2011 at 5:59 pm

    Almost all I can point out is, I’m not sure what to really say! Except certainly, for the amazing tips which have been shared within this blog. I’m able to think of a trillion fun methods to read the posts on this site. I do believe I will finally take action with your tips on those things I could not have been able to touch alone. You are so thoughtful to allow me to be one of those to learn from your handy information. Please know how significantly I enjoy the whole thing.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 73 other followers

%d bloggers like this: