Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
9.6 kB
0
Indexable
Never

def federal_form_60_check(
    account_number: str = "",
    identification_type: str = "6",
    identify_number: str = "",
    agriculture_income: str = "",
    non_agriculture_income: str = "",
    remarks: str = "",
    panApplied: str = "",
    panDate: str = "",
    panAcknowledgement: str = "",
    uniqueid: str = "",
):
    api_name = "Form 60 Check"
    logger = Logger(api_name)
    result = None
    msg = ""

    if panAcknowledgement == True:
        panAck = "1"
    else:
        panAck = "2"

    if panApplied == True:
        panApp = "YES"
    else:
        panApp = "NO"

    date = datetime.datetime.strptime(panDate, "%m/%d/%Y")
    panDate = date.strftime("%d-%m-%Y")

    request_data = f"""<?xml version="1.0" encoding="UTF-8"?>
    <FIXML xsi:schemaLocation="http://www.finacle.com/fixml executeFinacleScript.xsd"
	xmlns="http://www.finacle.com/fixml"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Header>
		<RequestHeader>
			<MessageKey>
				<RequestUUID>sdfmdsn3344</RequestUUID>
				<ServiceRequestId>executeFinacleScript</ServiceRequestId>
				<ServiceRequestVersion>10.2</ServiceRequestVersion>
				<ChannelId>COR</ChannelId>
				<LanguageId></LanguageId>
			</MessageKey>
			<RequestMessageInfo>
				<BankId>01</BankId>
				<TimeZone></TimeZone>
				<EntityId></EntityId>
				<EntityType></EntityType>
				<ArmCorrelationId></ArmCorrelationId>
				<MessageDateTime>
                    2019-10-10T14:12:57.569
                </MessageDateTime>
			</RequestMessageInfo>
			<Security>
				<Token>
					<PasswordToken>
						<UserId></UserId>
						<Password></Password>
					</PasswordToken>
				</Token>
				<FICertToken></FICertToken>
				<RealUserLoginSessionId></RealUserLoginSessionId>
				<RealUser></RealUser>
				<RealUserPwd></RealUserPwd>
				<SSOTransferToken></SSOTransferToken>
			</Security>
		</RequestHeader>
	</Header>
	<Body>
		<executeFinacleScriptRequest>
			<ExecuteFinacleScriptInputVO>
				<requestId>FI_Form60_Add.scr</requestId>
			</ExecuteFinacleScriptInputVO>
			<executeFinacleScript_CustomData>
				<acctId>{account_number}</acctId>   
                                                                
				<idtfyType>{identification_type}</idtfyType>          
                                                                
				<idtfyNum>{identify_number}</idtfyNum>   
                                                                
				<agrIncme>{agriculture_income}</agrIncme>       
                                                                
				<nonagrIncme>{non_agriculture_income}</nonagrIncme> 
                                                                
				<rmrksVal>{remarks}</rmrksVal>   
                                                                
				<panApp>{panApp}</panApp> 
                                                                
				<panDat>{panDate}</panDat>                          
				<panAck>{panAck}</panAck>               
				<trnstType>9</trnstType>                                   
				<trnstMode>5</trnstMode>                                               
			</executeFinacleScript_CustomData>
		</executeFinacleScriptRequest>
	</Body>
</FIXML>"""
    print(request_data)
    api_url = "url"
    try:
        response = requests.post(
            api_url,
            data=request_data,
            headers={"Content-Type": "application/xml"},
            cert=FDL_CERT_KEY_PAIR,
            verify=False,
        )
        print(response)
        logger.info("API request COMPLETED with status_code: {0}", response.status_code)
    except Exception as e:
        logger.error(
            "API request FAILED! An exception of type {0} has occurred.", type(e)
        )
        logger.exception(e)
        msg = "Internal server error"
        create_fed_api_execution_log(
            api_name,
            api_url,
            request_data,
            ex=e,
            msg=msg,
            cid=uniqueid,
        )
        return (None, msg)

    if response.status_code == 200:
        raw_text = response.text
        status = get_xml_tag_value("ResultFlag", raw_text)
        message = get_xml_tag_value("Message", raw_text)
        logger.info('request SUCCESS for {0} with status "{1}"', account_number, status)

        if status == "S":
            logger.info(message)
            result, msg = (True, message)
        else:
            logger.info(message)
            logger.info("Response TEXT: \n{0}", response.text)
            result, msg = (False, message)

    else:
        logger.warning(
            'request FAILED. Expected status 200, but got "{0}".', response.status_code
        )
        logger.info("Response TEXT: \n{0}", response.text)
        result, msg = (None, "Bank API server failure (%s)" % response.status_code)

    create_fed_api_execution_log(
        api_name,
        api_url,
        request_data,
        response=response,
        msg=msg,
        cid=uniqueid,
    )
    return result, msg




def federal_fatca_check(
        customer_id : str = "",
        place_of_birth : str = "",
        country_of_birth :str = "",
        taxResident : str = "",
        taxId : str = "",
        taxDesc : str = "",
        taxIdnum : str = "",
        countryRes : str = "",
        uniqueid : str = ""

):
    api_name = api_name
    logger = Logger(api_name)
    result = None
    msg = ""
    current_datetime = datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3]
    timestamp = datetime.datetime.strptime(current_datetime, "%Y-%m-%dT%H:%M:%S.%f")

    todays_date = timestamp.strftime("%d-%m-%Y")

    print('here')
    request_data = f"""<?xml version="1.0" encoding="UTF-8"?>
    <FIXML xsi:schemaLocation="http://www.finacle.com/fixml executeFinacleScript.xsd" xmlns="http://www.finacle.com/fixml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
    <RequestHeader>
    <MessageKey>
        <RequestUUID>c_fatca_140318_023</RequestUUID>
        <ServiceRequestId>executeFinacleScript</ServiceRequestId>	
        <ServiceRequestVersion>10.2</ServiceRequestVersion>
        <ChannelId>COR</ChannelId>
        <LanguageId></LanguageId>
    </MessageKey>
    <RequestMessageInfo>
        <BankId>01</BankId>
        <TimeZone></TimeZone>
        <EntityId></EntityId>
        <EntityType></EntityType>
        <ArmCorrelationId></ArmCorrelationId>
        <MessageDateTime>{current_datetime}</MessageDateTime>
    </RequestMessageInfo>
    <Security>
    <Token>
        <PasswordToken>
        <UserId></UserId>
        <Password></Password>
        </PasswordToken>
    </Token>
    <FICertToken></FICertToken>
    <RealUserLoginSessionId></RealUserLoginSessionId>
    <RealUser></RealUser>
    <RealUserPwd></RealUserPwd>
    <SSOTransferToken></SSOTransferToken>
    </Security>
    </RequestHeader>
    </Header>
    <Body>
    <executeFinacleScriptRequest>
        <ExecuteFinacleScriptInputVO>
            <requestId>FI_FATCA_Add.scr</requestId>
        </ExecuteFinacleScriptInputVO>
        <executeFinacleScript_CustomData>
            <custId>25326023</custId>		
            <selfCert>Y</selfCert>		        
            <taxStat>NOT DOCUMENTED</taxStat> 
            <placeOfBirth>{place_of_birth}</placeOfBirth> 
            <countryOfBirth>{country_of_birth}</countryOfBirth>  
            <addType>Residential</addType> 
            <certDate>{todays_date}</certDate> 
            <taxResident>{taxResident}</taxResident>
            <RecordCount>1</RecordCount>
            <Record_1>
                <taxId>{taxId}</taxId>
                <taxDesc>{taxDesc}</taxDesc>
                <taxIdNum>{taxIdnum}</taxIdNum>
                <countryRes>{countryRes}</countryRes>
            </Record_1>		
        </executeFinacleScript_CustomData>
    </executeFinacleScriptRequest>
    </Body>
    </FIXML>"""
    print(request_data)
    api_url = "url"
    try:
        response = requests.post(
            api_url,
            data=request_data,
            headers={"Content-Type": "application/xml"},
            cert=FDL_CERT_KEY_PAIR,
            verify=False,
        )
        print(response)
        logger.info("API request COMPLETED with status_code: {0}", response.status_code)
    except Exception as e:
        logger.error(
            "API request FAILED! An exception of type {0} has occurred.", type(e)
        )
        logger.exception(e)
        msg = "Internal server error"
        create_fed_api_execution_log(
            api_name,
            api_url,
            request_data,
            ex=e,
            msg=msg,
            cid=uniqueid,
        )
        return (None, msg)

    if response.status_code == 200:
        raw_text = response.text
        status = get_xml_tag_value("ResultFlag", raw_text)
        message = get_xml_tag_value("Message", raw_text)
        logger.info('request SUCCESS for {0} with status "{1}"', customer_id, status)

        if status == "S":
            logger.info(message)
            result, msg = (True, message)
        else:
            logger.info(message)
            logger.info("Response TEXT: \n{0}", response.text)
            result, msg = (False, message)

    else:
        logger.warning(
            'request FAILED. Expected status 200, but got "{0}".', response.status_code
        )
        logger.info("Response TEXT: \n{0}", response.text)
        result, msg = (None, "Bank API server failure (%s)" % response.status_code)

    create_fed_api_execution_log(
        api_name,
        api_url,
        request_data,
        response=response,
        msg=msg,
        cid=uniqueid,
    )
    return result, msg
Leave a Comment