{"id":21390251,"url":"https://github.com/substancelab/rconomic","last_synced_at":"2025-07-13T16:32:14.212Z","repository":{"id":49158584,"uuid":"1911186","full_name":"substancelab/rconomic","owner":"substancelab","description":"Ruby wrapper for the e-conomic API - thankfully, integrating with e-conomic doesn't have to suck","archived":false,"fork":false,"pushed_at":"2021-06-25T19:42:26.000Z","size":1071,"stargazers_count":24,"open_issues_count":1,"forks_count":27,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-20T00:06:39.280Z","etag":null,"topics":["e-conomic","ruby","ruby-wrapper","soap"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/substancelab.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-17T13:52:00.000Z","updated_at":"2023-11-24T10:18:03.000Z","dependencies_parsed_at":"2022-09-04T11:50:43.069Z","dependency_job_id":null,"html_url":"https://github.com/substancelab/rconomic","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/substancelab%2Frconomic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/substancelab%2Frconomic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/substancelab%2Frconomic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/substancelab%2Frconomic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/substancelab","download_url":"https://codeload.github.com/substancelab/rconomic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225901188,"owners_count":17542183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-conomic","ruby","ruby-wrapper","soap"],"created_at":"2024-11-22T13:16:45.080Z","updated_at":"2024-11-22T13:16:45.698Z","avatar_url":"https://github.com/substancelab.png","language":"Ruby","readme":"r-conomic\n=========\n\nRuby wrapper for the [e-conomic](http://www.e-conomic.co.uk) SOAP API, that aims at making working with the API bearable.\n\nE-conomic is a web-based accounting system. For their marketing speak, see [http://www.e-conomic.co.uk/about/](http://www.e-conomic.co.uk/about/). More details about their API at [http://www.e-conomic.com/developer](http://www.e-conomic.com/developer).\n\n[![Build Status](https://travis-ci.org/substancelab/rconomic.svg?branch=master)](https://travis-ci.org/substancelab/rconomic) [![Test Coverage](https://codeclimate.com/github/substancelab/rconomic/badges/coverage.svg)](https://codeclimate.com/github/substancelab/rconomic/coverage) [![Code Climate](https://codeclimate.com/github/substancelab/rconomic/badges/gpa.svg)](https://codeclimate.com/github/substancelab/rconomic)\n\n\nUsage example\n-------------\n\n    economic = Economic::Session.new\n\n    # Connect using a Private app ID and an access ID provided by the \"Grant Access\"\n    # As described here: https://www.e-conomic.com/developer/connect\n    economic = Economic::Session.new\n    economic.connect_with_token 'the_private_app_id', 'the_access_id_you_got_from_the_grant'\n\n    # Find a debtor:\n    debtor = economic.debtors.find(:number =\u003e 101)\n\n    # Creating a debtor:\n    debtor = economic.debtors.build\n\n    debtor.number = economic.debtors.next_available_number\n    debtor.debtor_group_handle = { :number =\u003e 1 }\n    debtor.name = 'Bob'\n    debtor.vat_zone = 'HomeCountry' # HomeCountry, EU, Abroad\n    debtor.currency_handle = { :code =\u003e 'DKK' }\n    debtor.price_group_handle = { :number =\u003e 1 }\n    debtor.is_accessible = true\n    debtor.ci_number = '12345678'\n    debtor.term_of_payment_handle = { :id =\u003e 1 }\n    debtor.layout_handle = { :id =\u003e 16 }\n    debtor.save\n\n    # Create invoice for debtor:\n    current_invoice = debtor.current_invoices.build\n    current_invoice.term_of_payment_handle = debtor.term_of_payment_handle\n\n    current_invoice.date = Time.now\n    current_invoice.due_date = Time.now + 15\n    current_invoice.exchange_rate = 100\n    current_invoice.is_vat_included = false\n\n    invoice_line = Economic::CurrentInvoiceLine.new\n    invoice_line.description = 'Line on invoice'\n    invoice_line.unit_handle = { :number =\u003e 1 }\n    invoice_line.product_handle = { :number =\u003e 101 }\n    invoice_line.quantity = 12\n    invoice_line.unit_net_price = 19.95\n    current_invoice.lines \u003c\u003c invoice_line\n\n    current_invoice.save\n\n    # You can delete it by doing:\n    # current_invoice.destroy\n\n    invoice = current_invoice.book\n\n    # Create a debtor payment\n\n    cash_book = economic.cash_books.all.last # Or find it by its number\n\n    # The reason debtor payments are done this way is because we don't want to specify the voucher number. If we build the cash book entry ourselves,\n    # without specifying the voucher number, the API will complain. This way, E-Conomics will assign a voucher number for us.\n\n    cash_book_entry = cash_book.entries.create_debtor_payment(:debtor_handle =\u003e debtor.handle, :contra_account_handle =\u003e { :number =\u003e '1920' })\n    cash_book_entry.amount = -123.45\n    cash_book_entry.currency_handle = { \"Code\" =\u003e \"DKK\" }\n    cash_book_entry.debtor_invoice_number = invoice.number\n    cash_book_entry.text = \"Payment, invoice #{ invoice.number }\"\n    cash_book_entry.save\n\n    cash_book.book\n\n    # Find a product:\n    product = economic.products.find(1234)\n\n    # Creating a product:\n    product = economic.products.build\n    product.number = 'ESC2014-LED-DISPLAY'\n    product.product_group_handle = { :number =\u003e 1 }\n    product.name = '100 meter LED display'\n    product.sales_price = 999999\n    product.cost_price = 100000\n    product.recommended_price = 999999\n    product.is_accessible = true\n    product.volume = 1\n    product.save\n\nHow to enable e-conomic API access\n----------------------------------\n\nYou need a Developer account and setup an app in their web UI. E-conomic users can then grant that app access to their account.\n\n* Developer portal: https://www.e-conomic.com/developer\n* Instructions: https://www.e-conomic.com/developer/connect\n\nIt doesn't do everything\n------------------------\n\nNot even remotely... For now, limited to a small subset of all the [available operations](https://www.e-conomic.com/secure/api1/EconomicWebService.asmx):\n\n                       | Create | Read | Update | Delete\n    -------------------+--------+------+--------+-------\n    CashBook           | X      | X    | X      | X\n    CashBookEntry      | X      | X    | X      | X\n    Company            | X      | X    | X      | X\n    Creditor           | X      | X    | X      | X\n    CreditorEntry      | X      | X    |        |\n    CreditorContact    | X      | X    | X      | X\n    CreditorEntry      | X      | X    | X      | X\n    CurrentInvoice     | X      | X    | X      | X\n    CurrentInvoiceLine | X      | X    | X      | X\n    Debtor             | X      | X    | X      | X\n    DebtorContact      | X      | X    | X      | X\n    DebtorEntry        | X      | X    | X      | X\n    Entry              | X      | X    | X      | X\n    Invoice            | X      | X    |        |\n    Order              |        | X    |        |\n    OrderLine          |        | X    | X      |\n    Product            | X      | X    | X      | X\n\nCredits\n-------\n\nSponsored by [Lokalebasen.dk](http://lokalebasen.dk)\n\n\nLicense\n-------\n\nR-conomic is licensed under the MIT license. See LICENSE for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubstancelab%2Frconomic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsubstancelab%2Frconomic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubstancelab%2Frconomic/lists"}