import logging
from datetime import datetime
from q2_cores.Symitar.queries.base_query import SymitarBaseQuery
from q2_cores.Symitar.queries import mock_responses
[docs]
class SkipLoanQuery(SymitarBaseQuery):
"""Initiates skip a pay using the Q2.SKIP.PAY repgen"""
def __init__(
self,
logger: logging.Logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgen,
procedure,
loan_id,
share_charged,
fee,
loan_note=None,
guid=None,
use_symxchange=False,
):
self.loan_id = loan_id
self.share_charged = share_charged
self.fee = fee
self.loan_note = loan_note
if not self.loan_note:
self.loan_note = self.get_loan_note()
clean_rg_params = {
"JRGUSERCHR1": str(loan_id),
"JRGUSERCHR2": str(share_charged),
"JRGUSERCHR3": str(fee),
"JRGUSERCHR4": str(self.loan_note),
}
super().__init__(
logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgen,
procedure,
rg_params=clean_rg_params,
guid=guid,
use_symxchange=use_symxchange,
)
[docs]
def mock_response(self):
return mock_responses.mock_skip_loan_response()
[docs]
def get_loan_note(self):
now_time = datetime.now()
time_format = "%Y-%m-%dT%H:%M:%S"
timestamp = now_time.strftime(time_format)
note = "Symitar SkipAPay processed on {0}".format(timestamp)
return note