Revize 433
Přidáno uživatelem Tomáš Dulík před asi 15 roky(ů)
freenetis/trunk/kohana/application/models/bank_transfer.php | ||
---|---|---|
public static function get_duplicities($data) {
|
||
if (empty($data->variable_symbol)) $cond_vs="IS NULL";
|
||
else $cond_vs="=$data->variable_symbol";
|
||
if (!empty($data->number)) $cond_number="AND bt.number=$data->number";
|
||
else $cond_number="";
|
||
$q="SELECT t.datetime, t.creation_datetime, t.text, bt.*
|
||
FROM bank_transfers AS bt JOIN transfers AS t
|
||
ON bt.transfer_id=t.id
|
||
AND t.datetime='$data->date_time'
|
||
AND t.text='$data->comment'
|
||
AND t.text='$data->comment'
|
||
".$cond_number."
|
||
AND bt.variable_symbol $cond_vs";
|
||
return self::$db->query($q);
|
||
}
|
freenetis/trunk/kohana/application/controllers/import.php | ||
---|---|---|
switch($form_data['type'])
|
||
{
|
||
case self::$html_ebanka:
|
||
$this->parse_ebank_account(null, $form->listing->value);
|
||
$this->parse_ebank_account($id, $form->listing->value);
|
||
break;
|
||
case self::$csv_postovni_sporitelna:
|
||
//$this->parse_csv_file($id, $form_data['csv_template'], $form->listing->value);
|
||
... | ... | |
// Vytvoříme transakci z 644000 nebo 655000 (uroky) na 221000
|
||
// a bankovní transakci z null na parsovaný účet. Přiřadíme ji sdružení (member_id=1)
|
||
if (empty($vs)) // běžný úrok? (644000)
|
||
$this->create_transfers($interests, $parsed_acc, $data->amount,
|
||
$this->create_transfers($bank_interests, $parsed_acc, $data->amount,
|
||
null, $this->parsed_bank_acc, $data, 1);
|
||
else // úrok z termínovaného vkladu (655000)
|
||
$this->create_transfers($time_deposit_interests, $parsed_acc, $data->amount,
|
||
$this->create_transfers($time_deposits_interests, $parsed_acc, $data->amount,
|
||
null, $this->parsed_bank_acc, $data, 1);
|
||
$this->stats->interests += $data->amount;
|
||
$this->stats->interests_nr++;
|
||
... | ... | |
$ks=trim($data->constant_symbol);
|
||
$term_vklad = ($ks == "968");
|
||
$member_model->clear();
|
||
$member=$member_model;
|
||
if ($term_vklad) $member->id=1; // term. vklad vždy způsobuje samo sdružení
|
||
//u ostatních typů transakcí zkusíme najít původce:
|
||
else if ($data->amount>0 && !empty($vs)) {
|
||
// členský příspěvek nebo příjem z faktury odběrateli
|
||
$member=$member_model;
|
||
if (!$term_vklad && $data->amount>0 && !empty($vs)) { //u čl. příspěvků zkusíme najít původce:
|
||
// členský příspěvek nebo příjem z faktury odběrateli
|
||
// @todo zpracování jiných typů VS u člen. příspěvků (např. ID+CRC16)
|
||
// uvedl člen u teto platby jako variabilni symbol (VS) svůj telefon ?
|
||
$member=$member_model->find_member_by_phone($vs);
|
||
... | ... | |
$this->stats->unasigned++;
|
||
}
|
||
}
|
||
// else { // platba přijaté faktury - majitele účtu najdeme dle VS na faktuře, až budeme mít modul přijatých faktur}
|
||
// else { // if platba přijaté faktury - majitele účtu najdeme dle VS na faktuře, až budeme mít modul přijatých faktur}
|
||
|
||
// ***Tady si vytvorime instanci účtu clena (nebo dodavatele) z prave nacteneho vypisu:
|
||
$bank_acc=$bank_acc_model->find_by_account_nr_and_bank_nr($data->account_nr, $data->account_bank_nr);
|
||
if (!$bank_acc->id) { // bank. ucet clena neexistuje, tak si ho vytvorime
|
||
$bank_acc->clear();
|
||
$bank_acc->member_id = $member->id;
|
||
$bank_acc->member_id = ($term_vklad ? 1 : $member->id); //term. vklad je vždy způsoben sdružením
|
||
$bank_acc->name = $data->name;
|
||
$bank_acc->account_nr = $data->account_nr;
|
||
$bank_acc->bank_nr = $data->account_bank_nr;
|
||
... | ... | |
}
|
||
} else { // $data->amount > 0
|
||
if ($term_vklad) { // převod peněz na účet term. vkladu
|
||
$id=$this->create_transfers($parsed_acc, $time_deposits, $amount,
|
||
$this->parsed_bank_acc, $bank_acc, $data, $member->id, null);
|
||
$this->stats->time_deposits_drawn+=$amount;
|
||
$this->stats->time_deposits_drawn_nr++;
|
||
$id=$this->create_transfers($time_deposits, $parsed_acc, $data->amount,
|
||
$bank_acc, $this->parsed_bank_acc, $data, $member->id, null);
|
||
$this->stats->time_deposits+=$data->amount;
|
||
$this->stats->time_deposits_nr++;
|
||
} else {
|
||
// členský příspěvek - vytvoříme:
|
||
// - podvojnou transakci z 684000 na 221000
|
||
... | ... | |
$bank_transfer->transfer_id = $transfer->id;
|
||
$bank_transfer->origin_id = isset($src_bank_acc)? $src_bank_acc->id : null;
|
||
$bank_transfer->destination_id = isset($dst_bank_acc)? $dst_bank_acc->id : null;
|
||
$bank_transfer->number = $data->number;
|
||
$bank_transfer->variable_symbol = $data->variable_symbol;
|
||
$bank_transfer->constant_symbol = $data->constant_symbol;
|
||
$bank_transfer->specific_symbol = $data->specific_symbol;
|
||
... | ... | |
foreach ($this->stats as $key=>$value)
|
||
echo "<tr><td>$key</td><td>$value</td></tr>";
|
||
echo "</table>\n";
|
||
if (!isset($this->stats->time_deposits)) $this->stats->time_deposits=0;
|
||
if (!isset($this->stats->time_deposits_drawn)) $this->stats->time_deposits_drawn=0;
|
||
if (!isset($this->stats->invoices)) $this->stats->invoices=0;
|
||
if (!isset($this->stats->interests)) $this->stats->interests=0;
|
||
if (!isset($this->stats->bank_fees)) $this->stats->bank_fees=0;
|
||
if (!isset($this->stats->member_fees)) $this->stats->member_fees=0;
|
||
|
||
echo "Bank. poplatky = ". $this->stats->bank_fees;
|
||
echo "<br/>\nVýdaje = ". ($this->stats->bank_fees + $this->stats->invoices);
|
||
echo "<br/>\nPříjmy = ". ($this->stats->interests + $this->stats->member_fees);
|
||
echo "<br/>\nVýdaje = ". ($this->stats->bank_fees + $this->stats->invoices + $this->stats->time_deposits_drawn);
|
||
echo "<br/>\nPříjmy = ". ($this->stats->interests + $this->stats->member_fees + $this->stats->time_deposits);
|
||
|
||
echo "<br/>\nMemory usage=".(memory_get_usage()-$mem)."<p>\n";
|
||
echo"parse - end: ".(microtime(true)-$start)."<p>\n";
|
freenetis/trunk/kohana/application/libraries/Parser_Ebanka.php | ||
---|---|---|
|
||
$res = $this->result;
|
||
$first=true;
|
||
|
||
$line_nr=0;
|
||
do {
|
||
|
||
$status=$this->get_table_rows();
|
||
... | ... | |
break;
|
||
case 5:
|
||
$res->fee=$this->get_fee($field, TRUE); // fee
|
||
$line_nr++;
|
||
$res->number=$line_nr;
|
||
//ted uz muzeme ulozit ziskane data do databaze:
|
||
if (isset($this->callback)) call_user_func($this->callback, $res);
|
||
/**
|
||
* ted uz muzeme ulozit ziskane data do databaze:
|
||
*/
|
||
break;
|
||
} // switch
|
||
|
||
... | ... | |
flush();
|
||
trigger_error("Parser error: ".
|
||
"očekával jsem číslo výpisu, ale dostal jsem:<br/>\n".$field.
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->cislo.
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->number.
|
||
"<br/> \nCelý vstupní buffer je: <br/>\n". htmlentities($this->buffer)
|
||
//,E_USER_ERROR
|
||
);
|
||
}
|
||
$res->cislo=$field;
|
||
$res->number=$field;
|
||
break;
|
||
case 1: // datum a čas příklad: 08.08.<br>06:11
|
||
$arr=preg_split("/<br>/si", $field);
|
||
if (count($arr)<2)
|
||
trigger_error("Parser error: ".
|
||
"očekávám datum/čas jako dd.mm.<br>hh:mm ale dostal jsem:<br/>\n".$field.
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->cislo.
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->number.
|
||
"<br/> \nCelý vstupní buffer je: <br/>\n". htmlentities($this->buffer),
|
||
E_USER_ERROR);
|
||
else {
|
||
... | ... | |
if (count($arrDate)<2)
|
||
trigger_error("Parser error: ".
|
||
"očekávám datum jako dd.mm. ale dostal jsem:<br/>\n".$arr[0].
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->cislo.
|
||
"<br/> \nPoslední správně načtený řádek výpisu má číslo ".$res->number.
|
||
"<br/> \nCelý vstupní buffer je: <br/>\n". htmlentities($this->buffer),
|
||
E_USER_ERROR);
|
||
|
Také k dispozici: Unified diff
Oprava importu z ebanky, nove features: automaticke zauctovani vyberu z bankomatu, automaticke zauctovani terminovanych vkladu a jejich uroku, kontrola duplicit.