Advertisement
iddqd1

ProductListContentViewer.php

Apr 3rd, 2016
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.50 KB | None | 0 0
  1. <?php
  2. /*+**********************************************************************************
  3.  * The contents of this file are subject to the vtiger CRM Public License Version 1.0
  4.  * ("License"); You may not use this file except in compliance with the License
  5.  * The Original Code is:  SalesPlatform vtiger CRM Open Source
  6.  * The Initial Developer of the Original Code is SalesPlatform.
  7.  * Portions created by SalesPlatform are Copyright (C) SalesPlatform.
  8.  * All Rights Reserved.
  9.  ************************************************************************************/
  10. include_once 'includes/SalesPlatform/PDF/viewers/SPContentViewer.php';
  11.  
  12. class SalesPlatform_PDF_ProductListDocumentContentViewer extends SalesPlatform_PDF_SPContentViewer {
  13.  
  14.         function display($parent) {
  15.  
  16.                 $models = $this->contentModels;
  17.  
  18.                 $totalModels = count($models);
  19.                 $totalGoods = 0;
  20.                 $totalServices = 0;
  21.                 $pdf = $parent->getPDF();
  22.                 $pdf->setPageOrientation($this->orientation);
  23.                 $pdf->SetAutoPageBreak(true, 10);
  24.  
  25.                 $parent->createPage();
  26.                 $contentFrame = $parent->getContentFrame();
  27.  
  28.                 try {
  29.                     $template = new Aste_Template($this->template);
  30.  
  31.                     $table_head = $template->getBlock('table_head');
  32.                     $content = $table_head->fetch();
  33.  
  34.                     for ($index = 0; $index < $totalModels; ++$index) {
  35.                         $model = $models[$index];
  36.  
  37.                         $contentHeight = 1;
  38.  
  39.                         try {
  40.                             $table_row = $template->getBlock('table_row', true);
  41.                             foreach($this->documentModel->keys() as $key) {
  42.                                 $table_row->setVar($key, $this->documentModel->get($key));
  43.                             }
  44.                             foreach($model->keys() as $key) {
  45.                                 $table_row->setVar($key, $model->get($key));
  46.                             }
  47.                             $content .= $table_row->fetch();
  48.                         }catch(Aste_Exception $e) {
  49.                         }
  50.  
  51.                         try {
  52.                             if($model->get('entityType') == 'Products') {
  53.                                 $table_row = $template->getBlock('goods_row', true);
  54.                                 foreach($this->documentModel->keys() as $key) {
  55.                                     $table_row->setVar($key, $this->documentModel->get($key));
  56.                                 }
  57.                                 foreach($model->keys() as $key) {
  58.                                     $table_row->setVar($key, $model->get($key));
  59.                                 }
  60.                                 $content .= $table_row->fetch();
  61.                                 $totalGoods++;
  62.                             }
  63.                         }catch(Aste_Exception $e) {
  64.                         }
  65.  
  66.                         try {
  67.                             if($model->get('entityType') == 'Services') {
  68.                                 $table_row = $template->getBlock('services_row', true);
  69.                                 foreach($this->documentModel->keys() as $key) {
  70.                                     $table_row->setVar($key, $this->documentModel->get($key));
  71.                                 }
  72.                                 foreach($model->keys() as $key) {
  73.                                     $table_row->setVar($key, $model->get($key));
  74.                                 }
  75.                                 $content .= $table_row->fetch();
  76.                                 $totalServices++;
  77.                             }
  78.                         }catch(Aste_Exception $e) {
  79.                         }
  80.                     }
  81.  
  82.  
  83.                     $summary = $template->getBlock('summary');
  84.                     foreach($this->documentModel->keys() as $key) {
  85.                         $summary->setVar($key, $this->documentModel->get($key));
  86.                     }
  87.                     foreach($this->contentSummaryModel->keys() as $key) {
  88.                         $summary->setVar($key, $this->contentSummaryModel->get($key));
  89.                     }
  90.                     $summary->setVar('summaryTotalItems', $totalModels);
  91.                     $summary->setVar('summaryTotalGoods', $totalGoods);
  92.                     $summary->setVar('summaryTotalServices', $totalServices);
  93.                     $content .= $summary->fetch();
  94.  
  95.                  $pdf->writeHTMLCell(0, 0, $contentFrame->x, $contentFrame->y, $content, 0, 1);
  96.                  $endY = $pdf->getY();
  97.                  $pgN = $pdf->getPage();
  98.  
  99.                 $bMargin = $pdf->getBreakMargin();
  100.                 $auto_page_break = $pdf->getAutoPageBreak();
  101.                 // disable auto-page-break
  102.                 $pdf->SetAutoPageBreak(false, 0);
  103.  
  104.  
  105.                 $pdf->startLayer('faximile', null, true, false);
  106.  
  107. // stamp
  108.         $i = 1;
  109.         while  ($i <= 5) {
  110.                 try {
  111.                  $stamp = $template->getBlock('stamp'.$i);
  112.                  $stamp = $stamp->fetch();
  113.                  $st_arr = explode(";", trim($stamp));
  114.                 // обработка конца листа
  115.  
  116.                 $stampH = $st_arr[2] + $st_arr[4] - $pdf->getPageDimensions($pgN)["hk"] + $pdf->getPageDimensions($pgN)["bm"] + $endY;
  117.                 $pdf->setPage($pgN);
  118.                  if (($endY+$st_arr[2]+$st_arr[4]) < ( $pdf->getPageDimensions($pgN)["hk"] - $pdf->getPageDimensions($pgN)["bm"]) ) {
  119.                         $stampY = $endY + $st_arr[2];
  120.                         }
  121.  
  122.                                 elseif ( ($endY+$st_arr[2]+$st_arr[4]*0.7) < ( $pdf->getPageDimensions($pgN)["hk"] - $pdf->getPageDimensions($pgN)["bm"])) {
  123.                                         $stampY = $pdf->getPageDimensions($pgN)["hk"] - $pdf->getPageDimensions($pgN)["bm"] - $st_arr[4];
  124.                                 }
  125.                                 else {
  126.                                         $pdf->Addpage();
  127.                                         $pdf->setPage($pgN+1);
  128.  
  129.                                         $stampY = $st_arr[2] - $pdf->getPageDimensions($pgN)["hk"] + $pdf->getPageDimensions($pgN)["bm"] + $pdf->getPageDimensions($pgN+1)["tm"] + $endY;
  130.                                         if ( $stampY < $pdf->getPageDimensions($pgN+1)["tm"] ) {
  131.                                                 $stampY = $pdf->getPageDimensions($pgN+1)["tm"];
  132.                                         }
  133.                                 };
  134.  
  135.                 $pdf->Image($st_arr[0], $st_arr[1], $stampY,  $st_arr[3], $st_arr[4]);
  136.  
  137.                 } catch(Aste_Exception $e) {
  138.                   }
  139.                 $i++;
  140. }
  141.                 $pdf->endLayer();
  142.                 $pdf->SetAutoPageBreak(true, $bMargin);
  143.                 $pdf->setPageMark();
  144.                 $pdf->setPage($pgN);
  145.  
  146.  
  147.                  $ending = $template->getBlock('ending');
  148.                    foreach($this->documentModel->keys() as $key) {
  149.                        $ending->setVar($key, $this->documentModel->get($key));
  150.                    }
  151.                  $content = $ending->fetch();
  152.                  $pdf->writeHTMLCell(0, 0, "", $endY, $content, 0,1);
  153.                  //$pdf->Cell("","","endY=".$endY." stampY=".$stampY." zzz=".$zzz." pageH=".($pdf->getPageDimensions($pgN)["hk"] - $pdf->getPageDimensions($pgN)["bm"]), 1);
  154.  
  155.                 } catch(Aste_Exception $e) {
  156.                 }
  157.         }
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement