用于发票系统的Python

时间:2015-09-28 18:14:58

标签: python

我正在使用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脚本以考虑随后几年的这些新因素的想法都将不胜感激。

0 个答案:

没有答案