--
You received this message because you are subscribed to the Google Groups "Kill Bill users mailing-list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to killbilling-us...@googlegroups.com.
To post to this group, send email to killbill...@googlegroups.com.
Visit this group at http://groups.google.com/group/killbilling-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/killbilling-users/8144ccad-94cc-4756-b33d-90e9153e4c1a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
1. Tax can be very complicated (all kinds of weird rules, and keep changing every year).
FYI: The invoice-test-plugin was an initial prototype we did do validate our plugin APIs, but we don't spend too much maintaining it.
2. You current pom shows a package of 'org.kill-bill.' and i am guessing this is why you submitted a PR.
If you are the primary user of the plugin, i think this is in your interest to stay in control of the code (e.g deploy quick fixes if needed as opposed to have us approve your PR each time).
@pierre: Can you answer Benjamin 's specific questions about the historical invoices (and the tax items we added on those).
Good job on the code, seems like you already have a good understanding of the system!
I took a quick look at your code but Pierre wrote the original invoice-test-plugin, so he may a better candidate to answer your specific questions
Should we really create any missing tax items into historical invoices?
That's right indeed. The point for me was to add a fixed 20% VAT rate so that I can issue my first bills, and later improve the thing when I make money and affect a pair on this. In my specific context, 20% is the one and only rate to apply.
@pierre: we can setup a Skype call with shared screen so that you can share your feedback. Doing it live would be a good way for us to get to know each other. Though I'm in CET, I'm available on PST workday hours with no pb. What would be your best time?
On Thu, Sep 10, 2015 at 5:23 PM, stephane brossier <step...@kill-bill.org> wrote:I took a quick look at your code but Pierre wrote the original invoice-test-plugin, so he may a better candidate to answer your specific questionsThe original invoice-test-plugin was indeed a proof-of-concept to validate our APIs. Since then, the AvaTax plugin was developed and is a reference implementation for tax plugins.The core of the invoice-related logic has been extracted however. I would suggest re-using the base classes from the Java plugin framework in your plugin, in the same way the AvaTax plugin does it. This is to minimize the Kill Bill-specific invoice logic in your plugin and have a centralized place to modify things if behaviors change in the future.
On Thu, Sep 10, 2015 at 5:31 AM, Benjamin Gandon <benj...@gandon.org> wrote:Should we really create any missing tax items into historical invoices?This will depend on the company, but most likely you don't want to do that. Imagine someone enabling the tax plugin 2 years after running Kill Bill in production: most customers would be in an overdue state very quickly!
On Fri, Sep 11, 2015 at 3:28 AM, Benjamin Gandon <benj...@gandon.org> wrote:That's right indeed. The point for me was to add a fixed 20% VAT rate so that I can issue my first bills, and later improve the thing when I make money and affect a pair on this. In my specific context, 20% is the one and only rate to apply.I would echo Stéphane's sentiment here. While this will solve your immediate use-case, solving VAT correctly even for one country is actually quite difficult. Keeping up with the regulations is even more difficult (think about the VAT 2015 changes we just went though). I would strongly encourage you to investigate outsourcing it (and would be curious why you can't or you don't want to).
Also, how do you plan on doing the reconciliation with your accounting software, when submitting quarterly VAT reports to the government?
I'm on the road for the next few weeks, so continuing over email or iterating on the GitHub PR would be easier for me.
I also have feedback on the PluginTaxCalculator. To my understanding, it should use of Multimap<UUID, InvoiceItem> instead of Map<UUID, Collection<InvoiceItem>>. If you look at my code, you’ll see it makes things clearer.
Also I found the computeNewItemsToTaxAndExistingItemsToAdjust() not to be useful outside the context of the Avatax plugin.
I also noticed that when tax items are created on historical invoices, then the historical invoices gained a positive balance. But this positive balance doesn’t look to be collected so that it can be paid by the customer. (BTW, is it normal that those invoice balance are not added to the overall account balance?)
I don't get your point. You might have a better overview of accounting processes than me. Do I really need an accounting software?
On Thu, Sep 10, 2015 at 5:31 AM, Benjamin Gandon <benj...@gandon.org> wrote:Should we really create any missing tax items into historical invoices?This will depend on the company, but most likely you don't want to do that. Imagine someone enabling the tax plugin 2 years after running Kill Bill in production: most customers would be in an overdue state very quickly!
Also I found the computeNewItemsToTaxAndExistingItemsToAdjust() not to be useful outside the context of the Avatax plugin.Why not? This helps break down which items are new and which ones are adjustments (tax handling may be different for returns, i.e. you probably need to use the original invoice date to report these).
I also noticed that when tax items are created on historical invoices, then the historical invoices gained a positive balance. But this positive balance doesn’t look to be collected so that it can be paid by the customer. (BTW, is it normal that those invoice balance are not added to the overall account balance?)The overall account balance should be impacted. Kill Bill won't trigger automatic payments for them though.
I don't get your point. You might have a better overview of accounting processes than me. Do I really need an accounting software?You either need to integrate with an accounting software to report the VAT to the government or hire an accountant which will do it for you (procédure EDI-TVA).
I would like to understand what is real in this test case, and what did just spin out my imagination when I wrote that?
In a broader sense, I need to understand in which invoices can item adjustments get created for some taxable item ?
And what actions the server performs right after that ?
How can I check the actual value of that overall account balance in the DB or with the API?
And back to the "reconciliation" you mentioned earlier, do you have experience with French or American companies doing that?
I imagine you get listings our of the KB server and then compare with what data the accounting system has, in order to make adjustments where it doesn't match, is that correct?I don't mean to dig very deep into this, but in your experience, what kind of adjustments (and on which side) this can result in?
In a broader sense, I need to understand in which invoices can item adjustments get created for some taxable item ?Item adjustments can happen either because they are externally triggered via API, or because of "repairs" (i.e. the system generating a pro-ration, in case of an upgrade for instance).
On Fri, Oct 9, 2015 at 12:21 PM, Benjamin Gandon <benj...@gandon.org> wrote:How can I check the actual value of that overall account balance in the DB or with the API?Doing it at the database level is hard. Instead, use the getAccountBalance API:
And back to the "reconciliation" you mentioned earlier, do you have experience with French or American companies doing that?I imagine you get listings our of the KB server and then compare with what data the accounting system has, in order to make adjustments where it doesn't match, is that correct?I don't mean to dig very deep into this, but in your experience, what kind of adjustments (and on which side) this can result in?Requirements for internal and/or external (i.e. with audit firms) reconciliation will depend on the company size and juridiction (e.g. SOX). I would suggest consulting your financial advisor or tax accountant for more details.
Ok thanks, but is it possible that an invoice B contains an item adjustment referring to a taxable item A that belongs to another invoice A?
So there is no REST endpoint for that?
Now I'd like my plugin to establish a mapping between taxation rates and catalog products.I guess the avatax plugins delegates this mapping to the 3rd party application, is this correct?Is it possible to tag products?It is possible to annotate products in catalogs?
What about my "cross-invoice item adjustments" question? Can you confirm that it cannot happen?
The AvaTax plugin supports the mapping in many ways: plugin properties, custom fields on invoice items and custom product mappings inside the plugin:
Well, now that I'm testing it in a kill bill server, I wonder : is there any REST end point to set such custom fields on invoice items?Looking at the JAXRS resources, all I can conclude is that invoice items don't have any such endpoint because they are not exposed as first-class objects web API.