removed invoice/bill status tables
This commit is contained in:
parent
b5519004a0
commit
08eb8e75fc
@ -47,17 +47,13 @@ abstract class Widget
|
|||||||
|
|
||||||
$today = Date::today()->toDateString();
|
$today = Date::today()->toDateString();
|
||||||
|
|
||||||
$type = ($model instanceof Invoice) ? 'invoice' : 'bill';
|
if ($model->status == 'paid') {
|
||||||
|
|
||||||
$status_field = $type . '_status_code';
|
|
||||||
|
|
||||||
if ($model->$status_field == 'paid') {
|
|
||||||
return [$open, $overdue];
|
return [$open, $overdue];
|
||||||
}
|
}
|
||||||
|
|
||||||
$payments = 0;
|
$payments = 0;
|
||||||
|
|
||||||
if ($model->$status_field == 'partial') {
|
if ($model->status == 'partial') {
|
||||||
foreach ($model->transactions as $transaction) {
|
foreach ($model->transactions as $transaction) {
|
||||||
$payments += $transaction->getAmountConvertedToDefault();
|
$payments += $transaction->getAmountConvertedToDefault();
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Bills extends BulkAction
|
|||||||
$bills = $this->getSelectedRecords($request);
|
$bills = $this->getSelectedRecords($request);
|
||||||
|
|
||||||
foreach ($bills as $bill) {
|
foreach ($bills as $bill) {
|
||||||
$bill->bill_status_code = 'received';
|
$bill->status = 'received';
|
||||||
$bill->save();
|
$bill->save();
|
||||||
|
|
||||||
$description = trans('bills.mark_recevied');
|
$description = trans('bills.mark_recevied');
|
||||||
|
@ -33,7 +33,7 @@ class BillHistories implements FromCollection, ShouldAutoSize, WithHeadings, Wit
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
$model->bill_id,
|
$model->bill_id,
|
||||||
$model->status_code,
|
$model->status,
|
||||||
$model->notify,
|
$model->notify,
|
||||||
$model->description,
|
$model->description,
|
||||||
];
|
];
|
||||||
@ -43,7 +43,7 @@ class BillHistories implements FromCollection, ShouldAutoSize, WithHeadings, Wit
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'bill_id',
|
'bill_id',
|
||||||
'status_code',
|
'status',
|
||||||
'notify',
|
'notify',
|
||||||
'description',
|
'description',
|
||||||
];
|
];
|
||||||
@ -53,4 +53,4 @@ class BillHistories implements FromCollection, ShouldAutoSize, WithHeadings, Wit
|
|||||||
{
|
{
|
||||||
return 'bill_histories';
|
return 'bill_histories';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Bills implements FromCollection, ShouldAutoSize, WithHeadings, WithMapping
|
|||||||
return [
|
return [
|
||||||
$model->bill_number,
|
$model->bill_number,
|
||||||
$model->order_number,
|
$model->order_number,
|
||||||
$model->bill_status_code,
|
$model->status,
|
||||||
$model->billed_at,
|
$model->billed_at,
|
||||||
$model->due_at,
|
$model->due_at,
|
||||||
$model->amount,
|
$model->amount,
|
||||||
@ -57,7 +57,7 @@ class Bills implements FromCollection, ShouldAutoSize, WithHeadings, WithMapping
|
|||||||
return [
|
return [
|
||||||
'bill_number',
|
'bill_number',
|
||||||
'order_number',
|
'order_number',
|
||||||
'bill_status_code',
|
'status',
|
||||||
'billed_at',
|
'billed_at',
|
||||||
'due_at',
|
'due_at',
|
||||||
'amount',
|
'amount',
|
||||||
|
@ -33,7 +33,7 @@ class InvoiceHistories implements FromCollection, ShouldAutoSize, WithHeadings,
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
$model->invoice_id,
|
$model->invoice_id,
|
||||||
$model->status_code,
|
$model->status,
|
||||||
$model->notify,
|
$model->notify,
|
||||||
$model->description,
|
$model->description,
|
||||||
];
|
];
|
||||||
@ -43,7 +43,7 @@ class InvoiceHistories implements FromCollection, ShouldAutoSize, WithHeadings,
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'invoice_id',
|
'invoice_id',
|
||||||
'status_code',
|
'status',
|
||||||
'notify',
|
'notify',
|
||||||
'description',
|
'description',
|
||||||
];
|
];
|
||||||
@ -53,4 +53,4 @@ class InvoiceHistories implements FromCollection, ShouldAutoSize, WithHeadings,
|
|||||||
{
|
{
|
||||||
return 'invoice_histories';
|
return 'invoice_histories';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Invoices implements FromCollection, ShouldAutoSize, WithHeadings, WithMapp
|
|||||||
return [
|
return [
|
||||||
$model->invoice_number,
|
$model->invoice_number,
|
||||||
$model->order_number,
|
$model->order_number,
|
||||||
$model->invoice_status_code,
|
$model->status,
|
||||||
$model->invoiced_at,
|
$model->invoiced_at,
|
||||||
$model->due_at,
|
$model->due_at,
|
||||||
$model->amount,
|
$model->amount,
|
||||||
@ -57,7 +57,7 @@ class Invoices implements FromCollection, ShouldAutoSize, WithHeadings, WithMapp
|
|||||||
return [
|
return [
|
||||||
'invoice_number',
|
'invoice_number',
|
||||||
'order_number',
|
'order_number',
|
||||||
'invoice_status_code',
|
'status',
|
||||||
'invoiced_at',
|
'invoiced_at',
|
||||||
'due_at',
|
'due_at',
|
||||||
'amount',
|
'amount',
|
||||||
|
@ -40,7 +40,7 @@ class Dashboard extends Controller
|
|||||||
$unpaid = $paid = $overdue = $partial_paid = [];
|
$unpaid = $paid = $overdue = $partial_paid = [];
|
||||||
|
|
||||||
foreach ($invoices as $invoice) {
|
foreach ($invoices as $invoice) {
|
||||||
switch ($invoice->invoice_status_code) {
|
switch ($invoice->status) {
|
||||||
case 'paid':
|
case 'paid':
|
||||||
$paid[] = $invoice;
|
$paid[] = $invoice;
|
||||||
break;
|
break;
|
||||||
|
@ -6,18 +6,18 @@ use App\Abstracts\Http\Controller;
|
|||||||
use App\Models\Banking\Account;
|
use App\Models\Banking\Account;
|
||||||
use App\Models\Common\Contact;
|
use App\Models\Common\Contact;
|
||||||
use App\Models\Sale\Invoice;
|
use App\Models\Sale\Invoice;
|
||||||
use App\Models\Sale\InvoiceStatus;
|
|
||||||
use App\Models\Setting\Category;
|
use App\Models\Setting\Category;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use App\Traits\Sales;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
use Illuminate\Support\Facades\URL;
|
use Illuminate\Support\Facades\URL;
|
||||||
|
|
||||||
class Invoices extends Controller
|
class Invoices extends Controller
|
||||||
{
|
{
|
||||||
use DateTime, Currencies, Uploads;
|
use DateTime, Currencies, Sales, Uploads;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
@ -32,10 +32,7 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
$categories = collect(Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id'));
|
$categories = collect(Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id'));
|
||||||
|
|
||||||
$statuses = collect(InvoiceStatus::get()->each(function ($item) {
|
$statuses = $this->getInvoiceStatuses();
|
||||||
$item->name = trans('invoices.status.' . $item->code);
|
|
||||||
return $item;
|
|
||||||
})->pluck('name', 'code'));
|
|
||||||
|
|
||||||
return view('portal.invoices.index', compact('invoices', 'categories', 'statuses'));
|
return view('portal.invoices.index', compact('invoices', 'categories', 'statuses'));
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,6 @@ use App\Jobs\Purchase\UpdateBill;
|
|||||||
use App\Models\Banking\Account;
|
use App\Models\Banking\Account;
|
||||||
use App\Models\Common\Contact;
|
use App\Models\Common\Contact;
|
||||||
use App\Models\Common\Item;
|
use App\Models\Common\Item;
|
||||||
use App\Models\Purchase\BillStatus;
|
|
||||||
use App\Models\Purchase\Bill;
|
use App\Models\Purchase\Bill;
|
||||||
use App\Models\Purchase\BillHistory;
|
use App\Models\Purchase\BillHistory;
|
||||||
use App\Models\Setting\Category;
|
use App\Models\Setting\Category;
|
||||||
@ -24,12 +23,13 @@ use App\Models\Setting\Tax;
|
|||||||
use App\Traits\Contacts;
|
use App\Traits\Contacts;
|
||||||
use App\Traits\Currencies;
|
use App\Traits\Currencies;
|
||||||
use App\Traits\DateTime;
|
use App\Traits\DateTime;
|
||||||
|
use App\Traits\Purchases;
|
||||||
use App\Traits\Uploads;
|
use App\Traits\Uploads;
|
||||||
use App\Utilities\Modules;
|
use App\Utilities\Modules;
|
||||||
|
|
||||||
class Bills extends Controller
|
class Bills extends Controller
|
||||||
{
|
{
|
||||||
use Contacts, Currencies, DateTime, Uploads;
|
use Contacts, Currencies, DateTime, Purchases, Uploads;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
@ -44,10 +44,7 @@ class Bills extends Controller
|
|||||||
|
|
||||||
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
|
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
|
||||||
|
|
||||||
$statuses = collect(BillStatus::get()->each(function ($item) {
|
$statuses = $this->getBillStatuses();
|
||||||
$item->name = trans('bills.status.' . $item->code);
|
|
||||||
return $item;
|
|
||||||
})->pluck('name', 'code'));
|
|
||||||
|
|
||||||
return view('purchases.bills.index', compact('bills', 'vendors', 'categories', 'statuses'));
|
return view('purchases.bills.index', compact('bills', 'vendors', 'categories', 'statuses'));
|
||||||
}
|
}
|
||||||
@ -270,14 +267,14 @@ class Bills extends Controller
|
|||||||
*/
|
*/
|
||||||
public function markReceived(Bill $bill)
|
public function markReceived(Bill $bill)
|
||||||
{
|
{
|
||||||
$bill->bill_status_code = 'received';
|
$bill->status = 'received';
|
||||||
$bill->save();
|
$bill->save();
|
||||||
|
|
||||||
// Add bill history
|
// Add bill history
|
||||||
BillHistory::create([
|
BillHistory::create([
|
||||||
'company_id' => $bill->company_id,
|
'company_id' => $bill->company_id,
|
||||||
'bill_id' => $bill->id,
|
'bill_id' => $bill->id,
|
||||||
'status_code' => 'received',
|
'status' => 'received',
|
||||||
'notify' => 0,
|
'notify' => 0,
|
||||||
'description' => trans('bills.mark_received'),
|
'description' => trans('bills.mark_received'),
|
||||||
]);
|
]);
|
||||||
|
@ -59,7 +59,7 @@ class Vendors extends Controller
|
|||||||
|
|
||||||
foreach ($bills as $item) {
|
foreach ($bills as $item) {
|
||||||
// Already in transactions
|
// Already in transactions
|
||||||
if ($item->bill_status_code == 'paid') {
|
if ($item->status == 'paid') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ class Customers extends Controller
|
|||||||
|
|
||||||
foreach ($invoices as $item) {
|
foreach ($invoices as $item) {
|
||||||
// Already in transactions
|
// Already in transactions
|
||||||
if ($item->invoice_status_code == 'paid') {
|
if ($item->status == 'paid') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@ use App\Models\Banking\Account;
|
|||||||
use App\Models\Common\Contact;
|
use App\Models\Common\Contact;
|
||||||
use App\Models\Common\Item;
|
use App\Models\Common\Item;
|
||||||
use App\Models\Sale\Invoice;
|
use App\Models\Sale\Invoice;
|
||||||
use App\Models\Sale\InvoiceStatus;
|
|
||||||
use App\Models\Setting\Category;
|
use App\Models\Setting\Category;
|
||||||
use App\Models\Setting\Currency;
|
use App\Models\Setting\Currency;
|
||||||
use App\Models\Setting\Tax;
|
use App\Models\Setting\Tax;
|
||||||
@ -46,10 +45,7 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
|
$categories = Category::type('income')->enabled()->orderBy('name')->pluck('name', 'id');
|
||||||
|
|
||||||
$statuses = collect(InvoiceStatus::get()->each(function ($item) {
|
$statuses = $this->getInvoiceStatuses();
|
||||||
$item->name = trans('invoices.status.' . $item->code);
|
|
||||||
return $item;
|
|
||||||
})->pluck('name', 'code'));
|
|
||||||
|
|
||||||
return view('sales.invoices.index', compact('invoices', 'customers', 'categories', 'statuses'));
|
return view('sales.invoices.index', compact('invoices', 'customers', 'categories', 'statuses'));
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class Bill extends FormRequest
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'bill_number' => 'required|string|unique:bills,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
'bill_number' => 'required|string|unique:bills,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
||||||
'bill_status_code' => 'required|string',
|
'status' => 'required|string',
|
||||||
'billed_at' => 'required|date_format:Y-m-d H:i:s',
|
'billed_at' => 'required|date_format:Y-m-d H:i:s',
|
||||||
'due_at' => 'required|date_format:Y-m-d H:i:s',
|
'due_at' => 'required|date_format:Y-m-d H:i:s',
|
||||||
'amount' => 'required',
|
'amount' => 'required',
|
||||||
|
@ -25,7 +25,7 @@ class BillHistory extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'bill_id' => 'required|integer',
|
'bill_id' => 'required|integer',
|
||||||
'status_code' => 'required|string',
|
'status' => 'required|string',
|
||||||
'notify' => 'required|integer',
|
'notify' => 'required|integer',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class Invoice extends FormRequest
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'invoice_number' => 'required|string|unique:invoices,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
'invoice_number' => 'required|string|unique:invoices,NULL,' . $id . ',id,company_id,' . $company_id . ',deleted_at,NULL',
|
||||||
'invoice_status_code' => 'required|string',
|
'status' => 'required|string',
|
||||||
'invoiced_at' => 'required|date_format:Y-m-d H:i:s',
|
'invoiced_at' => 'required|date_format:Y-m-d H:i:s',
|
||||||
'due_at' => 'required|date_format:Y-m-d H:i:s',
|
'due_at' => 'required|date_format:Y-m-d H:i:s',
|
||||||
'amount' => 'required',
|
'amount' => 'required',
|
||||||
|
@ -25,7 +25,7 @@ class InvoiceHistory extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'invoice_id' => 'required|integer',
|
'invoice_id' => 'required|integer',
|
||||||
'status_code' => 'required|string',
|
'status' => 'required|string',
|
||||||
'notify' => 'required|integer',
|
'notify' => 'required|integer',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ class CreateDocumentTransaction extends Job
|
|||||||
|
|
||||||
throw new \Exception($message);
|
throw new \Exception($message);
|
||||||
} else {
|
} else {
|
||||||
$this->setStatusCode($amount_check, $total_amount_check);
|
$this->model->status = ($amount_check == $total_amount_check) ? 'paid' : 'partial';
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -189,17 +189,6 @@ class CreateDocumentTransaction extends Job
|
|||||||
return $paid;
|
return $paid;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setStatusCode($amount_check, $total_amount_check)
|
|
||||||
{
|
|
||||||
$column = ($this->model instanceof Invoice) ? 'invoice_status_code' : 'bill_status_code';
|
|
||||||
|
|
||||||
if ($amount_check == $total_amount_check) {
|
|
||||||
$this->model->$column = 'paid';
|
|
||||||
} else {
|
|
||||||
$this->model->$column = 'partial';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function createHistory($transaction)
|
protected function createHistory($transaction)
|
||||||
{
|
{
|
||||||
$history_desc = money((double) $transaction->amount, (string) $transaction->currency_code, true)->format() . ' ' . trans_choice('general.payments', 1);
|
$history_desc = money((double) $transaction->amount, (string) $transaction->currency_code, true)->format() . ' ' . trans_choice('general.payments', 1);
|
||||||
|
@ -32,9 +32,9 @@ class DeleteCompany extends Job
|
|||||||
$this->authorize();
|
$this->authorize();
|
||||||
|
|
||||||
$this->deleteRelationships($this->company, [
|
$this->deleteRelationships($this->company, [
|
||||||
'accounts', 'bills', 'bill_histories', 'bill_items', 'bill_item_taxes', 'bill_statuses', 'bill_totals', 'categories',
|
'accounts', 'bills', 'bill_histories', 'bill_items', 'bill_item_taxes', 'bill_totals', 'categories',
|
||||||
'contacts', 'currencies', 'dashboards', 'email_templates', 'invoices', 'invoice_histories', 'invoice_items',
|
'contacts', 'currencies', 'dashboards', 'email_templates', 'invoices', 'invoice_histories', 'invoice_items',
|
||||||
'invoice_item_taxes', 'invoice_statuses', 'invoice_totals', 'items', 'modules', 'module_histories', 'reconciliations',
|
'invoice_item_taxes', 'invoice_totals', 'items', 'modules', 'module_histories', 'reconciliations',
|
||||||
'recurring', 'reports', 'settings', 'taxes', 'transactions', 'transfers', 'widgets',
|
'recurring', 'reports', 'settings', 'taxes', 'transactions', 'transfers', 'widgets',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ class CreateBillHistory extends Job
|
|||||||
$bill_history = BillHistory::create([
|
$bill_history = BillHistory::create([
|
||||||
'company_id' => $this->bill->company_id,
|
'company_id' => $this->bill->company_id,
|
||||||
'bill_id' => $this->bill->id,
|
'bill_id' => $this->bill->id,
|
||||||
'status_code' => $this->bill->bill_status_code,
|
'status' => $this->bill->status,
|
||||||
'notify' => $this->notify,
|
'notify' => $this->notify,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
]);
|
]);
|
||||||
|
@ -33,7 +33,7 @@ class DuplicateBill extends Job
|
|||||||
BillHistory::create([
|
BillHistory::create([
|
||||||
'company_id' => session('company_id'),
|
'company_id' => session('company_id'),
|
||||||
'bill_id' => $clone->id,
|
'bill_id' => $clone->id,
|
||||||
'status_code' => 'draft',
|
'status' => 'draft',
|
||||||
'notify' => 0,
|
'notify' => 0,
|
||||||
'description' => trans('messages.success.added', ['type' => $clone->bill_number]),
|
'description' => trans('messages.success.added', ['type' => $clone->bill_number]),
|
||||||
]);
|
]);
|
||||||
|
@ -57,7 +57,7 @@ class UpdateBill extends Job
|
|||||||
unset($this->bill->reconciled);
|
unset($this->bill->reconciled);
|
||||||
|
|
||||||
if (($bill_paid) && $this->request['amount'] > $bill_paid) {
|
if (($bill_paid) && $this->request['amount'] > $bill_paid) {
|
||||||
$this->request['bill_status_code'] = 'partial';
|
$this->request['status'] = 'partial';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->bill->update($this->request->input());
|
$this->bill->update($this->request->input());
|
||||||
|
@ -39,7 +39,7 @@ class CreateInvoiceHistory extends Job
|
|||||||
$invoice_history = InvoiceHistory::create([
|
$invoice_history = InvoiceHistory::create([
|
||||||
'company_id' => $this->invoice->company_id,
|
'company_id' => $this->invoice->company_id,
|
||||||
'invoice_id' => $this->invoice->id,
|
'invoice_id' => $this->invoice->id,
|
||||||
'status_code' => $this->invoice->invoice_status_code,
|
'status' => $this->invoice->status,
|
||||||
'notify' => $this->notify,
|
'notify' => $this->notify,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
]);
|
]);
|
||||||
|
@ -57,7 +57,7 @@ class UpdateInvoice extends Job
|
|||||||
unset($this->invoice->reconciled);
|
unset($this->invoice->reconciled);
|
||||||
|
|
||||||
if (($invoice_paid) && $this->request['amount'] > $invoice_paid) {
|
if (($invoice_paid) && $this->request['amount'] > $invoice_paid) {
|
||||||
$this->request['invoice_status_code'] = 'partial';
|
$this->request['status'] = 'partial';
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->invoice->update($this->request->all());
|
$this->invoice->update($this->request->all());
|
||||||
|
@ -16,8 +16,8 @@ class MarkInvoiceSent
|
|||||||
public function handle(Event $event)
|
public function handle(Event $event)
|
||||||
{
|
{
|
||||||
// Mark invoice as sent
|
// Mark invoice as sent
|
||||||
if ($event->invoice->invoice_status_code != 'partial') {
|
if ($event->invoice->status != 'partial') {
|
||||||
$event->invoice->invoice_status_code = 'sent';
|
$event->invoice->status = 'sent';
|
||||||
|
|
||||||
$event->invoice->save();
|
$event->invoice->save();
|
||||||
}
|
}
|
||||||
@ -26,7 +26,7 @@ class MarkInvoiceSent
|
|||||||
InvoiceHistory::create([
|
InvoiceHistory::create([
|
||||||
'company_id' => $event->invoice->company_id,
|
'company_id' => $event->invoice->company_id,
|
||||||
'invoice_id' => $event->invoice->id,
|
'invoice_id' => $event->invoice->id,
|
||||||
'status_code' => 'sent',
|
'status' => 'sent',
|
||||||
'notify' => 0,
|
'notify' => 0,
|
||||||
'description' => trans('invoices.mark_sent'),
|
'description' => trans('invoices.mark_sent'),
|
||||||
]);
|
]);
|
||||||
|
@ -16,13 +16,13 @@ class MarkInvoiceViewed
|
|||||||
{
|
{
|
||||||
$invoice = $event->invoice;
|
$invoice = $event->invoice;
|
||||||
|
|
||||||
if ($invoice->invoice_status_code != 'sent') {
|
if ($invoice->status != 'sent') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($invoice->paid);
|
unset($invoice->paid);
|
||||||
|
|
||||||
$invoice->invoice_status_code = 'viewed';
|
$invoice->status = 'viewed';
|
||||||
$invoice->save();
|
$invoice->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,11 +63,6 @@ class Company extends Eloquent
|
|||||||
return $this->hasMany('App\Models\Purchase\BillItemTax');
|
return $this->hasMany('App\Models\Purchase\BillItemTax');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function bill_statuses()
|
|
||||||
{
|
|
||||||
return $this->hasMany('App\Models\Purchase\BillStatus');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function bill_totals()
|
public function bill_totals()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Purchase\BillTotal');
|
return $this->hasMany('App\Models\Purchase\BillTotal');
|
||||||
@ -133,11 +128,6 @@ class Company extends Eloquent
|
|||||||
return $this->hasMany('App\Models\Sale\InvoiceItemTax');
|
return $this->hasMany('App\Models\Sale\InvoiceItemTax');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function invoice_statuses()
|
|
||||||
{
|
|
||||||
return $this->hasMany('App\Models\Sale\InvoiceStatus');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function invoice_totals()
|
public function invoice_totals()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Sale\InvoiceTotal');
|
return $this->hasMany('App\Models\Sale\InvoiceTotal');
|
||||||
|
@ -23,7 +23,7 @@ class Bill extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $appends = ['attachment', 'amount_without_tax', 'discount', 'paid'];
|
protected $appends = ['attachment', 'amount_without_tax', 'discount', 'paid', 'status_label'];
|
||||||
|
|
||||||
protected $dates = ['deleted_at', 'billed_at', 'due_at'];
|
protected $dates = ['deleted_at', 'billed_at', 'due_at'];
|
||||||
|
|
||||||
@ -32,14 +32,14 @@ class Bill extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['company_id', 'bill_number', 'order_number', 'bill_status_code', 'billed_at', 'due_at', 'amount', 'currency_code', 'currency_rate', 'contact_id', 'contact_name', 'contact_email', 'contact_tax_number', 'contact_phone', 'contact_address', 'notes', 'category_id', 'parent_id'];
|
protected $fillable = ['company_id', 'bill_number', 'order_number', 'status', 'billed_at', 'due_at', 'amount', 'currency_code', 'currency_rate', 'contact_id', 'contact_name', 'contact_email', 'contact_tax_number', 'contact_phone', 'contact_address', 'notes', 'category_id', 'parent_id'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sortable columns.
|
* Sortable columns.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $sortable = ['bill_number', 'contact_name', 'amount', 'status.name', 'billed_at', 'due_at', 'bill_status_code'];
|
public $sortable = ['bill_number', 'contact_name', 'amount', 'status', 'billed_at', 'due_at'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clonable relationships.
|
* Clonable relationships.
|
||||||
@ -83,11 +83,6 @@ class Bill extends Model
|
|||||||
return $this->morphOne('App\Models\Common\Recurring', 'recurable');
|
return $this->morphOne('App\Models\Common\Recurring', 'recurable');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function status()
|
|
||||||
{
|
|
||||||
return $this->belongsTo('App\Models\Purchase\BillStatus', 'bill_status_code', 'code');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function totals()
|
public function totals()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Purchase\BillTotal');
|
return $this->hasMany('App\Models\Purchase\BillTotal');
|
||||||
@ -110,22 +105,22 @@ class Bill extends Model
|
|||||||
|
|
||||||
public function scopeAccrued($query)
|
public function scopeAccrued($query)
|
||||||
{
|
{
|
||||||
return $query->where('bill_status_code', '<>', 'draft');
|
return $query->where('status', '<>', 'draft');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopePaid($query)
|
public function scopePaid($query)
|
||||||
{
|
{
|
||||||
return $query->where('bill_status_code', '=', 'paid');
|
return $query->where('status', '=', 'paid');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopeNotPaid($query)
|
public function scopeNotPaid($query)
|
||||||
{
|
{
|
||||||
return $query->where('bill_status_code', '<>', 'paid');
|
return $query->where('status', '<>', 'paid');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onCloning($src, $child = null)
|
public function onCloning($src, $child = null)
|
||||||
{
|
{
|
||||||
$this->bill_status_code = 'draft';
|
$this->status = 'draft';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -256,4 +251,30 @@ class Bill extends Model
|
|||||||
|
|
||||||
return $paid;
|
return $paid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the status label.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getLabelAttribute()
|
||||||
|
{
|
||||||
|
switch ($this->code) {
|
||||||
|
case 'paid':
|
||||||
|
$label = 'success';
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
$label = 'danger';
|
||||||
|
break;
|
||||||
|
case 'partial':
|
||||||
|
case 'received':
|
||||||
|
$label = 'warning';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$label = 'info';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $label;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,15 +17,10 @@ class BillHistory extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['company_id', 'bill_id', 'status_code', 'notify', 'description'];
|
protected $fillable = ['company_id', 'bill_id', 'status', 'notify', 'description'];
|
||||||
|
|
||||||
public function bill()
|
public function bill()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Purchase\Bill');
|
return $this->belongsTo('App\Models\Purchase\Bill');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function status()
|
|
||||||
{
|
|
||||||
return $this->belongsTo('App\Models\Purchase\BillStatus', 'status_code', 'code');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models\Purchase;
|
|
||||||
|
|
||||||
use App\Abstracts\Model;
|
|
||||||
|
|
||||||
class BillStatus extends Model
|
|
||||||
{
|
|
||||||
|
|
||||||
protected $table = 'bill_statuses';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The accessors to append to the model's array form.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $appends = ['label'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attributes that should be mass-assignable.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $fillable = ['company_id', 'name', 'code'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the status label.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getLabelAttribute()
|
|
||||||
{
|
|
||||||
switch ($this->code) {
|
|
||||||
case 'paid':
|
|
||||||
$label = 'success';
|
|
||||||
break;
|
|
||||||
case 'delete':
|
|
||||||
$label = 'danger';
|
|
||||||
break;
|
|
||||||
case 'partial':
|
|
||||||
case 'received':
|
|
||||||
$label = 'warning';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$label = 'info';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $label;
|
|
||||||
}
|
|
||||||
}
|
|
@ -23,7 +23,7 @@ class Invoice extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $appends = ['attachment', 'amount_without_tax', 'discount', 'paid'];
|
protected $appends = ['attachment', 'amount_without_tax', 'discount', 'paid', 'status_label'];
|
||||||
|
|
||||||
protected $dates = ['deleted_at', 'invoiced_at', 'due_at'];
|
protected $dates = ['deleted_at', 'invoiced_at', 'due_at'];
|
||||||
|
|
||||||
@ -32,14 +32,14 @@ class Invoice extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['company_id', 'invoice_number', 'order_number', 'invoice_status_code', 'invoiced_at', 'due_at', 'amount', 'currency_code', 'currency_rate', 'contact_id', 'contact_name', 'contact_email', 'contact_tax_number', 'contact_phone', 'contact_address', 'notes', 'category_id', 'parent_id', 'footer'];
|
protected $fillable = ['company_id', 'invoice_number', 'order_number', 'status', 'invoiced_at', 'due_at', 'amount', 'currency_code', 'currency_rate', 'contact_id', 'contact_name', 'contact_email', 'contact_tax_number', 'contact_phone', 'contact_address', 'notes', 'category_id', 'parent_id', 'footer'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sortable columns.
|
* Sortable columns.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public $sortable = ['invoice_number', 'contact_name', 'amount', 'status' , 'invoiced_at', 'due_at', 'invoice_status_code'];
|
public $sortable = ['invoice_number', 'contact_name', 'amount', 'status' , 'invoiced_at', 'due_at'];
|
||||||
|
|
||||||
protected $reconciled_amount = [];
|
protected $reconciled_amount = [];
|
||||||
|
|
||||||
@ -90,11 +90,6 @@ class Invoice extends Model
|
|||||||
return $this->morphOne('App\Models\Common\Recurring', 'recurable');
|
return $this->morphOne('App\Models\Common\Recurring', 'recurable');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function status()
|
|
||||||
{
|
|
||||||
return $this->belongsTo('App\Models\Sale\InvoiceStatus', 'invoice_status_code', 'code');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function totals()
|
public function totals()
|
||||||
{
|
{
|
||||||
return $this->hasMany('App\Models\Sale\InvoiceTotal');
|
return $this->hasMany('App\Models\Sale\InvoiceTotal');
|
||||||
@ -117,22 +112,22 @@ class Invoice extends Model
|
|||||||
|
|
||||||
public function scopeAccrued($query)
|
public function scopeAccrued($query)
|
||||||
{
|
{
|
||||||
return $query->where('invoice_status_code', '<>', 'draft');
|
return $query->where('status', '<>', 'draft');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopePaid($query)
|
public function scopePaid($query)
|
||||||
{
|
{
|
||||||
return $query->where('invoice_status_code', '=', 'paid');
|
return $query->where('status', '=', 'paid');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopeNotPaid($query)
|
public function scopeNotPaid($query)
|
||||||
{
|
{
|
||||||
return $query->where('invoice_status_code', '<>', 'paid');
|
return $query->where('status', '<>', 'paid');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onCloning($src, $child = null)
|
public function onCloning($src, $child = null)
|
||||||
{
|
{
|
||||||
$this->invoice_status_code = 'draft';
|
$this->status = 'draft';
|
||||||
$this->invoice_number = $this->getNextInvoiceNumber();
|
$this->invoice_number = $this->getNextInvoiceNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,4 +259,30 @@ class Invoice extends Model
|
|||||||
|
|
||||||
return $paid;
|
return $paid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the status label.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getStatusLabelAttribute()
|
||||||
|
{
|
||||||
|
switch ($this->status) {
|
||||||
|
case 'paid':
|
||||||
|
$label = 'success';
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
$label = 'danger';
|
||||||
|
break;
|
||||||
|
case 'partial':
|
||||||
|
case 'sent':
|
||||||
|
$label = 'warning';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$label = 'info';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $label;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ use App\Traits\Currencies;
|
|||||||
|
|
||||||
class InvoiceHistory extends Model
|
class InvoiceHistory extends Model
|
||||||
{
|
{
|
||||||
|
|
||||||
use Currencies;
|
use Currencies;
|
||||||
|
|
||||||
protected $table = 'invoice_histories';
|
protected $table = 'invoice_histories';
|
||||||
@ -17,15 +16,10 @@ class InvoiceHistory extends Model
|
|||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = ['company_id', 'invoice_id', 'status_code', 'notify', 'description'];
|
protected $fillable = ['company_id', 'invoice_id', 'status', 'notify', 'description'];
|
||||||
|
|
||||||
public function invoice()
|
public function invoice()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Sale\Invoice');
|
return $this->belongsTo('App\Models\Sale\Invoice');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function status()
|
|
||||||
{
|
|
||||||
return $this->belongsTo('App\Models\Sale\InvoiceStatus', 'status_code', 'code');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models\Sale;
|
|
||||||
|
|
||||||
use App\Abstracts\Model;
|
|
||||||
|
|
||||||
class InvoiceStatus extends Model
|
|
||||||
{
|
|
||||||
|
|
||||||
protected $table = 'invoice_statuses';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The accessors to append to the model's array form.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $appends = ['label'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attributes that should be mass-assignable.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $fillable = ['company_id', 'name', 'code'];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the status label.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getLabelAttribute()
|
|
||||||
{
|
|
||||||
switch ($this->code) {
|
|
||||||
case 'paid':
|
|
||||||
$label = 'success';
|
|
||||||
break;
|
|
||||||
case 'delete':
|
|
||||||
$label = 'danger';
|
|
||||||
break;
|
|
||||||
case 'partial':
|
|
||||||
case 'sent':
|
|
||||||
$label = 'warning';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$label = 'info';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $label;
|
|
||||||
}
|
|
||||||
}
|
|
@ -100,7 +100,7 @@ class PaymentReceived extends Notification
|
|||||||
$this->invoice->invoice_number,
|
$this->invoice->invoice_number,
|
||||||
money($this->invoice->amount, $this->invoice->currency_code, true),
|
money($this->invoice->amount, $this->invoice->currency_code, true),
|
||||||
$this->invoice->due_at,
|
$this->invoice->due_at,
|
||||||
trans('invoices.status.' . $this->invoice->invoice_status_code),
|
trans('invoices.statuses.' . $this->invoice->status),
|
||||||
URL::signedRoute('signed.invoices.show', [$this->invoice->id, 'company_id' => $this->invoice->company_id]),
|
URL::signedRoute('signed.invoices.show', [$this->invoice->id, 'company_id' => $this->invoice->company_id]),
|
||||||
route('invoices.show', $this->invoice->id),
|
route('invoices.show', $this->invoice->id),
|
||||||
route('portal.invoices.show', $this->invoice->id),
|
route('portal.invoices.show', $this->invoice->id),
|
||||||
|
@ -32,7 +32,7 @@ class Transaction
|
|||||||
{
|
{
|
||||||
$invoice = $transaction->invoice;
|
$invoice = $transaction->invoice;
|
||||||
|
|
||||||
$invoice->invoice_status_code = ($invoice->transactions->count() > 1) ? 'partial' : 'sent';
|
$invoice->status = ($invoice->transactions->count() > 1) ? 'partial' : 'sent';
|
||||||
|
|
||||||
$invoice->save();
|
$invoice->save();
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ class Transaction
|
|||||||
{
|
{
|
||||||
$bill = $transaction->bill;
|
$bill = $transaction->bill;
|
||||||
|
|
||||||
$bill->bill_status_code = ($bill->transactions->count() > 1) ? 'partial' : 'received';
|
$bill->status = ($bill->transactions->count() > 1) ? 'partial' : 'received';
|
||||||
|
|
||||||
$bill->save();
|
$bill->save();
|
||||||
|
|
||||||
|
33
app/Traits/Purchases.php
Normal file
33
app/Traits/Purchases.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Traits;
|
||||||
|
|
||||||
|
trait Purchases
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get a collection of bill statuses
|
||||||
|
*
|
||||||
|
* @return Collection
|
||||||
|
*/
|
||||||
|
public function getBillStatuses()
|
||||||
|
{
|
||||||
|
$list = [
|
||||||
|
'draft',
|
||||||
|
'received',
|
||||||
|
'partial',
|
||||||
|
'paid',
|
||||||
|
'overdue',
|
||||||
|
'unpaid',
|
||||||
|
];
|
||||||
|
|
||||||
|
$statuses = collect($list)->each(function ($code) {
|
||||||
|
$item = new \stdClass();
|
||||||
|
$item->code = $code;
|
||||||
|
$item->name = trans('bills.statuses.' . $code);
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $statuses;
|
||||||
|
}
|
||||||
|
}
|
@ -30,4 +30,33 @@ trait Sales
|
|||||||
setting(['invoice.number_next' => $next]);
|
setting(['invoice.number_next' => $next]);
|
||||||
setting()->save();
|
setting()->save();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* Get a collection invoice statuses
|
||||||
|
*
|
||||||
|
* @return Collection
|
||||||
|
*/
|
||||||
|
public function getInvoiceStatuses()
|
||||||
|
{
|
||||||
|
$list = [
|
||||||
|
'draft',
|
||||||
|
'sent',
|
||||||
|
'viewed',
|
||||||
|
'approved',
|
||||||
|
'partial',
|
||||||
|
'paid',
|
||||||
|
'overdue',
|
||||||
|
'unpaid',
|
||||||
|
];
|
||||||
|
|
||||||
|
$statuses = collect($list)->each(function ($code) {
|
||||||
|
$item = new \stdClass();
|
||||||
|
$item->code = $code;
|
||||||
|
$item->name = trans('invoices.statuses.' . $code);
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $statuses;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -13,7 +13,7 @@ class Bill extends TransformerAbstract
|
|||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'status', 'transactions'];
|
protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'transactions'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Model $model
|
* @param Model $model
|
||||||
@ -26,7 +26,7 @@ class Bill extends TransformerAbstract
|
|||||||
'company_id' => $model->company_id,
|
'company_id' => $model->company_id,
|
||||||
'bill_number' => $model->bill_number,
|
'bill_number' => $model->bill_number,
|
||||||
'order_number' => $model->order_number,
|
'order_number' => $model->order_number,
|
||||||
'bill_status_code' => $model->invoice_status_code,
|
'status' => $model->status,
|
||||||
'billed_at' => $model->billed_at ? $model->billed_at->toIso8601String() : '',
|
'billed_at' => $model->billed_at ? $model->billed_at->toIso8601String() : '',
|
||||||
'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
|
'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
|
||||||
'amount' => $model->amount,
|
'amount' => $model->amount,
|
||||||
@ -81,15 +81,6 @@ class Bill extends TransformerAbstract
|
|||||||
return $this->collection($model->items, new BillItems());
|
return $this->collection($model->items, new BillItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Model $model
|
|
||||||
* @return \League\Fractal\Resource\Item
|
|
||||||
*/
|
|
||||||
public function includeStatus(Model $model)
|
|
||||||
{
|
|
||||||
return $this->item($model->status, new BillStatus());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Model $model
|
* @param Model $model
|
||||||
* @return \League\Fractal\Resource\Collection
|
* @return \League\Fractal\Resource\Collection
|
||||||
|
@ -17,7 +17,7 @@ class BillHistories extends TransformerAbstract
|
|||||||
'id' => $model->id,
|
'id' => $model->id,
|
||||||
'company_id' => $model->company_id,
|
'company_id' => $model->company_id,
|
||||||
'bill_id' => $model->bill_id,
|
'bill_id' => $model->bill_id,
|
||||||
'status_code' => $model->status_code,
|
'status' => $model->status,
|
||||||
'notify' => $model->notify,
|
'notify' => $model->notify,
|
||||||
'description' => $model->description,
|
'description' => $model->description,
|
||||||
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Transformers\Purchase;
|
|
||||||
|
|
||||||
use App\Models\Purchase\BillStatus as Model;
|
|
||||||
use League\Fractal\TransformerAbstract;
|
|
||||||
|
|
||||||
class BillStatus extends TransformerAbstract
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Model $model
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function transform(Model $model)
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $model->id,
|
|
||||||
'company_id' => $model->company_id,
|
|
||||||
'name' => $model->name,
|
|
||||||
'code' => $model->code,
|
|
||||||
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
|
||||||
'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ class Invoice extends TransformerAbstract
|
|||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'status', 'transactions'];
|
protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'transactions'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Model $model
|
* @param Model $model
|
||||||
@ -26,7 +26,7 @@ class Invoice extends TransformerAbstract
|
|||||||
'company_id' => $model->company_id,
|
'company_id' => $model->company_id,
|
||||||
'invoice_number' => $model->invoice_number,
|
'invoice_number' => $model->invoice_number,
|
||||||
'order_number' => $model->order_number,
|
'order_number' => $model->order_number,
|
||||||
'invoice_status_code' => $model->invoice_status_code,
|
'status' => $model->status,
|
||||||
'invoiced_at' => $model->invoiced_at ? $model->invoiced_at->toIso8601String() : '',
|
'invoiced_at' => $model->invoiced_at ? $model->invoiced_at->toIso8601String() : '',
|
||||||
'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
|
'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
|
||||||
'amount' => $model->amount,
|
'amount' => $model->amount,
|
||||||
@ -81,15 +81,6 @@ class Invoice extends TransformerAbstract
|
|||||||
return $this->collection($model->items, new InvoiceItems());
|
return $this->collection($model->items, new InvoiceItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Model $model
|
|
||||||
* @return \League\Fractal\Resource\Item
|
|
||||||
*/
|
|
||||||
public function includeStatus(Model $model)
|
|
||||||
{
|
|
||||||
return $this->item($model->status, new InvoiceStatus());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Model $model
|
* @param Model $model
|
||||||
* @return \League\Fractal\Resource\Collection
|
* @return \League\Fractal\Resource\Collection
|
||||||
|
@ -17,7 +17,7 @@ class InvoiceHistories extends TransformerAbstract
|
|||||||
'id' => $model->id,
|
'id' => $model->id,
|
||||||
'company_id' => $model->company_id,
|
'company_id' => $model->company_id,
|
||||||
'invoice_id' => $model->invoice_id,
|
'invoice_id' => $model->invoice_id,
|
||||||
'status_code' => $model->status_code,
|
'status' => $model->status,
|
||||||
'notify' => $model->notify,
|
'notify' => $model->notify,
|
||||||
'description' => $model->description,
|
'description' => $model->description,
|
||||||
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Transformers\Sale;
|
|
||||||
|
|
||||||
use App\Models\Sale\InvoiceStatus as Model;
|
|
||||||
use League\Fractal\TransformerAbstract;
|
|
||||||
|
|
||||||
class InvoiceStatus extends TransformerAbstract
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @param Model $model
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function transform(Model $model)
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'id' => $model->id,
|
|
||||||
'company_id' => $model->company_id,
|
|
||||||
'name' => $model->name,
|
|
||||||
'code' => $model->code,
|
|
||||||
'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
|
|
||||||
'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,7 +7,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
'columns' => [
|
'columns' => [
|
||||||
'alpha' => [
|
'alpha' => [
|
||||||
'rows' => ['name', 'contact_name', 'customer_name', 'vendor_name', 'display_name', 'company_name', 'domain', 'email', 'description', 'code', 'type', 'status', 'vendor', 'account', 'bill_status_code', 'invoice_status_code'],
|
'rows' => ['name', 'contact_name', 'customer_name', 'vendor_name', 'display_name', 'company_name', 'domain', 'email', 'description', 'code', 'type', 'status', 'vendor', 'account'],
|
||||||
'class' => 'fas fa-sort-alpha',
|
'class' => 'fas fa-sort-alpha',
|
||||||
],
|
],
|
||||||
'amount' => [
|
'amount' => [
|
||||||
|
@ -146,7 +146,7 @@ return [
|
|||||||
'columns' => [
|
'columns' => [
|
||||||
'bill_number' => ['searchable' => true],
|
'bill_number' => ['searchable' => true],
|
||||||
'order_number' => ['searchable' => true],
|
'order_number' => ['searchable' => true],
|
||||||
'bill_status_code',
|
'status',
|
||||||
'billed_at' => ['date' => true],
|
'billed_at' => ['date' => true],
|
||||||
'due_at' => ['date' => true],
|
'due_at' => ['date' => true],
|
||||||
'amount',
|
'amount',
|
||||||
@ -166,7 +166,7 @@ return [
|
|||||||
'columns' => [
|
'columns' => [
|
||||||
'invoice_number' => ['searchable' => true],
|
'invoice_number' => ['searchable' => true],
|
||||||
'order_number' => ['searchable' => true],
|
'order_number' => ['searchable' => true],
|
||||||
'invoice_status_code',
|
'status',
|
||||||
'invoiced_at' => ['date' => true],
|
'invoiced_at' => ['date' => true],
|
||||||
'due_at' => ['date' => true],
|
'due_at' => ['date' => true],
|
||||||
'amount',
|
'amount',
|
||||||
|
@ -556,7 +556,6 @@ class CoreV1 extends Migration
|
|||||||
Schema::drop('bill_histories');
|
Schema::drop('bill_histories');
|
||||||
Schema::drop('bill_items');
|
Schema::drop('bill_items');
|
||||||
Schema::drop('bill_item_taxes');
|
Schema::drop('bill_item_taxes');
|
||||||
Schema::drop('bill_statuses');
|
|
||||||
Schema::drop('bill_totals');
|
Schema::drop('bill_totals');
|
||||||
Schema::drop('categories');
|
Schema::drop('categories');
|
||||||
Schema::drop('companies');
|
Schema::drop('companies');
|
||||||
@ -565,7 +564,6 @@ class CoreV1 extends Migration
|
|||||||
Schema::drop('invoice_histories');
|
Schema::drop('invoice_histories');
|
||||||
Schema::drop('invoice_items');
|
Schema::drop('invoice_items');
|
||||||
Schema::drop('invoice_item_taxes');
|
Schema::drop('invoice_item_taxes');
|
||||||
Schema::drop('invoice_statuses');
|
|
||||||
Schema::drop('invoice_totals');
|
Schema::drop('invoice_totals');
|
||||||
Schema::drop('items');
|
Schema::drop('items');
|
||||||
Schema::drop('jobs');
|
Schema::drop('jobs');
|
||||||
|
@ -41,6 +41,7 @@ class CoreV200 extends Migration
|
|||||||
});
|
});
|
||||||
|
|
||||||
$rename_bills = [
|
$rename_bills = [
|
||||||
|
'bill_status_code' => 'status',
|
||||||
'vendor_id' => 'contact_id',
|
'vendor_id' => 'contact_id',
|
||||||
'vendor_name' => 'contact_name',
|
'vendor_name' => 'contact_name',
|
||||||
'vendor_email' => 'contact_email',
|
'vendor_email' => 'contact_email',
|
||||||
@ -55,7 +56,14 @@ class CoreV200 extends Migration
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Schema::table('bill_histories', function (Blueprint $table) {
|
||||||
|
$table->renameColumn('status_code', 'status');
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::drop('bill_statuses');
|
||||||
|
|
||||||
$rename_invoices = [
|
$rename_invoices = [
|
||||||
|
'invoice_status_code' => 'status',
|
||||||
'customer_id' => 'contact_id',
|
'customer_id' => 'contact_id',
|
||||||
'customer_name' => 'contact_name',
|
'customer_name' => 'contact_name',
|
||||||
'customer_email' => 'contact_email',
|
'customer_email' => 'contact_email',
|
||||||
@ -70,6 +78,12 @@ class CoreV200 extends Migration
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Schema::table('invoice_histories', function (Blueprint $table) {
|
||||||
|
$table->renameColumn('status_code', 'status');
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::drop('invoice_statuses');
|
||||||
|
|
||||||
// Dashboards
|
// Dashboards
|
||||||
Schema::create('dashboards', function (Blueprint $table) {
|
Schema::create('dashboards', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
@ -129,7 +143,7 @@ class CoreV200 extends Migration
|
|||||||
$table->boolean('blocked')->default(1);
|
$table->boolean('blocked')->default(1);
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->index('ip');
|
$table->index('ip');
|
||||||
$table->unique(['ip', 'deleted_at']);
|
$table->unique(['ip', 'deleted_at']);
|
||||||
});
|
});
|
||||||
@ -145,7 +159,7 @@ class CoreV200 extends Migration
|
|||||||
$table->text('request')->nullable();
|
$table->text('request')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|
||||||
$table->index('ip');
|
$table->index('ip');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,56 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Database\Seeds;
|
|
||||||
|
|
||||||
use App\Abstracts\Model;
|
|
||||||
use App\Models\Purchase\BillStatus;
|
|
||||||
use Illuminate\Database\Seeder;
|
|
||||||
|
|
||||||
class BillStatuses extends Seeder
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the database seeds.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function run()
|
|
||||||
{
|
|
||||||
Model::unguard();
|
|
||||||
|
|
||||||
$this->create();
|
|
||||||
|
|
||||||
Model::reguard();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function create()
|
|
||||||
{
|
|
||||||
$company_id = $this->command->argument('company');
|
|
||||||
|
|
||||||
$rows = [
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('bills.status.draft'),
|
|
||||||
'code' => 'draft',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('bills.status.received'),
|
|
||||||
'code' => 'received',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('bills.status.partial'),
|
|
||||||
'code' => 'partial',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('bills.status.paid'),
|
|
||||||
'code' => 'paid',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($rows as $row) {
|
|
||||||
BillStatus::create($row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,11 +12,9 @@ class CompanySeeder extends Seeder
|
|||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
$this->call(Database\Seeds\Accounts::class);
|
$this->call(Database\Seeds\Accounts::class);
|
||||||
$this->call(Database\Seeds\BillStatuses::class);
|
|
||||||
$this->call(Database\Seeds\Categories::class);
|
$this->call(Database\Seeds\Categories::class);
|
||||||
$this->call(Database\Seeds\Currencies::class);
|
$this->call(Database\Seeds\Currencies::class);
|
||||||
$this->call(Database\Seeds\EmailTemplates::class);
|
$this->call(Database\Seeds\EmailTemplates::class);
|
||||||
$this->call(Database\Seeds\InvoiceStatuses::class);
|
|
||||||
$this->call(Database\Seeds\Modules::class);
|
$this->call(Database\Seeds\Modules::class);
|
||||||
$this->call(Database\Seeds\Reports::class);
|
$this->call(Database\Seeds\Reports::class);
|
||||||
$this->call(Database\Seeds\Settings::class);
|
$this->call(Database\Seeds\Settings::class);
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Database\Seeds;
|
|
||||||
|
|
||||||
use App\Abstracts\Model;
|
|
||||||
use App\Models\Sale\InvoiceStatus;
|
|
||||||
use Illuminate\Database\Seeder;
|
|
||||||
|
|
||||||
class InvoiceStatuses extends Seeder
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the database seeds.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function run()
|
|
||||||
{
|
|
||||||
Model::unguard();
|
|
||||||
|
|
||||||
$this->create();
|
|
||||||
|
|
||||||
Model::reguard();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function create()
|
|
||||||
{
|
|
||||||
$company_id = $this->command->argument('company');
|
|
||||||
|
|
||||||
$rows = [
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.draft'),
|
|
||||||
'code' => 'draft',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.sent'),
|
|
||||||
'code' => 'sent',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.viewed'),
|
|
||||||
'code' => 'viewed',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.approved'),
|
|
||||||
'code' => 'approved',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.partial'),
|
|
||||||
'code' => 'partial',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'company_id' => $company_id,
|
|
||||||
'name' => trans('invoices.status.paid'),
|
|
||||||
'code' => 'paid',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($rows as $row) {
|
|
||||||
InvoiceStatus::create($row);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -35,11 +35,13 @@ return [
|
|||||||
'receive_bill' => 'Receive Bill',
|
'receive_bill' => 'Receive Bill',
|
||||||
'make_payment' => 'Make Payment',
|
'make_payment' => 'Make Payment',
|
||||||
|
|
||||||
'status' => [
|
'statuses' => [
|
||||||
'draft' => 'Draft',
|
'draft' => 'Draft',
|
||||||
'received' => 'Received',
|
'received' => 'Received',
|
||||||
'partial' => 'Partial',
|
'partial' => 'Partial',
|
||||||
'paid' => 'Paid',
|
'paid' => 'Paid',
|
||||||
|
'overdue' => 'Overdue',
|
||||||
|
'unpaid' => 'Unpaid',
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
@ -37,13 +37,15 @@ return [
|
|||||||
'get_paid' => 'Get Paid',
|
'get_paid' => 'Get Paid',
|
||||||
'accept_payments' => 'Accept Online Payments',
|
'accept_payments' => 'Accept Online Payments',
|
||||||
|
|
||||||
'status' => [
|
'statuses' => [
|
||||||
'draft' => 'Draft',
|
'draft' => 'Draft',
|
||||||
'sent' => 'Sent',
|
'sent' => 'Sent',
|
||||||
'viewed' => 'Viewed',
|
'viewed' => 'Viewed',
|
||||||
'approved' => 'Approved',
|
'approved' => 'Approved',
|
||||||
'partial' => 'Partial',
|
'partial' => 'Partial',
|
||||||
'paid' => 'Paid',
|
'paid' => 'Paid',
|
||||||
|
'overdue' => 'Overdue',
|
||||||
|
'unpaid' => 'Unpaid',
|
||||||
],
|
],
|
||||||
|
|
||||||
'messages' => [
|
'messages' => [
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<th class="col-xs-4 col-sm-3 col-md-3 col-lg-3">@sortablelink('account_id', trans_choice('general.accounts', 1))</th>
|
<th class="col-xs-4 col-sm-3 col-md-3 col-lg-3">@sortablelink('account_id', trans_choice('general.accounts', 1))</th>
|
||||||
<th class="col-lg-2 d-none d-lg-block">{{ trans('general.period') }}</th>
|
<th class="col-lg-2 d-none d-lg-block">{{ trans('general.period') }}</th>
|
||||||
<th class="col-md-2 col-lg-2 d-none d-md-block text-right">@sortablelink('closing_balance', trans('reconciliations.closing_balance'))</th>
|
<th class="col-md-2 col-lg-2 d-none d-md-block text-right">@sortablelink('closing_balance', trans('reconciliations.closing_balance'))</th>
|
||||||
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1">@sortablelink('invoice_status_code', trans_choice('general.statuses', 1))</th>
|
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1">@sortablelink('status', trans_choice('general.statuses', 1))</th>
|
||||||
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 text-center">{{ trans('general.actions') }}</th>
|
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 text-center">{{ trans('general.actions') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
<th class="col-xs-4 col-sm-2 col-md-2 text-right">@sortablelink('amount', trans('general.amount'))</th>
|
<th class="col-xs-4 col-sm-2 col-md-2 text-right">@sortablelink('amount', trans('general.amount'))</th>
|
||||||
<th class="col-sm-3 col-md-3 d-none d-sm-block">@sortablelink('invoiced_at', trans('invoices.invoice_date'))</th>
|
<th class="col-sm-3 col-md-3 d-none d-sm-block">@sortablelink('invoiced_at', trans('invoices.invoice_date'))</th>
|
||||||
<th class="col-md-2 d-none d-md-block">@sortablelink('due_at', trans('invoices.due_date'))</th>
|
<th class="col-md-2 d-none d-md-block">@sortablelink('due_at', trans('invoices.due_date'))</th>
|
||||||
<th class="col-xs-4 col-sm-3 col-md-2 text-center">@sortablelink('status.name', trans_choice('general.statuses', 1))</th>
|
<th class="col-xs-4 col-sm-3 col-md-2 text-center">@sortablelink('status', trans_choice('general.statuses', 1))</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
@ -41,7 +41,7 @@
|
|||||||
<td class="col-xs-4 col-sm-2 col-md-2 text-right">@money($item->amount, $item->currency_code, true)</td>
|
<td class="col-xs-4 col-sm-2 col-md-2 text-right">@money($item->amount, $item->currency_code, true)</td>
|
||||||
<td class="col-sm-3 col-md-3 d-none d-sm-block">@date($item->invoiced_at)</td>
|
<td class="col-sm-3 col-md-3 d-none d-sm-block">@date($item->invoiced_at)</td>
|
||||||
<td class="col-md-2 d-none d-md-block">@date($item->due_at)</td>
|
<td class="col-md-2 d-none d-md-block">@date($item->due_at)</td>
|
||||||
<td class="col-xs-4 col-sm-3 col-md-2 text-center"><span class="badge badge-pill badge-{{ $item->status->label }}">{{ trans('invoices.status.' . $item->status->code) }}</span></td>
|
<td class="col-xs-4 col-sm-3 col-md-2 text-center"><span class="badge badge-pill badge-{{ $item->status_label }}">{{ trans('invoices.statuses.' . $item->status) }}</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
@stack('invoice_start')
|
@stack('invoice_start')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@stack('invoice_status_start')
|
@stack('invoice_status_start')
|
||||||
<div class="card-header status-{{ $invoice->status->label }}">
|
<div class="card-header status-{{ $invoice->status_label }}">
|
||||||
<h3 class="text-white mb-0 float-right">{{ trans('invoices.status.' . $invoice->status->code) }}</h3>
|
<h3 class="text-white mb-0 float-right">{{ trans('invoices.statuses.' . $invoice->status) }}</h3>
|
||||||
</div>
|
</div>
|
||||||
@stack('invoice_status_end')
|
@stack('invoice_status_end')
|
||||||
|
|
||||||
@ -278,7 +278,7 @@
|
|||||||
@stack('button_pdf_end')
|
@stack('button_pdf_end')
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
@if($invoice->invoice_status_code != 'paid')
|
@if($invoice->status != 'paid')
|
||||||
@if ($payment_methods)
|
@if ($payment_methods)
|
||||||
{!! Form::open([
|
{!! Form::open([
|
||||||
'id' => 'invoice-payment',
|
'id' => 'invoice-payment',
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header status-{{ $invoice->status->label }}">
|
<div class="card-header status-{{ $invoice->status_label }}">
|
||||||
<h3 class="text-white mb-0 float-right pr-4">{{ trans('invoices.status.' . $invoice->status->code) }}</h3>
|
<h3 class="text-white mb-0 float-right pr-4">{{ trans('invoices.statuses.' . $invoice->status) }}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -214,7 +214,7 @@
|
|||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
@if($invoice->invoice_status_code != 'paid')
|
@if($invoice->status != 'paid')
|
||||||
@if ($payment_methods)
|
@if ($payment_methods)
|
||||||
{!! Form::open([
|
{!! Form::open([
|
||||||
'id' => 'invoice-payment',
|
'id' => 'invoice-payment',
|
||||||
|
@ -172,7 +172,7 @@
|
|||||||
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
||||||
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
||||||
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
||||||
{{ Form::hidden('bill_status_code', old('bill_status_code', 'draft'), ['id' => 'bill_status_code', 'v-model' => 'form.bill_status_code']) }}
|
{{ Form::hidden('status', old('status', 'draft'), ['id' => 'status', 'v-model' => 'form.status']) }}
|
||||||
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -173,7 +173,7 @@
|
|||||||
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
||||||
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
||||||
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
||||||
{{ Form::hidden('bill_status_code', old('bill_status_code', 'draft'), ['id' => 'bill_status_code', 'v-model' => 'form.bill_status_code']) }}
|
{{ Form::hidden('status', old('status', 'draft'), ['id' => 'status', 'v-model' => 'form.status']) }}
|
||||||
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
<th class="col-md-2 col-lg-2 col-xl-2 d-none d-md-block text-right">@sortablelink('amount', trans('general.amount'))</th>
|
<th class="col-md-2 col-lg-2 col-xl-2 d-none d-md-block text-right">@sortablelink('amount', trans('general.amount'))</th>
|
||||||
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('billed_at', trans('bills.bill_date'))</th>
|
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('billed_at', trans('bills.bill_date'))</th>
|
||||||
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('due_at', trans('bills.due_date'))</th>
|
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('due_at', trans('bills.due_date'))</th>
|
||||||
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1">@sortablelink('bill_status_code', trans_choice('general.statuses', 1))</th>
|
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1">@sortablelink('status', trans_choice('general.statuses', 1))</th>
|
||||||
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">{{ trans('general.actions') }}</th>
|
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">{{ trans('general.actions') }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->billed_at)</td>
|
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->billed_at)</td>
|
||||||
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->due_at)</td>
|
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->due_at)</td>
|
||||||
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1">
|
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1">
|
||||||
<span class="badge badge-pill badge-{{ $item->status->label }}">{{ trans('bills.status.' . $item->status->code) }}</span>
|
<span class="badge badge-pill badge-{{ $item->status_label }}">{{ trans('bills.statuses.' . $item->status) }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">
|
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
@stack('recurring_message_end')
|
@stack('recurring_message_end')
|
||||||
|
|
||||||
@stack('status_message_start')
|
@stack('status_message_start')
|
||||||
@if ($bill->status->code == 'draft')
|
@if ($bill->status == 'draft')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
<div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
|
||||||
<div class="alert alert-warning fade show" role="alert">
|
<div class="alert alert-warning fade show" role="alert">
|
||||||
@ -38,7 +38,7 @@
|
|||||||
@stack('status_message_end')
|
@stack('status_message_end')
|
||||||
|
|
||||||
@stack('timeline_start')
|
@stack('timeline_start')
|
||||||
@if ($bill->status->code != 'paid')
|
@if ($bill->status != 'paid')
|
||||||
@stack('timeline_body_start')
|
@stack('timeline_body_start')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -82,7 +82,7 @@
|
|||||||
@stack('timeline_body_receive_bill_head_end')
|
@stack('timeline_body_receive_bill_head_end')
|
||||||
|
|
||||||
@stack('timeline_body_receive_bill_body_start')
|
@stack('timeline_body_receive_bill_body_start')
|
||||||
@if ($bill->status->code == 'draft')
|
@if ($bill->status == 'draft')
|
||||||
@stack('timeline_body_receive_bill_body_message_start')
|
@stack('timeline_body_receive_bill_body_message_start')
|
||||||
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
||||||
<small>{{ trans('bills.messages.status.receive.draft') }}</small>
|
<small>{{ trans('bills.messages.status.receive.draft') }}</small>
|
||||||
@ -119,7 +119,7 @@
|
|||||||
|
|
||||||
@stack('timeline_body_make_payment_body_start')
|
@stack('timeline_body_make_payment_body_start')
|
||||||
@stack('timeline_body_get_paid_body_message_start')
|
@stack('timeline_body_get_paid_body_message_start')
|
||||||
@if($bill->status->code != 'paid' && empty($bill->transactions->count()))
|
@if($bill->status != 'paid' && empty($bill->transactions->count()))
|
||||||
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
||||||
<small>{{ trans('bills.messages.status.paid.await') }}</small>
|
<small>{{ trans('bills.messages.status.paid.await') }}</small>
|
||||||
@else
|
@else
|
||||||
@ -149,8 +149,8 @@
|
|||||||
@stack('bill_start')
|
@stack('bill_start')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@stack('bill_status_start')
|
@stack('bill_status_start')
|
||||||
<div class="card-header status-{{ $bill->status->label }}">
|
<div class="card-header status-{{ $bill->status_label }}">
|
||||||
<h3 class="text-white mb-0 float-right">{{ trans('bills.status.' . $bill->status->code) }}</h3>
|
<h3 class="text-white mb-0 float-right">{{ trans('bills.statuses.' . $bill->status) }}</h3>
|
||||||
</div>
|
</div>
|
||||||
@stack('bill_status_end')
|
@stack('bill_status_end')
|
||||||
|
|
||||||
@ -430,12 +430,12 @@
|
|||||||
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i> {{ trans('general.more_actions') }}</button>
|
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i> {{ trans('general.more_actions') }}</button>
|
||||||
<div class="dropdown-menu" role="menu">
|
<div class="dropdown-menu" role="menu">
|
||||||
@stack('button_pay_start')
|
@stack('button_pay_start')
|
||||||
@if($bill->status->code != 'paid')
|
@if($bill->status != 'paid')
|
||||||
@if(empty($bill->paid) || ($bill->paid != $bill->amount))
|
@if(empty($bill->paid) || ($bill->paid != $bill->amount))
|
||||||
<a class="dropdown-item" href="#" id="button-payment">{{ trans('bills.add_payment') }}</a>
|
<a class="dropdown-item" href="#" id="button-payment">{{ trans('bills.add_payment') }}</a>
|
||||||
@endif
|
@endif
|
||||||
@permission('update-purchases-bills')
|
@permission('update-purchases-bills')
|
||||||
@if($bill->bill_status_code == 'draft')
|
@if($bill->status == 'draft')
|
||||||
<a class="dropdown-item" href="{{ route('bills.received', $bill->id) }}">{{ trans('bills.mark_received') }}</a></a>
|
<a class="dropdown-item" href="{{ route('bills.received', $bill->id) }}">{{ trans('bills.mark_received') }}</a></a>
|
||||||
@else
|
@else
|
||||||
<button type="button" class="dropdown-item" disabled="disabled">{{ trans('bills.mark_received') }}</button>
|
<button type="button" class="dropdown-item" disabled="disabled">{{ trans('bills.mark_received') }}</button>
|
||||||
@ -493,7 +493,7 @@
|
|||||||
@foreach($bill->histories as $history)
|
@foreach($bill->histories as $history)
|
||||||
<tr class="row align-items-center">
|
<tr class="row align-items-center">
|
||||||
<td class="col-xs-4 col-sm-4">@date($history->created_at)</td>
|
<td class="col-xs-4 col-sm-4">@date($history->created_at)</td>
|
||||||
<td class="col-xs-4 col-sm-4 text-center">{{ $history->status->name }}</td>
|
<td class="col-xs-4 col-sm-4 text-center">{{ trans('bills.statuses.' . $history->status) }}</td>
|
||||||
<td class="col-xs-4 col-sm-4 text-left long-texts">{{ $history->description }}</td>
|
<td class="col-xs-4 col-sm-4 text-left long-texts">{{ $history->description }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
<td class="col-xs-4 col-sm-3">@money($item->amount, $item->currency_code, true)</td>
|
<td class="col-xs-4 col-sm-3">@money($item->amount, $item->currency_code, true)</td>
|
||||||
<td class="col-sm-2 d-none d-sm-none">@date($item->billed_at)</td>
|
<td class="col-sm-2 d-none d-sm-none">@date($item->billed_at)</td>
|
||||||
<td class="col-sm-2 d-none d-sm-none">@date($item->due_at)</td>
|
<td class="col-sm-2 d-none d-sm-none">@date($item->due_at)</td>
|
||||||
<td class="col-xs-4 col-sm-2"><span class="badge badge-pill badge-{{ $item->status->label }}">{{ trans('bills.status.' . $item->status->code) }}</span></td>
|
<td class="col-xs-4 col-sm-2"><span class="badge badge-pill badge-{{ $item->status_label }}">{{ trans('bills.statuses.' . $item->status) }}</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -155,7 +155,7 @@
|
|||||||
<td class="col-xs-4 col-sm-3">@money($item->amount, $item->currency_code, true)</td>
|
<td class="col-xs-4 col-sm-3">@money($item->amount, $item->currency_code, true)</td>
|
||||||
<td class="col-sm-2 d-none d-sm-block">@date($item->invoiced_at)</td>
|
<td class="col-sm-2 d-none d-sm-block">@date($item->invoiced_at)</td>
|
||||||
<td class="col-sm-2 d-none d-sm-block">@date($item->due_at)</td>
|
<td class="col-sm-2 d-none d-sm-block">@date($item->due_at)</td>
|
||||||
<td class="col-xs-4 col-sm-2"><span class="badge badge-pill badge-{{ $item->status->label }}">{{ trans('invoices.status.' . $item->status->code) }}</span></td>
|
<td class="col-xs-4 col-sm-2"><span class="badge badge-pill badge-{{ $item->status_label }}">{{ trans('invoices.statuses.' . $item->status) }}</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -174,7 +174,7 @@
|
|||||||
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
||||||
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
||||||
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
||||||
{{ Form::hidden('invoice_status_code', old('invoice_status_code', 'draft'), ['id' => 'invoice_status_code', 'v-model' => 'form.invoice_status_code']) }}
|
{{ Form::hidden('status', old('status', 'draft'), ['id' => 'status', 'v-model' => 'form.status']) }}
|
||||||
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -175,7 +175,7 @@
|
|||||||
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
{{ Form::hidden('contact_phone', old('contact_phone'), ['id' => 'contact_phone', 'v-model' => 'form.contact_phone']) }}
|
||||||
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
{{ Form::hidden('contact_address', old('contact_address'), ['id' => 'contact_address', 'v-model' => 'form.contact_address']) }}
|
||||||
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
{{ Form::hidden('currency_rate', old('currency_rate', 1), ['id' => 'currency_rate', 'v-model' => 'form.contact_rate']) }}
|
||||||
{{ Form::hidden('invoice_status_code', old('invoice_status_code', 'draft'), ['id' => 'invoice_status_code', 'v-model' => 'form.invoice_status_code']) }}
|
{{ Form::hidden('status', old('status', 'draft'), ['id' => 'status', 'v-model' => 'form.status']) }}
|
||||||
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
{{ Form::hidden('amount', old('amount', '0'), ['id' => 'amount', 'v-model' => 'form.amount']) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
<th class="col-xs-4 col-sm-4 col-md-3 col-lg-1 col-xl-1 text-right">@sortablelink('amount', trans('general.amount'))</th>
|
<th class="col-xs-4 col-sm-4 col-md-3 col-lg-1 col-xl-1 text-right">@sortablelink('amount', trans('general.amount'))</th>
|
||||||
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('invoiced_at', trans('invoices.invoice_date'))</th>
|
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('invoiced_at', trans('invoices.invoice_date'))</th>
|
||||||
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('due_at', trans('invoices.due_date'))</th>
|
<th class="col-lg-2 col-xl-2 d-none d-lg-block">@sortablelink('due_at', trans('invoices.due_date'))</th>
|
||||||
<th class="col-lg-1 col-xl-1 d-none d-lg-block">@sortablelink('invoice_status_code', trans_choice('general.statuses', 1))</th>
|
<th class="col-lg-1 col-xl-1 d-none d-lg-block">@sortablelink('status', trans_choice('general.statuses', 1))</th>
|
||||||
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center"><a>{{ trans('general.actions') }}</a></th>
|
<th class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center"><a>{{ trans('general.actions') }}</a></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->invoiced_at)</td>
|
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->invoiced_at)</td>
|
||||||
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->due_at)</td>
|
<td class="col-lg-2 col-xl-2 d-none d-lg-block">@date($item->due_at)</td>
|
||||||
<td class="col-lg-1 col-xl-1 d-none d-lg-block">
|
<td class="col-lg-1 col-xl-1 d-none d-lg-block">
|
||||||
<span class="badge badge-pill badge-{{ $item->status->label }}">{{ trans('invoices.status.' . $item->status->code) }}</span>
|
<span class="badge badge-pill badge-{{ $item->status_label }}">{{ trans('invoices.statuses.' . $item->status) }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">
|
<td class="col-xs-4 col-sm-2 col-md-2 col-lg-1 col-xl-1 text-center">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
@stack('recurring_message_end')
|
@stack('recurring_message_end')
|
||||||
|
|
||||||
@stack('status_message_start')
|
@stack('status_message_start')
|
||||||
@if ($invoice->status->code == 'draft')
|
@if ($invoice->status == 'draft')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="alert alert-warning fade show" role="alert">
|
<div class="alert alert-warning fade show" role="alert">
|
||||||
@ -38,7 +38,7 @@
|
|||||||
@stack('status_message_end')
|
@stack('status_message_end')
|
||||||
|
|
||||||
@stack('timeline_start')
|
@stack('timeline_start')
|
||||||
@if ($invoice->status->code != 'paid')
|
@if ($invoice->status != 'paid')
|
||||||
@stack('timeline_body_start')
|
@stack('timeline_body_start')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -82,7 +82,7 @@
|
|||||||
@stack('timeline_body_send_invoice_head_end')
|
@stack('timeline_body_send_invoice_head_end')
|
||||||
|
|
||||||
@stack('timeline_body_send_invoice_body_start')
|
@stack('timeline_body_send_invoice_body_start')
|
||||||
@if ($invoice->status->code != 'sent' && $invoice->status->code != 'partial' && $invoice->status->code != 'viewed')
|
@if ($invoice->status != 'sent' && $invoice->status != 'partial' && $invoice->status != 'viewed')
|
||||||
@stack('timeline_body_send_invoice_body_message_start')
|
@stack('timeline_body_send_invoice_body_message_start')
|
||||||
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
||||||
<small>{{ trans('invoices.messages.status.send.draft') }}</small>
|
<small>{{ trans('invoices.messages.status.send.draft') }}</small>
|
||||||
@ -91,7 +91,7 @@
|
|||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
@stack('timeline_body_send_invoice_body_button_sent_start')
|
@stack('timeline_body_send_invoice_body_button_sent_start')
|
||||||
@permission('update-sales-invoices')
|
@permission('update-sales-invoices')
|
||||||
@if($invoice->invoice_status_code == 'draft')
|
@if($invoice->status == 'draft')
|
||||||
<a href="{{ url('sales/invoices/' . $invoice->id . '/sent') }}" class="btn btn-white btn-sm header-button-top">{{ trans('invoices.mark_sent') }}</a>
|
<a href="{{ url('sales/invoices/' . $invoice->id . '/sent') }}" class="btn btn-white btn-sm header-button-top">{{ trans('invoices.mark_sent') }}</a>
|
||||||
@else
|
@else
|
||||||
<button type="button" class="btn btn-secondary btn-sm header-button-top" disabled="disabled">
|
<button type="button" class="btn btn-secondary btn-sm header-button-top" disabled="disabled">
|
||||||
@ -111,7 +111,7 @@
|
|||||||
@endif
|
@endif
|
||||||
@stack('timeline_body_send_invoice_body_button_email_end')
|
@stack('timeline_body_send_invoice_body_button_email_end')
|
||||||
</div>
|
</div>
|
||||||
@elseif($invoice->status->code == 'viewed')
|
@elseif($invoice->status == 'viewed')
|
||||||
@stack('timeline_body_viewed_invoice_body_message_start')
|
@stack('timeline_body_viewed_invoice_body_message_start')
|
||||||
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
||||||
<small>{{ trans('invoices.messages.status.viewed') }}</small>
|
<small>{{ trans('invoices.messages.status.viewed') }}</small>
|
||||||
@ -140,7 +140,7 @@
|
|||||||
|
|
||||||
@stack('timeline_body_get_paid_body_start')
|
@stack('timeline_body_get_paid_body_start')
|
||||||
@stack('timeline_body_get_paid_body_message_start')
|
@stack('timeline_body_get_paid_body_message_start')
|
||||||
@if($invoice->status->code != 'paid' && empty($invoice->transactions->count()))
|
@if($invoice->status != 'paid' && empty($invoice->transactions->count()))
|
||||||
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
<small>{{ trans_choice('general.statuses', 1) . ':' }}</small>
|
||||||
<small>{{ trans('invoices.messages.status.paid.await') }}</small>
|
<small>{{ trans('invoices.messages.status.paid.await') }}</small>
|
||||||
@else
|
@else
|
||||||
@ -176,8 +176,8 @@
|
|||||||
@stack('invoice_start')
|
@stack('invoice_start')
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@stack('invoice_status_start')
|
@stack('invoice_status_start')
|
||||||
<div class="card-header status-{{ $invoice->status->label }}">
|
<div class="card-header status-{{ $invoice->status_label }}">
|
||||||
<h3 class="text-white mb-0 float-right">{{ trans('invoices.status.' . $invoice->status->code) }}</h3>
|
<h3 class="text-white mb-0 float-right">{{ trans('invoices.statuses.' . $invoice->status) }}</h3>
|
||||||
</div>
|
</div>
|
||||||
@stack('invoice_status_end')
|
@stack('invoice_status_end')
|
||||||
|
|
||||||
@ -459,7 +459,7 @@
|
|||||||
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i> {{ trans('general.more_actions') }}</button>
|
<button type="button" class="btn btn-primary header-button-top" data-toggle="dropdown" aria-expanded="false"><i class="fa fa-chevron-up"></i> {{ trans('general.more_actions') }}</button>
|
||||||
<div class="dropdown-menu" role="menu">
|
<div class="dropdown-menu" role="menu">
|
||||||
@stack('button_pay_start')
|
@stack('button_pay_start')
|
||||||
@if($invoice->status->code != 'paid')
|
@if($invoice->status != 'paid')
|
||||||
@permission('update-sales-invoices')
|
@permission('update-sales-invoices')
|
||||||
<a class="dropdown-item" href="{{ url('sales/invoices/' . $invoice->id . '/pay') }}">{{ trans('invoices.mark_paid') }}</a>
|
<a class="dropdown-item" href="{{ url('sales/invoices/' . $invoice->id . '/pay') }}">{{ trans('invoices.mark_paid') }}</a>
|
||||||
@endpermission
|
@endpermission
|
||||||
@ -473,7 +473,7 @@
|
|||||||
|
|
||||||
@stack('button_sent_start')
|
@stack('button_sent_start')
|
||||||
@permission('update-sales-invoices')
|
@permission('update-sales-invoices')
|
||||||
@if($invoice->invoice_status_code == 'draft')
|
@if($invoice->status == 'draft')
|
||||||
<a class="dropdown-item" href="{{ url('sales/invoices/' . $invoice->id . '/sent') }}">{{ trans('invoices.mark_sent') }}</a>
|
<a class="dropdown-item" href="{{ url('sales/invoices/' . $invoice->id . '/sent') }}">{{ trans('invoices.mark_sent') }}</a>
|
||||||
@else
|
@else
|
||||||
<button type="button" class="dropdown-item" disabled="disabled"><span class="text-disabled">{{ trans('invoices.mark_sent') }}</span></button>
|
<button type="button" class="dropdown-item" disabled="disabled"><span class="text-disabled">{{ trans('invoices.mark_sent') }}</span></button>
|
||||||
@ -539,7 +539,7 @@
|
|||||||
@foreach($invoice->histories as $history)
|
@foreach($invoice->histories as $history)
|
||||||
<tr class="row align-items-center">
|
<tr class="row align-items-center">
|
||||||
<td class="col-xs-4 col-sm-4">@date($history->created_at)</td>
|
<td class="col-xs-4 col-sm-4">@date($history->created_at)</td>
|
||||||
<td class="col-xs-4 col-sm-4 text-center">{{ $history->status->name }}</td>
|
<td class="col-xs-4 col-sm-4 text-center">{{ trans('invoices.statuses.' . $history->status) }}</td>
|
||||||
<td class="col-xs-4 col-sm-4 text-left long-texts">{{ $history->description }}</td>
|
<td class="col-xs-4 col-sm-4 text-left long-texts">{{ $history->description }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -68,7 +68,7 @@ class BillReminderTest extends FeatureTestCase
|
|||||||
'contact_tax_number' => null,
|
'contact_tax_number' => null,
|
||||||
'contact_phone' => null,
|
'contact_phone' => null,
|
||||||
'contact_address' => $this->faker->address,
|
'contact_address' => $this->faker->address,
|
||||||
'bill_status_code' => 'received',
|
'status' => 'received',
|
||||||
'amount' => $amount,
|
'amount' => $amount,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ class InvoiceReminderTest extends FeatureTestCase
|
|||||||
'contact_tax_number' => null,
|
'contact_tax_number' => null,
|
||||||
'contact_phone' => null,
|
'contact_phone' => null,
|
||||||
'contact_address' => $this->faker->address,
|
'contact_address' => $this->faker->address,
|
||||||
'invoice_status_code' => 'sent',
|
'status' => 'sent',
|
||||||
'amount' => $amount,
|
'amount' => $amount,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ class BillsTest extends FeatureTestCase
|
|||||||
'contact_tax_number' => null,
|
'contact_tax_number' => null,
|
||||||
'contact_phone' => null,
|
'contact_phone' => null,
|
||||||
'contact_address' => $this->faker->address,
|
'contact_address' => $this->faker->address,
|
||||||
'bill_status_code' => 'draft',
|
'status' => 'draft',
|
||||||
'amount' => $amount,
|
'amount' => $amount,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ class InvoicesTest extends FeatureTestCase
|
|||||||
'contact_tax_number' => null,
|
'contact_tax_number' => null,
|
||||||
'contact_phone' => null,
|
'contact_phone' => null,
|
||||||
'contact_address' => $this->faker->address,
|
'contact_address' => $this->faker->address,
|
||||||
'invoice_status_code' => 'draft',
|
'status' => 'draft',
|
||||||
'amount' => $amount,
|
'amount' => $amount,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user