Revize 320
Přidáno uživatelem Tomáš Dulík před asi 15 roky(ů)
freenetis/trunk/kohana/application/controllers/accounts.php | ||
---|---|---|
*********************HERE ARE FUNCTIONS FOR DIRECT GET ACCESS *******************/
|
||
|
||
public function upload_bank_file($id) {
|
||
$form = new Forge(url_lang::base().'accounts/upload_ebank_file', '','POST',array('id' => 'article_form'));
|
||
$form = new Forge(url_lang::base()."accounts/upload_bank_file/$id", '','POST',array('id' => 'article_form'));
|
||
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
|
||
$form->upload('listing', TRUE)->label(url_lang::lang('texts.File with bank transfer listing'))
|
||
->rules('required|allow[htm,html]');
|
||
$form->submit(url_lang::lang('texts.Submit'));
|
||
|
||
if($form->validate())
|
||
{
|
||
$this->parse_ebank_account($form->listing->value);
|
||
{
|
||
if (isset($id)) { // známe id, účtu, který se má importovat?
|
||
$bank_acc_model=new Bank_account_Model($id);
|
||
if ($bank_acc_model->id)
|
||
switch ($bank_acc_model->bank_nr) {
|
||
case "2400":
|
||
case "5500":
|
||
$this->parse_ebank_account($id, $form->listing->value);
|
||
break;
|
||
}
|
||
} else { // if (isset($id)) = id účtu neznáme, zkusíme naslepo, zda je to ebanka
|
||
$this->parse_ebank_account(null, $form->listing->value);
|
||
|
||
}
|
||
}
|
||
else
|
||
{
|
||
... | ... | |
// ********************** Tak a jdeme tvořit transakce *********************
|
||
if (empty($data->amount))
|
||
// ****** Bankovní poplatky: ebanka má v řádku výpisu pouze poplatek, ale castka==0
|
||
$this->create_transfer_bank_fee($data);
|
||
$this->create_transfer_bank_fee($parsed_acc, $data);
|
||
else // amount je nenulovy
|
||
if (!empty($data->amount) && empty($data->fee)) {
|
||
// ***** úroky u ebanky: částka!=0 a poplatek==0
|
||
... | ... | |
// ****** členský příspěvek nebo platba faktury dodavatelum. ******
|
||
|
||
// Nejdriv zkusím najít majitele bankovního protiúčtu
|
||
$member_model->clear();
|
||
$member=$member_model;
|
||
if ($data->amount>0) {
|
||
// členský příspěvek: uvedl člen u teto platby jako variabilni symbol (VS) svůj telefon ?
|
||
$member=$member_model->find_member_by_phone($data->variable_symbol);
|
||
if (!is_object($member))
|
||
if ($member===FALSE) // find_member_by_phone vrací false, pokud nic nenajde
|
||
// ne? zkusime, zda jako VS nezadal svoje member id
|
||
$member=$member_model->find($data->variable_symbol);
|
||
// pokud se to nepovedlo, pak $member->id nastavíme na null
|
||
... | ... | |
$bank_acc->account_nr = $data->account_nr;
|
||
$bank_acc->bank_nr = $data->account_bank_nr;
|
||
$bank_acc->save();
|
||
} else // bank účet existuje
|
||
}
|
||
|
||
if ($data->amount<0) {
|
||
if (!$member->id && $bank_acc->member_id) // pokud se předtím nepodařilo najít majitele dle VS
|
||
$member = $member_model->find($bank_acc->member_id); // zkusím ho vzít odsud
|
||
|
||
if ($data->amount<0) {
|
||
$member = $member_model->find($bank_acc->member_id); // zkusím ho vzít odsud
|
||
// úhrada faktury - z 221000 (bank. účet) na 321000 (dodavatelé)
|
||
$id=create_transfer($parsed_acc->id, $suppliers->id,
|
||
$id=$this->create_transfer($parsed_acc->id, $suppliers->id,
|
||
$data->amount, $data->date_time, $data->comment);
|
||
$this->create_bank_transfer($this->parsed_bank_acc->id, $bank_acc->id, $id, $data);
|
||
// a ještě vytvoříme transakce (podvojné+bankovní) bank. poplatku
|
||
$this->create_transfer_bank_fee($data, $id);
|
||
$this->create_transfer_bank_fee($parsed_acc, $data, $id);
|
||
} else { // $data->amount > 0
|
||
// členský příspěvek - z 684000 na 221000
|
||
$id=$this->create_transfer($member_fees->id, $parsed_acc->id,
|
freenetis/trunk/kohana/application/libraries/Parser_Ebanka.php | ||
---|---|---|
break;
|
||
case 2: // Poznámky<br>Název účtu a<br>číslo účtu plátce
|
||
$arr=preg_split("/<br>/si", $field); // dělelní dle <BR> nebo <br>
|
||
$res->comment=$arr[0]; // odstranění počát. a konc. mezer
|
||
$res->name=$arr[1];
|
||
$account_arr=explode("/", $arr[2]);
|
||
$res->account_nr=$account_arr[0];
|
||
$res->account_bank_nr=$account_arr[1];
|
||
if (isset($arr[0])) $res->comment=$arr[0];
|
||
if (isset($arr[1])) $res->name=$arr[1];
|
||
if (isset($arr[2])) {
|
||
$account_arr=explode("/", $arr[2]);
|
||
if (isset($account_arr[0])) $res->account_nr=$account_arr[0];
|
||
if (isset($account_arr[1])) $res->account_bank_nr=$account_arr[1];
|
||
}
|
||
break;
|
||
case 3: //datum odepsání<br><br>typ platby
|
||
$arr=preg_split("/<br>/si", $field);
|
Také k dispozici: Unified diff
Opraveno nekolik bugu v parseru vypisu z ebanky a v uploadu vypisu. Import otestovan na celorocnim vypisu z r. 2007 (2500 radku).