delboy1978uk/expenses

一种收支记录的工具

v2.1.9 2017-12-15 19:31 UTC

This package is auto-updated.

Last update: 2024-09-04 21:34:27 UTC


README

Build Status Code Coverage Scrutinizer Code Quality
这是一个简单的存储收支的服务。

安装

使用composer安装该包

composer require delboy1978uk/expenses

数据库设置

根据 vendor/delboy1978uk/common/migrant-cfg.php.dist 创建 migrant-cfg.php,并在包部分添加 delboy1978uk/expenses。然后运行

migrant migrate

公共包注册

Expenses 与 delboy1978uk/common 配合使用,它包含 Doctrine 实体管理器和 Pimple DIC。将 Del\Expenses\ExpensesPackage 注册到容器中。

use Del\Common\ContainerService;
use Del\Expenses\ExpensesPackage;

$package = new ExpensesPackage();
ContainerService::getInstance()->registerToContainer($package);

Expenses 服务

$container = ContainerService::getInstance()->getContainer();
$svc = $container['service.expenses'];

服务方法

$svc->createIncomeFromArray($data);
$svc->createExpenditureFromArray($data);
$svc->createExpenseClaimFromArray($data);
$svc->toArray($entity);
$svc->saveIncome($entity);
$svc->saveExpenditure($entity);
$svc->saveExpenseClaim($entity);
$svc->deleteIncome($entity);
$svc->deleteExpenditure($entity);
$svc->deleteExpenseClaim($entity);
$svc->deleteEntry($entity);
$svc->findByCriteria($criteria);
$svc->findIncomeById($id);
$svc->findExpenditureById($id);
$svc->findExpenseClaimById($id);
$svc->findExpenseClaimById($id);
$svc->saveIncome($income);
$svc->saveExpenditure($expenditure);
$svc->saveExpenseClaim($claim);

实体

有三种类型的实体,它们都扩展了抽象类 Entry,Income,Expenditure 和 Expense Claim。Income 和 Expenditure 对于个体经营者来说已经足够,有限公司的人可以使用 ExpenseClaim 实体来记录自己口袋里的支出,这些支出可以从业务中报销。所有这些都是为了确定你的应税收入。EntryInterface 有以下方法

$entity->getId();
$entity->getUserId();
$entity->getDate();
$entity->getAmount();
$entity->getDescription();
$entity->getNote();
$entity->getCategory();
$entity->getType();

条件

使用条件对象搜索数据库很简单

use Del\Expenses\Criteria\EntryCriteria;

$criteria = new Criteria();
$criteria->setUserId(42);
$criteria->setType('IN'); // also OUT or CLAIM
$criteria->setOrder(Criteria::ORDER_DATE);
$criteria->setLimit(25);
$criteria->setOffset(74);

$results = $svc->findByCriteria($criteria);