Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 320

Přidáno uživatelem Tomáš Dulík před asi 15 roky(ů)

Opraveno nekolik bugu v parseru vypisu z ebanky a v uploadu vypisu. Import otestovan na celorocnim vypisu z r. 2007 (2500 radku).

Zobrazit rozdíly:

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