halumein / yii2-cashbox-module
现金箱
dev-master
2017-07-18 13:24 UTC
Requires
- php: >=5.4.0
- kartik-v/yii2-grid: *
- voskobovich/yii2-many-many-behavior: ^3.0
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
This package is not auto-updated.
Last update: 2024-09-14 18:20:46 UTC
README
composer require halumein/yii2-cashbox-module "*"
迁移
php yii migrate --migrationPath=vendor/halumein/yii2-cashbox-module/migrations
将 cashbox 模块添加到应用程序配置文件中
'modules' => [ 'cashbox' => [ 'class' => 'halumein\cashbox\Module', ], //... ]
额外参数
'modules' => [ 'cashbox' => [ 'class' => 'halumein\cashbox\Module', 'userModel' => 'common\models\YourUser', // класс пользователя используемый в приложении. если не указан то Yii::$app->user->identity 'paymentSuccessRedirect' => '/order/order/print', //редирект после успешной оплаты 'printRedirect' => '/order/order/print' // редирект на action печати чека после оплаты 'payedStatus' => 'payed', // для простановки статусов в ордере "оплачен" 'halfpayedStatus' => 'halfpayed', // для простановки статусов в ордере "частично оплачен" 'lessSumPaymentTypes' => [5], // тип оплаты в котором сумма платжа допустима быть меньше суммы заказа // для автоподстановки кассы в зависимости от типа оплаты из виджета заказа в виджет формы оплаты 'paymentTypeToCashbox' => [ 1 => 1, // id типа оплаты => id кассы ], // для формирования ссылок в списке операций 'linksToViews' => [ 'dvizh\order\models\Order' => [ 'viewUrl' => '/order/order/view', 'itemIdField' => 'id' ] ], ], //... ]
在用户模型中添加所需方法的实现。例如,它们可能看起来像这样
use halumein\cashbox\models\Cashbox; //модель кассы
class YourUser extends ActiveRecord implements \halumein\cashbox\interfaces\User
{
...
public function getId()
{
return $this->getPrimaryKey();
}
public function setDefaultCashbox($cashboxId)
{
$this->default_cashbox = $cashboxId;
return $this->save(false);
}
public function getDefaultCashbox()
{
return $this->default_cashbox;
}
public function getName($id = null)
{
return $this->userProfile->getName();
}
public function getFullName($id = null)
{
return $this->userProfile->getFullName();
}
// для получения доступных касс пользователю
public function getCashboxes()
{
return $this->hasMany(Cashbox::className(), ['id' => 'cashbox_id'])
->viaTable('cashbox_user_to_cashbox', ['user_id' => 'id']);
}
...
}
之后可以通过 cashbox/<控制器名> 访问可用的路由
cashbox/cashbox - индекс касс
cashbox/operation - индекс транзакций
cashbox/exchange - индекс переводов между кассами
cashbox/revision - индекс сверок
默认现金箱选择器小部件:要使用小部件,需要在数据库中的用户表中添加一个名为 "default_cashbox" 的字段,其中将记录所选用户的默认现金箱 id。
小部件输出
<?= halumein\cashbox\widgets\UserCashboxSelector::widget() ?>
组件的可用方法
Yii::$app->cashbox->addTransaction();
Yii::$app->cashbox->getIncomeSumByPeriod();
Yii::$app->cashbox->getIncomeSumByPeriod();