idcolumn = 'nr'; parent::__construct('sales', $id); } public function getOpenItems($only_in=null) { if (!is_null($only_in)) { if ($only_in === true) $cond = 'price >= 0 AND '; else $cond = 'price < 0 AND '; } else $cond = ''; $sql = "SELECT nr,date,description,price * 100 AS price FROM sales WHERE ${cond}paid = 0 AND visible = 1 ORDER BY date,nr"; return $this->db->fetchObjectList($sql); } public function ajaxSubtotal() { $text = ''; $commands = ''; $total = 0; foreach ($_POST['nr'] as &$nr) $nr = intval($nr); $sql = sprintf("SELECT nr,date,description,price * 100 AS price FROM sales WHERE nr IN (%s) ORDER BY date,nr", implode(', ', $_POST['nr'])); foreach ($this->db->fetchObjectList($sql) as $row) { $date = substr ($row->date,6,2) . "." . substr ($row->date,4,2) . "." . substr ($row->date,0,4); $text .= utf8_encode(sprintf("%d %s %-53s %8.2f\n", $row->nr, $date, substr($row->description,0,53), $row->price / 100)); $commands .= sprintf("infocon --date %s --pay %d\n", date('Y-m-d', time()+60*60*24), $row->nr); $total += $row->price; } if ($total != 0) { $subject = 'Erstattungen'; if (strlen($_POST['title'])) $subject .= ' ' . $_POST['title']; $text = "Liste der Buchungen\n" . str_repeat('=', 78) . "\n" . $text; $text .= str_repeat('=', 78) . sprintf("\n%-69s %8.2f\n", 'Zwischensumme', $total / 100); $mail = new Mail(); $mail->env_from(MAIL_FROM); $mail->set('From', mb_encode_mimeheader(utf8_decode(sprintf("%s <%s>", MAIL_FROM_NAME, MAIL_FROM)),'latin1')); $mail->set('To', MAIL_ERROR); $mail->set('Subject', mb_encode_mimeheader($subject,'latin1')); $mail->send($text . "\n\n" . $commands); } return true; } public function setPaid() { return $this->modify('paid', 1); } public function unsetPaid() { return $this->modify('paid', 0); } public function ajaxEditDescription(Array $data) { return $this->modify('description', utf8_decode($data['content'])); } public function ajaxGetUID(Array $data) { return array('description' => utf8_encode($this->data->description), 'uid' => is_null($this->data->uid) ? '' : $this->data->uid); } public function ajaxSetUID(Array $data) { return $this->modify('uid', strlen($data['uid']) ? utf8_decode($data['uid']) : NULL); } }