def bootstrap_unicel_gateway(orm):
    currency = (orm['accounting.Currency'] if orm else Currency).objects.get(code="INR")
    sms_gateway_fee_class = orm['smsbillables.SmsGatewayFee'] if orm else SmsGatewayFee
    sms_gateway_fee_criteria_class = orm['smsbillables.SmsGatewayFeeCriteria'] if orm else SmsGatewayFeeCriteria

    SmsGatewayFee.create_new(UnicelBackend.get_api_id(), INCOMING, 0.50,
                             currency=currency,
                             fee_class=sms_gateway_fee_class,
                             criteria_class=sms_gateway_fee_criteria_class)
    SmsGatewayFee.create_new(UnicelBackend.get_api_id(), OUTGOING, 0.50,
                             currency=currency,
                             fee_class=sms_gateway_fee_class,
                             criteria_class=sms_gateway_fee_criteria_class)
    logger.info("Updated Unicel gateway fees.")
Example #2
0
 def handle(self, *labels, **options):
     SmsGatewayFee.create_new(UnicelBackend.get_api_id(), INCOMING, 0.50,
                              currency=Currency.objects.get(code="INR"))
     SmsGatewayFee.create_new(UnicelBackend.get_api_id(), OUTGOING, 0.50,
                              currency=Currency.objects.get(code="INR"))
     logger.info("Updated Unicel gateway fees.")
Example #3
0
                        continue

                    mach_number = MachPhoneNumber.get_by_number(message.phone_number, mach_row)
                    rate_item = MachSMSRate.get_by_number(message.direction, mach_number) if mach_number else None

                    billable = cls.new_billable(rate_item, message)
                    if billable:
                        billable.contacted_mach_api = datetime.datetime.now(tz=pytz.utc)
                        billable.update_mach_delivery_status(mach_row)
                        billable.save()
                        return
                    logging.error("[Billing] MACH API Response was successful, but creating the MACH "
                                  "billable was not. SMSLog # %s" % message.get_id)
                else:
                    logging.error("[Billing] There was an error retrieving message delivery information from MACH.")
            else:
                logging.error("[Billing] There was an error accessing the MACHI API.")
        else:
            logging.error("[Billing] There was an error while trying to send an SMS via MACH.")

    @staticmethod
    def api_name():
        return "Mach"


API_TO_BILLABLE = {
    UnicelBackend.get_api_id(): UnicelSMSBillable,
    TropoBackend.get_api_id(): TropoSMSBillable,
    MachBackend.get_api_id(): MachSMSBillable,
}