#sb_charge.py #module for Softbank packet charge calculation def packet_noplan(pkt, acc = 0): call_plan = 0 packet_plan = unicode("パケ割引無し","utf-8") charge = pkt * 0.2 return call_plan, packet_plan, int(charge) def packet_shihoudai(packet, acc = 0): call_plan = 0 packet_plan = unicode("パケットし放題","utf-8") if acc == 0: if packet <= 12250: charge = 980 elif packet >= 52500: charge = 4200 else: charge = packet * 0.08 elif acc == 1: if packet <= 12250: charge = 980 elif packet >= 71250: charge = 5700 else: charge = packet * 0.08 elif acc == 2: if packet <= 12250: charge = 980 elif packet >= 122500: charge = 9800 else: charge = packet * 0.08 else: charge = 980 + packet * 0.2 return call_plan, packet_plan, int(charge) def packet_teigaku_light(packet, acc = 0): call_plan = 1 packet_plan = unicode("パケ定額ライト","utf-8") if acc == 0: if packet <= 12500: charge = 1000 elif packet >= 52500: charge = 4200 else: charge = packet * 0.08 elif acc == 1: if packet <= 12500: charge = 1000 elif packet >= 71250: charge = 5700 else: charge = packet * 0.08 else: charge = 980 + packet * 0.08 return call_plan, packet_plan, int(charge) def packet_teigaku_orange(packet, acc = 0): call_plan = 1 packet_plan = unicode("パケット定額(O)","utf-8") if acc == 0: if packet <= 40000: charge = 2000 elif packet >= 84000: charge = 4200 else: charge = packet * 0.05 elif acc == 1: if packet <= 40000: charge = 2000 elif packet >= 114000: charge = 5700 else: charge = packet * 0.05 else: charge = 2000 + packet * 0.05 return call_plan, packet_plan, int(charge) def packet_teigaku_blue(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット定額(B)","utf-8") if acc == 0: charge = 3900 else: charge = 3900 + packet * 0.02 return call_plan, packet_plan, int(charge) def packet_teigaku_full(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット定額フル","utf-8") if acc == 0 or acc == 1: charge = 5700 else: charge = 5700+ packet * 0.02 return call_plan, packet_plan, int(charge) def packet_teigaku_biz(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット定額Biz","utf-8") if acc == 0 or acc == 2: charge = 5700 else: charge = 5700 + packet * 0.02 return call_plan, packet_plan, int(charge) def packet_waribiki_10(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット10","utf-8") if packet <= 10000: charge = 1000 else: charge = packet * 0.1 return call_plan, packet_plan, int(charge) def packet_waribiki_30(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット30","utf-8") if packet <= 60000: charge = 3000 else: charge = packet * 0.05 return call_plan, packet_plan, int(charge) def packet_waribiki_60(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット60","utf-8") if packet <= 300000: charge = 6000 else: charge = packet * 0.02 return call_plan, packet_plan, int(charge) def packet_waribiki_90(packet, acc = 0): call_plan = 2 packet_plan = unicode("パケット90","utf-8") if packet <= 600000: charge = 9000 else: charge = packet * 0.015 return call_plan, packet_plan, int(charge) def make_packet_master(packet, acc=0): master = (packet_noplan(packet, acc),packet_shihoudai(packet, acc),packet_teigaku_light(packet, acc),packet_teigaku_orange(packet, acc),packet_teigaku_blue(packet, acc),packet_teigaku_full(packet, acc),packet_teigaku_biz(packet, acc), packet_waribiki_10(packet, acc),packet_waribiki_30(packet, acc),packet_waribiki_60(packet, acc),packet_waribiki_90(packet, acc),(0,0,0)) return master