我正在使用Python创建一个发票csv文件来跟踪客户。在第一年,我们每月安装120家商店,10家商店。在第二年,我们将安装120多家商店,每月10家商店。
商店支付95美元的安装费。商店也开始在安装月份时支付月度许可证。因此,对于1月份安装的10家商店,每家商店将支付95美元的安装费和12个月的68美元许可费。
二月份安装的10家商店将分别支付95美元的安装费和每月支付68美元的11美元等。
为每个商店分配一个ID,从商店1开始,其ID为J0001。每个额外的商店ID增加1.因此,在第1年末,最后一个商店的ID为J0120。
以下是我第一年的代码:
#!/usr/bin/env python
import csv
Type = 0
month = 0
year = 2016
install_fee = 95.0
license_fee = 68.0
def format_Type(Type):
return "J%04d" % (Type,)
with open('JB20.csv', 'wb') as csvfile:
writer = csv.writer(csvfile,
delimiter='\t',
quotechar='"',
quoting=csv.QUOTE_MINIMAL)
writer.writerow(['Type', 'Description', 'Date', 'Status', 'Amount'])
for month in range(1, 13):
Date = "%d-%02.d-%02.d" % (year, month, 1)
for install in range(10):
Type += 1
writer.writerow([format_Type(Type), 'Install', Date, 3, install_fee])
for Type in range(1, month * 10 + 1):
writer.writerow([format_Type(Type), 'License', Date, 3, license_fee])
我无法修改代码以创建超过2016年的额外年份。我可以输入不同的年份(例如2017年),但商店ID默认为J0001,这是一个问题,因为商店ID必须是唯一的跟踪。
我想使用相同的脚本,但只是修改以便ID可以从下一个ID开始(在这种情况下它将是J0121)。
此外,随后的几年还需要纳入上一年的许可证付款 - 我也遇到了使代码反映的问题。
例如,2017年的第一个月,将安装10个新店(ID J0121-J0130)。每家商店将支付95美元的安装费和68美元的每月许可费。但是,上一年的120家商店(ID J0001 - J0120)也将支付每月许可费。
任何想要修改Python脚本以考虑随后几年的这些新因素的想法都将不胜感激。