/** * 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')); }
/** * 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(); } } }
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); } }