예제 #1
0
 /** Delete Invoice when an item is updated
  *
  * @author Valérie Isaksen
  * @param $order_id Id of the order
  * @return boolean true if deleted successful, false if there was a problem
  */
 function deleteInvoice($order_id)
 {
     $db = JFactory::getDBO();
     $q = 'SELECT * FROM `#__virtuemart_invoices` WHERE `virtuemart_order_id`= "' . $order_id . '" ';
     $db->setQuery($q);
     $data = $db->loadAssoc();
     if (!$data or empty($data['invoice_number'])) {
         return true;
     }
     // rename invoice pdf file
     $invoice_prefix = 'vminvoice_';
     $path = shopFunctions::getInvoicePath(VmConfig::get('forSale_path', 0));
     $invoice_name_src = $path . DS . $invoice_prefix . $data['invoice_number'] . '.pdf';
     if (!file_exists($invoice_name_src)) {
         // was already deleted by a previoous change
         return;
     }
     if (!class_exists('JFile')) {
         require JPATH_VM_LIBRARIES . DS . 'joomla' . DS . 'filesystem' . DS . 'file.php';
     }
     if (!JFile::delete($invoice_name_src)) {
         vmError('Could not delete Invoice ' . $invoice_name_src);
     }
 }
 /** Rename Invoice Number (when it is deleted, or modified
  *
  * @author Valérie Isaksen
  * @param $order_id Id of the order
  * @return boolean true if deleted successful, false if there was a problem
  */
 function renameInvoice($order_id)
 {
     $db = JFactory::getDBO();
     $q = 'SELECT * FROM `#__virtuemart_invoices` WHERE `virtuemart_order_id`= "' . $order_id . '" ';
     $db->setQuery($q);
     $data = $db->loadAssoc();
     if (!$data or empty($data['invoice_number'])) {
         return true;
     }
     // rename invoice pdf file
     $invoice_prefix = 'vminvoice_';
     $path = shopFunctions::getInvoicePath(VmConfig::get('forSale_path', 0));
     $invoice_name_src = $path . DS . $invoice_prefix . $data['invoice_number'] . '.pdf';
     if (!file_exists($invoice_name_src)) {
         vmError('Invoice ' . $invoice_name_src . ' does not exist');
     }
     $date = date("Ymd");
     $data['invoice_number'] = $data['invoice_number'] . '_' . $date;
     $invoice_name_dst = $path . $data['invoice_number'] . '.pdf';
     if (!class_exists('JFile')) {
         require JPATH_VM_LIBRARIES . '/joomla/filesystem/file.php';
     }
     if (!JFile::move($invoice_name_src, $invoice_name_dst)) {
         vmError('Could not rename Invoice ' . $invoice_name_src . 'to ' . $invoice_name_dst);
     }
     // update the invoice table
     $table = $this->getTable('invoices');
     $table->bindChecknStore($data);
     return true;
 }
예제 #3
0
	/** Delete Invoice when an item is updated
	 *
	 * @author Valérie Isaksen
	 * @param $order_id Id of the order
	 * @return boolean true if deleted successful, false if there was a problem
	 */
	function deleteInvoice($order_id ) {
		$db = JFactory::getDBO();

		$q = 'SELECT * FROM `#__virtuemart_invoices` WHERE `virtuemart_order_id`= "'.$order_id.'" ';

		$db->setQuery($q);
		$data = $db->loadAssoc();
		if(!$data or   empty($data['invoice_number']) ){
			return true;
		}

		// rename invoice pdf file
		$invoice_prefix='vminvoice_';
		$path = shopFunctions::getInvoicePath(VmConfig::get('forSale_path',0));
		$invoice_name_src = $path.DS.$invoice_prefix.$data['invoice_number'].'.pdf';

		if(!file_exists($invoice_name_src)){
			// may be it was already deleted when changing order items
			$data['invoice_number'] = $data['invoice_number'].' not found.';
		} else {
			$date = date("Ymd");
			$data['invoice_number'] = $data['invoice_number'].'_'.$date;
			$invoice_name_dst = $path.DS.$data['invoice_number'].'.pdf';

			if(!class_exists('JFile')) require(VMPATH_LIBS.DS.'joomla'.DS.'filesystem'.DS.'file.php');
			if (!JFile::move($invoice_name_src, $invoice_name_dst)) {
				vmError ('Could not rename Invoice '.$invoice_name_src.'to '. $invoice_name_dst );
			}
		}

		$table = $this->getTable('invoices');
		$table->bindChecknStore($data);

		return true;
	}
예제 #4
0
 /** Rename Invoice  (when an order is deleted)
  *
  * @author Valérie Isaksen
  * @author Max Milbers
  * @param $order_id Id of the order
  * @return boolean true if deleted successful, false if there was a problem
  */
 function renameInvoice($order_id)
 {
     $table = $this->getTable('invoices');
     $table->load($order_id, 'virtuemart_order_id');
     if (empty($table->invoice_number)) {
         return false;
     }
     if (!class_exists('shopFunctionsF')) {
         require VMPATH_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php';
     }
     // rename invoice pdf file
     $path = shopFunctions::getInvoicePath(VmConfig::get('forSale_path', 0));
     $name = shopFunctionsF::getInvoiceName($table->invoice_number);
     $invoice_name_src = $path . DS . $name . '.pdf';
     if (!file_exists($invoice_name_src)) {
         // may be it was already deleted when changing order items
         $data['invoice_number'] = $table->invoice_number;
         //$data['invoice_number'] = $data['invoice_number'].' not found.';
     } else {
         $date = date("Ymd");
         // We change the invoice number in the invoice table only. The order's invoice number is not modified!
         $data['invoice_number'] = $table->invoice_number . '_' . $date . '_' . $table->order_status;
         // We the sanitized file name as the invoice number might contain strange characters like 2015/01.
         $invoice_name_dst = $path . DS . $name . '_deprecated' . $date . '_' . $table->order_status . '.pdf';
         if (!class_exists('JFile')) {
             require VMPATH_LIBS . DS . 'joomla' . DS . 'filesystem' . DS . 'file.php';
         }
         if (!JFile::move($invoice_name_src, $invoice_name_dst)) {
             vmError('Could not rename Invoice ' . $invoice_name_src . ' to ' . $invoice_name_dst);
         }
     }
     $table = $this->getTable('invoices');
     $table->bindChecknStore($data);
     return true;
 }