Для фрилансера нет ничего важнее времени. Отслеживание счетов или оформление документов может быстро стать утомительным и занять большую часть этого. В марте я показал вам 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.
После входа в систему, если вы решите создать профиль компании, вас приветствует хорошо разработанная панель инструментов.
Как вы можете заметить, дизайн прост, но элегантен и предоставляет пользователю всю необходимую информацию заранее. Этот дизайн становится очень удобным для мобильных устройств, которым не хватает места на странице, которое есть у настольных компьютеров в изобилии.
InvoiceNinja может вести списки клиентов, налоговые ставки и счета, услуги и продукты, которые вы можете легко связать с новым счетом.
Чтобы добавить клиента, вы можете добавить его при создании счета-фактуры или выбрать команду « Clients > New Client
в главном меню в верхней части страницы.
Теперь давайте создадим нового клиента ACME Inc. и заполните детали, как показано на скриншоте ниже.
После того как вы заполните все поля и сохраните клиент, перейдите в Invoices > New Invoice
чтобы создать наш первый счет-фактуру, как показано на следующем снимке экрана.
Налоговые ставки можно легко управлять при создании счета, выбрав Manage rates
и добавив детали налоговой ставки.
С InvoiceNinja вы также можете добавить процентную скидку, применяемую непосредственно к счету.
Управлять продуктами и услугами можно, выбрав « Product Library
в верхнем правом меню, которое отображается при нажатии на ваше имя пользователя.
Просто, правда?
Вывод
После того, как данные и продукты клиента уже сохранены, создание нового счета-фактуры — это просто добавление количества для каждого продукта или услуги и выбор способа доставки — либо в формате PDF, либо по электронной почте с ссылкой на счет-фактуру.
Однако есть все недостатки этой простоты и скорости. Существует только 4 шаблона для счета-фактуры, и единственная настройка, которую вы можете сделать, не вдаваясь в код, — это изменить основной и дополнительный цвета. Валюта сохраняется для каждого клиента, что означает, что у вас не будет возможности использовать другую валюту для определенного счета-фактуры для одного и того же клиента. Другие параметры, такие как управление налоговыми ставками, доступны только при создании счета или квоты. У вас также не будет возможности применить фиксированную скидку.
Одна из самых больших проблем, которые я заметил, заключается в том, что если вы удалите клиента, все счета, связанные с этим клиентом, также будут удалены, но приложение не предупредит вас об этом.
В следующих статьях мы увидим, как мы можем исправить некоторые из этих проблем и сделать приложение подходящим для наших нужд. Вы дали ему попробовать? Сделано какие-либо расширения? Дайте нам знать!