halumein / yii2-cashbox-module
cashbox
Installs: 270
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 0
Open Issues: 0
Type:yii2-extension
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-11-09 19:14:00 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();