Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.98 KB | None | 0 0
  1. <?php
  2. class Chrisg_Saveordertotxt_Model_Observer extends Varien_Event_Observer
  3. {
  4.     public function exportOrder($observer)
  5.     {
  6.         $order = $observer->getEvent()->getOrder();
  7.         $orderIncrementId = $order->getIncrementId();
  8.         /*- Storing Folder -*/
  9.         $quote = Mage::getModel('sales/quote')->load($order->getQuoteId());
  10.         $helper = Mage::helper('saveordertotxt');
  11.         if(!$helper->saveordertotxt_enable() || $order->getData('customer_taxvat')) {
  12.             return false;
  13.         }
  14.         $saveDirectory =  $helper->saveordertotxt_path();
  15.         $filename = $helper->saveordertotxt_pname();
  16.         $type = $helper->saveordertotxt_type();
  17.  
  18.         $filename = $baseDirectory.$saveDirectory."/".$filename;
  19.  
  20.         /* $saveDirectory = "/var/export/cron_export/"; */
  21.         $baseDirectory = Mage::getBaseDir()."/";
  22.         $saveDirectory = trim($saveDirectory, '/');
  23.         $newDirectory = "";
  24.         foreach(explode('/',$saveDirectory) as $val) {
  25.             if(!is_dir($baseDirectory.$newDirectory.$val)){
  26.                 mkdir($baseDirectory.$newDirectory.$val, 0755);
  27.                 chmod($baseDirectory.$newDirectory.$val, 0755);
  28.             }
  29.             $newDirectory .= $val."/";
  30.         }
  31.         if($type == "csv") {
  32.             $this->CsvExport($filename, $order);
  33.         } else if($type == "txt") {
  34.             $this->txtExport($filename, $order);
  35.         }
  36.  
  37.     }
  38.  
  39.     public function txtExport($filename, $order) {
  40.         $filename .= "_".date('dmY-His').".txt";
  41.         $street = "";
  42.         if($order->getShippingAddress()->getStreet(1)){
  43.             $street .= $order->getShippingAddress()->getStreet(1);
  44.             if($order->getShippingAddress()->getStreet(2)){
  45.                 $street .= " ".$order->getShippingAddress()->getStreet(2);
  46.             }
  47.         }else {
  48.             $street .= $order->getBillingAddress()->getStreet(1);
  49.             if($order->getBillingAddress()->getStreet(2)){
  50.                 $street .= " ".$order->getBillingAddress()->getStreet(2);
  51.             }
  52.  
  53.         }
  54.         $data = "";
  55.         $data .= 'UNB+UNOC:3+SKLEP_INTERNETOWY:14+5907051002098:14+'.date('ymd:Hi').'+'.$order->getIncrementId().'+++++EANCOM+1'."\n";
  56.         $data .= "UNH+1+ORDERS:D:96A:UN:EAN008'"."\n";
  57.         $data .= "BGM+227::9:".$order->getIncrementId()."'"."\n";
  58.         $data .= "DTM+137:".date('Ymd',strtotime($order->getCreatedAt())).":102'"."\n";
  59.         $data .= "DTM+2:".date('Ymd',strtotime($order->getUpdatedAt())).":102'"."\n";
  60.         $data .= "NAD+SU+5907051002098::9'"."\n";
  61.         $data .= "NAD+BY+FAKTURA::9'"."\n";
  62.         $data .= "NAD+IV+FAKTURA::9'"."\n";
  63.         $data .= "NAD+DP+DOSTAWA::9++".$order->getShippingAddress()->getFirstname().":".$order->getShippingAddress()->getLastname()."+".$street."+".$order->getShippingAddress()->getCity()."++".$order->getShippingAddress()->getPostcode()."+".$order->getShippingAddress()->getCountryId()."'"."\n";
  64.         $data .= "COM+?+".$order->getShippingAddress()->getTelephone().":TE'"."\n";
  65.         $data .= "COM+".$order->getShippingAddress()->getEmail().":EM'"."\n";
  66.         $data .= "CUX+2:PLN:9'"."\n";
  67.         $data .= "PAT+7++5:3:D:30'"."\n";
  68.         $iterator = 1;
  69.         foreach ($order->getAllItems() as $item) {
  70.             $data .= "LIN+".$iterator."++5907051020573:EN'"."\n";
  71.             $data .= "PIA+1+25042847:BP+".$item->getSku().":SA'"."\n";
  72.             $data .= "IMD+F++:::".$item->getName()."'"."\n";
  73.             $data .= "QTY+21:".number_format((float)$item->getQtyOrdered(), 2, '.', '').":PCE'"."\n";
  74.             $iterator++;
  75.         }
  76.         $data .= "UNS+S'"."\n";
  77.         $data .= "CNT+2:2'"."\n";
  78.         $data .= "UNT+37+1'"."\n";
  79.         $data .= "UNZ+1+".$order->getIncrementId()."'"."\n";
  80.  
  81.         if($data != "") {
  82.             file_put_contents($filename, "\xEF\xBB\xBF". $data, FILE_APPEND | LOCK_EX);
  83.         }
  84.     }
  85.  
  86.     public function CsvExport($filename, $orderData) {
  87.         $filename .= "_".date('dmY-His').".csv";
  88.         foreach($orderData as $key => $value ) {
  89.             $labelArray .= $key.",";
  90.             $valueArray .= $value.",";
  91.         }
  92.         $labelArray = substr($labelArray, 0, -1);
  93.         $valueArray = substr($valueArray, 0, -1);
  94.         $data[] = array_combine(explode(",", $labelArray), explode(",", $labelArray));
  95.         $data[] = array_combine(explode(",", $labelArray), explode(",", $valueArray));
  96.  
  97.         if(count($data) > 0 ) {
  98.             $fp = fopen($filename, 'w');
  99.             foreach ($data as $product) {
  100.                 fputcsv($fp, $product);
  101.             }
  102.             fclose($fp);
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement