Статьи

Представляем InvoiceNinja: Самостоятельное выставление счетов

Для фрилансера нет ничего важнее времени. Отслеживание счетов или оформление документов может быстро стать утомительным и занять большую часть этого. В марте я показал вам FusionInvoice , инструмент для отслеживания ваших клиентов и счетов. Несмотря на то, что это хороший и простой в использовании инструмент, его версия с открытым исходным кодом была прекращена и частично перенята InvoicePlane . Однако в этом посте я хотел бы познакомить вас с InvoiceNinja .

Представляем InvoiceNinja

InvoiceNinja — это платформа для выставления счетов с открытым исходным кодом, размещенная в облаке.

В соответствии со своим девизом, интерфейс InvoiceNinja является простым и интуитивно понятным, что делает создание счетов-фактур проще простого. Такие задачи, как управление клиентами, выставление нового счета или добавление платежа, — это просто простые действия, которые даже неопытный пользователь будет чувствовать себя комфортно. Его упрощенная панель инструментов позволяет пользователю отображать соответствующую информацию о созданных счетах и ​​их статусе. Предварительный просмотр счета-фактуры поможет вам легко просмотреть его перед отправкой своим клиентам.

Благодаря интеграции с PayPal, Google Wallet и 21 другим платежным процессором, InvoiceNinja позволяет вашим клиентам очень просто возместить вам вашу работу непосредственно через приложение.

На техническом уровне InvoiceNinja имеет в своей основе последнюю версию платформы Laravel, а его пользовательский интерфейс построен на библиотеке Twitter Bootstrap. Эта интеграция позволяет легко обновлять тему собственной версии точно в соответствии с вашими требованиями, а также иметь адаптивный макет и мобильную готовую настройку.

Knockout.js, библиотека Javascript MVVM, соединяет богатый пользовательский интерфейс с бизнес-логикой, а с помощью библиотеки jsPDF Javascript вы можете легко экспортировать счет-фактуру непосредственно в виде файла PDF или отправить его по электронной почте своим клиентам, используя всего несколько щелчки мыши.

Шаги установки

Установка в локальную среду очень проста при использовании предварительно упакованной коробки Vagrant от Laravel’s Homestead. Homestead работает на любой хост-системе Windows, Mac или Linux и включает в себя веб-сервер Nginx, PHP 5.5 и сервер баз данных MySQL 5.5, уже установленные и настроенные.

Бруно Шкворц отлично объясняет, как запустить Homestead в 5 простых шагов. Вы можете проверить его статью, если вы не знакомы с Хомстедом, поскольку мы не будем вдаваться в подробности здесь. Просто убедитесь, что вы выполняете его шаги, но пропустите 5-й шаг и не загружайте виртуальную машину, пока мы не настроим ее для нашего приложения.

Теперь, если вы следовали инструкциям Bruno и загрузили Homestead VM на свой компьютер, настроив его для нашей установки InvoiceNinja, это простое изменение в 4 строки.

Откройте файл Homestead.yaml в предпочитаемом вами редакторе и измените следующие несколько строк в соответствии с вашими путями установки:

folders: - map: /path/to/your_installation to: /home/vagrant/invoice-ninja 

и

 sites: - map: invoice.ninja.dev to: /home/vagrant/invoice-ninja/public 

folders/map: /path/to/your_installation ссылаются на путь, который вы folders/map: /path/to/your_installation на своем хост-компьютере. Здесь файлы в конечном итоге будут загружены, хотя на ВМ они будут отображаться как установленные внутри коробки Vagrant.

Это все модификации, которые нам нужны. Теперь просто загрузите виртуальную vagrant up с помощью команды vagrant up и дайте ей закончить установку.

Когда установка виртуальной машины будет завершена, и это займет не более нескольких минут, мы начнем скачивать InvoiceNinja вместе со всеми его зависимостями из Github.

Чтобы начать загрузку приложения, просто введите SSH в виртуальную vagrant ssh Homestead с помощью команды vagrant ssh . После входа в систему введите в командной строке следующую команду:

 $ cd ~/invoice-ninja 

Это изменит рабочий каталог на папку, которую мы ранее установили для размещения нашего приложения внутри виртуальной машины.

Чтобы начать загрузку InvoiceNinja в нашу локальную среду, выполните следующую команду:

 $ git clone https://github.com/hillelcoren/invoice-ninja.git . 

Примечание: убедитесь, что вы поставили точку в конце команды clone иначе Git создаст подпапку, которая нарушит путь, который мы указали ранее для нашей конфигурации сайтов Nginx.

Чтобы поддерживать в актуальном состоянии любые сторонние зависимости, используемые проектом, команда разработчиков использует Composer. (Если вы не знакомы с Composer, у Sitepoint есть очень хорошая статья, написанная Александром Коньо, которая поможет вам быстро освоить Composer).

Теперь давайте установим остальные библиотеки, выполнив следующую команду:

 $ composer install 

Примечание: Github ограничен 60 запросами в час для неаутентифицированных пользователей. Из-за этого ограничения вы должны будете войти в свою учетную запись Github, когда вам будет предложено установить остальные компоненты. Если у вас нет учетной записи Github, создайте ее.

После завершения загрузки всех зависимостей давайте подготовим базу данных, выполнив следующую команду:

 $ mysql -u root -psecret 

Коробка Homestead поставляется с предварительно установленным и настроенным MySQL. Конфигурация по умолчанию создала пользователя с именем «hometead» с паролем «secret». Этот пользователь будет обладать большинством административных прав, но в нашем случае нам понадобится пользователь «root», чтобы создать и назначить нашей базе данных пользователя «ninja», который по умолчанию настроен в приложении InvoiceNinja. Добавляя пользователя ninja мы не будем менять конфигурацию нашего приложения по умолчанию, но вы можете пропустить последние 2 команды на этом шаге, если вам удобно быстро изменить настройки подключения к базе данных в файлах конфигурации InvoiceNinja.

После успешного входа в приглашение MySQL выполните следующую серию команд:

 mysql > CREATE DATABASE `ninja` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; mysql > CREATE USER 'ninja'@'localhost' IDENTIFIED BY 'ninja'; mysql > GRANT ALL PRIVILEGES ON `ninja`.* TO 'ninja'@'localhost'; mysql > FLUSH PRIVILEGES; 

Вот и все. Мы создали базу данных и настроили пользователя «ниндзя» со всеми необходимыми правами доступа к базе данных.

Закончив настройку, давайте заполним базу данных, выполнив следующую команду:

 $ php artisan migrate --seed 

Создайте наш первый счет

Теперь, когда мы успешно установили InvoiceNinja в нашей системе, давайте создадим наш первый счет, выставленный ACME Inc.

После входа в систему, если вы решите создать профиль компании, вас приветствует хорошо разработанная панель инструментов.

1404845694invoiceninja_dashboard.png

Как вы можете заметить, дизайн прост, но элегантен и предоставляет пользователю всю необходимую информацию заранее. Этот дизайн становится очень удобным для мобильных устройств, которым не хватает места на странице, которое есть у настольных компьютеров в изобилии.

InvoiceNinja может вести списки клиентов, налоговые ставки и счета, услуги и продукты, которые вы можете легко связать с новым счетом.

Чтобы добавить клиента, вы можете добавить его при создании счета-фактуры или выбрать команду « Clients > New Client в главном меню в верхней части страницы.

Теперь давайте создадим нового клиента ACME Inc. и заполните детали, как показано на скриншоте ниже.

1404845694invoiceninja_dashboard.png

После того как вы заполните все поля и сохраните клиент, перейдите в Invoices > New Invoice чтобы создать наш первый счет-фактуру, как показано на следующем снимке экрана.

1404845694invoiceninja_dashboard.png

Налоговые ставки можно легко управлять при создании счета, выбрав Manage rates и добавив детали налоговой ставки.

С InvoiceNinja вы также можете добавить процентную скидку, применяемую непосредственно к счету.

Управлять продуктами и услугами можно, выбрав « Product Library в верхнем правом меню, которое отображается при нажатии на ваше имя пользователя.

1404845697invoice_ninja_manage_products.jpg

Просто, правда?

Вывод

После того, как данные и продукты клиента уже сохранены, создание нового счета-фактуры — это просто добавление количества для каждого продукта или услуги и выбор способа доставки — либо в формате PDF, либо по электронной почте с ссылкой на счет-фактуру.

Однако есть все недостатки этой простоты и скорости. Существует только 4 шаблона для счета-фактуры, и единственная настройка, которую вы можете сделать, не вдаваясь в код, — это изменить основной и дополнительный цвета. Валюта сохраняется для каждого клиента, что означает, что у вас не будет возможности использовать другую валюту для определенного счета-фактуры для одного и того же клиента. Другие параметры, такие как управление налоговыми ставками, доступны только при создании счета или квоты. У вас также не будет возможности применить фиксированную скидку.
Одна из самых больших проблем, которые я заметил, заключается в том, что если вы удалите клиента, все счета, связанные с этим клиентом, также будут удалены, но приложение не предупредит вас об этом.

В следующих статьях мы увидим, как мы можем исправить некоторые из этих проблем и сделать приложение подходящим для наших нужд. Вы дали ему попробовать? Сделано какие-либо расширения? Дайте нам знать!