Code Monkey home page Code Monkey logo

easyquickimport's Introduction

EasyQuickImport — Import transactions, invoices and bills into QuickBooks Desktop from Excel or CSV

Build Status Total Downloads

EasyQuickImport is a tool that helps you import invoices, bills, transactions, customers and vendors into QuickBooks Desktop in multiple currencies in bulk.

Features

  • Import of Journal Entries transactions, Single-line Invoices and bills. Import creates customers, and vendors automatically.
  • Supported formats: csv, xlsx, xls
  • Multicurrency support. The base currency can be USD, EUR or anything else. The currency of all your accounts is detected automatically (after you import the Chart of accounts).
  • Cross Currency Transactions. Transfer between accounts of different currencies goes through the Undeposited funds account. EasyQuickImport doesn't affect the Undeposited funds balance because it uses the accurate historical exchange rate.
  • Historical exchange rate. EasyQuickImport automatically obtains the exchange rate from European Central Bank on a given date for any currency for each transaction. You can use other exchange rate sources as well.
  • Multi-tenancy: if you have multiple company files on the same computer, you can add them all to EasyQuickImport.

Getting started:

Either install self-hosted or sign up for a free cloud account.

Connect EasyQuickImport to QuickBooks Desktop

In EasyQuickImport:

Add a company file in Users, define username, password and specify the home currency. It's recommended to specify the company file location if you are going to use multiple company files on the same computer. Once it's done download the QWC file.

In Quickbooks click File / Update Web Services

Then Add an Application, in the file dialog select the downloaded QWC. Then click Yes, then select "When company file is open" and click continue. When it's done don't forget to specify the password that you defined in EasyQuickImport.

Connect EasyQuickImport to QuickBooks Desktop

How to import invoices from Excel into QuickBooks Desktop

Import invoices from Excel into QuickBooks Desktop

How to import transactions from Excel into QuickBooks Desktop

How to import transactions from Excel into QuickBooks Desktop

How to import bills and vendors from Excel into QuickBooks Desktop

How to import bills and vendors from Excel into QuickBooks Desktop

How to import multicurrency transactions from Excel into QuickBooks Desktop

How to import multicurrency transactions from Excel into QuickBooks Desktop

How to install EasyQuickImport

Docker setup

Here is docker-compose example with traefik v1.7

  1. Create docker-compose.yml with the following content:
version: '3.3'

services:
    php:
        image: registry.dev.trackmage.com/karser/easyquickimport/app_php
        environment:
            APP_ENV: 'prod'
            DATABASE_URL: 'mysql://eqi:pass123@mysql:3306/easyquickimport?serverVersion=mariadb-10.2.22'
            MAILER_DSN: 'smtp://localhost'
            # MAILER_DSN: 'ses://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1'
            # MAILER_DSN: 'ses+smtp://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1'
            DOMAIN: 'your-domain.com'
        depends_on:
            - mysql
        networks:
            - backend

    nginx:
        image: registry.dev.trackmage.com/karser/easyquickimport/app_nginx
        depends_on:
            - php
        networks:
            - backend
            - webproxy
        labels:
            - "traefik.backend=easyquickimport-nginx"
            - "traefik.docker.network=webproxy"
            - "traefik.frontend.rule=Host:your-domain.com"
            - "traefik.enable=true"
            - "traefik.port=80"

    mysql:
        image: leafney/alpine-mariadb:10.2.22
        environment:
            MYSQL_ROOT_PWD: 'pass123'
            MYSQL_USER: 'eqi'
            MYSQL_USER_PWD: 'pass123'
            MYSQL_USER_DB: 'easyquickimport'
        volumes:
            - ./db_data/:/var/lib/mysql
        networks:
            - backend

networks:
    backend:
    webproxy:
        external: true
  1. Tweak the environment variables and run
docker-compose up -d
  1. Check the logs and make sure migrations executed
docker-compose logs -f
  1. Create a user
docker-compose exec php bin/console app:create-user [email protected] --password pass123
The user has been created with id 1
  1. Done! Now open https://your-domain.com and log in with the user you just created.

Development setup

  1. Clone the repo
git clone https://github.com/karser/EasyQuickImport.git
  1. Install packages with composer
composer install
  1. Copy .env to .env.local and configure DATABASE_URL and DOMAIN
  2. Recreate the database
bin/console doctrine:schema:drop --full-database --force \
&& bin/console doctrine:migrations:migrate -n
#fixtures
bin/console doctrine:fixtures:load
  1. Create the user
bin/console app:create-user [email protected] --password pass123
  1. Run the server
cd ./public
php -S 127.0.0.1:9090

Tests

bin/phpunit

phpstan

vendor/bin/phpstan analyse -c phpstan.neon
vendor/bin/phpstan analyse -c phpstan-tests.neon

Lookup historical currency rate

bin/console app:currency:get USD --date 2020-03-05 --base HKD

easyquickimport's People

Contributors

karser avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

easyquickimport's Issues

500 Internal Server Error

When uploading transactions csv, error received: "Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused."

CSV in proper format, per example file provided. This occurs after confirming mapping.

Autofill data

When creating the import spreadsheet for invoices, do I have to provide ALL of the import information that is needed on the invoice? For example, can I just provide the customer account number and it merge the other customer data such as the account name and address? Same example for the billed line item. If I just provide the item code will it fill in the description and the rate?

Thanks in advance.

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.