Kotlin console utility to generate the employee's payment invoice. Can generate invoices as PDF or XLSX files for local and foreign banking operations.
You can run following Gradle command to generate signed PDF invoices with default params:
./gradlew runShadow
Also you can provide your own params by specifing path to config file:
./gradlew runShadow -DappConfig="/home/sbaldin/.invoicer/application.yaml" -DemployeeConfig="/home/sbaldin/.invoicer/employee.yaml" -DinvoiceDate="25.04.2020"
To install assembled fat jar and default application.yaml to hidden folder .invoicer
in the user home directory use following command:
./gradlew installToUserHomeDir
application-invoicer.yaml
contains app properties to customization invoices.
Theapp
section allow you to specify what kind of invoice you want to generate(for local or foreign bank or both), setup generated file type(xlsx + word or couple pdf) and provide output path.
app:
appRunType: BOTH #FOREIGN_BANK_INVOICE #LOCAL_BANK_INVOICE #BOTH
resultFileType: PDF #OFFICE #PDF
outputPath: / #relative path from user home directory
employee.yaml
contains employee and banking section, it used for customizing invoice fields like contract date,
beneficiary name, monthly rate, banking details and etc.
The employee
section allows you to specify 'for whom' invoices will be generated.
Note that if you specify signPath
only pdf invoices will be automatically signed.
The banking
section allows you to specify bank details for both types of invoices.
Note that local
part of banking
section contains two nested parts for corresponding bank details,
you should fill ru
part for local bank invoice and en
part for foreign bank invoice.
employee:
name: Ivan Ivanov
contractDate: 1970-01-01
serviceProvider: Platform Development
vacationDaysInMonth: 1
vacationDaysInYear: 2
monthRate: 1000
additionalExpenses: 100 # used only in local bank invoices as compensation of floating amount of month rate
signPath: build/resources/main/sign.png # path to your signature, leave empty to leave signature field empty
banking:
local:
ru:
name: AO «BANK»
accountNumber: 0000 0000 0000 0000 0001
country: Россия
address: Московия, пр Ленина, д.1, кв. 1
beneficiaryName: ИП Иванов Иван Иванович
beneficiaryAddress: Россия, Кем область, г. Кемерово, пр. Ленина, д.2., кв. 2,
en:
name: AO «BANK»
accountNumber: 0000 0000 0000 0000 0001
country: Russia
address: 27 Lenina str., Moscow, 107078, tel +7 495 755-58-58, SWIFT BANKRUM
beneficiaryName: IP Ivanov Ivan Ivanovich
beneficiaryAddress: PR. LENINA, D. 1, KV. 1, KEMEROVO, RUSSIA, 650000
foreign:
name: BANK
accountNumber: 000000101
contractorName: BigCompany LLC
address: 10 10th Street NE Atlanta, GA 30309 United States