akryll / bank
Yii 2 1C Bank-Client 数据库模块
dev-master
2014-12-03 08:25 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-28 16:03:40 UTC
README
此扩展添加了1C Bank-Client文件解析器。
安装
Добавить "akryll/bank": "dev-master" в composer.json
или выполнить composer require akryll/bank "dev-master"
创建控制器并添加以下内容
use akryll\Bank; use yii\web\UploadedFile; //... public function actionUpload() { $model = new BankForm(); $uploaded = ''; if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, 'file'); if ($model->validate()) { $file = 'export_' . rand(0, 999) . '.' . $model->file->extension; $model->file->saveAs('uploads/' . $file); return $this->redirect(['parse', 'file' => $file]); } } return $this->render('upload', ['model' => $model, 'uploaded' => $uploaded,]); } public function actionParse($file) { $filewr = 'uploads/' . $file; $bank = new Bank($filewr); $docs = $bank->getDocs(); $vars = get_class_vars('akryll\Document'); //Проверка правильности работы var_dump($vars);// Перечень свойств var_dump($docs);// Дамп всех документов } //...
创建模型
//BankForm.php <?php namespace app\models; use yii\base\Model; use yii\web\UploadedFile; class BankForm extends Model { /** * @var UploadedFile|Null file attribute */ public $file; public $image; /** * @return array the validation rules. */ public function rules() { return [ [['file'], 'file'], ]; } } ?>
创建用于文件上传的简单视图
<?php // Upload.php use yii\widgets\ActiveForm; $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?> <?= $form->field($model, 'file')->fileInput() ?> <button>Submit</button> <?php ActiveForm::end(); ?>
完成!根据需要创建用于保存所需数据的模型。
getDocs()
返回的对象属性列表
$rules = [ 'СекцияДокумент' => 'doctype', 'Номер' => 'inbankid', 'Дата' => 'docdate', 'Сумма' => 'summ', 'ДатаСписано' => 'outdate', 'ДатаПоступило' => 'indate', 'ПлательщикСчет' => 'payeraccount', 'Плательщик' => 'payerinfo', 'ПлательщикИНН' => 'payerinn', 'Плательщик1' => 'payer', 'ПлательщикРасчСчет' => 'payerdealaccount', 'ПлательщикБанк1' => 'payerbank1', 'ПлательщикБанк2' => 'payerbank2', 'ПлательщикБИК' => 'payerbik', 'ПлательщикКорсчет' => 'payerfixaccount', 'ПолучательСчет' => 'recieveraccount', 'Получатель' => 'recieverinfo', 'ПолучательИНН' => 'recieverinn', 'Получатель1' => 'reciever1', 'ПолучательРасчСчет' => 'recieverdealaccount', 'ПолучательБанк1' => 'recieverbank1', 'ПолучательБанк2' => 'recieverbank2', 'ПолучательБИК' => 'recieverbik', 'ПолучательКорсчет' => 'recieverfixaccount', 'ВидОплаты' => 'paytype', 'НазначениеПлатежа' => 'paydirection', 'СтатусСоставителя' => 'makerstatus', 'ПлательщикКПП' => 'payerkpp', 'ПолучательКПП' => 'recieverkpp', 'ПоказательКБК' => 'showerkbk', 'ОКАТО' => 'okato', 'ПоказательОснования' => 'showerfundament', 'ПоказательПериода' => 'showerperiod', 'ПоказательНомера' => 'showernumber', 'ПоказательДаты' => 'showerdate', 'ПоказательТипа' => 'showertype', 'СрокПлатежа' => 'paymentperiod', 'Очередность' => 'quenue', ];
getDocs()
返回包含数据的对象数组。
感谢您的关注!