コード例 #1
0
ファイル: Pdf.php プロジェクト: ruslankus/invoice-crm
 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');
 }
コード例 #2
0
ファイル: Cards.php プロジェクト: ruslankus/invoice-crm
 /**
  * 
  * Акшн для генерации 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);
     }
 }