#!/usr/bin/env python

from mixcoatl.admin.billing_code import BillingCode
import argparse
import sys

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--billingcodeid', '-b', type=int, help='Billing Code ID')
    parser.add_argument('--reason', '-r', help='The reason for deleting the billing code.')
    parser.add_argument('--replacementcodeid', '-R', type=int, help='Replacement code ID.')

    cmd_args = parser.parse_args()

    if None in [cmd_args.billingcodeid, cmd_args.reason, cmd_args.replacementcodeid]:
        parser.print_help()
        sys.exit(1)

    billing_code = BillingCode(cmd_args.billingcodeid)

    if billing_code.load() is not None:
        print("Cannot find the billing code.")
        sys.exit(1)

    result = billing_code.destroy(cmd_args.reason, cmd_args.replacementcodeid)
    if result is True:
        print("Successful.")
    else:
        print("Failed.")
        sys.exit(1)
