コード例 #1
0
ファイル: Invoice.php プロジェクト: hyhoocchan/extension
 /**
  * Return PDF document
  *
  * @param  array $invoices
  * @return Zend_Pdf
  */
 public function getPdf($invoices = array())
 {
     if (Mage::getStoreConfig('advancedinvoiceprinting_options/general/enable') == 0) {
         return parent::getPdf($invoices);
     }
     $this->_beforeGetPdf();
     $this->_initRenderer('invoice');
     $pdf = new Zend_Pdf();
     $this->_setPdf($pdf);
     $style = new Zend_Pdf_Style();
     $this->_setFontBold($style, 10);
     foreach ($invoices as $invoice) {
         if ($invoice->getStoreId()) {
             Mage::app()->getLocale()->emulate($invoice->getStoreId());
             Mage::app()->setCurrentStore($invoice->getStoreId());
         }
         $page = $this->newPage();
         $order = $invoice->getOrder();
         /* Add image */
         $this->insertLogo($page, $invoice->getStore());
         /* Add address */
         $this->insertAddress($page, $invoice->getStore());
         /* Add head */
         $this->insertOrder($page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()));
         /* Add document text and number */
         $this->insertDocumentNumber($page, Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId());
         /* Add table */
         $this->_drawHeader($page);
         /* Add body */
         foreach ($invoice->getAllItems() as $item) {
             if ($item->getOrderItem()->getParentItem()) {
                 continue;
             }
             /* Draw item */
             $this->_drawItem($item, $page, $order);
             $page = end($pdf->pages);
         }
         /* Add totals */
         $this->insertTotals($page, $invoice);
         if ($invoice->getStoreId()) {
             Mage::app()->getLocale()->revert();
         }
     }
     $this->_afterGetPdf();
     return $pdf;
 }
コード例 #2
0
ファイル: Invoice.php プロジェクト: jokusafet/MagentoSource
 /**
  * Overriden to add call for _drawCheckoutFields method
  *
  * @param  array $invoices
  * @return Zend_Pdf
  */
 public function getPdf($invoices = array())
 {
     if (!Mage::getStoreConfigFlag('checkoutfields/print/pdf_invoice')) {
         return parent::getPdf($invoices);
     }
     $this->_beforeGetPdf();
     $this->_initRenderer('invoice');
     $pdf = new Zend_Pdf();
     $this->_setPdf($pdf);
     $style = new Zend_Pdf_Style();
     $this->_setFontBold($style, 10);
     foreach ($invoices as $invoice) {
         if ($invoice->getStoreId()) {
             Mage::app()->getLocale()->emulate($invoice->getStoreId());
             Mage::app()->setCurrentStore($invoice->getStoreId());
         }
         if (method_exists($this, 'insertDocumentNumber')) {
             $page = $this->newPage();
             $order = $invoice->getOrder();
             /* Add image */
             $this->insertLogo($page, $invoice->getStore());
             /* Add address */
             $this->insertAddress($page, $invoice->getStore());
             /* Add head */
             $this->insertOrder($page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()));
             /* Add document text and number */
             $this->insertDocumentNumber($page, Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId());
             // override start
             $this->_drawCheckoutFields($page, $order);
             // override end
             /* Add table */
             $this->_drawHeader($page);
             /* Add body */
             foreach ($invoice->getAllItems() as $item) {
                 if ($item->getOrderItem()->getParentItem()) {
                     continue;
                 }
                 /* Draw item */
                 $this->_drawItem($item, $page, $order);
                 $page = end($pdf->pages);
             }
             /* Add totals */
             $this->insertTotals($page, $invoice);
             if ($invoice->getStoreId()) {
                 Mage::app()->getLocale()->revert();
             }
         } else {
             $page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
             $pdf->pages[] = $page;
             $order = $invoice->getOrder();
             /* Add image */
             $this->insertLogo($page, $invoice->getStore());
             /* Add address */
             $this->insertAddress($page, $invoice->getStore());
             /* Add head */
             $this->insertOrder($page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()));
             // override start
             $this->_drawCheckoutFields($page, $order);
             // override end
             $page->setFillColor(new Zend_Pdf_Color_GrayScale(1));
             $this->_setFontRegular($page);
             $page->drawText(Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId(), 35, 780, 'UTF-8');
             /* Add table */
             $page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92));
             $page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
             $page->setLineWidth(0.5);
             $page->drawRectangle(25, $this->y, 570, $this->y - 15);
             $this->y -= 10;
             /* Add table head */
             $page->setFillColor(new Zend_Pdf_Color_RGB(0.4, 0.4, 0.4));
             $page->drawText(Mage::helper('sales')->__('Products'), 35, $this->y, 'UTF-8');
             $page->drawText(Mage::helper('sales')->__('SKU'), 255, $this->y, 'UTF-8');
             $page->drawText(Mage::helper('sales')->__('Price'), 380, $this->y, 'UTF-8');
             $page->drawText(Mage::helper('sales')->__('Qty'), 430, $this->y, 'UTF-8');
             $page->drawText(Mage::helper('sales')->__('Tax'), 480, $this->y, 'UTF-8');
             $page->drawText(Mage::helper('sales')->__('Subtotal'), 535, $this->y, 'UTF-8');
             $this->y -= 15;
             $page->setFillColor(new Zend_Pdf_Color_GrayScale(0));
             /* Add body */
             foreach ($invoice->getAllItems() as $item) {
                 if ($item->getOrderItem()->getParentItem()) {
                     continue;
                 }
                 if ($this->y < 15) {
                     $page = $this->newPage(array('table_header' => true));
                 }
                 /* Draw item */
                 $page = $this->_drawItem($item, $page, $order);
             }
             /* Add totals */
             $page = $this->insertTotals($page, $invoice);
             if ($invoice->getStoreId()) {
                 Mage::app()->getLocale()->revert();
             }
         }
     }
     $this->_afterGetPdf();
     return $pdf;
 }
コード例 #3
0
 public function myPdf($invoices = array())
 {
     $debug = false;
     if ($debug) {
         $this->_beforeGetPdf();
         $this->_initRenderer('invoice');
         $pdf = new Zend_Pdf();
         $this->_setPdf($pdf);
         $style = new Zend_Pdf_Style();
         $this->_setFontBold($style, 10);
         $page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
         $pdf->pages[] = $page;
         //$page->setFillColor(new Zend_Pdf_Color_RGB(1, 0, 0));
         $this->_setFontRegular($page);
         //$page->drawText('Dies ist ein Test', 35, 780, 'UTF-8');
         $x = 50;
         $y = 800;
     }
     foreach ($invoices as $invoice) {
         $order = $invoice->getOrder();
         $billing = $order->getBillingAddress();
         $payment = $order->getPayment()->getMethodInstance();
         // Immer in der Basisw�hrung des Shops abrechnen
         //$amount		= number_format($this->getOrder()->getBaseGrandTotal(), 2, '.', '');
         //$currency	= $this->getOrder()->getBaseCurrencyCode();
         // in der aktuell ausgew�hlten W�hrung abrechnen
         $amount = number_format($order->getGrandTotal(), 2, '.', '');
         $currency = $order->getOrderCurrencyCode();
         $street = $billing->getStreet();
         $locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
         if (is_array($locale) && !empty($locale)) {
             $language = $locale[0];
         } else {
             $language = $this->getDefaultLocale();
         }
         $userId = $order->getCustomerId();
         $orderId = $payment->getTransactionId();
         $insertId = $orderId;
         $orderId .= '-' . $userId;
         $payCode = 'IV';
         $payMethod = 'FI';
         $userData = array('firstname' => $billing->getFirstname(), 'lastname' => $billing->getLastname(), 'salutation' => 'MR', 'street' => $street[0], 'zip' => $billing->getPostcode(), 'city' => $billing->getCity(), 'country' => $billing->getCountry(), 'email' => $order->getCustomerEmail(), 'ip' => $order->getRemoteIp());
         if (empty($userData['ip'])) {
             $userData['ip'] = $_SERVER['REMOTE_ADDR'];
         }
         // Falls IP Leer, dann aus dem Server holen
         // Payment Request zusammenschrauben
         $data = $payment->prepareData($orderId, $amount, $currency, $payCode, $userData, $language, $payMethod, true);
         $bsParams = $payment->getBillsafeBasket($order);
         $data = array_merge($data, $bsParams);
         $data['IDENTIFICATION.REFERENCEID'] = $order->getPayment()->getLastTransId();
         if ($debug) {
             foreach ($data as $k => $v) {
                 $page->drawText($k . ': ' . $v, $x, $y, 'UTF-8');
                 $y -= 10;
             }
         }
         // Mit Payment kommunizieren
         $res = $payment->doRequest($data);
         //if ($debug) echo '<pre>resp('.print_r($this->response, 1).')</pre>';
         //if ($debug) echo '<pre>'.print_r($res, 1).'</pre>';
         // Payment Antwort auswerten
         $res = $payment->parseResult($res);
         //if ($debug) echo '<pre>'.print_r($res, 1).'</pre>';
         if ($debug) {
             $page->drawText(print_r($res, 1), $x, $y, 'UTF-8');
         }
     }
     if ($debug) {
         $this->_afterGetPdf();
         return $pdf;
     }
     return parent::getPdf($invoices);
 }
コード例 #4
0
 public function getPdf($invoices = array())
 {
     foreach ($invoices as $invoice) {
         if ($invoice->getOrder()->getPayment()->getMethod() != 'sofortrechnung') {
             return parent::getPdf($invoices);
         }
         break;
     }
     $this->_beforeGetPdf();
     $this->_initRenderer('invoice');
     $pdf = new Zend_Pdf();
     $this->_setPdf($pdf);
     $style = new Zend_Pdf_Style();
     $this->_setFontBold($style, 10);
     foreach ($invoices as $invoice) {
         if ($invoice->getStoreId()) {
             Mage::app()->getLocale()->emulate($invoice->getStoreId());
             Mage::app()->setCurrentStore($invoice->getStoreId());
         }
         $page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
         $pdf->pages[] = $page;
         $order = $invoice->getOrder();
         $tid = $order->getPayment()->getPnSuTransactionId();
         if (!empty($tid)) {
             $sObj = new SofortLib_TransactionData(Mage::getStoreConfig('payment/sofort/configkey'));
             $sObj->setTransaction($tid)->sendRequest();
             if ($sObj->isError()) {
                 Mage::throwException(Mage::helper('sales')->__($sObj->getError()));
                 return;
             } else {
                 $url = $sObj->getInvoiceUrl();
                 $pdf = file_get_contents($url);
                 return Zend_Pdf::parse($pdf);
             }
         }
         /* Add image */
         $this->insertLogo($page, $invoice->getStore());
         /* Add address */
         $this->insertAddress($page, $invoice->getStore());
         /* Add head */
         $this->insertOrder($page, $order, Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId()));
         $page->setFillColor(new Zend_Pdf_Color_GrayScale(1));
         $this->_setFontRegular($page);
         $page->drawText(Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId(), 35, 780, 'UTF-8');
         /* Add table */
         $page->setFillColor(new Zend_Pdf_Color_RGB(0.93, 0.92, 0.92));
         $page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
         $page->setLineWidth(0.5);
         $page->drawRectangle(25, $this->y, 570, $this->y - 15);
         $this->y -= 10;
         /* Add table head */
         $page->setFillColor(new Zend_Pdf_Color_RGB(0.4, 0.4, 0.4));
         $page->drawText(Mage::helper('sales')->__('Products'), 35, $this->y, 'UTF-8');
         $page->drawText(Mage::helper('sales')->__('SKU'), 255, $this->y, 'UTF-8');
         $page->drawText(Mage::helper('sales')->__('Price'), 380, $this->y, 'UTF-8');
         $page->drawText(Mage::helper('sales')->__('Qty'), 430, $this->y, 'UTF-8');
         $page->drawText(Mage::helper('sales')->__('Tax'), 480, $this->y, 'UTF-8');
         $page->drawText(Mage::helper('sales')->__('Subtotal'), 535, $this->y, 'UTF-8');
         $this->y -= 15;
         $page->setFillColor(new Zend_Pdf_Color_GrayScale(0));
         /* Add body */
         foreach ($invoice->getAllItems() as $item) {
             if ($item->getOrderItem()->getParentItem()) {
                 continue;
             }
             if ($this->y < 15) {
                 $page = $this->newPage(array('table_header' => true));
             }
             /* Draw item */
             $page = $this->_drawItem($item, $page, $order);
         }
         /* Add totals */
         $page = $this->insertTotals($page, $invoice);
         if ($invoice->getStoreId()) {
             Mage::app()->getLocale()->revert();
         }
     }
     $this->_afterGetPdf();
     return $pdf;
 }