Add update_pending_customer()
for custorder batch handler
and perhaps more importantly, `validate_pending_customer_data()` this was needed for sake of unique email address checks
This commit is contained in:
parent
6626b14798
commit
f189a95bce
|
@ -265,6 +265,47 @@ class CustomerOrderBatchHandler(BatchHandler):
|
||||||
session.flush()
|
session.flush()
|
||||||
session.refresh(batch)
|
session.refresh(batch)
|
||||||
|
|
||||||
|
def validate_pending_customer_data(self, batch, user, data):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def update_pending_customer(self, batch, user, data):
|
||||||
|
model = self.model
|
||||||
|
people = self.app.get_people_handler()
|
||||||
|
|
||||||
|
# first validate all data
|
||||||
|
self.validate_pending_customer_data(batch, user, data)
|
||||||
|
|
||||||
|
# clear out any contact it may have
|
||||||
|
self.unassign_contact(batch)
|
||||||
|
|
||||||
|
# create pending customer if needed
|
||||||
|
pending = batch.pending_customer
|
||||||
|
if not pending:
|
||||||
|
pending = model.PendingCustomer()
|
||||||
|
pending.user = user
|
||||||
|
pending.status_code = self.enum.PENDING_CUSTOMER_STATUS_PENDING
|
||||||
|
batch.pending_customer = pending
|
||||||
|
|
||||||
|
# update pending customer info
|
||||||
|
if 'first_name' in data:
|
||||||
|
pending.first_name = data['first_name']
|
||||||
|
if 'last_name' in data:
|
||||||
|
pending.last_name = data['last_name']
|
||||||
|
if 'display_name' in data:
|
||||||
|
pending.display_name = data['display_name']
|
||||||
|
else:
|
||||||
|
pending.display_name = people.normalize_full_name(pending.first_name,
|
||||||
|
pending.last_name)
|
||||||
|
if 'phone_number' in data:
|
||||||
|
pending.phone_number = self.app.format_phone_number(data['phone_number'])
|
||||||
|
if 'email_address' in data:
|
||||||
|
pending.email_address = data['email_address']
|
||||||
|
|
||||||
|
# also update the batch w/ contact info
|
||||||
|
batch.contact_name = pending.display_name
|
||||||
|
batch.phone_number = pending.phone_number
|
||||||
|
batch.email_address = pending.email_address
|
||||||
|
|
||||||
def get_case_size_for_product(self, product):
|
def get_case_size_for_product(self, product):
|
||||||
if product.case_size:
|
if product.case_size:
|
||||||
return product.case_size
|
return product.case_size
|
||||||
|
|
Loading…
Reference in a new issue