public function Execute() { $acc702 = Account::load("702"); $s702 = $acc702->getSaldo($this->document_date); Entry::AddEntry(702, 79, abs($s702), $this->document_id, $this->document_date); $acc902 = Account::load("902"); $s902 = $acc902->getSaldo($this->document_date); Entry::AddEntry(79, 902, abs($s902), $this->document_id, $this->document_date); return true; }
private function generateReport() { $acc = Account::load($this->filter->acc->getValue()); $from = $this->filter->from->getDate(); $to = $this->filter->to->getDate(); $header = array('from' => date('d.m.Y', $from), 'to' => date('d.m.Y', $to), 'acc' => $acc->acc_name); $detail = array(); $conn = \ZCL\DB\DB::getConnect(); $data = $acc->getSaldoAndOb($from, $to); //получаем остатки и обороты на период $sql = "select sum(case when acc_d = {$acc->acc_code} then amount else 0 end ) as ad,\n sum(case when acc_c = {$acc->acc_code} then amount else 0 end ) as ac ,document_number,document_date\n from erp_account_entry_view where ( acc_d ={$acc->acc_code} or acc_c ={$acc->acc_code} ) and document_date >= " . $conn->DBDate($from) . " and document_date <= " . $conn->DBDate($to) . " group by document_number,document_date order by document_date "; $rs = $conn->Execute($sql); $startdt = $data['startdt']; $startct = $data['startct']; foreach ($rs as $row) { $amount = 0; $enddt = 0; $endct = 0; if ($row['ad'] > 0) { $amount = $row['ad']; $enddt = $startdt + $row['ad']; $endct = $startct; } if ($row['ac'] > 0) { $amount = 0 - $row['ac']; $endct = $startct + $row['ac']; $enddt = $startdt; } if ($enddt - $endct > 0) { $enddt = $enddt - $endct; $endct = 0; } else { $endct = $endct - $enddt; $enddt = 0; } $detail[] = array("date" => date("d.m.Y", strtotime($row['document_date'])), "doc" => $row['document_number'], "amount" => H::fm($amount), "startdt" => H::fm($startdt), "startct" => H::fm($startct), "enddt" => H::fm($enddt), "endct" => H::fm($endct)); $startdt = $enddt; $startct = $endct; } $report = new \ZippyERP\ERP\Report('accountactivity.tpl'); $html = $report->generate($header, $detail); return $html; }