Code Monkey home page Code Monkey logo

admin-portal's Introduction

Sublime's custom image

v5-develop phpunit Codacy Badge CLA assistant

Invoice Ninja 5

Join us on Slack, Discord, Support Forum

Introduction

Version 5 of Invoice Ninja is here! We took the best parts of version 4 and add the most requested features to produce a invoicing application like no other.

All Pro and Enterprise features from the hosted app are included in the open code. We offer a $30 per year white-label license to remove the Invoice Ninja branding from client facing parts of the app.

Setup

Mobile Apps

Desktop Apps

Installation Options

Recommended Providers

Quick Hosting Setup

git clone --single-branch --branch v5-stable https://github.com/invoiceninja/invoiceninja.git
cp .env.example .env
composer i -o --no-dev
php artisan key:generate

Please Note: Your APP_KEY in the .env file is used to encrypt data, if you lose this you will not be able to run the application.

Run if you want to load sample data, remember to configure .env

php artisan migrate:fresh --seed && php artisan db:seed && php artisan ninja:create-test-data

To run the web server

php artisan serve 

Navigate to (replace localhost with the appropriate domain)

http://localhost:8000/setup - To setup your configuration if you did not load sample data.
http://localhost:8000/ - For Administrator Logon

user: [email protected]
pass: password

http://localhost:8000/client/login - For Client Portal

user: [email protected]
pass: password

Developers Guide

App Design

The API and client portal have been developed using Laravel if you wish to contribute to this project familiarity with Laravel is essential.

When inspecting functionality of the API, the best place to start would be in the routes/api.php file which describes all of the availabe API endpoints. The controller methods then describe all the entry points into each domain of the application, ie InvoiceController / QuoteController

The average API request follows this path into the application.

  • Middleware processes the request initially inspecting the domain being requested + provides the authentication layer.
  • The request then passes into a Form Request (Type hinted in the controller methods) which is used to provide authorization and also validation of the request. If successful, the request is then passed into the controller method where it is digested, here is an example:
public function store(StoreInvoiceRequest $request)
{

    $invoice = $this->invoice_repo->save($request->all(), InvoiceFactory::create(auth()->user()->company()->id, auth()->user()->id));

    $invoice = $invoice->service()
                        ->fillDefaults()
                        ->triggeredActions($request)
                        ->adjustInventory()
                        ->save();

    event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));

    return $this->itemResponse($invoice);

}

Here for example we are storing a new invoice, we pass the validated request along with a factory into the invoice repository where it is processed and saved.

The returned invoice then passes through its service class (app/Services/Invoice) where various actions are performed.

A event is then fired which notifies listeners in the application (app/Providers/EventServiceProvider) which perform non blocking sub tasks

Finally the invoice is transformed (app/Transformers/) and returned as a response via Fractal.

Developer environment

Using the Quick Hosting Setup describe above you can quickly get started building out your development environment. Instead of using

composer i -o --no-dev

use

composer i -o

This provides the developer tools including phpunit which allows the test suite to be run.

If you are considering contributing back to the main repository, please add in any tests for new functionality / modifications. This will greatly increase the chances of your PR being accepted

Also, if you plan any additions for the main repository, you may want to discuss this with us first on Slack where we can assist with any technical information and provide advice.

Credits

Security

If you find a security issue with this application, please send an email to [email protected]. Please follow responsible disclosure procedures if you detect an issue. For further information on responsible disclosure please read here.

License

Invoice Ninja is released under the Elastic License.
See LICENSE for details.

admin-portal's People

Contributors

binsaed avatar danger-ahead avatar danysz avatar esarbanis avatar flutterninja9 avatar ggasbarri avatar guptaanmol184 avatar heilmela avatar hillelcoren avatar hmnd avatar joshuadwire avatar kishanmnpatel avatar larsk1 avatar licaon-kter avatar lsaudon avatar mindnervestech avatar psame18 avatar thomaspr1205 avatar turbo124 avatar whatisfydocom avatar yois615 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

admin-portal's Issues

One one resolution image included in the app

This is more of a question than an issue, I noticed you have included only one resolution image, I wonder how come your app did not get rejected on the AppStore.
Not all iPhones use same resolution images. Or did you use different resolution images and not included in this GitHub repo. Can you please guide me how to include different resolution image and how to include them in pubspec.yaml

Tasks not loading

Hi, thanks for the excellent work your doing -- love this program!

Tasks never show a list, just spins.

I've cleared my phone cache and app, reinstalled the latest app. Removed the legacy app. Android 9 latest.

Data on self-hosted 4.5.7. All data hooks up fine and all views are fine for other areas (ie invoices, quotes, etc) Tasks just spins and doesn't show any ongoing tasks of any label/type. Checked change logs on newer 4.5.x versions. No mention of required for tasks to work. Nothing in their directly affects my workflow -- maybe I should update the self-host for this to work though?

Can create a new task. That shows up in the database and web view from workstation if I hit the cloud in the top right corner of the app. Task list remains empty on the phone screen. If I back out of an ongoing task created on the phone (return to task list screen or jump to invoices/other tabs) - I can't return to the running task as it's not listed either.

I don't believe it's a wait for sync issue as I've only been using this for about 2 months so there are about 200 tasks at most. Left it spinning for an hour - nothing listed still.

Thanks again.

Build Failed in iOS

/Library/Caches/com.apple.xbs/Sources/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-14306.16/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/BuildSystem/Runtime/PBXTargetBuildContext.mm:757
Details: unexpected successful exit code from cancelled command <C0014:'CpResource flutter_assets':P12>
Object: <PBXTargetBuildContext: 0x7f84063f10f0>
Method: -createCommandInvocationRecordFromInvocation:
Thread: <NSThread: 0x7f8406eb3210>{number = 13, name = (null)}
Please file a bug at https://bugreport.apple.com with this warning message and any useful information you can provide.
** BUILD FAILED **

Xcode's output:

=== BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
error: the following command failed with exit code 1 but produced no further output
CopyPlistFile /Volumes/Workspace/AndoridProjects/Github/flutter-mobile/build/ios/Debug-iphonesimulator/Runner.app/GoogleService-Info.plist Runner/GoogleService-Info.plist

Login error 4.5.1

Invoiceninja 4.5.1

After trying to log in through the app I got this error:

img_20180731_175436

Please help me!

App force close since update

Hey, I'm using v0.1.4
Since the update, the app is force closing. I've also deleted APP-Data.

Mobile: Oneplus 6, Android 8.1.0

Please remove dependency of google services for app to be usable

Before the 20 March update from google play store i was able to use the app despite the error message saying that it needs google play services to work.
However after this update i cannot connect to the self-hosted server anymore plus i get the error message as i connect.

For the people who dont use google play services can you please remove the dependency in order to use the app? And no i dont mind if i dont get notifications. I just want the app to be usable without the error message.

Also, Why isnt any of the latest releases shown in the Releases page here since August 2018 ?

App stuck on the initial logo screen

I followed all the steps to setup the app but when i run it its just stuck on the home screen
image
the logs dont show anything particularly useful except the the no-method error
image

What can i do to debug the error? thanks

New App Unable to Add Multiple Company?

Hi all,

I updated the mobile app but I'm unable to find way to add another company. Is the new app not allow multiple self hosted Invoice Ninja with different URL?

Please advice, thank you.

offline support

Application should support offline mode . i.e. create product ,client in offline mode.

App not connecting WRONG_VERSION_NUMBER

I found an error when trying to connect to the self-hosted version of the app, I followed the instructions and set the API key. But when I try to connect to it through the app it says:

HandshakeException: Handshake error in client (OS Error: WRONG_VERSION_NUMBER(tls_record.cc:242))

Running Invoice Ninja v4.5.7 and the latest version from the Play store on Android 9.

Dashboard stats not correct and multi-currency

When I check the dashboard screen, the time period for each section seems to be different with no way to change it. Some stats are also only for the default currency.

screenshot_20180709-222507

The invoices sent number is correct and shows the total number of invoices I have sent since installing in any currency.
I have 12 clients in the system, but 2 of them were set up for testing so I assume this is correct as invoices to the test accounts were deleted.
The outstanding value isn't correct. In the web admin I have 2,250.72 total outstanding GBP and 1,896.70 in the last 30 days (all other currencies are fully paid).
I'm not sure where the total revenue is coming from as it doesn't match any of the default timescales for the web dashboard.

I'm not sure where to check average invoice amount in the web app but it also seems very low.

All the stats are for the default currency of the main app, but I also bill in other currencies and there's no way to view those in the mobile app.

task tax rate not added and typing in a "product" name doesn't assign tax to task - pick list needed

So I've set my tax rates in settings on the self hosted server side Settings/Advanced Settings to
"Enable specifying line item taxes" Nothing else checked. Default Tax Rate is set to 13%

I'm confused about how to set a tax rate for a task. Clients have different "task rates" specified in the Client section. From a computer (not phone app), invoicing task(s) works but I have to change the product of the task line to "Labour" from blank, to assign a tax rate. Everything here is 13% tax except a line item aka "product" for environmental recovery surcharge on hardware - this varies from monitor to desktop to laptop to mouse etc. but is not "taxed" as well.

I can continue to do the assigning a "Labour" product to the tasks - if I miss that no tax is collected - so not great - if you have a suggestion I'm open to it at this level.

This problem leads to the problem on my android phone InvNinja app... If I create an invoice with the task(s) performed at a job site, It allows me to click the "Product" assignment and type something in, but no pick list. If I type Labour or labour, it doesn't assign a tax even though Labour is a valid product with a tax rate assigned.

I see in Advanced Settings / Invoice Settings / Tasks two entries for "Task Field" I'm unclear if this is something I should set up or not related to this issue of just assigning a tax to tasks which would solve the issue.
Other possible solutions - can a task just be always affiliated with a "Product"?

"specifying an invoice tax" doesn't work because I can't subtract tax for those line items for "Electronics Stewardship Fees"

Basically, I can't invoice tasks from my phone because of this issue / or lack of understanding on my backend setup. Your guidance would be greatly appreciated.

NoSuchMethodError: The method '[]' was called on null.

Hi,
When I open the app & land on the Overview tab of the Dashboard, I just get the errors displayed in the below images. The screen in the second image is displayed when I try to open the menu.

Everything accessed via the Activity tab appears to be working as expected.

Invoice Ninja 4.5.8
PHP-FPM 7.2
Latest Android app

Allow editing tasks seconds

At least on Android, start and stop time fields in tasks only allow to set hours and minutes but not seconds. Also, the task duration can only be set in periods of 15 minutes and not the real duration.

"SocketException Failed host lookup" when old app still installed

Hello,

First off, you guys are doing a really nice job with the movement of InvoiceNinja.

tl:dr Uninstall the old/original app if you have the below error.

I started this as a post with the below problem and then I just noticed that I still had the old/original app installed. It must cause some kind of conflict and because I couldn't find a single thing about it online. I figured that I would make this issue for anyone who runs into it.

SocketException: Failed host lookup:
'invoice.example.com' (OS Error: No
address associated with hostname, errno = 7)

Thanks a lot guys for the great app.

"The getter 'isNotEmpty' was called in null"

Hi,

First, thanks for the great web app and for this new mobile app.
I installed the tester/developer version from Google Play, and am receiving the following error in the app:
The getter 'isNotEmpty' was called in null.

I am running a self-hosted installation and the latest version of the web app (4.5.0).

Screenshot attached
screenshot_20180709-132330

iOS Paste not possible

Try to paste text in some fields. Not Wirkung. Got error:
NoSuchMethodError: The getter ‚pasteButtonLabel‘ called on Null.
Receiver: null
Tried Calling: pasteButtonLabel

Login errors when currencies table contains values

Related to an issue reported in slack: https://invoiceninja.slack.com/archives/CBL9F6WJZ/p1531164141000085

Invoiceninja 4.5
After trying to log in through the app I got this error:

login

In my database, all exchange_rate values were set to 1.0000 (other than one which was null).

I installed a fresh copy locally and checked the table and all values were null by default. So I set everything to null on my live version and then I could log in.

I'm not sure what modifies the exchange_rate value, since they were all set to the same value 1.000, but it might explain why others weren't running into the same issue.
I have previously sent invoices in 4 different currencies.
I have fixer.io set up for exchange rates.

EXCHANGE_RATES_ENABLED=true
XCHANGE_RATES_URL=http://data.fixer.io/latest?access_key=mykey
EXCHANGE_RATES_BASE=GBP

I can't find anything in the site admin that modifies these values so I'm guessing it's something like the above?

Dashboard not loading

I have the latest version of the Android app and Self Host of Invoice Ninja. I thought the Dashboard feature was not implemented yet until I saw a screenshot in this issue: #20 (comment)

My Dashboard never loads and just shows the loading icon forever:

screenshot

I am using Android 7 on a Moto X Pure edition.

Activity tab in android app not reflecting correct updater as web version

In the activity tab on the android app it is not reflecting the updater that is in the activity tab in the web version.

So in the android app it shows "Joe Blogs updated invoice 0001" but in the web admin page it shows "Uncle Ben updated invoice 001", Uncle Ben being the correct updater.

This is happening in the latest android app and on self hosted v4.5.13 and has behaved like this on previous versions.

Many thanks.

Issue with currency decimal digits

Hello.
I created a custom currency in the database(Albanian Lek, didn't exist on the list). I assigned zero decimal digits and in the main program works correctly. However there is an issue in the mobile app, it adds two decimal digits and messes up with the values. For example I have an invoice where I have value of 1667, VAT(20%) of 333 and total of 2000. Instead on the mobile app I have value of 1666, VAT of 333.4 and a total of 1999.4 Since I have set zero decimal digits, the web app is OK, but the mobile app does not respect that.

Unable to login to 4.5.7

Hello,

I'm having an issue with the app and 4.5.7. App is updated to the latest version and I just updated (and cleared the cache) of my InvoiceNinja selfhost.

I am able to login to Ninja using the old version of the Android app.

screenshot_20181215-210348

Seems to be missing multi currency settings...

Hi, First off, LOVE the look and feel of the new app, congrats! I just started testing and at first glance I notice that although in the web version I can see on my dashboard both Dollar and Euro clients, in the ios beta app I cannot. And I see that a couple of them are showing billed in my invoices, but with a dollar sign in front of them instead of Euro.

Publish on F-Droid

I wasn't able to find InvoiceNinja on F-Droid but it would be nice to have it published there as well. And my guess is that F-Droid has probably a higher percentage of users that might be interested in InvoiceNinja than the other stores. 😉

I am not sure how "open" this license is and whether it, and its dependencies are open enough to publish it on F-Droid.
The requirements for F-Droid are naturally strict but maybe the InvoiceNinja doesn't need any/much changes.

PS: thank you for your work 👐

Error getting a dependency package

Because every version of flutter_driver from sdk depends on intl 0.15.6 and invoiceninja_flutter depends on intl ^0.15.7, flutter_driver from sdk is forbidden.
So, because invoiceninja_flutter depends on flutter_driver any from sdk, version solving failed.
pub get failed (1)

Changing quantity removes unit cost

When changing the quantity at the android app it removes the unit cost leaving the invoice with 0,00... maybe a "reset unit cost" or some kinda protection could also help to prevent accidental inputs...

Unable to Login

The app was instant crashing on Android and after 2 updates (I think that is how many you pushed out) I can now attempt to log in again. The login fails every time though even with all the correct credentials and I get this massive error object in red text printed to the apps login page.

Customize email html markup

On both the iOS and Android apps, when customizing an email before sending, the body of the email contains html markup which makes it difficult to edit.

This is from Android app

Screenshot_20190410-092540

Error login

Im getting this error..

Powered by Invoice Ninja - v4.5.8
Android v0.1.26

whatsapp image 2019-01-15 at 18 05 49

Thanks

Sort invoices by date incorrect

OS: Android

Host Version: 4.5.2

When I use the sort option to sort invoices by ascending or descending based on the invoices date it is not sorting correctly. For example when choosing descending order I have March invoices at the top and way at the bottom with August in the middle of the list.

Default Tax rate not added to Invoice

The default tax rate set in Settings>Tax Rates>Default Tax Rate in the web UI, is not applied by default when invoice is created in the mobile app.

Tasks?

In case this has already been reported, feel free to close. But will task/time tracking be in the final version? I use it ALL the time. Thanks!

Sort by invoices Due Date

I use IN to manage reservation invoices for a small accommodation. As such the Due Date of the invoice is more important than the invoice date. The ability to sort by Due Date would be helpful. In addition, displaying the Due Date as part of the invoice list would be nice to have. (e.g. in addition to the name, amount due, invoice no and invoice status).

Add adaptive icon support on Android 8+

Newer versions of Android have a featured called Adaptive Icons. Essentially, this lets users choose the shape of all of the icons on their home screen, to keep them uniform. In the future, Google may use this feature for things such as notification indicators, or other unknown features.

Currently, the Invoice Ninja icon is appearing against a solid white background in most cases, and looks pretty bad (at least in my opinion). Adaptive icons are pretty easy to support, just requiring a couple of new graphics and about 5 lines of new XML code. I'd greatly appreciate it if Invoice Ninja could be updated to support Adaptive Icons.

https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive

invoice-ninja

QR Code for easy login with self hosting

Hello,
First, thank you for the application
On self hosting is not easy to login in the application but with an qr code this easier to do this.

I am open to other easy login :)

Logo design proposal

Hi, my name is Valeria. I'm a graphic designer and I'd like to collaborate on your open source project and propose free logo/icon design for your app. If it's something you're interested in, please, let me know!
Best,
Valeria

can't connect to Hosted Login?

"invalid secret" error is being thrown. Where can i get this secret if hosted login is used?
Basically how can i connect to the hosted version

App release versions aren't tagged

It would be great if app versions were tagged in Git and listed on the Releases page. It would be even better if the compiled binaries were also uploaded there. This will help people who don't use Google Play, and give us a way to easily check the latest version so we know when to update.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.