Esempio n. 1
0
 public function run()
 {
     InvoiceStatus::create(['is_enabled' => true, 'name' => 'Draft', 'code' => 'draft']);
     InvoiceStatus::create(['is_enabled' => true, 'name' => 'Approved', 'code' => 'approved']);
     InvoiceStatus::create(['is_enabled' => true, 'name' => 'Paid', 'code' => 'paid']);
     InvoiceStatus::create(['is_enabled' => true, 'name' => 'Void', 'code' => 'void']);
     InvoiceTemplate::create(['name' => 'Default template', 'code' => 'default', 'is_default' => true]);
 }
Esempio n. 2
0
 public static function createRecord($statusId, $invoice, $comment = null)
 {
     if ($statusId instanceof Model) {
         $statusId = $statusId->getKey();
     }
     if ($invoice->status_id == $statusId) {
         return false;
     }
     $previousStatus = $invoice->status_id;
     /*
      * Create record
      */
     $record = new static();
     $record->status_id = $statusId;
     $record->invoice_id = $invoice->id;
     $record->comment = $comment;
     /*
      * Extensibility
      */
     if (Event::fire('responsiv.pay:beforeUpdateInvoiceStatus', [$record, $invoice, $statusId, $previousStatus], true) === false) {
         return false;
     }
     if ($record->fireEvent('pay:beforeUpdateInvoiceStatus', [$record, $invoice, $statusId, $previousStatus], true) === false) {
         return false;
     }
     $record->save();
     /*
      * Update invoice status
      */
     $invoice->newQuery()->where('id', $invoice->id)->update(['status_id' => $statusId, 'status_updated_at' => Carbon::now()]);
     $statusPaid = InvoiceStatus::getStatusPaid();
     if (!$statusPaid) {
         return traceLog('Unable to find payment status with paid code');
     }
     // @todo Send email notifications
     if ($statusId == $statusPaid->id) {
         // Invoice is paid
     }
 }
Esempio n. 3
0
 /**
  * {@inheritDoc}
  */
 public function updateInvoiceStatus($statusCode)
 {
     if ($status = InvoiceStatus::getByCode($statusCode)) {
         InvoiceStatusLog::createRecord($status, $this);
     }
 }