import logging
import uuid
from ...Symitar.queries.base_query import SymitarBaseQuery
from ...Symitar.queries import mock_responses
[docs]
class AssessFeeQuery(SymitarBaseQuery):
"""Assesses a fee for skip a pay using the Q2.SKIP.PAY repgen"""
def __init__(
self,
logger: logging.Logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgen,
startstate,
loan_id,
share_charged,
fee,
gl_code,
guid=None,
comment="SKIP A PAY FEE",
use_symxchange=False,
):
self.loan_id = loan_id
self.share_charged = share_charged
self.fee = fee
self.gl_code = gl_code
self.comment = comment
super().__init__(
logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgen,
startstate,
guid=guid,
use_symxchange=use_symxchange,
)
[docs]
def build(self):
if not self.guid:
self.guid = str(uuid.uuid4())
call = (
f"TR~{self.guid}"
f"~A{self.unit_number}"
f"~B{self.device_type}~"
"DCARD~"
f"F{self.card_prefix}{self.ind_number}"
"~JTRCODE=FE"
"~JTRFMTYPE=S"
f"~JTRFMID={self.share_charged}"
f"~JTRAMOUNT={self.fee}"
"~JTRCOMMENTCODE=0"
f"~JTRCOMMENT={self.comment}"
f"~JTRGLCODE={self.gl_code}"
)
return call
[docs]
def mock_response(self):
return mock_responses.mock_assess_fee_response()