public function action_index() { $pdf = View_MPDF::factory('pdf/test'); $pdf->set('name', 'Ruslan'); $pdf->write_to_disk('media/pdf/test.pdf'); $pdf->download('test.pdf'); }
/** * * Акшн для генерации PDF отчета * * @return pdf файл */ public function action_generate() { $card_id = (int) $this->request->param('id'); $card_db = ORM::factory('Card', $card_id); $firm_id = $card_db->company_id; $firm_db = ORM::factory('Company', $firm_id); //получение 2 цифр года $year = date('y'); if (isset($_POST)) { $data = Arr::extract($_POST, array('from', 'to', 'vat')); // подготовка данных для БД $data['period_from'] = $date_from = date('Y-m-d', strtotime($data['from'])); $data['period_to'] = $date_to = date('Y-m-d', strtotime($data['to'])); $data['date'] = date('Y-m-d'); $data['card_id'] = $card_id; $inv_db = ORM::factory('Invoice')->values($data)->save(); $pk = $inv_db->pk(); // formiruem filename $nr = null; if ($pk < 10) { $nr = 'NR00' . $pk; } elseif ($pk < 100) { $nr = 'NR0' . $pk; } else { $nr = 'NR' . $pk; } $file_name = 'LIMA' . $year . $nr; //получение данных из бызы по дате $op_db = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to)); // ???????? ?????? ?? ???????? 1 //$op_db_op1 = ORM::factory('Operation')->where('card_id','=',$card_id)->and_where('operation_id','=','2')->and_where('data','BETWEEN',array($date_from,$date_to))->find_all(); $op_db_act = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to))->and_where('operation_id', '=', '1')->find_all(); $op_act_name = ORM::factory('Opname', 1); $op_db_op1 = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to))->and_where('operation_id', '=', '2')->find_all(); $op1_name = ORM::factory('Opname', 2); $op_db_op2 = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to))->and_where('operation_id', '=', '3')->find_all(); $op2_name = ORM::factory('Opname', 3); $op_db_op3 = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to))->and_where('operation_id', '=', '4')->find_all(); $op3_name = ORM::factory('Opname', 4); $op_db_all = ORM::factory('Operation')->where('card_id', '=', $card_id)->and_where('data', 'BETWEEN', array($date_from, $date_to))->find_all(); //Считаем тотал $summ_totall = 0; foreach ($op_db_all as $op) { $summ_totall += $op->op_names->op_cost; echo $op->op_names->op_cost . '<br/>'; } echo $summ_totall; $pdf = View_MPDF::factory('pdf/invoice'); $pdf->set('date_from', $date_from); $pdf->set('date_to', $date_to); $pdf->set('ops', $op_db_all); $pdf->set('ops_act', $op_db_act); $pdf->set('op_act_name', $op_act_name); $pdf->set('ops1', $op_db_op1); $pdf->set('ops1_name', $op1_name); $pdf->set('ops2', $op_db_op2); $pdf->set('ops2_name', $op2_name); $pdf->set('ops3', $op_db_op3); $pdf->set('ops3_name', $op3_name); $pdf->set('firm', $firm_db); $pdf->set('card', $card_db); $pdf->set('totallEur', $summ_totall); $pdf->write_to_disk('media/pdf/' . $file_name . '.pdf'); //запись имени файла в БД файла $inv_db = ORM::factory('Invoice', $pk); $inv_db->file = $file_name; $inv_db->save(); Controller::redirect(URL::base() . 'cards/info/' . $card_id); } }