def register_customer(sms_dict, phone_number):
    customer_name = sms_dict['name']
    email_id = sms_dict['email_id']
    try:
        object = models.UserProfile.objects.get(phone_number=phone_number)
        gladmind_customer_id = object.gladmind_customer_id
        customer_name = object.customer_name
    except ObjectDoesNotExist as odne:
        gladmind_customer_id = utils.generate_unique_customer_id()
        registration_date = datetime.now()
        user_feed = BaseFeed()
        user = user_feed.register_user('customer', username=gladmind_customer_id)

#             FIXME: Check this code is getting used or not
#             customer = models.UserProfile(
#                 user=user, gladmind_customer_id=gladmind_customer_id, phone_number=phone_number,
#                 customer_name=customer_name, email_id=email_id,
#                 registration_date=registration_date)
#             customer.save()

    # Please update the template variable before updating the keyword-argument
    message = sms_parser.render_sms_template(status='send', keyword=sms_dict['keyword'], customer_id=gladmind_customer_id)
    phone_number = utils.get_phone_number_format(phone_number)
    LOG.info("customer is registered with message %s" % message)
    sms_log(settings.BRAND, receiver=phone_number, action=AUDIT_ACTION, message=message)
    send_job_to_queue(send_registration_detail, {"phone_number":phone_number, "message":message, "sms_client":settings.SMS_CLIENT})
    return True
def customer_service_detail(sms_dict, phone_number):
    customer_id = sms_dict.get('sap_customer_id', None)
    message = None
    try:
        customer_product_data = models.CouponData.objects.select_related('product').\
                                    filter(product__customer_phone_number=phone_number, \
                                    product__customer_id=customer_id).\
                                    order_by('product', 'valid_days') if customer_id else \
                                    models.CouponData.objects.select_related('product').\
                                    filter(product__customer_phone_number=phone_number).\
                                    order_by('product', 'valid_days')
        LOG.info(customer_product_data)
        valid_product_data = []
        for data in customer_product_data:
            if data.status == 1 or data.status == 4:
                valid_product_data.append(data)
        valdata = [valid_product_data[0]]
        service_list = map(lambda object: {'vin': object.product.product_id, 'usc': object.unique_service_coupon, 'valid_days': object.valid_days, 'valid_kms':object.valid_kms}, valdata)
        template = templates.get_template('SEND_CUSTOMER_SERVICE_DETAIL')
        msg_list = [template.format(**key_args) for key_args in service_list]
        if not msg_list:
            raise Exception()
        message = ', '.join(msg_list)
    except Exception as ex:
        message = sms_parser.render_sms_template(status='invalid', keyword=sms_dict['keyword'], sap_customer_id=customer_id)
    LOG.info("Send Service detail %s" % message)
    phone_number = utils.get_phone_number_format(phone_number)
    sms_log(settings.BRAND, receiver=phone_number, action=AUDIT_ACTION, message=message)
    send_job_to_queue(send_service_detail, {"phone_number":phone_number, "message":message, "sms_client":settings.SMS_CLIENT})
    return {'status': True, 'message': message}