madforwebs/financial-bundle

本包为symfony2提供财务功能包

dev-master 2020-12-27 23:20 UTC

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;
    }