madforwebs / financial-bundle
本包为symfony2提供财务功能包
dev-master
2020-12-27 23:20 UTC
Requires
- symfony/framework-bundle: ~2.3|~3.2
This package is auto-updated.
Last update: 2024-09-28 07:42:24 UTC
README
BookingBundle
意味着在您的Symfony应用程序中实现简单且功能丰富的日历!
安装
下载Bundle
打开命令行,进入您的项目目录并执行以下命令以下载此包的最新稳定版本
$ composer require madforwebs/financial-bundle
此命令需要您已全局安装Composer,如Composer文档中的“安装章节”所述。
启用Bundle
然后,通过在您的项目app/AppKernel.php
文件中添加以下行来启用此包
// app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new MadForWebs\FinancialBundle\FinancialBundle(), ); // ... } // ... }
导入日历服务到app
您必须在config.yml中按如下方式定义从@CalendarBundle导入服务
imports: ... - { resource: "@FinancialBundle/Resources/config/services.yml" } ...
导入节假日
一个使用服务导入节假日的示例
/** @var CalendarHandler $calendarHandler */ $calendarHandler = $this->get('mad_for_webs_calendar.handler'); $calendarHandler->createDaysFromCalendar();
扩展账户类
您可以扩展此类
use MadForWebs\FinancialBundle\Entity\Account as BaseAccount; /** * @ORM\Entity * @ORM\Table(name="mfw_account") */ class Account extends BaseAccount { ... /** * @ORM\OneToMany(targetEntity="Expenditure", mappedBy="account", cascade={"all"}) * @ORM\OrderBy({"dateBuy"="DESC"}) */ private $expenditures; /** * @ORM\OneToMany(targetEntity="Income", mappedBy="account", cascade={"all"}) * @ORM\OrderBy({"dateIncome"="DESC"}) */ private $earnings; /** * @ORM\OneToMany(targetEntity="Income", mappedBy="accountDestiny", cascade={"all"}) * @ORM\OrderBy({"dateIncome"="DESC"}) */ private $earningsOrigins; }
use MadForWebs\FinancialBundle\Entity\Expenditure as BaseExpenditure; /** * Expenditure * * @ORM\Table(name="expenditure") * @ORM\Entity(repositoryClass="FinancialBundle\Repository\ExpenditureRepository") */ class Expenditure { /** * @ORM\ManyToOne(targetEntity="Provider", inversedBy="expenditures") * @ORM\JoinColumn(name="provider", referencedColumnName="id", nullable=true) */ private $provider; /** * @ORM\ManyToOne(targetEntity="Account", inversedBy="expenditures") * @ORM\JoinColumn(name="account", referencedColumnName="id", nullable=true) */ private $account; /** * @var string * @ORM\Column(name="way_to_pay", type="string", columnDefinition="enum('card','bank','transfer','cash','paydesk', 'gratification')" , nullable=false) */ private $wayToPay; } ```php use MadForWebs\FinancialBundle\Entity\Income as BaseIncome; /** * Income * * @ORM\Table(name="income") * @ORM\Entity(repositoryClass="FinancialBundle\Repository\IncomeRepository") */ class Income { /** * @ORM\OneToOne(targetEntity="Income", inversedBy="linkedIncome") * @ORM\JoinColumn(name="linkedIncome", referencedColumnName="id", nullable=true) */ private $linkedIncome; /** * @ORM\ManyToOne(targetEntity="Account", inversedBy="earnings") * @ORM\JoinColumn(name="account", referencedColumnName="id", nullable=false) */ private $account; /** * @ORM\ManyToOne(targetEntity="Account", inversedBy="earningsOrigins") * @ORM\JoinColumn(name="accountDestiny", referencedColumnName="id", nullable=true) */ private $accountDestiny; } ```php use MadForWebs\FinancialBundle\Entity\Provider as BaseProvider; /** * Provider * * @ORM\Table(name="provider") * @ORM\Entity(repositoryClass="FinancialBundle\Repository\ProviderRepository") */ class Provider { /** * @ORM\OneToMany(targetEntity="Expenditure", mappedBy="provider", cascade={"all"}) * @ORM\OrderBy({"dateBuy"="DESC"}) */ private $expenditures; /** * @ORM\OneToMany(targetEntity="Product", mappedBy="provider", cascade={"all"}) * @ORM\OrderBy({"name"="ASC"}) */ private $products; }