Python用于开票系统

2024-09-26 17:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python创建一个发票csv文件来跟踪客户。在第一年,我们将安装120个商店,每月10个商店。在第二年,我们将增加120个商店,每月10个商店。在

一家商店支付95美元的安装费。商店也开始支付每月的许可证安装当月。因此,对于1月份安装的10个商店,每个商店将支付95美元的安装费和12个月68美元的许可费。在

2月份安装的10家商店将分别支付95美元的安装费和11个月68美元的付款等

每个商店都分配了一个ID,从store1开始,其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脚本以在以后的几年中考虑这些新因素的想法都将非常感谢。在


Tags: installcsv代码idformatfordatetype

热门问题