Merge Invoice and Bill into Document
This commit is contained in:
		
							
								
								
									
										13
									
								
								modules/BC21/Abstracts/DocumentModel.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Abstracts/DocumentModel.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Abstracts;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
abstract class DocumentModel extends Document
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillCancelled.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillCancelled.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCancelled;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentCancelled
 | 
			
		||||
 */
 | 
			
		||||
class BillCancelled extends DocumentCancelled
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillCreated.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillCreated.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCreated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class BillCreated extends DocumentCreated
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillCreating.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillCreating.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCreating;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentCreating
 | 
			
		||||
 */
 | 
			
		||||
class BillCreating extends DocumentCreating
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillReceived.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillReceived.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentReceived;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentReceived
 | 
			
		||||
 */
 | 
			
		||||
class BillReceived extends DocumentReceived
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillRecurring.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillRecurring.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentRecurring;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentRecurring
 | 
			
		||||
 */
 | 
			
		||||
class BillRecurring extends DocumentRecurring
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillReminded.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillReminded.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentReminded;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentReminded
 | 
			
		||||
 */
 | 
			
		||||
class BillReminded extends DocumentReminded
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillUpdated.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillUpdated.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentUpdated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentUpdated
 | 
			
		||||
 */
 | 
			
		||||
class BillUpdated extends DocumentUpdated
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Purchase/BillUpdating.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Purchase/BillUpdating.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentUpdating;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentUpdating
 | 
			
		||||
 */
 | 
			
		||||
class BillUpdating extends DocumentUpdating
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCancelled.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCancelled.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCancelled;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentCancelled
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceCancelled extends DocumentCancelled
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCreated.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCreated.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCreated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentCreated
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceCreated extends DocumentCreated
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCreating.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceCreating.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentCreating;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentCreating
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceCreating extends DocumentCreating
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoicePrinting.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoicePrinting.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentPrinting;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentPrinting
 | 
			
		||||
 */
 | 
			
		||||
class InvoicePrinting extends DocumentPrinting
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceRecurring.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceRecurring.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentRecurring;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentRecurring
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceRecurring extends DocumentRecurring
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceReminded.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceReminded.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentReminded;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentReminded
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceReminded extends DocumentReminded
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceSent.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceSent.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentSent;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentSent
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceSent extends DocumentSent
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceUpdated.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceUpdated.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentUpdated;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentUpdated
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceUpdated extends DocumentUpdated
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceUpdating.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceUpdating.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentUpdating;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentUpdating
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceUpdating extends DocumentUpdating
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceViewed.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Events/Sale/InvoiceViewed.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Events\Document\DocumentViewed;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentViewed
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceViewed extends DocumentViewed
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								modules/BC21/Events/Sale/PaymentReceived.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/BC21/Events/Sale/PaymentReceived.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Events\Sale;
 | 
			
		||||
 | 
			
		||||
class PaymentReceived extends \App\Events\Document\PaymentReceived
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								modules/BC21/Exports/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/BC21/Exports/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Exports\Purchases;
 | 
			
		||||
 | 
			
		||||
use App\Exports\Document\Documents;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Bills extends Documents
 | 
			
		||||
{
 | 
			
		||||
    public function __construct($ids = null, string $type = '')
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($ids, Document::BILL_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								modules/BC21/Exports/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/BC21/Exports/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Exports\Sales;
 | 
			
		||||
 | 
			
		||||
use App\Exports\Document\Documents;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Invoices extends Documents
 | 
			
		||||
{
 | 
			
		||||
    public function __construct($ids = null, string $type = '')
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($ids, Document::INVOICE_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								modules/BC21/Http/Controllers/Api/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								modules/BC21/Http/Controllers/Api/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Api\Purchases;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\ApiController;
 | 
			
		||||
use App\Http\Requests\Document\Document as Request;
 | 
			
		||||
use App\Jobs\Document\CreateDocument;
 | 
			
		||||
use App\Jobs\Document\DeleteDocument;
 | 
			
		||||
use App\Jobs\Document\UpdateDocument;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Transformers\Purchase\Bill as Transformer;
 | 
			
		||||
 | 
			
		||||
class Bills extends ApiController
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Display a listing of the resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function index()
 | 
			
		||||
    {
 | 
			
		||||
        $bills = Document::bill()->with('contact', 'histories', 'items', 'transactions')->collect(['issued_at'=> 'desc']);
 | 
			
		||||
 | 
			
		||||
        return $this->response->paginator($bills, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display the specified resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  Document $document
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function show(Document $document)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->response->item($document, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Store a newly created resource in storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $request
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function store(Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $bill = $this->dispatch(new CreateDocument($request));
 | 
			
		||||
 | 
			
		||||
        return $this->response->created(route('api.bills.show', $bill->id));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Update the specified resource in storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $document
 | 
			
		||||
     * @param  $request
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function update(Document $document, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $document = $this->dispatch(new UpdateDocument($document, $request));
 | 
			
		||||
 | 
			
		||||
        return $this->item($document->fresh(), new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Remove the specified resource from storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  Document $document
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function destroy(Document $document)
 | 
			
		||||
    {
 | 
			
		||||
        try {
 | 
			
		||||
            $this->dispatch(new DeleteDocument($document));
 | 
			
		||||
 | 
			
		||||
            return $this->response->noContent();
 | 
			
		||||
        } catch(\Exception $e) {
 | 
			
		||||
            $this->response->errorUnauthorized($e->getMessage());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,79 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Api\Sales;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Banking\Transaction as Request;
 | 
			
		||||
use App\Jobs\Banking\CreateBankingDocumentTransaction;
 | 
			
		||||
use App\Jobs\Banking\DeleteTransaction;
 | 
			
		||||
use App\Models\Banking\Transaction;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Transformers\Banking\Transaction as Transformer;
 | 
			
		||||
use Dingo\Api\Routing\Helpers;
 | 
			
		||||
use Illuminate\Foundation\Bus\DispatchesJobs;
 | 
			
		||||
use Illuminate\Routing\Controller as BaseController;
 | 
			
		||||
use Illuminate\Foundation\Validation\ValidatesRequests;
 | 
			
		||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
 | 
			
		||||
 | 
			
		||||
class InvoiceTransactions extends BaseController
 | 
			
		||||
{
 | 
			
		||||
    use Helpers, AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display a listing of the resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $invoice_id
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function index($invoice_id)
 | 
			
		||||
    {
 | 
			
		||||
        $transactions = Transaction::document($invoice_id)->get();
 | 
			
		||||
 | 
			
		||||
        return $this->response->collection($transactions, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display the specified resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $invoice_id
 | 
			
		||||
     * @param  $id
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function show($invoice_id, $id)
 | 
			
		||||
    {
 | 
			
		||||
        $transaction = Transaction::document($invoice_id)->find($id);
 | 
			
		||||
 | 
			
		||||
        return $this->response->item($transaction, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Store a newly created resource in storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $invoice_id
 | 
			
		||||
     * @param  $request
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function store($invoice_id, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $invoice = Document::find($invoice_id);
 | 
			
		||||
 | 
			
		||||
        $transaction = $this->dispatch(new CreateBankingDocumentTransaction($invoice, $request));
 | 
			
		||||
 | 
			
		||||
        return $this->response->created(url('api/invoices/' . $invoice_id . '/transactions/' . $transaction->id));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Remove the specified resource from storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $invoice_id
 | 
			
		||||
     * @param  $id
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function destroy($invoice_id, $id)
 | 
			
		||||
    {
 | 
			
		||||
        $transaction = Transaction::document($invoice_id)->find($id);
 | 
			
		||||
 | 
			
		||||
        $this->dispatch(new DeleteTransaction($transaction));
 | 
			
		||||
 | 
			
		||||
        return $this->response->noContent();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										91
									
								
								modules/BC21/Http/Controllers/Api/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								modules/BC21/Http/Controllers/Api/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Api\Sales;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\ApiController;
 | 
			
		||||
use App\Http\Requests\Document\Document as Request;
 | 
			
		||||
use App\Jobs\Document\CreateDocument;
 | 
			
		||||
use App\Jobs\Document\DeleteDocument;
 | 
			
		||||
use App\Jobs\Document\UpdateDocument;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Transformers\Sale\Invoice as Transformer;
 | 
			
		||||
 | 
			
		||||
class Invoices extends ApiController
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Display a listing of the resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function index()
 | 
			
		||||
    {
 | 
			
		||||
        $invoices = Document::invoice()->with('contact', 'histories', 'items', 'transactions')->collect(['issued_at'=> 'desc']);
 | 
			
		||||
 | 
			
		||||
        return $this->response->paginator($invoices, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display the specified resource.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $id
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function show($id)
 | 
			
		||||
    {
 | 
			
		||||
        // Check if we're querying by id or number
 | 
			
		||||
        if (is_numeric($id)) {
 | 
			
		||||
            $invoice = Document::find($id);
 | 
			
		||||
        } else {
 | 
			
		||||
            $invoice = Document::where('document_number', $id)->first();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $this->response->item($invoice, new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Store a newly created resource in storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $request
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function store(Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $invoice = $this->dispatch(new CreateDocument($request));
 | 
			
		||||
 | 
			
		||||
        return $this->response->created(route('api.invoices.show', $invoice->id));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Update the specified resource in storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  $document
 | 
			
		||||
     * @param  $request
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function update(Document $document, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $document = $this->dispatch(new UpdateDocument($document, $request));
 | 
			
		||||
 | 
			
		||||
        return $this->response->item($document->fresh(), new Transformer());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Remove the specified resource from storage.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  Document $document
 | 
			
		||||
     *
 | 
			
		||||
     * @return \Dingo\Api\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function destroy(Document $document)
 | 
			
		||||
    {
 | 
			
		||||
        try {
 | 
			
		||||
            $this->dispatch(new DeleteDocument($document));
 | 
			
		||||
 | 
			
		||||
            return $this->response->noContent();
 | 
			
		||||
        } catch(\Exception $e) {
 | 
			
		||||
            $this->response->errorUnauthorized($e->getMessage());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								modules/BC21/Http/Requests/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								modules/BC21/Http/Requests/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Bill extends Document
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Document::rules()
 | 
			
		||||
     */
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['bill_number'] = $rules['document_number'];
 | 
			
		||||
        $rules['billed_at'] = $rules['issued_at'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_number'], $rules['issued_at']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Document::withValidator()
 | 
			
		||||
     */
 | 
			
		||||
    public function withValidator($validator)
 | 
			
		||||
    {
 | 
			
		||||
        parent::withValidator($validator);
 | 
			
		||||
 | 
			
		||||
        if ($validator->errors()->count()) {
 | 
			
		||||
            $this->request->set('billed_at', $this->request->get('issued_at'));
 | 
			
		||||
            $this->request->remove('issued_at');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Http/Requests/Purchase/BillAddItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Http/Requests/Purchase/BillAddItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentAddItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentAddItem
 | 
			
		||||
 */
 | 
			
		||||
class BillAddItem extends DocumentAddItem
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class BillHistory extends DocumentHistory
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['bill_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class BillItem extends DocumentItem
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['bill_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								modules/BC21/Http/Requests/Purchase/BillItemTax.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/BC21/Http/Requests/Purchase/BillItemTax.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentItemTax;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItemTax
 | 
			
		||||
 */
 | 
			
		||||
class BillItemTax extends DocumentItemTax
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['bill_id'] = $rules['document_id'];
 | 
			
		||||
        $rules['bill_item_id'] = $rules['document_item_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['document_item_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillTotal.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Purchase/BillTotal.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentTotal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentTotal
 | 
			
		||||
 */
 | 
			
		||||
class BillTotal extends DocumentTotal
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['bill_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								modules/BC21/Http/Requests/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								modules/BC21/Http/Requests/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Invoice extends Document
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Document::rules()
 | 
			
		||||
     */
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['invoice_number'] = $rules['document_number'];
 | 
			
		||||
        $rules['invoiced_at'] = $rules['issued_at'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_number'], $rules['issued_at']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Document::withValidator()
 | 
			
		||||
     */
 | 
			
		||||
    public function withValidator($validator)
 | 
			
		||||
    {
 | 
			
		||||
        parent::withValidator($validator);
 | 
			
		||||
 | 
			
		||||
        if ($validator->errors()->count()) {
 | 
			
		||||
            $this->request->set('invoiced_at', $this->request->get('issued_at'));
 | 
			
		||||
            $this->request->remove('issued_at');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Http/Requests/Sale/InvoiceAddItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Http/Requests/Sale/InvoiceAddItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentAddItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentAddItem
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceAddItem extends DocumentAddItem
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceHistory extends DocumentHistory
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['invoice_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceItem extends DocumentItem
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['invoice_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								modules/BC21/Http/Requests/Sale/InvoiceItemTax.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/BC21/Http/Requests/Sale/InvoiceItemTax.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentItemTax;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItemTax
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceItemTax extends DocumentItemTax
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['invoice_id'] = $rules['document_id'];
 | 
			
		||||
        $rules['invoice_item_id'] = $rules['document_item_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['document_item_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceTotal.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/BC21/Http/Requests/Sale/InvoiceTotal.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Requests\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Http\Requests\Document\DocumentTotal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentTotal
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceTotal extends DocumentTotal
 | 
			
		||||
{
 | 
			
		||||
    public function rules()
 | 
			
		||||
    {
 | 
			
		||||
        $rules = parent::rules();
 | 
			
		||||
 | 
			
		||||
        $rules['invoice_id'] = $rules['document_id'];
 | 
			
		||||
 | 
			
		||||
        unset($rules['document_id'], $rules['type']);
 | 
			
		||||
 | 
			
		||||
        return $rules;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								modules/BC21/Imports/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/BC21/Imports/Purchases/Bills.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Imports\Purchases;
 | 
			
		||||
 | 
			
		||||
use App\Imports\Document\Documents;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Documents
 | 
			
		||||
 */
 | 
			
		||||
class Bills extends Documents
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(string $type = '')
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct(Document::BILL_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								modules/BC21/Imports/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/BC21/Imports/Sales/Invoices.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Imports\Sales;
 | 
			
		||||
 | 
			
		||||
use App\Imports\Document\Documents;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Documents
 | 
			
		||||
 */
 | 
			
		||||
class Invoices extends Documents
 | 
			
		||||
{
 | 
			
		||||
    public function __construct(string $type = '')
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct(Document::INVOICE_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/CancelBill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/CancelBill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CancelDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CancelDocument
 | 
			
		||||
 */
 | 
			
		||||
class CancelBill extends CancelDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								modules/BC21/Jobs/Purchase/CreateBill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								modules/BC21/Jobs/Purchase/CreateBill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\FormRequest;
 | 
			
		||||
use App\Jobs\Document\CreateDocument;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocument
 | 
			
		||||
 */
 | 
			
		||||
class CreateBill extends CreateDocument
 | 
			
		||||
{
 | 
			
		||||
    protected $bill;
 | 
			
		||||
 | 
			
		||||
    protected $request;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new job instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @param FormRequest $request
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct($request)
 | 
			
		||||
    {
 | 
			
		||||
        $request->merge(
 | 
			
		||||
            [
 | 
			
		||||
                'type' => Document::BILL_TYPE,
 | 
			
		||||
                'document_number' => $request->get('bill_number'),
 | 
			
		||||
                'issued_at' => $request->get('billed_at'),
 | 
			
		||||
            ]
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        parent::__construct($request);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class CreateBillHistory extends CreateDocumentHistory
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class CreateBillItem extends CreateDocumentItem
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillItemsAndTotals.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/CreateBillItemsAndTotals.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentItemsAndTotals;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentItemsAndTotals
 | 
			
		||||
 */
 | 
			
		||||
class CreateBillItemsAndTotals extends CreateDocumentItemsAndTotals
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/DeleteBill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/DeleteBill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\DeleteDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DeleteDocument
 | 
			
		||||
 */
 | 
			
		||||
class DeleteBill extends DeleteDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/DuplicateBill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/DuplicateBill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\DuplicateDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DuplicateDocument
 | 
			
		||||
 */
 | 
			
		||||
class DuplicateBill extends DuplicateDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Purchase/UpdateBill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Purchase/UpdateBill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\UpdateDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see UpdateDocument
 | 
			
		||||
 */
 | 
			
		||||
class UpdateBill extends UpdateDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/CancelInvoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/CancelInvoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CancelDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CancelDocument
 | 
			
		||||
 */
 | 
			
		||||
class CancelInvoice extends CancelDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								modules/BC21/Jobs/Sale/CreateInvoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/BC21/Jobs/Sale/CreateInvoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\FormRequest;
 | 
			
		||||
use App\Jobs\Document\CreateDocument;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocument
 | 
			
		||||
 */
 | 
			
		||||
class CreateInvoice extends CreateDocument
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new job instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @param FormRequest $request
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct($request)
 | 
			
		||||
    {
 | 
			
		||||
        $request->merge(
 | 
			
		||||
            [
 | 
			
		||||
                'type' => Document::INVOICE_TYPE,
 | 
			
		||||
                'document_number' => $request->get('invoice_number'),
 | 
			
		||||
                'issued_at' => $request->get('invoiced_at'),
 | 
			
		||||
            ]
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        parent::__construct($request);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class CreateInvoiceHistory extends CreateDocumentHistory
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class CreateInvoiceItem extends CreateDocumentItem
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceItemsAndTotals.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/CreateInvoiceItemsAndTotals.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\CreateDocumentItemsAndTotals;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see CreateDocumentItemsAndTotals
 | 
			
		||||
 */
 | 
			
		||||
class CreateInvoiceItemsAndTotals extends CreateDocumentItemsAndTotals
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/DeleteInvoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/DeleteInvoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\DeleteDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DeleteDocument
 | 
			
		||||
 */
 | 
			
		||||
class DeleteInvoice extends DeleteDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/DuplicateInvoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/DuplicateInvoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\DuplicateDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DuplicateDocument
 | 
			
		||||
 */
 | 
			
		||||
class DuplicateInvoice extends DuplicateDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								modules/BC21/Jobs/Sale/UpdateInvoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/BC21/Jobs/Sale/UpdateInvoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Jobs\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Jobs\Document\UpdateDocument;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see UpdateDocument
 | 
			
		||||
 */
 | 
			
		||||
class UpdateInvoice extends UpdateDocument
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								modules/BC21/Models/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								modules/BC21/Models/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Scopes\ReplaceDeprecatedColumns;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Bill extends Document
 | 
			
		||||
{
 | 
			
		||||
    protected static function booted()
 | 
			
		||||
    {
 | 
			
		||||
        static::addGlobalScope(new ReplaceDeprecatedColumns);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getBillNumberAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_number;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillNumberAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_number'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getBilledAtAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->issued_at;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBilledAtAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['issued_at'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Purchase/BillHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Purchase/BillHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class BillHistory extends DocumentHistory
 | 
			
		||||
{
 | 
			
		||||
    public function getBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Purchase/BillItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Purchase/BillItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class BillItem extends DocumentItem
 | 
			
		||||
{
 | 
			
		||||
    public function getBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								modules/BC21/Models/Purchase/BillItemTax.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/BC21/Models/Purchase/BillItemTax.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItemTax;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItemTax
 | 
			
		||||
 */
 | 
			
		||||
class BillItemTax extends DocumentItemTax
 | 
			
		||||
{
 | 
			
		||||
    public function getBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getBillItemIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_item_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillItemIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_item_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Purchase/BillTotal.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Purchase/BillTotal.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentTotal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentTotal
 | 
			
		||||
 */
 | 
			
		||||
class BillTotal extends DocumentTotal
 | 
			
		||||
{
 | 
			
		||||
    public function getBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setBillIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								modules/BC21/Models/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								modules/BC21/Models/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use App\Scopes\ReplaceDeprecatedColumns;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Document
 | 
			
		||||
 */
 | 
			
		||||
class Invoice extends Document
 | 
			
		||||
{
 | 
			
		||||
    protected static function booted()
 | 
			
		||||
    {
 | 
			
		||||
        static::addGlobalScope(new ReplaceDeprecatedColumns);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceNumberAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_number'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getInvoiceNumberAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_number;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoicedAtAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['issued_at'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getInvoicedAtAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->issued_at;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceHistory.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentHistory;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentHistory
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceHistory extends DocumentHistory
 | 
			
		||||
{
 | 
			
		||||
    public function getInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceItem.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItem;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItem
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceItem extends DocumentItem
 | 
			
		||||
{
 | 
			
		||||
    public function getInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								modules/BC21/Models/Sale/InvoiceItemTax.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/BC21/Models/Sale/InvoiceItemTax.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItemTax;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentItemTax
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceItemTax extends DocumentItemTax
 | 
			
		||||
{
 | 
			
		||||
    public function getInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getInvoiceItemIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_item_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceItemIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_item_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceTotal.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/BC21/Models/Sale/InvoiceTotal.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Models\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentTotal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see DocumentTotal
 | 
			
		||||
 */
 | 
			
		||||
class InvoiceTotal extends DocumentTotal
 | 
			
		||||
{
 | 
			
		||||
    public function getInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->document_id;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function setInvoiceIdAttribute($value)
 | 
			
		||||
    {
 | 
			
		||||
        $this->attributes['document_id'] = $value;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								modules/BC21/Providers/Main.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								modules/BC21/Providers/Main.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace Modules\BC21\Providers;
 | 
			
		||||
 | 
			
		||||
use Illuminate\Support\ServiceProvider as Provider;
 | 
			
		||||
 | 
			
		||||
class Main extends Provider
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Boot the application events.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function boot()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Register the service provider.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function register()
 | 
			
		||||
    {
 | 
			
		||||
        $this->loadRoutes();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Load routes.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function loadRoutes()
 | 
			
		||||
    {
 | 
			
		||||
        if (app()->routesAreCached()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $routes = ['api.php'];
 | 
			
		||||
 | 
			
		||||
        foreach ($routes as $route) {
 | 
			
		||||
            $this->loadRoutesFrom(__DIR__ . '/../Routes/' . $route);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the services provided by the provider.
 | 
			
		||||
     *
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function provides()
 | 
			
		||||
    {
 | 
			
		||||
        return [];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								modules/BC21/Routes/api.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								modules/BC21/Routes/api.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
use Illuminate\Support\Facades\Route;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 'api' prefix applied to all routes
 | 
			
		||||
 *
 | 
			
		||||
 * @see \App\Providers\Route::mapApiRoutes
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
$api = app('Dingo\Api\Routing\Router');
 | 
			
		||||
 | 
			
		||||
$api->version('v2', ['middleware' => ['api']], function($api) {
 | 
			
		||||
    $api->group(['namespace' => 'App\Http\Controllers\Api'], function($api) {
 | 
			
		||||
        // Companies
 | 
			
		||||
        $api->get('companies/{company}/owner', 'Common\Companies@owner')->name('companies.owner');
 | 
			
		||||
        $api->get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable');
 | 
			
		||||
        $api->get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable');
 | 
			
		||||
        $api->resource('companies', 'Common\Companies');
 | 
			
		||||
 | 
			
		||||
        // Items
 | 
			
		||||
        $api->get('items/{item}/enable', 'Common\Items@enable')->name('items.enable');
 | 
			
		||||
        $api->get('items/{item}/disable', 'Common\Items@disable')->name('items.disable');
 | 
			
		||||
        $api->resource('items', 'Common\Items');
 | 
			
		||||
 | 
			
		||||
        // Contacts
 | 
			
		||||
        $api->get('contacts/{contact}/enable', 'Common\Contacts@enable')->name('contacts.enable');
 | 
			
		||||
        $api->get('contacts/{contact}/disable', 'Common\Contacts@disable')->name('contacts.disable');
 | 
			
		||||
        $api->resource('contacts', 'Common\Contacts');
 | 
			
		||||
 | 
			
		||||
        // Sales
 | 
			
		||||
        $api->resource('invoices', 'Sales\Invoices');
 | 
			
		||||
        $api->resource('invoices.transactions', 'Sales\InvoiceTransactions');
 | 
			
		||||
 | 
			
		||||
        // Purchases
 | 
			
		||||
        $api->get('bills/{bill}/received', 'Purchases\Bills@received')->name('bills.received');
 | 
			
		||||
        $api->resource('bills', 'Purchases\Bills');
 | 
			
		||||
 | 
			
		||||
        // Banking
 | 
			
		||||
        $api->get('accounts/{account}/enable', 'Banking\Accounts@enable')->name('accounts.enable');
 | 
			
		||||
        $api->get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('accounts.disable');
 | 
			
		||||
        $api->resource('accounts', 'Banking\Accounts');
 | 
			
		||||
        $api->resource('reconciliations', 'Banking\Reconciliations');
 | 
			
		||||
        $api->resource('transactions', 'Banking\Transactions');
 | 
			
		||||
        $api->resource('transfers', 'Banking\Transfers');
 | 
			
		||||
 | 
			
		||||
        // Reports
 | 
			
		||||
        $api->resource('reports', 'Common\Reports');
 | 
			
		||||
 | 
			
		||||
        // Settings
 | 
			
		||||
        $api->get('categories/{category}/enable', 'Settings\Categories@enable')->name('categories.enable');
 | 
			
		||||
        $api->get('categories/{category}/disable', 'Settings\Categories@disable')->name('categories.disable');
 | 
			
		||||
        $api->resource('categories', 'Settings\Categories');
 | 
			
		||||
        $api->get('currencies/{currency}/enable', 'Settings\Currencies@enable')->name('currencies.enable');
 | 
			
		||||
        $api->get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('currencies.disable');
 | 
			
		||||
        $api->resource('currencies', 'Settings\Currencies');
 | 
			
		||||
        $api->resource('settings', 'Settings\Settings');
 | 
			
		||||
        $api->get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('taxes.enable');
 | 
			
		||||
        $api->get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('taxes.disable');
 | 
			
		||||
        $api->resource('taxes', 'Settings\Taxes');
 | 
			
		||||
 | 
			
		||||
        // Common
 | 
			
		||||
        $api->resource('ping', 'Common\Ping');
 | 
			
		||||
 | 
			
		||||
        // Auth
 | 
			
		||||
        $api->resource('permissions', 'Auth\Permissions');
 | 
			
		||||
        $api->resource('roles', 'Auth\Roles');
 | 
			
		||||
        $api->get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable');
 | 
			
		||||
        $api->get('users/{user}/disable', 'Auth\Users@disable')->name('users.disable');
 | 
			
		||||
        $api->resource('users', 'Auth\Users');
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										79
									
								
								modules/BC21/Scopes/ReplaceDeprecatedColumns.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								modules/BC21/Scopes/ReplaceDeprecatedColumns.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Scopes;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
use App\Models\Purchase\Bill;
 | 
			
		||||
use App\Models\Sale\Invoice;
 | 
			
		||||
use Illuminate\Database\Eloquent\Builder;
 | 
			
		||||
use Illuminate\Database\Eloquent\Model;
 | 
			
		||||
use Illuminate\Database\Eloquent\Scope;
 | 
			
		||||
use Illuminate\Support\Collection;
 | 
			
		||||
 | 
			
		||||
class ReplaceDeprecatedColumns implements Scope
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * Apply the scope to a given Eloquent query builder.
 | 
			
		||||
     *
 | 
			
		||||
     * @param Builder $builder
 | 
			
		||||
     * @param Model   $model
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function apply(Builder $builder, Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        switch (get_class($model)) {
 | 
			
		||||
            case Invoice::class:
 | 
			
		||||
                $replacements = [
 | 
			
		||||
                    'invoiced_at'    => 'issued_at',
 | 
			
		||||
                    'invoice_number' => 'document_number',
 | 
			
		||||
                ];
 | 
			
		||||
                break;
 | 
			
		||||
            case Bill::class:
 | 
			
		||||
                $replacements = [
 | 
			
		||||
                    'billed_at'   => 'issued_at',
 | 
			
		||||
                    'bill_number' => 'document_number',
 | 
			
		||||
                ];
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (false === isset($replacements)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        $query = $builder->getQuery();
 | 
			
		||||
 | 
			
		||||
        foreach ($replacements as $column => $replace) {
 | 
			
		||||
            if ($query->orders !== null) {
 | 
			
		||||
                $query->orders = $this->replaceColumn($query->orders, $column, $replace);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($query->wheres !== null) {
 | 
			
		||||
                $query->wheres = $this->replaceColumn($query->wheres, $column, $replace);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($query->havings !== null) {
 | 
			
		||||
                $query->havings = $this->replaceColumn($query->havings, $column, $replace);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($query->unionOrders !== null) {
 | 
			
		||||
                $query->unionOrders = $this->replaceColumn($query->unionOrders, $column, $replace);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function replaceColumn(array $columns, string $column, string $replace): array
 | 
			
		||||
    {
 | 
			
		||||
        return Collection::make($columns)
 | 
			
		||||
                         ->transform(
 | 
			
		||||
                             function ($item) use ($column, $replace) {
 | 
			
		||||
                                 if (isset($item['column']) && $item['column'] === $column) {
 | 
			
		||||
                                     $item['column'] = $replace;
 | 
			
		||||
                                 }
 | 
			
		||||
 | 
			
		||||
                                 return $item;
 | 
			
		||||
                             }
 | 
			
		||||
                         )->values()->all();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										65
									
								
								modules/BC21/Traits/Purchases.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								modules/BC21/Traits/Purchases.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Traits;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use Illuminate\Support\Collection;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Documents
 | 
			
		||||
 */
 | 
			
		||||
trait Purchases
 | 
			
		||||
{
 | 
			
		||||
    use Documents;
 | 
			
		||||
    /**
 | 
			
		||||
     * Generate next bill number
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getNextDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function getNextBillNumber(): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getNextDocumentNumber(Document::BILL_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Increase the next bill number
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated`1
 | 
			
		||||
     * @see Documents::increaseNextDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function increaseNextBillNumber(): void
 | 
			
		||||
    {
 | 
			
		||||
        $this->increaseNextDocumentNumber(Document::BILL_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get a collection bill statuses
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getBillStatuses()
 | 
			
		||||
     */
 | 
			
		||||
    public function getBillStatuses(): Collection
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getDocumentStatuses(Document::BILL_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getDocumentFileName()
 | 
			
		||||
     */
 | 
			
		||||
    public function getBillFileName(Document $bill, string $separator = '-', string $extension = 'pdf'): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getDocumentFileName($bill, $separator, $extension);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getSafeDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function getSafeBillNumber(Document $bill, string $separator = '-'): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getSafeDocumentNumber($bill, $separator);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										65
									
								
								modules/BC21/Traits/Sales.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								modules/BC21/Traits/Sales.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Traits;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use Illuminate\Support\Collection;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @deprecated
 | 
			
		||||
 * @see Documents
 | 
			
		||||
 */
 | 
			
		||||
trait Sales
 | 
			
		||||
{
 | 
			
		||||
    use Documents;
 | 
			
		||||
    /**
 | 
			
		||||
     * Generate next invoice number
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getNextDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function getNextInvoiceNumber(): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getNextDocumentNumber(Document::INVOICE_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Increase the next invoice number
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::increaseNextDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function increaseNextInvoiceNumber(): void
 | 
			
		||||
    {
 | 
			
		||||
        $this->increaseNextDocumentNumber(Document::INVOICE_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get a collection invoice statuses
 | 
			
		||||
     *
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getInvoiceStatuses()
 | 
			
		||||
     */
 | 
			
		||||
    public function getInvoiceStatuses(): Collection
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getDocumentStatuses(Document::INVOICE_TYPE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getDocumentFileName()
 | 
			
		||||
     */
 | 
			
		||||
    public function getInvoiceFileName(Document $invoice, string $separator = '-', string $extension = 'pdf'): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getDocumentFileName($invoice, $separator, $extension);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @deprecated
 | 
			
		||||
     * @see Documents::getSafeDocumentNumber()
 | 
			
		||||
     */
 | 
			
		||||
    public function getSafeInvoiceNumber(Document $invoice, string $separator = '-'): string
 | 
			
		||||
    {
 | 
			
		||||
        return $this->getSafeDocumentNumber($invoice, $separator);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										92
									
								
								modules/BC21/Transformers/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								modules/BC21/Transformers/Purchase/Bill.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Transformers\Banking\Transaction;
 | 
			
		||||
use App\Transformers\Common\Contact;
 | 
			
		||||
use App\Transformers\Setting\Currency;
 | 
			
		||||
use App\Models\Document\Document as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class Bill extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @var array
 | 
			
		||||
     */
 | 
			
		||||
    protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'transactions'];
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'bill_number' => $model->document_number,
 | 
			
		||||
            'order_number' => $model->order_number,
 | 
			
		||||
            'status' => $model->status,
 | 
			
		||||
            'billed_at' => $model->issued_at ? $model->issued_at->toIso8601String() : '',
 | 
			
		||||
            'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
 | 
			
		||||
            'amount' => $model->amount,
 | 
			
		||||
            'currency_code' => $model->currency_code,
 | 
			
		||||
            'currency_rate' => $model->currency_rate,
 | 
			
		||||
            'contact_id' => $model->contact_id,
 | 
			
		||||
            'contact_name' => $model->contact_name,
 | 
			
		||||
            'contact_email' => $model->contact_email,
 | 
			
		||||
            'contact_tax_number' => $model->contact_tax_number,
 | 
			
		||||
            'contact_phone' => $model->contact_phone,
 | 
			
		||||
            'contact_address' => $model->contact_address,
 | 
			
		||||
            'notes' => $model->notes,
 | 
			
		||||
            'attachment' => $model->attachment,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Item
 | 
			
		||||
     */
 | 
			
		||||
    public function includeContact(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->item($model->contact, new Contact());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param  Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Item
 | 
			
		||||
     */
 | 
			
		||||
    public function includeCurrency(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->item($model->currency, new Currency());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeHistories(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->histories, new BillHistories());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeItems(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->items, new BillItems());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeTransactions(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->transactions, new Transaction());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								modules/BC21/Transformers/Purchase/BillHistories.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								modules/BC21/Transformers/Purchase/BillHistories.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentHistory as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class BillHistories extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'bill_id' => $model->bill_id,
 | 
			
		||||
            'status' => $model->status,
 | 
			
		||||
            'notify' => $model->notify,
 | 
			
		||||
            'description' => $model->description,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								modules/BC21/Transformers/Purchase/BillItems.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/BC21/Transformers/Purchase/BillItems.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItem as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class BillItems extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'bill_id' => $model->bill_id,
 | 
			
		||||
            'item_id' => $model->item_id,
 | 
			
		||||
            'name' => $model->name,
 | 
			
		||||
            'price' => $model->price,
 | 
			
		||||
            'total' => $model->total,
 | 
			
		||||
            'tax' => $model->tax,
 | 
			
		||||
            'tax_id' => $model->tax_id,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								modules/BC21/Transformers/Purchase/BillTotals.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								modules/BC21/Transformers/Purchase/BillTotals.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Purchase;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentTotal as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class BillTotals extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'bill_id' => $model->bill_id,
 | 
			
		||||
            'code' => $model->code,
 | 
			
		||||
            'name' => $model->name,
 | 
			
		||||
            'amount' => $model->amount,
 | 
			
		||||
            'sort_order' => $model->sort_order,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										92
									
								
								modules/BC21/Transformers/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								modules/BC21/Transformers/Sale/Invoice.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Transformers\Banking\Transaction;
 | 
			
		||||
use App\Transformers\Common\Contact;
 | 
			
		||||
use App\Transformers\Setting\Currency;
 | 
			
		||||
use App\Models\Document\Document as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class Invoice extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @var array
 | 
			
		||||
     */
 | 
			
		||||
    protected $defaultIncludes = ['contact', 'currency', 'histories', 'items', 'transactions'];
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'invoice_number' => $model->document_number,
 | 
			
		||||
            'order_number' => $model->order_number,
 | 
			
		||||
            'status' => $model->status,
 | 
			
		||||
            'invoiced_at' => $model->issued_at ? $model->issued_at->toIso8601String() : '',
 | 
			
		||||
            'due_at' => $model->due_at ? $model->due_at->toIso8601String() : '',
 | 
			
		||||
            'amount' => $model->amount,
 | 
			
		||||
            'currency_code' => $model->currency_code,
 | 
			
		||||
            'currency_rate' => $model->currency_rate,
 | 
			
		||||
            'contact_id' => $model->contact_id,
 | 
			
		||||
            'contact_name' => $model->contact_name,
 | 
			
		||||
            'contact_email' => $model->contact_email,
 | 
			
		||||
            'contact_tax_number' => $model->contact_tax_number,
 | 
			
		||||
            'contact_phone' => $model->contact_phone,
 | 
			
		||||
            'contact_address' => $model->contact_address,
 | 
			
		||||
            'notes' => $model->notes,
 | 
			
		||||
            'attachment' => $model->attachment,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Item
 | 
			
		||||
     */
 | 
			
		||||
    public function includeContact(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->item($model->contact, new Contact());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param  Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Item
 | 
			
		||||
     */
 | 
			
		||||
    public function includeCurrency(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->item($model->currency, new Currency());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeHistories(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->histories, new InvoiceHistories());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeItems(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->items, new InvoiceItems());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return \League\Fractal\Resource\Collection
 | 
			
		||||
     */
 | 
			
		||||
    public function includeTransactions(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return $this->collection($model->transactions, new Transaction());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								modules/BC21/Transformers/Sale/InvoiceHistories.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								modules/BC21/Transformers/Sale/InvoiceHistories.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentHistory as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class InvoiceHistories extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'invoice_id' => $model->invoice_id,
 | 
			
		||||
            'status' => $model->status,
 | 
			
		||||
            'notify' => $model->notify,
 | 
			
		||||
            'description' => $model->description,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								modules/BC21/Transformers/Sale/InvoiceItems.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/BC21/Transformers/Sale/InvoiceItems.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentItem as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class InvoiceItems extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'invoice_id' => $model->invoice_id,
 | 
			
		||||
            'item_id' => $model->item_id,
 | 
			
		||||
            'name' => $model->name,
 | 
			
		||||
            'price' => $model->price,
 | 
			
		||||
            'total' => $model->total,
 | 
			
		||||
            'tax' => $model->tax,
 | 
			
		||||
            'tax_id' => $model->tax_id,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								modules/BC21/Transformers/Sale/InvoiceTotals.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								modules/BC21/Transformers/Sale/InvoiceTotals.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Transformers\Sale;
 | 
			
		||||
 | 
			
		||||
use App\Models\Document\DocumentTotal as Model;
 | 
			
		||||
use League\Fractal\TransformerAbstract;
 | 
			
		||||
 | 
			
		||||
class InvoiceTotals extends TransformerAbstract
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @param Model $model
 | 
			
		||||
     * @return array
 | 
			
		||||
     */
 | 
			
		||||
    public function transform(Model $model)
 | 
			
		||||
    {
 | 
			
		||||
        return [
 | 
			
		||||
            'id' => $model->id,
 | 
			
		||||
            'company_id' => $model->company_id,
 | 
			
		||||
            'invoice_id' => $model->invoice_id,
 | 
			
		||||
            'code' => $model->code,
 | 
			
		||||
            'name' => $model->name,
 | 
			
		||||
            'amount' => $model->amount,
 | 
			
		||||
            'sort_order' => $model->sort_order,
 | 
			
		||||
            'created_at' => $model->created_at ? $model->created_at->toIso8601String() : '',
 | 
			
		||||
            'updated_at' => $model->updated_at ? $model->updated_at->toIso8601String() : '',
 | 
			
		||||
        ];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								modules/BC21/module.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								modules/BC21/module.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
{
 | 
			
		||||
    "alias": "bc21",
 | 
			
		||||
    "icon": "fa fa-cog",
 | 
			
		||||
    "version": "1.0.0",
 | 
			
		||||
    "active": 1,
 | 
			
		||||
    "providers": [
 | 
			
		||||
        "Modules\\BC21\\Providers\\Main"
 | 
			
		||||
    ],
 | 
			
		||||
    "aliases": {},
 | 
			
		||||
    "files": [],
 | 
			
		||||
    "requires": [],
 | 
			
		||||
    "reports": [],
 | 
			
		||||
    "widgets": [],
 | 
			
		||||
    "settings": []
 | 
			
		||||
}
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
namespace Modules\OfflinePayments\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\PaymentController;
 | 
			
		||||
use \App\Events\Sale\PaymentReceived;
 | 
			
		||||
use \App\Events\Document\PaymentReceived;
 | 
			
		||||
use App\Http\Requests\Portal\InvoicePayment as PaymentRequest;
 | 
			
		||||
use App\Models\Sale\Invoice;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use Illuminate\Http\Request;
 | 
			
		||||
use Illuminate\Support\Facades\URL;
 | 
			
		||||
 | 
			
		||||
@@ -15,7 +15,7 @@ class Payment extends PaymentController
 | 
			
		||||
 | 
			
		||||
    public $type = 'redirect';
 | 
			
		||||
 | 
			
		||||
    public function show(Invoice $invoice, PaymentRequest $request)
 | 
			
		||||
    public function show(Document $document, PaymentRequest $request)
 | 
			
		||||
    {
 | 
			
		||||
        $setting = [];
 | 
			
		||||
 | 
			
		||||
@@ -29,7 +29,7 @@ class Payment extends PaymentController
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $html = view('offline-payments::show', compact('setting', 'invoice'))->render();
 | 
			
		||||
        $html = view('offline-payments::show', compact('setting', 'document'))->render();
 | 
			
		||||
 | 
			
		||||
        return response()->json([
 | 
			
		||||
            'code' => $setting['code'],
 | 
			
		||||
@@ -40,7 +40,7 @@ class Payment extends PaymentController
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function signed(Invoice $invoice, PaymentRequest $request)
 | 
			
		||||
    public function signed(Document $document, PaymentRequest $request)
 | 
			
		||||
    {
 | 
			
		||||
        $setting = [];
 | 
			
		||||
 | 
			
		||||
@@ -54,9 +54,9 @@ class Payment extends PaymentController
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $confirm_url = URL::signedRoute('signed.invoices.offline-payments.confirm', [$invoice->id, 'company_id' => session('company_id')]);
 | 
			
		||||
        $confirm_url = URL::signedRoute('signed.invoices.offline-payments.confirm', [$document->id, 'company_id' => session('company_id')]);
 | 
			
		||||
 | 
			
		||||
        $html = view('offline-payments::signed', compact('setting', 'invoice', 'confirm_url'))->render();
 | 
			
		||||
        $html = view('offline-payments::signed', compact('setting', 'document', 'confirm_url'))->render();
 | 
			
		||||
 | 
			
		||||
        return response()->json([
 | 
			
		||||
            'code' => $setting['code'],
 | 
			
		||||
@@ -67,10 +67,10 @@ class Payment extends PaymentController
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function confirm(Invoice $invoice, Request $request)
 | 
			
		||||
    public function confirm(Document $document, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        try {
 | 
			
		||||
            event(new PaymentReceived($invoice, $request));
 | 
			
		||||
            event(new PaymentReceived($document, $request));
 | 
			
		||||
 | 
			
		||||
            $message = trans('messages.success.added', ['type' => trans_choice('general.payments', 1)]);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,6 @@ Route::group([
 | 
			
		||||
    'middleware' => 'portal',
 | 
			
		||||
    'namespace' => 'Modules\OfflinePayments\Http\Controllers'
 | 
			
		||||
], function () {
 | 
			
		||||
    Route::get('invoices/{invoice}/offline-payments', 'Payment@show')->name('portal.invoices.offline-payments.show');
 | 
			
		||||
    Route::post('invoices/{invoice}/offline-payments/confirm', 'Payment@confirm')->name('portal.invoices.offline-payments.confirm');
 | 
			
		||||
    Route::get('invoices/{document}/offline-payments', 'Payment@show')->name('portal.invoices.offline-payments.show');
 | 
			
		||||
    Route::post('invoices/{document}/offline-payments/confirm', 'Payment@confirm')->name('portal.invoices.offline-payments.confirm');
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,6 @@ Route::group([
 | 
			
		||||
    'middleware' => 'signed',
 | 
			
		||||
    'namespace' => 'Modules\OfflinePayments\Http\Controllers'
 | 
			
		||||
], function () {
 | 
			
		||||
    Route::get('invoices/{invoice}/offline-payments', 'Payment@signed')->name('signed.invoices.offline-payments.show');
 | 
			
		||||
    Route::post('invoices/{invoice}/offline-payments/confirm', 'Payment@confirm')->name('signed.invoices.offline-payments.confirm');
 | 
			
		||||
    Route::get('invoices/{document}/offline-payments', 'Payment@signed')->name('signed.invoices.offline-payments.show');
 | 
			
		||||
    Route::post('invoices/{document}/offline-payments/confirm', 'Payment@confirm')->name('signed.invoices.offline-payments.confirm');
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
namespace Modules\PaypalStandard\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Http\PaymentController;
 | 
			
		||||
use App\Events\Sale\PaymentReceived;
 | 
			
		||||
use App\Events\Document\PaymentReceived;
 | 
			
		||||
use App\Http\Requests\Portal\InvoicePayment as PaymentRequest;
 | 
			
		||||
use App\Models\Sale\Invoice;
 | 
			
		||||
use App\Models\Document\Document;
 | 
			
		||||
use GuzzleHttp\Client;
 | 
			
		||||
use Illuminate\Http\Request;
 | 
			
		||||
use Monolog\Handler\StreamHandler;
 | 
			
		||||
@@ -17,17 +17,17 @@ class Payment extends PaymentController
 | 
			
		||||
 | 
			
		||||
    public $type = 'redirect';
 | 
			
		||||
 | 
			
		||||
    public function show(Invoice $invoice, PaymentRequest $request)
 | 
			
		||||
    public function show(Document $document, PaymentRequest $request)
 | 
			
		||||
    {
 | 
			
		||||
        $setting = $this->setting;
 | 
			
		||||
 | 
			
		||||
        $this->setContactFirstLastName($invoice);
 | 
			
		||||
        $this->setContactFirstLastName($document);
 | 
			
		||||
 | 
			
		||||
        $setting['action'] = ($setting['mode'] == 'live') ? 'https://www.paypal.com/cgi-bin/webscr' : 'https://www.sandbox.paypal.com/cgi-bin/webscr';
 | 
			
		||||
 | 
			
		||||
        $invoice_url = $this->getInvoiceUrl($invoice);
 | 
			
		||||
        $document_url = $this->getInvoiceUrl($document);
 | 
			
		||||
 | 
			
		||||
        $html = view('paypal-standard::show', compact('setting', 'invoice', 'invoice_url'))->render();
 | 
			
		||||
        $html = view('paypal-standard::show', compact('setting', 'document', 'document_url'))->render();
 | 
			
		||||
 | 
			
		||||
        return response()->json([
 | 
			
		||||
            'code' => $setting['code'],
 | 
			
		||||
@@ -38,7 +38,7 @@ class Payment extends PaymentController
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function return(Invoice $invoice, Request $request)
 | 
			
		||||
    public function return(Document $document, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $success = true;
 | 
			
		||||
 | 
			
		||||
@@ -66,12 +66,12 @@ class Payment extends PaymentController
 | 
			
		||||
            flash($message)->warning();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $invoice_url = $this->getInvoiceUrl($invoice);
 | 
			
		||||
        $document_url = $this->getInvoiceUrl($document);
 | 
			
		||||
 | 
			
		||||
        return redirect($invoice_url);
 | 
			
		||||
        return redirect($document_url);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function complete(Invoice $invoice, Request $request)
 | 
			
		||||
    public function complete(Document $document, Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        $setting = $this->setting;
 | 
			
		||||
 | 
			
		||||
@@ -79,7 +79,7 @@ class Payment extends PaymentController
 | 
			
		||||
 | 
			
		||||
        $paypal_log->pushHandler(new StreamHandler(storage_path('logs/paypal.log')), Logger::INFO);
 | 
			
		||||
 | 
			
		||||
        if (!$invoice) {
 | 
			
		||||
        if (!$document) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -115,10 +115,10 @@ class Payment extends PaymentController
 | 
			
		||||
            case 'Completed':
 | 
			
		||||
                $receiver_match = (strtolower($request['receiver_email']) == strtolower($setting['email']));
 | 
			
		||||
 | 
			
		||||
                $total_paid_match = ((double) $request['mc_gross'] == $invoice->amount);
 | 
			
		||||
                $total_paid_match = ((double) $request['mc_gross'] == $document->amount);
 | 
			
		||||
 | 
			
		||||
                if ($receiver_match && $total_paid_match) {
 | 
			
		||||
                    event(new PaymentReceived($invoice, $request));
 | 
			
		||||
                    event(new PaymentReceived($document, $request));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (!$receiver_match) {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,29 +21,29 @@
 | 
			
		||||
                <input type="hidden" name="upload" value="1" />
 | 
			
		||||
                <input type="hidden" name="business" value="{{ $setting['email'] }}" />
 | 
			
		||||
                <?php $i = 1; ?>
 | 
			
		||||
                @foreach ($invoice->items as $item)
 | 
			
		||||
                @foreach ($document->items as $item)
 | 
			
		||||
                    <input type="hidden" name="item_name_{{ $i }}" value="{{ $item->name }}" />
 | 
			
		||||
                    <input type="hidden" name="amount_{{ $i }}" value="{{ $item->price }}" />
 | 
			
		||||
                    <input type="hidden" name="quantity_{{ $i }}" value="{{ $item->quantity }}" />
 | 
			
		||||
                    <?php $i++; ?>
 | 
			
		||||
                @endforeach
 | 
			
		||||
                <input type="hidden" name="currency_code" value="{{ $invoice->currency_code}}" />
 | 
			
		||||
                <input type="hidden" name="first_name" value="{{ $invoice->first_name }}" />
 | 
			
		||||
                <input type="hidden" name="last_name" value="{{ $invoice->last_name }}" />
 | 
			
		||||
                <input type="hidden" name="address1" value="{{ $invoice->customer_address }}" />
 | 
			
		||||
                <input type="hidden" name="currency_code" value="{{ $document->currency_code}}" />
 | 
			
		||||
                <input type="hidden" name="first_name" value="{{ $document->first_name }}" />
 | 
			
		||||
                <input type="hidden" name="last_name" value="{{ $document->last_name }}" />
 | 
			
		||||
                <input type="hidden" name="address1" value="{{ $document->customer_address }}" />
 | 
			
		||||
                <input type="hidden" name="address_override" value="0" />
 | 
			
		||||
                <input type="hidden" name="email" value="{{ $invoice->customer_email }}" />
 | 
			
		||||
                <input type="hidden" name="invoice" value="{{ $invoice->id . '-' . $invoice->customer_name }}" />
 | 
			
		||||
                <input type="hidden" name="email" value="{{ $document->customer_email }}" />
 | 
			
		||||
                <input type="hidden" name="invoice" value="{{ $document->id . '-' . $document->customer_name }}" />
 | 
			
		||||
                <input type="hidden" name="lc" value="{{ $setting['language'] }}" />
 | 
			
		||||
                <input type="hidden" name="rm" value="2" />
 | 
			
		||||
                <input type="hidden" name="no_note" value="1" />
 | 
			
		||||
                <input type="hidden" name="no_shipping" value="1" />
 | 
			
		||||
                <input type="hidden" name="charset" value="utf-8" />
 | 
			
		||||
                <input type="hidden" name="return" value="{{ route('portal.invoices.paypal-standard.return', $invoice->id) }}" />
 | 
			
		||||
                <input type="hidden" name="notify_url" value="{{ route('portal.invoices.paypal-standard.complete', $invoice->id) }}" />
 | 
			
		||||
                <input type="hidden" name="cancel_return" value="{{ $invoice_url }}" />
 | 
			
		||||
                <input type="hidden" name="return" value="{{ route('portal.invoices.paypal-standard.return', $document->id) }}" />
 | 
			
		||||
                <input type="hidden" name="notify_url" value="{{ route('portal.invoices.paypal-standard.complete', $document->id) }}" />
 | 
			
		||||
                <input type="hidden" name="cancel_return" value="{{ $document_url }}" />
 | 
			
		||||
                <input type="hidden" name="paymentaction" value="{{ $setting['transaction'] }}" />
 | 
			
		||||
                <input type="hidden" name="custom" value="{{ $invoice->id }}" />
 | 
			
		||||
                <input type="hidden" name="custom" value="{{ $document->id }}" />
 | 
			
		||||
                <input type="hidden" name="bn" value="Akaunting_2.0_WPS" />
 | 
			
		||||
 | 
			
		||||
                <input type="submit" value="{{ trans('general.confirm') }}" class="btn btn-success" />
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,6 @@ Route::group([
 | 
			
		||||
    'middleware' => 'guest',
 | 
			
		||||
    'namespace' => 'Modules\PaypalStandard\Http\Controllers'
 | 
			
		||||
], function () {
 | 
			
		||||
    Route::post('invoices/{invoice}/paypal-standard/return', 'Payment@return')->name('portal.invoices.paypal-standard.return');
 | 
			
		||||
    Route::post('invoices/{invoice}/paypal-standard/complete', 'Payment@complete')->name('portal.invoices.paypal-standard.complete');
 | 
			
		||||
    Route::post('invoices/{document}/paypal-standard/return', 'Payment@return')->name('portal.invoices.paypal-standard.return');
 | 
			
		||||
    Route::post('invoices/{document}/paypal-standard/complete', 'Payment@complete')->name('portal.invoices.paypal-standard.complete');
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -5,5 +5,5 @@ Route::group([
 | 
			
		||||
    'middleware' => 'portal',
 | 
			
		||||
    'namespace' => 'Modules\PaypalStandard\Http\Controllers'
 | 
			
		||||
], function () {
 | 
			
		||||
    Route::get('invoices/{invoice}/paypal-standard', 'Payment@show')->name('portal.invoices.paypal-standard.show');
 | 
			
		||||
    Route::get('invoices/{document}/paypal-standard', 'Payment@show')->name('portal.invoices.paypal-standard.show');
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -5,5 +5,5 @@ Route::group([
 | 
			
		||||
    'middleware' => 'signed',
 | 
			
		||||
    'namespace' => 'Modules\PaypalStandard\Http\Controllers'
 | 
			
		||||
], function () {
 | 
			
		||||
    Route::get('invoices/{invoice}/paypal-standard', 'Payment@show')->name('signed.invoices.paypal-standard.show');
 | 
			
		||||
    Route::get('invoices/{document}/paypal-standard', 'Payment@show')->name('signed.invoices.paypal-standard.show');
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user