Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: "Skonto" Early Payment Rebates in Germany #3883

Closed
dottenbr opened this issue Aug 16, 2015 · 10 comments
Closed

Enhancement: "Skonto" Early Payment Rebates in Germany #3883

dottenbr opened this issue Aug 16, 2015 · 10 comments
Labels
critical to-validate Old issues pending validation

Comments

@dottenbr
Copy link
Contributor

dottenbr commented Aug 16, 2015

In Germany it is customary to have payment terms such as 30 days net, but then also we have a concept of "Skonto" which means that a customer can deduct a discount if he pays within a certain time.

Typically payment terms would be 30 days net, 3% discount within 10 days or 30 days net, 2% discount within 14 days. This would also allow us to configure for example a 5% discount in 0 days if the customer pays with cash in advance.

I believe this is a total standard requirement for any customer in Germany. Actually this will lower the tax amount too. This needs to be configurable in the customer.

The skonto will have to be booked correctly into the received skonto in case of buying or given skonto in case of selling.

@paulator
Copy link

Are there any news about this topic?

Is there any known workaround to handle "Skonto"?

@tundebabzy
Copy link
Contributor

This is known as a cash discount in accounting. I don't yet know if this is implemented in ERPNext but it is desirable.

@RANSoftRA
Copy link

RANSoftRA commented Dec 30, 2017

@paulator I am also looking for a solution for that. I found a thread where someone mentioned that this can be done by setting up negative taxes https://discuss.erpnext.com/t/further-customizing-sales-invoice-printformat/10306

But yeah - would be a nice feature if ERPNext would support skonto / cash discount natively.

@tundebabzy
Copy link
Contributor

This will be implemented in Payment Terms soon

@onkeld
Copy link

onkeld commented Oct 16, 2019

Any news on this? I can't find the implementation in Payment terms yet...
Payment Terms in current version 12 of ERPnext only allows splitting the bill - i.e. 50% payable before delivery, 50% payable after deliveriy.
I still cannot find a way to allow a discount of some sort for speedy payments (i. e. the bill will have to be payed in full within 30 days, but if customer pays within 10 days, a discount of e.g. 2% to the total before taxes should be applied).

@tstrohmeier
Copy link

This feature is also needed for Austria. Are there any news on this new feature?

@dottenbr
Copy link
Contributor Author

If somebody is willing to pay for this contact me by email and we can put a proper proposal together to get this in core.

@wojosc
Copy link
Contributor

wojosc commented Aug 29, 2021

Hello to you all. I think this has been implemented in the meanwhile. I have created a Payment Term following the example of @dottenbr 's first post.
grafik

The docs can be found here:
https://docs.erpnext.com/docs/v13/user/manual/en/accounts/payment-terms#11-setting-up-discount-on-early-payments
and
https://handbuch.tueit.de/link/157#bkmrk-%C2%A0-1

Please have a quick look if that covers your requirement and concider closing the issue.

Viele Grüße

@ankush ankush added the to-validate Old issues pending validation label Dec 10, 2021
@deepeshgarg007
Copy link
Member

@dottenbr Please reopen the issue if the mentioned solution is not fulfilling the requirements along with the shortcomings of the feature.

@wojosc
Copy link
Contributor

wojosc commented Nov 29, 2022

we have created a custom script that fetches all necessary data for "Skonto" onto the sales invoice. The correscponsing fields need to be created first.

The script:

frappe.ui.form.on('Sales Invoice', {
	validate(frm) {
		// your code here
        frappe.call({
        method: "frappe.client.get",
        args: {
            doctype: "Payment Terms Template",
            name: frm.doc.payment_terms_template,
        },
        callback(r) {
            if(r.message) {
                var source_doc = r.message;
                if (source_doc.terms[0].discount!=0) {
                    let due_date = new Date(frm.doc.posting_date)
                    due_date.setDate(due_date.getDate()+source_doc.terms[0].discount_validity);
                    let discount_due_date = frappe.datetime.obj_to_str(due_date)
                    let discount_amount = frm.doc.grand_total*(source_doc.terms[0].discount/100)
                    
                    frm.set_value('skonto',discount_amount)
                    frm.set_value('skonto_faelligkeit',source_doc.terms[0].discount_validity);
                    frm.set_value('skto_faellig_am',discount_due_date);
                    frm.set_value('abz_skonto',frm.doc.grand_total-discount_amount);
                    frm.set_value('skto_proz',source_doc.terms[0].discount);
                    
                } else {
                    frm.set_value('skonto','')
                    frm.set_value('skonto_faelligkeit','');
                    frm.set_value('skto_faellig_am','');
                    frm.set_value('abz_skonto','');
                    frm.set_value('skto_proz','');
                }
                
            }
        }
    });
	}
})

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
critical to-validate Old issues pending validation
Projects
None yet
Development

No branches or pull requests

9 participants