Example #1
0
 /**
  * sendinvoice
  * Send the invoice email
  * @return url link
  */
 public function sendinvoiceAction()
 {
     $request = $this->getRequest();
     $invoiceid = $request->getParam('id');
     $order = Invoices::getOrderbyInvoiceId($invoiceid);
     if ($order) {
         if (is_numeric($invoiceid)) {
             if (Invoices::sendInvoice($invoiceid)) {
                 $this->_helper->redirector('edit', 'invoices', 'admin', array('id' => $invoiceid, 'mex' => $this->translator->translate('Invoice sent successfully.'), 'status' => 'success'));
             }
         }
         $this->_helper->redirector('edit', 'invoices', 'admin', array('id' => $invoiceid, 'mex' => $this->translator->translate('The invoice has not been found.'), 'status' => 'danger'));
     }
     $this->_helper->redirector('list', 'invoices', 'admin', array('mex' => $this->translator->translate('The invoice has not been found.'), 'status' => 'danger'));
 }
Example #2
0
 /**
  * Create
  * Create an invoice starting from an order id
  * @param $orderid
  * @return Doctrine Record
  */
 public static function Create($orderid)
 {
     if (is_numeric($orderid)) {
         $invoice_number = InvoicesSettings::getLastInvoice();
         $customer_id = Doctrine::getTable('Orders')->find($orderid)->customer_id;
         // Check if there is an invoice ID set for this order.
         $Invoice = Doctrine::getTable('Invoices')->findOneByOrderId($orderid);
         if (isset($Invoice->invoice_id) && is_numeric($Invoice->invoice_id) && $Invoice->invoice_id > 0) {
             // Set the invoice number to the order
             Orders::setInvoice($orderid, $Invoice->invoice_id);
             return $Invoice->invoice_id;
         }
         try {
             if (is_numeric($customer_id)) {
                 $Invoice = new Invoices();
                 $Invoice->number = $invoice_number;
                 $Invoice->order_id = $orderid;
                 $Invoice->customer_id = $customer_id;
                 $Invoice->invoice_date = date('Y-m-d');
                 $Invoice->save();
                 $invoice_id = $Invoice->getIncremented();
                 Shineisp_Commons_Utilities::log("Created new invoice with id #" . $invoice_id, 'invoices.log');
                 InvoicesSettings::setLastInvoice($invoice_number);
                 Orders::setInvoice($orderid, $invoice_id);
                 // Generate an Invoice Number
                 $invoice_number = self::generateNumber($invoice_id);
                 if (isset($invoice_number)) {
                     Shineisp_Commons_Utilities::log("Generated invoice number " . $invoice_number . " for invoice with id #" . $invoice_id, 'invoices.log');
                     $Invoice->formatted_number = $invoice_number;
                     $Invoice->save();
                 }
                 // Create the pdf invoice document (dropbox event is triggered by this)
                 self::PrintPDF($invoice_id, false, true);
                 if (intval(Settings::findbyParam('auto_send_invoice')) === 1 && $invoice_id > 0) {
                     Invoices::sendInvoice($invoice_id);
                 }
                 return $invoice_id;
             }
         } catch (Exception $e) {
             return $e->getMessage();
         }
     }
 }
Example #3
0
 public function sendInvoice($uuid, $order_uuid = null, $service_uuid = null, $urlemail)
 {
     $this->authenticate();
     $customers = Customers::findWithUuid($uuid);
     if (empty($customers)) {
         throw new Shineisp_Api_Exceptions(400007, ":: 'uuid' not valid");
         exit;
     }
     $id = $customers['customer_id'];
     if ($order_uuid == null && $service_uuid == null) {
         throw new Shineisp_Api_Exceptions(400007, ":: 'order_uuid' not valid and 'service_uuid' not valid");
     }
     #TODO get order from $order_uuid
     if ($service_uuid != null) {
         $objService = OrdersItems::findByUUID($service_uuid);
         if ($objService == false) {
             return false;
         }
         $service = $objService->toArray();
         $orderid = $service['order_id'];
         $order = Orders::find($orderid);
         $fastlink = Invoices::sendInvoice($order->invoice_id, $urlemail);
     }
 }