HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/lib/__pycache__/util_dms.cpython-38.pyc
U

k�if�X�@sddlZddlZddlZddlmmZddlmZddl	m
Z
ddlmZddl
mZddlmZddlmZddlmZe�e�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�ZGdd�de�Z dd�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$dS)�N)�AMS)�AMSAnalytics)�NEO)�
AMSPreQualify)�ExternalFormFieldDefinition)�current_app)�	AESCiphercCs&t|�dkr|d|}n||}|S)Nr� ��len)�current_message�
error_message�r�H/home/arjun/projects/buyercall_forms/buyercall/buyercall/lib/util_dms.py�append_errorsrcCs`tjd}t|�}|dk	rXz|�|�WStk
r>|YStk
rT|YSXn|SdS)N�CRYPTO_SECRET_KEY)�app�configr�decrypt�	TypeError�
ValueError)�text�
crypto_key�cipherrrr�
decrypt_values
rcCs|rt|�dkr|SdSdS)Nr�r
)�valuerrr�set_string_value,srcCs�ddlm}m}tjd}|j�|��|j|k��|j	|k��
�}|r�|j}ddlm
}||d�}	|��||	�t|�}
|
�|j�}|
�|j�}|
�|j�}
|
�|j�}t||||
||�}|S)Nr��0ExternalApiServiceProvidersPartnershipAccountTie�ExternalApiServiceProvidersr)�
RequestLog)�current_url�	path_info)�'buyercall.blueprints.partnership.modelsrr rr�query�join�filter�name�partnership_account_id�first�url�$buyercall.blueprints.sysadmin.modelsr!�
update_recordrr�username�password�secret�	client_idr)r)�
provider_type�
request_idrr �encrypt_key� partner_service_provider_profiler+r!�update_datar�decrypted_username�decrypted_password�decrypted_secretZdecrypted_client_id�clientrrr�
ams_client3s.
����r;c	Cs`ddlm}m}tjd}|j�|��|j|k��|j	|k��
�}|r\|j}|j}t
||�}|S�Nrrr)r$rr rrr%r&r'r(r)r*r+r1r�	r)r2rr r4r5r+r1r:rrr�ams_analytics_clientUs
���
r>c	Cs`ddlm}m}tjd}|j�|��|j|k��|j	|k��
�}|r\|j}|j}t
||�}|Sr<)r$rr rrr%r&r'r(r)r*r+r1rr=rrr�ams_prequalify_clientrs
���
r?c@sfeZdZdXdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+dTdU�Z,dVdW�Z-dS)Y�
AmsLeadXmlNc(CsF|dk	r|nt�d�|_|j�dd�|j�dd�t�d�|_t�d�|_t�d�|_t�d	�|_t�d
�|_t�d�|_	t�d�|_
t�d
�|_t�d�|_t�d�|_
t�|jd�}d|_t�|jd�}d|_t�|jd�}t�|jd�}d|_t�|jd�}d|_t�|jd�}d|_t�|jd�}|�dd�t�|jd�}	|	�dd�t�|jd�}
|
�dd�t�|jd �}|�dd�t�|jd�}d|_t�|jd�}
d|
_t�|jd�}t�|jd�}d|_t�|jd�}d|_t�|jd�}d|_t�|jd�}|�dd�t�|jd�}|�dd�t�|jd�}|�dd�t�|jd �}|�dd�t�|jd!�}t�|jd"�}t�|jd#�}|�dd�t�|jd$�}|�dd�t�|jd%�}|�dd�t�|jd&�}|�dd�t�|jd'�}d(|_t�|jd)�}d*|_t�|jd+�}d,|_t�|jd-�}d.|_t�|jd/�} d0| _t�|jd1�}!t�|jd2�}"|"�dd�t�|jd3�}#|#�dd�t�|jd4�}$|$�dd�t�|jd5�}%|%�dd�t�|jd6�}&t�|jd7�}'d0|'_|j�|j�|j�|j�|j�|j�|j�|j	�|j�|j
�|j�|j�|j�|j�dS)8NZDealPushVoV1z	xmlns:xsdz http://www.w3.org/2001/XMLSchemaz	xmlns:xsiz)http://www.w3.org/2001/XMLSchema-instanceZBuyerZCoBuyerZIntegrationMappingZVehicleZCashDownZ
DealNumberZDealTypeZLenderDmsIDZSalesPerson1DmsIDZSalesPerson2DmsIDZContactTypeZProspectZContactSubTypeZPrivateZCompanyNameZCountryCode�USZ
EntityType�PersonZ
StatusType�UnknownZ
OptInEmailzxsi:nil�trueZ
OptInPhoneZ
OptInPrintZ	OptInTextZDMSStoreZ	DMSBranchZ
DSiActivityIdZDSiVehicleIdZDSiInventoryZDSiWLAccountIdZDMSIPAddresszhttps://buyercall.comZDMSName�	BuyerCallZ
DMSVersion�1ZOdometer�0ZMSRPz0.0000ZVehicleTypeZExtWarrantyExpireDateZExtWarrantyMilesZSrvcContractExpireDateZSrvcMaintMilesZCertifiedNumberZPrice)�ET�Element�root�set�buyer�co_buyer�integration�vehicle�	cash_downZdeal_numberZ	deal_typeZ
lender_dms_id�sales_person_dms_id_1Zsales_person_dms_id_2�
SubElementr�append)(�self�eltZcontact_typeZcontact_sub_typeZcompany_name�country_codeZentity_typeZstatus_typeZopt_in_emailZopt_in_phoneZopt_in_printZopt_in_textZco_applicant_contact_typeZco_applicant_contact_sub_typeZco_applicant_company_nameZco_applicant_country_codeZco_applicant_entity_typeZco_applicant_status_typeZco_applicant_opt_in_emailZco_applicant_opt_in_phoneZco_applicant_opt_in_printZco_applicant_opt_in_textZ	dms_storeZ
dms_branchZdsi_activity_idZdsi_vehicle_idZdsi_inventory_idZdsi_wl_account_idZdsi_addressZdms_nameZdms_versionZodometerZmsrpZvehicle_typeZwarranty_expire_dateZwarranty_milesZservice_contract_expireZservice_maintenance_milesZcertified_numberZpricerrr�__init__�s�zAmsLeadXml.__init__cCstj|jdd�S)N�unicode)�encoding)rH�tostringrJ�rTrrr�__str__�szAmsLeadXml.__str__cCs t�d�}||_|j�|�|S�NZAddress1�rHrIrrLrS�rTrrUrrr�	address_1�s�zAmsLeadXml.address_1cCs t�d�}||_|j�|�|S�NZAddress2r^r_rrr�	address_2s�zAmsLeadXml.address_2cCs t�d�}||_|j�|�|S�N�Birthdayr^r_rrr�birthdays�zAmsLeadXml.birthdaycCs t�d�}||_|j�|�|S�NZ	CellPhoner^r_rrr�mobile_phones�zAmsLeadXml.mobile_phonecCs t�d�}||_|j�|�|S�N�Cityr^r_rrr�citys�zAmsLeadXml.citycCs t�d�}||_|j�|�|S�NZDriversLicenser^r_rrr�drivers_license$s�zAmsLeadXml.drivers_licensecCs t�d�}||_|j�|�|S�NZEmail1r^r_rrr�email,s�zAmsLeadXml.emailcCs t�d�}||_|j�|�|S�N�	FirstNamer^r_rrr�	firstname4s�zAmsLeadXml.firstnamecCs t�d�}||_|j�|�|S�NZ	HomePhoner^r_rrr�phonenumber<s�zAmsLeadXml.phonenumbercCs t�d�}||_|j�|�|S�N�LastNamer^r_rrr�lastnameDs�zAmsLeadXml.lastnamecCs t�d�}||_|j�|�|S�NZ
MiddleNamer^r_rrr�
middlenameLs�zAmsLeadXml.middlenamecCs t�d�}||_|j�|�|S�N�Stater^r_rrr�stateTs�zAmsLeadXml.statecCs t�d�}||_|j�|�|S�NZ	WorkPhoner^r_rrr�
work_phone\s�zAmsLeadXml.work_phonecCs t�d�}||_|j�|�|S�N�Zipr^r_rrr�zipds�zAmsLeadXml.zipcCs t�d�}||_|j�|�|S�NZSSNr^r_rrr�ssnls�zAmsLeadXml.ssncCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sr]�rHrIrrMrSrJr_rrr�co_applicant_address_1us�z!AmsLeadXml.co_applicant_address_1cCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srar�r_rrr�co_applicant_address_2�s�z!AmsLeadXml.co_applicant_address_2cCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srcr�r_rrr�co_applicant_birthday�s�z AmsLeadXml.co_applicant_birthdaycCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srfr�r_rrr�co_applicant_mobile_phone�s�z$AmsLeadXml.co_applicant_mobile_phonecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srhr�r_rrr�co_applicant_city�s�zAmsLeadXml.co_applicant_citycCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srkr�r_rrr�co_applicant_driver_license�s�z&AmsLeadXml.co_applicant_driver_licensecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srmr�r_rrr�co_applicant_email�s�zAmsLeadXml.co_applicant_emailcCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sror�r_rrr�co_applicant_firstname�s�z!AmsLeadXml.co_applicant_firstnamecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srrr�r_rrr�co_applicant_phonenumber�s�z#AmsLeadXml.co_applicant_phonenumbercCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srtr�r_rrr�co_applicant_lastname�s�z AmsLeadXml.co_applicant_lastnamecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Srwr�r_rrr�co_applicant_middlename�s�z"AmsLeadXml.co_applicant_middlenamecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sryr�r_rrr�co_applicant_state�s�zAmsLeadXml.co_applicant_statecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sr|r�r_rrr�co_applicant_work_phones�z"AmsLeadXml.co_applicant_work_phonecCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sr~r�r_rrr�co_applicant_zips�zAmsLeadXml.co_applicant_zipcCs:t�d�}||_|j�|�|j|jkr6|j�|j�|Sr�r�r_rrr�co_applicant_ssns�zAmsLeadXml.co_applicant_ssncCs t�d�}||_|j�|�|S)NZ	DSiSiteId�rHrIrrNrSr_rrr�
dealer_lot_id*s�zAmsLeadXml.dealer_lot_idcCs t�d�}||_|j�|�|S)NZ	DMSDealerr�r_rrrr13s�zAmsLeadXml.client_idcCs t�d�}||_|j�|�|S)NZDMSUsernamer�r_rrrr.<s�zAmsLeadXml.usernamecCs t�d�}||_|j�|�|S)NZDMSPasswordr�r_rrrr/Es�zAmsLeadXml.passwordcCs t�d�}||_|j�|�|S)N�Make�rHrIrrOrSr_rrr�vehicle_makeOs�zAmsLeadXml.vehicle_makecCs t�d�}||_|j�|�|S)N�Modelr�r_rrr�
vehicle_modelWs�zAmsLeadXml.vehicle_modelcCs t�d�}||_|j�|�|S)NZYearr�r_rrr�vehicle_year_s�zAmsLeadXml.vehicle_yearcCs t�d�}||_|j�|�|S)NZVINr�r_rrr�vings�zAmsLeadXml.vincCs t�d�}||_|j�|�|S)NZStockNumberr�r_rrr�stock_numberos�zAmsLeadXml.stock_numbercCs||j_|jS�N)rPr�rTrrrr�down_payment_amountxszAmsLeadXml.down_payment_amountcCs(||j_|j|jkr"|j�|j�|jSr�)rQrrJrSr�rrr�representative}szAmsLeadXml.representative)N).�__name__�
__module__�__qualname__rWr\r`rbrergrjrlrnrqrsrvrxr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r1r.r/r�r�r�r�r�r�r�rrrrr@�sV
n	
			
	r@cCspddlm}m}tjd}|j�|��|j|k��|j	|k��
�}|rl|j}t|�}|�
|j�}	t|	||�}
|
Sr<)r$rr rrr%r&r'r(r)r*r+rrr0r)r)r2r3rr r4r5r+rr9r:rrr�
neo_client�s
���r�c@s�eZdZgZgZiZiZiZiZdZ	dZ
dZdZdZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZidZjddd�Zkdd�Zldd�Zmdd	�Znd
d�Zodd
�Zpdd�Zqdd�Zrdd�Zsdd�ZtdS)�NeoLeadNcCsP|r||jd<d|jd<d|jd<d|jd<d|jd<d	|jd
<||_||_dS)N�neo_idZOnline�typeZFresh�statusrEZadvertising_sourceZreferral_sourcerzjoint-income)�application�lead_fields�field_definition_list)rTr�r�r�rrrrWs





zNeoLead.__init__c	Cs�d}d}�z�|jD�
]j}t�|j|j�}t|j�}d|krLt|�dkrL||_d|krft|�dkrf||_	d|kr�t|�dkr�||_
d|kr�t|�dkr�||_d|k�rt|�dk�rz*|�d	d
�}t
j
�|d��d�}||_Wn"t|d
t|�d�}YnX|j�st|�|_d|k�r|t|�dk�r||�d
d�}t|�dk�rv|dd�}|dd�}	|dd�}
d�||	|
�}||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�rt|�dk�r||_d|k�r0t|�dk�r0||_d|k�rNt|�dk�rN||_d|k�rlt|�dk�rl||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_ d|k�r�t|�dk�r�||_!d |k�rt|�dk�r||_"d!|k�r t|�dk�r ||_#d"|k�r>t|�dk�r>||_$d#|k�r\t|�dk�r\||_%d$|k�rzt|�dk�rz||_&d%|k�r�t|�dk�r�||_'d&|k�r�t|�dk�r�||_(d'|k�r�t|�dk�r�||_)d(|k�r�t|�dk�r�||_*d)|k�rt|�dk�r||_+d*|k�r.t|�dk�r.||_,d+|k�rLt|�dk�rL||_-d,|k�rjt|�dk�rj||_.d-|k�r�t|�dk�r�||_/d.|k�r�t|�dk�r�||_0d/|k�r�t|�dk�r�||_1d0|k�r�t|�dk�r�||_2d1|k�rt|�dk�r||_3d2|k�rt|�dk�r||_4d3|k�r<t|�dk�r<||_5d4|k�rZt|�dk�rZ||_6d5|k�rxt|�dk�rx||_7d6|k�r�t|�dk�r�||_8d7|k�r�t|�dk�r�||_9d8|k�r�t|�dk�r�||_:d9|k�r�t|�dk�r�||_;d:|k�rt|�dk�r||_<d;|k�r�t|�dk�r�z*|�d	d
�}t
j
�|d��d�}||_=Wn"t|d<t|�d�}YnX|j=�s�t|�|_=d=|k�r�t|�dk�r�||_>d>|k�r�t|�dk�r�||_?d?|k�r�t|�dk�r�||_@d@|k�r�t|�dk�r�||_AdA|k�rt|�dk�r||_BdB|k�r:t|�dk�r:||_CdC|k�rXt|�dk�rX||_DdD|k�rvt|�dk�rv||_EdE|k�r�t|�dk�r�||_FdF|k�r�t|�dk�r�||_GdG|k�r�t|�dk�r�||_HdH|k�r�t|�dk�r�||_IdI|k�rt|�dk�r||_JdJ|k�r*t|�dk�r*||_KdK|k�rHt|�dk�rH||_LdL|k�rft|�dk�rf||_MdM|k�r�t|�dk�r�||_NdN|k�r�t|�dk�r�||_OdO|k�r�t|�dk�r�||_PdP|k�r�t|�dk�r�||_QdQ|k�r�t|�dk�r�||_RdR|k�	rt|�dk�	r||_SdS|k�	r8t|�dk�	r8||_TdT|k�	rVt|�dk�	rV||_UdU|k�	rtt|�dk�	rt||_VdV|k�	r�t|�dk�	r�||_WdW|k�	r�t|�dk�	r�||_XdX|k�	r�t|�dk�	r�||_YdY|k�	r�t|�dk�	r�||_ZdZ|k�
r
t|�dk�
r
||_[d[|k�
r(t|�dk�
r(||_\d\|k�
rFt|�dk�
rF||_]d]|k�
rdt|�dk�
rd||_^d^|krt|�dkr||__q|jdk	�
r�|jdk	�
r�|jd_|j|_|j#dk	�
r�|j$dk	�
r�|j#d_|j$|_#|j@dk	�
r�|jAdk	�
r�|j@d_|jA|_@|jEdk	�r(|jFdk	�r(|jEd_|jF|_E|j*dk	�rR|j,dk	�rR|j*d_|j,|_*|j+dk	�r||j-dk	�r||j+d_|j-|_+|jLdk	�r�|jNdk	�r�|jLd_|jN|_L|jMdk	�r�|jOdk	�r�|jMd_|jO|_MWnt|d`�}da}YnX||fS)bNrTrqrrv�gender�marital_statusre�/�-z%m-%d-%Yz%Y-%m-%dzInvalid Application Birthday z, must be in YYYY-mm-dd format.r��	��z{0}-{1}-{2}rnrsrgr}�number_of_dependentsr`rbrjr{r��rent_or_own�address_start_date�address_monthly_cost�previous_address_1�previous_address_2�
previous_city�previous_state�previous_zip�employer�previous_employer�employer_address_1�previous_employer_address_1�employer_address_2�previous_employer_address_2�
employer_city�previous_employer_city�employer_state�previous_employer_state�employer_zip�previous_employer_zip�employment_title�previous_employment_title�income�previous_income�
pay_period�previous_pay_period�employment_start_dater�r�r�zInvalid Co-Applicant Birthday �!co_applicant_number_of_dependents�co_applicant_marital_statusr�r�r�r�r�Zco_applicant_previous_address_1Zco_applicant_previous_address_2Zco_applicant_previous_cityZco_applicant_previous_stateZco_applicant_previous_zip�co_applicant_employerZco_applicant_previous_employerZco_applicant_employer_address_1Z(co_applicant_previous_employer_address_1Zco_applicant_employer_address_2Z(co_applicant_previous_employer_address_2Zco_applicant_employer_cityZ#co_applicant_previous_employer_cityZco_applicant_employer_stateZ$co_applicant_previous_employer_stateZco_applicant_employer_zipZ"co_applicant_previous_employer_zip�co_applicant_employment_titleZ&co_applicant_previous_employment_titleZco_applicant_incomeZco_applicant_previous_income�co_applicant_pay_periodZ co_applicant_previous_pay_period�"co_applicant_employment_start_date�locationr�r�r	�Error processing lead.F)`r�r�get_all_related_fields�field_idr�r�field_valuer�
first_name�	last_namer�r��replace�datetime�strptime�strftimerer�strr�formatr�rn�
home_phone�
cell_phoner}r�r`rbrjr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��co_application_first_name�co_application_last_name�co_application_birthday�#co_application_number_of_dependents�co_application_marital_status�co_application_address_1�co_application_address_2�co_application_city�co_application_state�co_application_zip�!co_application_previous_address_1�!co_application_previous_address_2�co_application_previous_city�co_application_previous_state�co_application_previous_zip�co_application_employer� co_application_previous_employer�!co_application_employer_address_1�*co_application_previous_employer_address_1�!co_application_employer_address_2�*co_application_previous_employer_address_2�co_application_employer_city�%co_application_previous_employer_city�co_application_employer_state�&co_application_previous_employer_state�co_application_employer_zip�$co_application_previous_employer_zip�co_application_employment_title�(co_application_previous_employment_title�co_application_income�co_application_previous_income�co_application_pay_period�"co_application_previous_pay_periodr�r�r�r�)rTr
�result�field�
field_listr��final_field_valueZclean_field_valueZsection_oneZsection_twoZ
section_threerrr�process_leadsl�


��










































��

































�������


zNeoLead.process_leadcCs�t|j�|jd<t|j�|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j	|jd<t|j
�|jd	<t|j�|jd
<|j|jd<dS)Nr�r��
date_of_birthr��
email_addressZcell_phone_numberZhome_phone_numberZwork_phone_numberr�r��dependents_number)
rr��	applicantr�rer�rnr�r�r}r�r�r�r[rrr�
set_applicantcszNeoLead.set_applicantcCs�g|_i}i}t|j�|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<|j|d<d|d	<|j�	|�|j
r�t|j
�|d<t|j�|d<t|j�|d<t|j
�|d<d
|d	<|j�	|�dS)N�streetrjr{r�Zresidence_type�
start_date�paymentT�currentF)�applicant_residencesrr`rjr{r�r�r�r�rSr�r�r�r��rT�current_residenceZprevious_residencerrr�set_applicant_residencesps&
z NeoLead.set_applicant_residencescCsjg|_i}i}t|j�|d<t|j�|d<t|j�|d<|j|d<|j|d<|j|d<|j|d<|j	|d<t|j
�|d	<t|j�|d
<t|j�|d<t|j
�|d<d
|d<|j�|�|j�rft|j�|d<t|j�|d<t|j�|d<|j|d<|j|d<|j|d<|j|d<|j|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<d|d<|j�|�dS)Nr��position�job_type�monthly_net_incomer��next_paydater�end_daterrjr{r�Trr��previous_streetr�r�r�F)�applicant_employersrr�r�rr�r�rr�rr�r�r�r�rSr�r��previous_job_typer�r��previous_next_paydate�previous_start_date�previous_end_dater�r�r�r��rT�current_employer_objZprevious_employer_objrrr�set_applicant_employers�s@









zNeoLead.set_applicant_employerscCs�|jdk	r~|jdk	r~i|_g|_g|_t|j�|jd<t|j�|jd<|j|jd<t|j�|jd<t|j�|jd<|j	|jd<dS)Nr�r�r
r�r�r)
r�r��co_applicant�co_applicant_employers�co_applicant_residencesrr��co_application_genderr�r�r[rrr�set_co_applicant�szNeoLead.set_co_applicantcCs�g|_i}i}t|j�|d<t|j�|d<t|j�|d<t|j�|d<d|d<|j�|�t|j�|d<t|j�|d<t|j	�|d<t|j
�|d<d|d<|j�|�dS)Nrrjr{r�TrF)r'rr�r�r�r�rSr�r�r�r�rrrr�set_co_applicant_residences�sz#NeoLead.set_co_applicant_residencescCsbg|_i}i}t|j�|d<t|j�|d<t|j�|d<|j|d<|j|d<|j|d<|j|d<|j	|d<t|j
�|d	<t|j�|d
<t|j�|d<t|j
�|d<d
|d<|j�|�t|j�|d<t|j�|d<t|j�|d<|j|d<|j|d<|j|d<|j|d<|j|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<d|d<|j�|�dS)Nr�rrrr�rrrrrjr{r�Trr�Z
start_Daterr�r�r�F)r&rr�r��co_application_job_typerr�co_application_next_paydater��co_application_end_dater�r�r�r�rSr�r� co_application_previous_job_typerr�$co_application_previous_next_paydate�"co_application_previous_start_date� co_application_previous_end_dater�r�r�r�r"rrr�set_co_applicant_employers�s>









z"NeoLead.set_co_applicant_employersc	Cs�d}d}z�d|jd<|jr(|j|jd<n|jr:|j|jd<|j|jd<|��|��|j|jd<|��|j	|jd<|j|jd<|�
�|jdk	r�|��|j
|jd<|��|j|jd<|j|jd<Wn(d	}t�d
�t����d}YnX||fS)NTrZcar_lotZsalespersonZ
residences�employmentsr
ZcoapplicantzError building lead JSON.z#Error building lead JSON. Error: {}F)r�r�r�r�rrrr
r$rr)r%r*r'r2r&�log�errorr��	traceback�
format_exc)rTrr
rrr�build_lead_object�s6


zNeoLead.build_lead_objectcCsddlm}ddlm}|jS)Nr)�LogRequestTaskTrigger)�request)�=buyercall.blueprints.sysadmin.utilities.request_log_task_callr9�flaskr:r�)rTr9r:rrr�get_lead_objectszNeoLead.get_lead_object)N)ur�r�r�r�r�r�r
rrr%r'r&r�r�r�r�r�rer�rnr�r�r}r�r�r�r`r�rbr�r{r�rjr�r�r�r�r�r�r�r�r�r�r(r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�rr�r�r�r�rrr�r rr!r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr+r,r�r-r.r/r0r1rWr	rrr$r)r*r2r8r=rrrrr��s�
I
$#!r�c@sreZdZgZgZiZdZdZdZdZ	dZ
dZdZdZ
dZdZdZdZdZdZd
dd�Zdd�Zdd�Zdd	�ZdS)�AmsPreQualifyLeadNcCs||_||_dSr��r�r�)rTr�r��ams_prequalify_idrrrrW/szAmsPreQualifyLead.__init__cCs�d}d}�z�|jD�]�}t�|j|j�}t|j�}d|krLt|�dkrL||_d|krft|�dkrf||_	d|kr�t|�dkr�||_
d|kr�t|�dkr�||_d|kr�t|�dkr�||_d	|kr�t|�dkr�||_
d
|kr�t|�dkr�||_d|k�rt|�dk�r||_d|k�r$t|�dk�r$||_d|k�rBt|�dk�rB||_d
|k�r`t|�dk�r`||_d|k�r~t|�dk�r~||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|krt|�dkr||_qWnt|d�}d}YnX||fS)NrTrqrrvrs�suffixrnr`rjr{r�r��ad_campaign�
ad_content�	ad_medium�	ad_sourcer�F)r�rr�r�r�rr�r�	firstName�lastName�	cellPhonerArn�addressrj�stateAbbreviation�zipCode�
monthlyIncome�utmCampaign�utm_content�	utmMedium�	utmSourcer�rTr
rrrr�rrrr	3sr�









zAmsPreQualifyLead.process_leadc
Cs�d}d}i|_z||j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd	<|j|jd
<|j	|jd<|j
|jd<Wn4tk
r�}zd
t|���}d}W5d}~XYnX||fS)NTrrFrGrHrArnrIrjrJrKrL�Error building lead JSON: F)
r�rFrGrHrArnrIrjrJrKrL�	Exceptionr�)rTrr
�errrr8rs$z#AmsPreQualifyLead.build_lead_objectcCs|jSr��r�r[rrrr=�sz!AmsPreQualifyLead.get_lead_object)N)r�r�r�r�r�r�rFrGrHrArnrIrjrJrKrLrPrOrMrNrWr	r8r=rrrrr>s*
?r>c@seZdZgZgZgZiZgZgZiZ	iZ
iZiZdZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZdZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdZid dd�Zjdd�Zkdd	�Zld
d�Zmdd
�Zndd�Zodd�Zpdd�Zqdd�Zrdd�Zsdd�Ztdd�Zudd�Zvdd�ZwdS)!�AmsAnalyticsLeadNrTcCs||_||_dSr�r?)rTr�r��ams_analytics_idrrrrWszAmsAnalyticsLead.__init__cCs�	d}d}�	z�|jD�	]�}t�|j|j�}t|j�}d|krLt|�dkrL||_d|krft|�dkrf||_	d|kr�t|�dkr�||_
d|kr�t|�dkr�||_d|kr�t|�dkr�||_d	|jkr�t|�dkr�||_
d
|kr�t|�dkr�||_d|k�rt|�dk�r||_d|k�r&t|�dk�r&||_d
|k�rDt|�dk�rD||_d|k�rbt|�dk�rb||_d|jk�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|jk�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�rt|�dk�r||_d|k�r8t|�dk�r8||_d|k�rVt|�dk�rV||_d|k�rtt|�dk�rt||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r�t|�dk�r�||_d|k�r
t|�dk�r
||_ d|k�r(t|�dk�r(||_!d|k�rFt|�dk�rF||_"d|jk�rft|�dk�rf||_#d |k�r�t|�dk�r�||_$d!|k�r�t|�dk�r�||_%d"|k�r�t|�dk�r�||_&d#|k�r�t|�dk�r�||_'d$|jk�r�t|�dk�r�||_(d%|k�rt|�dk�r||_)d&|k�r:t|�dk�r:||_*d'|k�rXt|�dk�rX||_+d(|jk�rxt|�dk�rx||_,d)|k�r�t|�dk�r�||_-d*|jk�r�t|�dk�r�||_.d+|jk�r�t|�dk�r�||_/d,|jk�r�t|�dk�r�||_0d-|jk�rt|�dk�r||_1d.|k�r4t|�dk�r4||_2d/|k�rRt|�dk�rR||_3d0|k�rpt|�dk�rp||_4d1|k�r�t|�dk�r�||_5d2|k�r�t|�dk�r�||_6d3|k�r�t|�dk�r�||_7d4|k�r�t|�dk�r�||_8d5|k�rt|�dk�r||_9d6|k�r$t|�dk�r$||_:d7|k�rBt|�dk�rB||_;d8|k�r`t|�dk�r`||_<d9|k�r~t|�dk�r~||_=d:|jk�r�t|�dk�r�||_>d;|k�r�t|�dk�r�||_?d<|k�r�t|�dk�r�||_@d=|k�r�t|�dk�r�||_Ad>|jk�rt|�dk�r||_Bd?|k�r6t|�dk�r6||_Cd@|jk�rVt|�dk�rV||_DdA|k�rtt|�dk�rt||_EdB|k�r�t|�dk�r�||_FdC|k�r�t|�dk�r�||_GdD|k�r�t|�dk�r�||_HdE|k�r�t|�dk�r�||_IdF|k�r
t|�dk�r
||_JdG|k�r(t|�dk�r(||_KdH|jk�rHt|�dk�rH||_LdI|k�rft|�dk�rf||_MdJ|k�r�t|�dk�r�||_NdK|k�r�t|�dk�r�||_OdL|k�r�t|�dk�r�||_PdM|jk�r�t|�dk�r�||_QdN|k�r�t|�dk�r�||_RdO|k�	rt|�dk�	r||_SdP|k�	r:t|�dk�	r:||_TdQ|jk�	rZt|�dk�	rZ||_UdR|k�	rxt|�dk�	rx||_VdS|jkrt|�dkr||_WqWntX|dT�}dU}YnX||fS)VNrTrqrrvrxrersZ	homephoner`rbrjr{r��country�townshipZmonthlymortagerentr�r�Zhours_workedZ
income_type_0r�Ztotal_incomer�rnZbankruptcy_declarationZrepossession_declarationZbankruptcy_chapterZbankruptcy_discharge_dater�rA�driver_licenseZdriver_license_stater�r�Zhousing_statusr�Zlandlord_phoneZ
landlord_nameZ	hourlypayr�rBrCrDrEr�r�r�r�r�r�r�r�r�r�Zco_applicant_country�co_applicant_townshipZco_applicant_monthlymortagerentr�r�Zco_applicant_hours_workedZco_applicant_income_type_0r�Zco_applicant_total_incomer�r��#co_applicant_bankruptcy_declaration�%co_applicant_repossession_declarationZco_applicant_bankruptcy_chapterZ&co_applicant_bankruptcy_discharge_date� co_applicant_down_payment_amount�co_applicant_suffixr�Z!co_applicant_driver_license_stater�r�Zco_applicant_housing_statusZco_applicant_address_start_dateZco_applicant_landlord_phoneZco_applicant_landlord_nameZco_applicant_hourlypayr�Zco_applicant_homephoner�F)Yr�rr�r�r�rr�rrFrG�
middleName�dateOfBirthrH�	homePhonerI�address2rjr{r��countyrY�monthlyMortgageOrRentPmt�employerName�
occupation�hoursWorked�
incomeType�employerStartDate�monthlyGrossIncome�	payPeriodrn�everFiledBankruptcy�everHadVehicleRepossession�chapter�
dischargeDate�downPaymentrA�driverLicenseNumber�driverLicenseState�
maritalStatus�numberOfDependents�
housingStatus�	startDate�
landlordPhone�mortgageHolderOrLandlord�	hourlyPayr�rMrNrOrP�co_applicant_firstName�co_applicant_lastName�co_applicant_middleName�co_applicant_dateOfBirth�co_applicant_cellPhone�co_applicant_address�co_applicant_address2r�r�r��co_applicant_countyr[�%co_applicant_monthlyMortgageOrRentPmt�co_applicant_employerName�co_applicant_occupation�co_applicant_hoursWorked�co_applicant_incomeType�co_applicant_employerStartDate�co_applicant_monthlyGrossIncome�co_applicant_payPeriodr�Z co_applicant_everFiledBankruptcyZ'co_applicant_everHadVehicleRepossession�co_applicant_chapter�co_applicant_dischargeDate�co_applicant_downPaymentr_� co_applicant_driverLicenseNumber�co_applicant_driverLicenseState�co_applicant_maritalStatus�co_applicant_numberOfDependents�co_applicant_housingStatus�co_applicant_startDate�co_applicant_landlordPhone�%co_applicant_mortgageHolderOrLandlord�co_applicant_hourlyPayr��co_applicant_homePhonerrQrrrr	
s��





























































zAmsAnalyticsLead.process_leadcCs:d}tddd�}|��\}}|dk�r*|D�]�}|ddkr�|jr�|dD]6}|d|jkrh|d|_qJ|d|jkrJ|d|_qJq*|ddk�r|j�r|dD]h}|d	|jkr�|d|_n|d	|jkr�|d|_	|d	|j
kr�|d|_q�|d	|jkr�|d|_
q�q*|dd
k�rl|j�rl|dD]<}|d	|jk�rL|d|_n|d	|jk�r,|d|_�q,q*|ddk�r�|j�r�|dD]<}|d|jk�r�|d|_n|d|jk�r�|d|_�q�q*|ddkr*|jr*|dD]<}|d|jk�r|d|_n|d|jk�r�|d|_�q�q*d
}nd}d}||fS)NT)r1r+��r(ZMaritalStatuses�items�idZStates�descriptionZHousingStatusesZ
IncomePeriodsZIncomeTypesZSuccessfullFzFailed to retrieve list data)rZ	get_listsrt�maritalStatusIdr��co_applicant_maritalStatusIdr{�stateIdr��co_applicant_stateIdrs�driverLicenseStateIdr��!co_applicant_driverLicenseStateIdrv�housingStatusIdr��co_applicant_housingStatusIdrl�payPeriodIdr��co_applicant_payPeriodIdri�incomeTypeIdr��co_applicant_incomeTypeId)rTrr:�status_codeZ
response_data�category�item�messagerrr�
get_list_datawsV


zAmsAnalyticsLead.get_list_datacCs�i|_|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<d	|jd
<|j	|jd<|j
|jd<|j|jd
<|j|jd<|j
|jd<|j|jd<|j|jd<|j|jd<dS�N�	mappingId�	isPrimaryrFrGr`rarHrnFZ%isPrimaryAddressSameAsPrimaryCustomerrbrAr�rrr�r�rur�)�
customer_datar�r�rFrGr`rarHrnrbrAr�rrr�r�rur�r[rrrr�s$
zAmsAnalyticsLead.set_applicantcCs�i|_|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<|j|jd<d	|jd
<|j	|jd<|j
|jd<|j|jd
<|j|jd<|j
|jd<|j|jd<|j|jd<|j|jd<dSr�)r�r�r�r{r|r}r~rr�r�r_r�r�r�r�r�r�r[rrr�co_set_applicant�s$
z!AmsAnalyticsLead.co_set_applicantcCs�g|_i}d|d<d|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d	<t|j�|d
<t|j�|d<t|j	�|d<t|j
�|d
<t|j�|d<t|j�|d<|j
|d<|j�|�dS�Nrr�Tr�rIrcr�rjrdr�rYryrxre�apartmentNumberrw)�applicant_addressesrrIrcr�rjrdr�rYryrxrer�rwrS�rTrrrr�
set_addresses�s"
zAmsAnalyticsLead.set_addressescCs�g|_i}d|d<d|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d<t|j�|d	<t|j�|d
<t|j�|d<t|j	�|d<t|j
�|d
<|j|d<t|j�|d<|j
|d<|j�|�dSr�)r�rr�r�r�r�r�r�r[r�r�r��co_applicant_apartmentNumberr�rSr�rrr�co_set_addresses�s"

z!AmsAnalyticsLead.co_set_addressescCs�g|_i}d|d<d|d<d|d<t|j�|d<t|j�|d<|j|d<|j|d	<|j|d
<|j|d<|j|d<|j	|d
<|j�
|�dS�Nrr�Tr�Z	isCurrentrfrgrzr�rhrjrkr�)rrrfrgrzr�rhrjrkr�rS�rTr#rrr�set_employments�s





z AmsAnalyticsLead.set_employmentscCs�g|_i}d|d<d|d<d|d<t|j�|d<t|j�|d<|j|d<|j|d	<|j|d
<|j|d<|j|d<|j	|d
<|j�
|�dSr�)rrr�r�r�r�r�r�r�r�rSr�rrr�co_set_employmentss





z#AmsAnalyticsLead.co_set_employmentscCsBi|_d|jd<d|jd<|j|jd<|j|jd<|j|jd<dS�NTrmrnrorprq)�applicant_income_and_debtrorprqr[rrr�set_income_and_debt#s

z$AmsAnalyticsLead.set_income_and_debtcCsBi|_d|jd<d|jd<|j|jd<|j|jd<|j|jd<dSr�)r�r�r�r�r[rrr�co_set_income_and_debt,s

z'AmsAnalyticsLead.co_set_income_and_debtcCs:i|_|j|jd<|j|jd<|j|jd<|j|jd<dS)NrPrOrMrN)�applicant_utm_paramentersrPrOrMrNr[rrr�set_utm_paramenters5s
z$AmsAnalyticsLead.set_utm_paramentersc
Cs�d}d}g}�z4td�D�]�}|dkr�|��|��|j|jd<|��|j|jd<|��|j|jd<g|jd<g|jd	<ig|jd
<|�	|j�q|dkr|j
r|��|��|j|jd<|�
�|j|jd<|��|j|jd<g|jd<g|jd	<ig|jd
<|�	|j�qg|jd<|��|j|jd
<||jd<Wn6tk
�rx}zdt|���}d}W5d}~XYnX||fS)NTr�r�	addressesr3Z
incomeAndDebtZotherIncomeAndDebtZotherIncomesZpreviousCarCredit�ZcustomFieldsZ
utmParameters�	customersrRF)�rangerr�r�r�r�rr�r�rSr{r�r�r�r�r�r�r�rSr�)rTrr
r��irTrrrr8>sJ




z"AmsAnalyticsLead.build_lead_objectcCs|jSr�rUr[rrrr=}sz AmsAnalyticsLead.get_lead_object)N)xr�r�r�r�r�r�r�rrr�r�Zapplicant_userr�rWr�r�r�rFrGr`rarHrnrbrAr�rrr�rsr�rtrur�rvrIrcrjr�r{r�rdrYryrxrerwrfrgrzr�rirhrjrkr�rlrorprqr{r|r}r~rr�r�r_r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r[r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rPrOrMrNrWr	r�rr�r�r�r�r�r�r�r�r8r=rrrrrV�s�
l4			?rV)%�loggingr�r6�xml.etree.ElementTree�etree�ElementTreerHZbuyercall.integrations.amsrZ$buyercall.integrations.ams_analyticsrZbuyercall.integrations.neorZ%buyercall.integrations.ams_prequalifyr�&buyercall.blueprints.form_leads.modelsrr<rr�buyercall.lib.util_cryptor�	getLoggerr�r4rrrr;r>r?�objectr@r�r�r>rVrrrr�<module>s<
	"}v