medianova / laravel-accounting
Accounting package for laravel
v1.3
2021-09-14 12:03 UTC
Requires
- ext-json: *
- guzzlehttp/guzzle: ^6.5.5|^7.0.1
- quickbooks/v3-php-sdk: ^6.0
Requires (Dev)
- orchestra/testbench: ^v6.18.0
- phpunit/phpunit: ^9
This package is not auto-updated.
Last update: 2025-03-26 05:16:27 UTC
README
Support Libraries
- Quickbooks
- LOGO
Installation
You can install the package via composer:
composer require medianova/laravel-accounting
configuration in config/accounting.php
return [ 'provider'=>env('ACCOUNTING_PROVIDER', 'quickbooks'), 'logo'=>[ 'base_url' => env('ACCOUNTING_LOGO_BASE_URL', 'http://localhost'), 'username' => env('ACCOUNTING_LOGO_USERNAME', 'XXXXXXXXXXXXX'), 'password' => env('ACCOUNTING_LOGO_PASSWORD', 'XXXXXXXXXXXXX'), 'company_id' => env('ACCOUNTING_LOGO_COMPANY_ID', 'XXXXXXXXXXXXX'), ], 'quickbooks'=>[ 'access_token' => env('ACCOUNTING_ACCESS_TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'), 'refresh_token' => env('ACCOUNTING_REFRESH_TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'), 'real_me_id' => env('ACCOUNTING_REAL_ME_ID', 'XXXXXXXXXXXXXXXXXXXX'), 'client_id' => env('ACCOUNTING_CLIENT_ID', 'XXXXXXXXXXXXX'), 'client_secret' => env('ACCOUNTING_CLIENT_SECRET', 'XXXXXXXXXXXXX'), 'redirect_url' => env('ACCOUNTING_REDIRECT_URI', 'https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl'), 'scope' => env('ACCOUNTING_OAUTH_SCOPE', 'com.intuit.quickbooks.accounting, openID, profile, phone, address'), 'base_url' => env('ACCOUNTING_BASE_URL', 'development'), ], ];
Usage
<?php use Medianova\LaravelAccounting\Facades\Accounting; Accounting::customer([])->create(); Accounting::customer([],0)->update(); Accounting::invoice([])->create(); Accounting::invoice([],0)->update();
Or use by choosing a provider
Customer Create
Accounting::provider('quickbooks')->customer([ "BillAddr" => [ "Line1"=> "123 Main Street", "City"=> "Mountain View", "Country"=> "USA", "CountrySubDivisionCode"=> "CA", "PostalCode"=> "94042" ], "Notes" => "Here are other details.", "Title"=> "Mr", "GivenName"=> "Evil", "MiddleName"=> "1B", "FamilyName"=> "King", "Suffix"=> "Jr", "FullyQualifiedName"=> "Evil King", "CompanyName"=> "King Evial", "DisplayName"=> "Evil King Sr2", "PrimaryPhone"=> [ "FreeFormNumber"=> "(555) 555-5555" ], "PrimaryEmailAddr"=> [ "Address" => "evilkingw@myemail.com" ] ])->create();
Customer Update
Accounting::provider('quickbooks')->customer([ "PrimaryEmailAddr"=> [ "Address" => "umut.cetinkaya@medianova.com" ] ],56)->update();
Invoice Create
Accounting::provider('quickbooks')->invoice([ "Line" => [ [ "Amount" => 100.00, "DetailType" => "SalesItemLineDetail", "SalesItemLineDetail" => [ "ItemRef" => [ "value" => 20, "name" => "Hours" ] ] ] ], "CustomerRef"=> [ "value"=> 59 ], "BillEmail" => [ "Address" => "Familiystore@intuit.com" ], "BillEmailCc" => [ "Address" => "a@intuit.com" ], "BillEmailBcc" => [ "Address" => "v@intuit.com" ] ])->create();
Invoice Update
Accounting::provider('quickbooks')->invoice([ "BillEmail" => [ "Address" => "Familiystore@intuit.com" ] ],111)->update();
Get Transaction Logo
Accounting::provider('logo')->transactions( [ "FirmNr" => 999, "DonemNr" => 1, "BaslangicTarihi" => "2021-01-01T16:43:49.2530818+03:00", "BitisTarihi" => "2021-06-26T16:43:49.2530818+03:00", "Kod" => [ "120.01.TEST10" ] ] )->get();