Exemplo n.º 1
0
 protected function insertOrder(&$page, $obj, $putOrderId = true)
 {
     parent::insertOrder($page, $obj, $putOrderId);
     if (Mage::helper('barcode')->isEnable() && Mage::helper('barcode')->canShowOnPackingslip()) {
         if (!Mage::helper('smcore')->checkLicense(SM_Barcode_Helper_Abstract::PRODUCT, Mage::getStoreConfig('barcode/general/key'))) {
             exit;
         }
         if ($obj instanceof Mage_Sales_Model_Order) {
             $shipment = null;
             $order = $obj;
         } elseif ($obj instanceof Mage_Sales_Model_Order_Shipment) {
             $shipment = $obj;
             $order = $shipment->getOrder();
         }
         $image = Mage::helper('barcode/barcode')->createOrderBarcode($order->getRealOrderId());
         if (is_file($image)) {
             $imageWidth = intval(Mage::getStoreConfig('barcode/order/barcode_width')) > 0 ? intval(Mage::getStoreConfig('barcode/order/barcode_width')) : 90;
             $imageHeight = intval(Mage::getStoreConfig('barcode/order/barcode_height')) > 0 ? intval(Mage::getStoreConfig('barcode/order/barcode_height')) : 30;
             $image = Zend_Pdf_Image::imageWithPath($image);
             if (intval(Mage::getStoreConfig('barcode/order/packingslip_position')) == 3) {
                 // BOTTOM RIGHT
                 $top = $imageHeight * 2;
                 $left = intval(Mage::getStoreConfig('barcode/order/padding_left')) > 0 ? intval(Mage::getStoreConfig('barcode/order/padding_left')) : 482;
             } elseif (intval(Mage::getStoreConfig('barcode/order/packingslip_position')) == 2) {
                 // BOTTOM LEFT
                 $top = $imageHeight * 2;
                 $left = 25;
             } elseif (intval(Mage::getStoreConfig('barcode/order/packingslip_position')) == 0) {
                 // TOP LEFT
                 $top = intval(Mage::getStoreConfig('barcode/order/padding_top')) > 0 ? 825 - intval(Mage::getStoreConfig('barcode/order/padding_top')) : 825;
                 $left = 25;
             } else {
                 // TOP RIGHT
                 $top = intval(Mage::getStoreConfig('barcode/order/padding_top')) > 0 ? 825 - intval(Mage::getStoreConfig('barcode/order/padding_top')) : 825;
                 $left = intval(Mage::getStoreConfig('barcode/order/padding_left')) > 0 ? intval(Mage::getStoreConfig('barcode/order/padding_left')) : 482;
             }
             $page->drawImage($image, $left, $top - $imageHeight, $left + $imageWidth, $top);
         }
         // start drawing logo
         if (Mage::getStoreConfig("barcode/order/include_logo")) {
             $logoFile = is_file("media/barcode/" . Mage::getStoreConfig("barcode/product/logo_image_file")) ? "media/barcode/" . Mage::getStoreConfig("barcode/product/logo_image_file") : "media/barcode/logo.png";
             $logoType = exif_imagetype($logoFile);
             if ($logoType == 1) {
                 //gif not supported
                 $logoFile = "media/barcode/logo.png";
             } elseif ($logoType == 2) {
                 //jpeg is ok
             } elseif ($logoType == 3) {
                 //png is ok
             } else {
                 //other types
                 $logoFile = "media/barcode/logo.png";
             }
             $logoSize = getimagesize($logoFile);
             $logoFileWidth = intval($logoSize["0"]);
             $logoFileHeight = intval($logoSize["1"]);
             // resize logo
             $availableHeight = $imageHeight;
             $availableWidth = $imageWidth;
             if ($logoFileHeight > $availableHeight) {
                 $logoHeight = $availableHeight;
                 $logoWidth = $logoFileWidth * $logoHeight / $logoFileHeight;
             } else {
                 $logoWidth = intval(Mage::getStoreConfig("barcode/product/logo_width")) > 0 ? intval(Mage::getStoreConfig("barcode/product/logo_width")) : $logoSize["0"];
                 $logoHeight = intval(Mage::getStoreConfig("barcode/product/logo_height")) > 0 ? intval(Mage::getStoreConfig("barcode/product/logo_height")) : $logoSize["1"];
             }
             // 2nd check
             if ($logoHeight > $availableHeight) {
                 $logoHeight = $availableHeight;
                 $logoWidth = $logoFileWidth * $logoHeight / $logoFileHeight;
             }
             // check if posible to display logo
             if ($logoHeight < 0 || $logoWidth < 0) {
                 $logoHeight = $logoWidth = 0;
             }
             // final check before drawing
             if (is_file($logoFile)) {
                 $imageLogo = Zend_Pdf_Image::imageWithPath($logoFile);
                 if ($left != 25) {
                     $left = 25;
                 } else {
                     $left = 570 - $logoWidth;
                 }
                 $top -= $logoHeight;
                 //$page->drawImage($image, $left, $bottom, $right, $top);
                 $page->drawImage($imageLogo, $left, $top, $left + $logoWidth, $top + $logoHeight);
             }
         }
         // end drawing logo
     }
 }