#csv #monthly #topic #reports #data #lo-la #sum-up

app lola-sumup

一个命令行程序,用于从每月的SumUp报告中创建LoLa特定的导出

1个不稳定版本

0.1.0 2024年8月1日

财务 类别中排名 9

Download history 107/week @ 2024-07-29 6/week @ 2024-08-05

每月下载 113

MIT 许可证

140KB
3K SLoC

lola-sumup

命令行界面用于评估每月的SumUp CSV提取并提取LoLa特定的报告。

摘要

命令行应用程序 lola-sumup 有两个子命令:prepareexport

prepare 子命令解析两个包含月度数据的SumUp提取,创建一个中间文件,结合两个报告的数据,并增加了三个列 TopicOwnerPurpose。用户可以编辑这三个列的内容,因为简单的启发式方法可能无法直接正确处理。

(可能已编辑的)中间文件被第二个 export 步骤消耗。它从中间文件生成三个不同的导出,用于LoLa每月结算过程中的不同目的。

版本

SumUp销售报告的格式已更改。lola-sumup已以不兼容的方式进行了调整。

版本 Sumup-exports
0.1.0 至2024年4月
0.2.0 截至2024年5月

命令行界面

lola-sumup 命令有两个子命令

A cli program to create exports from sumup transactions exported in CSV format

Usage: lola-sumup <COMMAND>

Commands:
  prepare  Prepares an enriched intermediate file from the original sumup sales report CSV and transaction report CSV
  export   Consumes the (potentially redacted) intermediate file and exports to different special purpose CSV files
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

准备步骤

lola-sumup prepare 命令的工作原理如下

Prepares an enriched intermediate file from the original sumup sales report CSV and transaction report CSV

Usage: lola-sumup prepare --sales-report <SALES_REPORT> --transaction-report <TRANSACTION_REPORT> <MONTH>

Arguments:
  <MONTH>  the month for which transactions are to be processed (<yyyymm>, e.g. 202305)

Options:
  -s, --sales-report <SALES_REPORT>              the sales-report to process
  -t, --transaction-report <TRANSACTION_REPORT>  the transaction-report to process
  -h, --help                                     Print help
  -V, --version                                  Print version

它生成一个名为例如 intermediate_202305_20230603142215.csv 的文件,其中 202305 是处理过的月份,时间戳指示处理时间(2023年6月3日 14:22:15)。

手动编辑现有交易

文件的最后四列使用合理的启发式方法预先填写。尽管导出的值可能是正确的,但也可能需要编辑。如果修改,请确保满足某些约束,否则在导出步骤中进一步处理将失败。

可能被修改的四个列是

  • Topic:交易的主要主题,以下之一
    • MiTi:Mittagstisch销售的商品。如果在14:15之前发生交易,则自动分配。
    • Cafe:LoLa Café销售的商品。如果在14:15和18:00之间发生交易,则自动分配。
    • Verm:由房间租客出售的商品。如果交易发生在18:00之后,则会自动分配。
    • SoFe:在夏季派对("Sommer-Fest")期间出售的商品。
    • Deposit:钥匙押金。
    • Rental:租金。
    • Culture:在文化活动中出售的商品。
    • PaidOut:以现金支付给外部方的收入。
    • Packaging:出售可重复使用的餐具包装。
  • Owner:仅对主题 MiTi 相关:MiTi(用于由Mittagstisch生产和销售的菜单)或 LoLa(Mittagstisch销售的LoLa饮料和食品)
  • PurposeConsumptionTip(前者也用于主题 DepositRentalCulturePaidOut
  • Comment:空白,可以手动填写以保留一些上下文

添加人工交易以记录未输入SumUp的现金支付

也可以添加行来记录未输入SumUp系统的交易。

如果您这样做,请确保某些字段填写正确,某些字段留空。例如。

  • Account:提供一封电子邮件地址,清楚地标识创建“人工”交易的人
  • 日期
  • Time:最佳猜测
  • Type:“销售”
  • Transaction ID:留空
  • Receipt Number:留空 - 除非您确实有收据
  • Payment MethodCash(因为SumUp交易中永远不会缺少卡片)
  • Quantity:最佳猜测
  • Description:尽力而为 - 理想情况下复制现有的描述以保持精确
  • Currency:“CHF”
  • Price (Gross):支付的金额
  • Price (Net)Price (Gross)中的先前值的副本
  • Tax:留空
  • Tax rate:留空
  • Transaction refunded:留空
  • Commission:0(这是一笔现金支付)
  • Topic:参见上面的主题列表
  • Owner:如果主题不是 MiTi 则留空。MiTiLoLa 如果主题是 MiTi
  • Purpose:除非是小费,否则可能是 Consumption
  • Comment:提供一些参考资料,以便在稍后的审计中了解为什么该交易是人为创建的(例如,参考电子邮件)

手动编辑的限制

对于所有项目(现有的SumUp交易和人为添加的交易),必须满足以下条件:

  • TopicPurpose 包含有效值
  • Owner 包含有效值或为空
  • 对于主题 MiTiOwner 必须是 MiTiLoLa
  • 对于非 MiTi 的主题:Owner 必须为空

导出步骤

执行 lola-sumup export 命令

Consumes the (potentially redacted) intermediate file and exports to different special purpose CSV files

Usage: lola-sumup export <INTERMEDIATE_FILE>

Arguments:
  <INTERMEDIATE_FILE>  the intermediate file to process

Options:
  -h, --help     Print help
  -V, --version  Print version

它生成三个导出(相应地带有月份和执行时间戳)

  • accounting_202305_20230603142503.csv
  • mittagstisch_202305_20230603142503.csv
  • summary_202305_20230603142503.csv

导出描述

总结报告

总结文件收集了构建其他报告或进行深入分析所需的所有原始和衍生列。

结果总结文件的列定义如下

  • 通用列
    • Date:日历日期
  • 主题MiTiCafeVerm的消费毛额(未扣除佣金),按支付方式拆分
    • MiTi_Cash:Mittagstisch的现金毛收入(包括LoLa饮料)
    • MiTi_Card:Mittagstisch的信用卡毛收入(包括LoLa饮料)
    • MiTi Total:Mittagstisch的总毛收入(包括LoLa饮料)[MiTi_Cash + MiTi_Card],也是[Gross MiTi (MiTi) + Gross MiTi (LoLa)]
    • Cafe_Cash:Café的现金毛收入
    • Cafe_Card:Café的信用卡毛收入
    • Cafe Total:Café的总毛收入[Cafe_Cash + Cafe_Card]
    • Verm_Cash:租赁的现金毛收入
    • Verm_Card:租赁的信用卡毛收入
    • Verm Total:租赁的总毛收入[Verm_Cash + Verm_Card]
    • SoFe_Cash:夏日派对的现金毛收入
    • SoFe_Card:夏日派对的信用卡毛收入
    • SoFe Total:夏日派对的总毛收入[SoFe_Cash + SoFe_Card]
    • Deposit_Cash:钥匙押金的现金毛收入
    • Deposit_Card:钥匙押金的信用卡毛收入
    • Deposit Total:钥匙押金的总毛收入[Deposit_Cash + Deposit_Card]
    • Packaging_Cash:包装押金的现金毛收入
    • Packaging_Card:包装押金的信用卡毛收入
    • Packaging Total:包装押金的总毛收入[Packaging_Cash + Packaging_Card]
    • Rental_Cash:租赁支付的现金毛收入
    • Rental_Card:租赁支付的信用卡毛收入
    • Rental Total:租赁支付的总毛收入[Rental_Cash + Rental_Card]
    • Culture_Cash:文化的现金毛收入
    • Culture_Card:文化的信用卡毛收入
    • Culture Total:文化的总毛收入[Culture_Cash + Culture_Card]
    • PaidOut_Cash:支付的现金毛收入
    • PaidOut_Card:支付的信用卡毛收入
    • PaidOut Total:支付的总毛收入[PaidOut_Cash + PaidOut_Card]
  • 按支付方式报告的消费毛额、小费和总毛额
    • Gross Cash:总现金毛收入[MiTi_Cash + Cafe_Cash + Verm_Cash + SoFe_Cash + Deposit_Cash + Packaging_Cash + Rental_Cash + Culture_Cash + PaidOut_Cash]
    • Tips_Cash:现金小费
    • SumUp Cash:总现金收入[Gross Cash + Tips_Cash]
    • 总收入卡: 总收入卡 [MiTi_Card + Cafe_Card + Verm_Card + SoFe_Card + Deposit_Card + Packaging_Card + Rental_Card + Culture_Card + PaidOut_Card]
    • 小费卡: 小费卡
    • 汇总卡: 总收入卡 [总收入卡 + 小费卡]
    • 总收入总额: 总收入 [总收入现金 + 总收入卡]
    • 小费总额: [小费现金 + 小费卡]
    • 汇总总额: [总收入总额 + 小费总额] 或 [汇总现金 + 汇总卡]
  • 卡片相关支付:按主题划分的总值、佣金和净值
    • 总收入卡 MiTi: 总收入卡 Mittagstisch 收入 MiTi_Card(包括饮料 LoLa)
    • MiTi_Commission: Mittagstisch 的卡片佣金(菜单和小费,但不包括 LoLa 饮料)
    • Net Card MiTi: Mittagstisch 的净卡片收入 [总收入卡 MiTi - MiTi_Commission] - 从餐费和小费中扣除佣金,饮料销售仍包括在内
    • Gross Card LoLa: LoLa 的总收入卡收入(咖啡厅,租赁,夏日派对,存款,租赁,文化)[Cafe_Card + Verm_Card + SoFe_Card + Deposit_Card + Rental_Card + Culture_Card + PaidOut_Card]
    • LoLa_Commission: LoLa 的卡片佣金(与 Mittagstisch 无关,但包括 MiTi 销售商品的佣金)
    • LoLa_Commission_MiTi: 只有 MiTi 销售的 LoLa 项目的卡片佣金,因此不包括咖啡厅或租赁
    • Net Card LoLa: LoLa 的净卡片收入(咖啡厅和租赁)[Gross Card LoLa - LoLa_Commission]
    • Gross Card Total: 总收入卡收入(MiTi,咖啡厅,租赁)[总收入卡 MiTi + Gross Card LoLa]
    • Total Commission: 总卡片佣金(MiTi,咖啡厅,租赁)[MiTi_Commission + LoLa_Commission]
    • Net Card Total: 总净卡片收入 [Gross Card Total - Total Commission]
    • Net Payment SumUp MiTi: 与 Mittagstisch 相关的总净支付 SumUp(关于 Mittagstisch 的卡片支付(餐费、小费、通过卡片支付的 LoLa 商品销售))[MiTi_Card + MiTi_Tips_Card - MiTi_Total_Commission]
  • 按主题划分的小费
    • MiTi_Tips_Cash: Mittagstisch 现金支付的小费
    • MiTi_Tips_Card: Mittagstisch 通过卡片支付的小费
    • MiTi_Tips: Mittagstisch 的小费(总计)[MiTi_Tips_Cash + MiTi_Tips_Card]
    • Cafe_Tips: 咖啡厅的小费
    • Verm_Tips: 租赁的小费
  • Mittagstisch 的主题按所有者划分的拆分
    • Gross MiTi (MiTi): Mittagstisch 的总收入(来自他们自己的菜单,通过卡片或现金支付)
    • 毛收入 MiTi (LoLa):毛收入 Mittagstisch,包含 LoLa 项目(饮料等)(通过卡或现金支付)
    • 毛收入 MiTi (MiTi):来自自身菜单的毛收入 Mittagstisch(仅通过卡支付)(不包括小费)
    • 净收入 MiTi (MiTi):无佣金支付的净收入 Mittagstisch 菜单[毛收入 MiTi (MiTi) - MiTi_Commission]
    • 净收入 MiTi (LoLa):净总收入 Mittagstisch,包含 LoLa 项目,无佣金[毛收入 MiTi (LoLa) - LoLa_Commission_MiTi]
    • MiTi 分成:出售 LoLa 项目的 MiTi 分成[20% * 净收入 MiTi (LoLa)]
    • 净收入 MiTi (LoLA) - LoLa 分成:净总收入 Mittagstisch,包含 LoLa 项目,无佣金,减去 LoLa 分成[净收入 MiTi (LoLa) * 0.8]
    • LoLa 赞助减免:LoLa 赞助的减免[2 * (MealCount_Reduced + MealCount_Regular)]
    • 欠 MiTi 的债务:LoLa 需要支付给 Mittagstisch 的净额[Net Payment SumUp MiTi - 净收入 MiTi (LoLA) - LoLa 分成 + LoLa 赞助减免]
    • LoLa 从 MiTi 获得的收入:从 MiTi 出售 LoLa 获得的 LoLa 收入[毛收入 MiTi (LoLa) - MiTi 分成]
  • 与 Mittagstisch 相关的统计数据
    • MealCount_Regular:每天的正餐数量
    • MealCount_Reduced:每天由 LoLa 赞助的减免餐数量
    • MealCount_Regular:每天由 LoLA 赞助的 stagaire 餐数量
    • MealCount_Children:每天儿童餐数量

Mittagstisch 报告

Mittagstisch 导出的目的是向 Mittagstisch 团队提供相关的财务信息。

结果文件中的列定义如下

  • 通用列
  • 菜单数量
    • Hauptgang:每天的正餐数量 MealCount_Regular
    • Reduziert:每天的常规餐数量 [MealCount_Reduced + MealCount_Praktikum]
    • Kind:每天的儿童餐数量 MealCount_Children
  • 按所有权收入(MiTi 或 LoLa)
    • Küche:菜单的毛收入 [毛收入 MiTi (MiTi)]
    • Total Bar:出售 LoLa 项目(酒吧)的毛收入 [毛收入 MiTi (LoLa)]
    • Anteil LoLa:LoLa 从 MiTi 出售 LoLa 项目的毛收入
    • Anteil MiTi:MiTi 从出售 LoLa 项目的毛收入
  • 按支付方式汇总,区分收入和小费
    • Einnahmen barz.:现金支付的收入和小费[MiTi_Cash + MiTi_Tips_Cash]
    • davon TG barz.:现金支付的小费总额 MiTi_Tips_Cash
    • Einnahmen Karte:刷卡支付的收入和小费[MiTi_Card + MiTi_Tips_Card]
    • davon TG Karte:刷卡支付的小费总额 MiTi_Tips_Card
    • Total Einnahmen (oT):总支付额(现金+刷卡-不含小费)[MiTi Total]
  • 净总额
    • Kommission Bar:LoLa支付的佣金LoLa_Commission_MiTi
    • Netto Bar:销售LoLa商品的净收入[Total Bar - Kommission Bar]
    • Karte MiTi:刷卡支付的菜单收入(不含小费)[Gross MiTi (MiTi) Card]
    • Kommission MiTi:对Gross Card MiTi的佣金(包括小费的佣金)MiTi_Commission
    • Netto Karte MiTi:刷卡支付的菜单净收入[Net MiTi (MiTi) Card]
  • 与LoLa的结算
    • Net Total Karte:与Mittagstisch相关的净刷卡支付(包括餐费、小费、通过刷卡支付的LoLa商品销售)[Net Paymnet SumUp MiTi]
    • Verkauf LoLa (80%) 80%的净LoLa商品销售额[-Net MiTi (LoLA) - Share LoLa]
    • Gesponsort LoLa赞助的减免(每餐2.00欧元)[Sponsored Reductions]
    • Überweisung:LoLa支付给Mittagstisch的净款[Debt to MiTi]

会计报告

会计导出的目的是向会计人员提供月度水平的相关信息。

生成的会计.csv文件中的列定义如下

  • DateDate
  • Payment SumUp:总净收入加上通过刷卡支付的小费。SumUp的每日支付(下一个工作日)[Net Card Total + Tips_Card]。将被记录为10110/10920,但基于账户对账单,而不是此报告。
  • Total Cash Debit:每日现金借方总额[Gross Cash - MiTi_Cash - PaidOut Total]
  • Total Card Debit:每日刷卡借方总额[Gross_Card_LoLa + Tips_Card - MiTi_Tips_Card]
  • 10000/23050:总现金收入关键存款Deposit_Cash
  • 10000/30200:咖啡馆总收入 Cafe_Cash
  • 10000/30700:食品租赁总收入 Verm_Cash(租赁者销售的LoLa食品)
  • 10000/30800:夏日派对总收入 SoFe_Cash(夏日派对期间销售的LoLa食品)
  • 10000/31000:租赁费总收入 Rental_Cash(租赁房间费用)
  • 10000/32000:文化支付总收入 Culture_Cash
  • 10000/46000:材料成本降低总收入 Packaging_Cash
  • 10920/10000:外部方现金支付总金额 PaidOut_Card
  • 10920/23050:现金支付押金总金额 Deposit_Card
  • 10920/30200:咖啡馆现金支付总金额 Cafe_Card
  • 10920/30700:租赁现金支付总金额 Verm_Card(租赁者销售的LoLa食品)
  • 10920/30800:夏日派对现金支付总金额 SoFe_Card(夏日派对期间销售的LoLa食品)
  • 10920/31000:租赁费现金支付总金额 Rental_Card(租赁房间费用)
  • 10920/32000:文化支付现金支付总金额 Culture_Card
  • 10920/46000:材料成本降低现金支付总金额 Packaging_Card
  • 10920/20051:网卡收入+小费(卡片)午餐桌[Net Card MiTi + MiTi_Tips_Card]
  • 10920/10910:通过卡片支付的LoLa小费[Tips_Card - MiTi_Tips_Card]
  • 68450/10920:咖啡、租赁、夏日派对、押金、租赁、文化支付和PaidOut的佣金,即不含午餐桌[Commission LoLa]
  • 59991/20051:LoLa赞助的减免(Sponsored Reductions
  • 20051/10930:LoLa欠午餐桌的金额(Debt to MiTi
  • 20051/30500:LoLa从MiTi销售LoLa的收入(Gross MiTi (LoLa) - Contribution MiTi = Income LoLa MiTi
  • 10930/10100:支付给午餐桌的金额(Debt to MiTi20051/10930) - 根据实际支付日期入账

日期之后的头三列不需要入账。它们用于合并目的

  • Payment SumUp必须与银行对账单上显示的每日汇总支付金额相符(这些金额会延迟一天或更久入账到我们的账户)。
  • Total Cash DebitTotal Card Debit有助于核对现金账簿(“现金记录”)。请注意,这两列可能会聚合每天现金账簿中的多个条目。

对于临时账户的绝对净总额不得大于0.05,即

  • 对于10920:abs(10920/30200 + 10920/30700 + 10920/30800 + 10920/23050 + 10920/46000 + 10920/31000 + 10920/32000 +10920/20051 + 10920/10000 + 10920/10910 - Payment SumUp - 68450/10920)< 0.05
  • 对于 20051:abs(10920/20051 - 20051/10930 - 20051/30200 + 59991/20051) < 0.05

依赖项

~30–59MB
~1M SLoC