Add problem report for CORE phone numbers too long

This commit is contained in:
Lance Edgar 2023-09-02 13:48:48 -05:00
parent 2af89f2cbf
commit 66d1cdd0a9
3 changed files with 66 additions and 0 deletions

View file

@ -56,3 +56,32 @@ class InvalidPersonNumbers(ProblemReport):
core_session.close()
return problems
class PhoneNumbersTooLong(ProblemReport):
"""
Looks for ``meminfo`` records in CORE which have a phone number
value which is too long to fit into the corresponding
``Customers`` table column in CORE.
"""
system_key = 'corepos'
problem_key = 'phone_numbers_too_long'
problem_title = "Phone numbers too long"
def find_problems(self, **kwargs):
problems = []
core_session = CoreSession()
maxlen = self.app.maxlen(corepos.Customer.phone)
core_members = core_session.query(corepos.MemberInfo)\
.order_by(corepos.MemberInfo.card_number)\
.all()
def inspect(member, i):
if member.phone and len(member.phone) > maxlen:
problems.append(member)
self.progress_loop(inspect, core_members,
message="Looking for phone numbers too long")
core_session.close()
return problems