The term discount, like almost all technical terms in accounting, comes from the Italian and means as much as “to deduct”. Basically, this is a discount/bonus that is granted if the customer settles his liabilities with the supplier within a certain period of time. So a little candy for not waiting until the last day. As a rule, therefore, only discounts in the order of 2 to 3 percent are granted. In the business-to-customer (B2C) area – when the end customer purchases goods – this almost never happens. In business-to-business – that is, business between two companies – this is still common practice. Example is the wholesaler who gives his retailers here a discount on payment within 7 days. And now I am supposed to map the whole thing with the new JTL-Wawi.

Loosely based on the Fantastic Four, “It could be so easy, but it’s not!” And that’s exactly how this problem presented itself to me. So the first question was where to deposit the discount. Do I need to create a separate payment type for this or can I store the discount directly with the customer. The requirement of my customer is that the following text appears on the invoice:

„Zahlungsbedingung: Bar ./. [Wert-Skonto] % Skonto bis [Datum] abzgl. [Wert-Skonto] [Betrag minus Skonto] EUR.

In square brackets I have set the values that must be stored or calculated later in the forms as variables. And this is where I started to have a crisis, and I can imagine that some people will be scratching their heads. What do you do in such cases? I can not be alone with this problem, so someone has secured the solution for me. Off to the JTL forum, described my problem and asked quite stupidly whether someone has a solution for me.

It didn’t take 20 minutes and igel-max posted the following in the forum:

“You can do it through customer tributes, but it requires certain variables in the form, I’m sure someone can help you with the appropriate reward :+)
After that, you can create an extra discount for each customer and the rest of the period is regulated by payment target days.”

Thank you that is the solution. Only there is no need for a specific variable in the form, but for a whole formula. But more about that later. So the first test was to give a customer the customer attribute “discount” with the value 3. If I use this as a variable in the print template, I get the text string “Discount=3” as the result. Of course, I can’t do anything with it at first. So if this way is possible, I just have to take this string apart to get the value 3 here. I honestly haven’t bothered now to analyze all the functions in the print template editor until I get the right one. I went back to my favorite search engine for a moment and googled for the answer. There I found, again in the forum the following formula:

"Bei Zahlung bis zum " + date$(AddDays (JTL.WaWi.Vorgang.Datum.Rechnungsdatum_AlsDatum,7) ,'%x') + " gewähren wir auf die Rechnungssumme "+ (RegExMatch$ (RegExMatch$ (JTL.WaWi.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+')) +"% Skonto (" + Fstr$ ((JTL.WaWi.SummeBruttoGesamt*(val(RegExMatch$ (RegExMatch$ (JTL.WaWi.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+'))/100)),"?&.##") +" " +JTL.WaWi.Vorgang.Waehrung+ ")

Briefly analyzed and yes that’s exactly it. But I can’t do anything with the formula. It does not work at all in my current version 099955. But here is the crucial function included, which I need to extract my string value from the variable Customer.Attribute and then transform it into a value (Value) with which I can then also calculate. My formula must be as follows to show the correct amount for the payment after deducting the discount:

Gross amount – (Gross amount * Discount / 100) – Example: 100 – (100 * 3 / 100) = 97

In order for me to calculate this, I need to extract the value 3 from my string “Discount=3” using the RegExMatch$ function. And for that I use the following expression:

(RegExMatch$ (RegExMatch$ (Vorgang.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+'))

The value in the square bracket [0-9] indicates that the discount can take a value from 0 to 9. Okay, that’s good enough for me, too.
After a bit of playing around on my couch, the following printout emerged:

"Bei Zahlung bis zum " + date$(AddDays (Vorgang.Erstelldatum,Vorgang.Kunde.Zahlungsziel))+ " abzgl. " + (RegExMatch$ (RegExMatch$ (Vorgang.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+')) + "% Skonto " + str$(Vorgang.Auftrag.Gesamtbruttopreis - ( Vorgang.Auftrag.Gesamtbruttopreis * val((RegExMatch$ (RegExMatch$ (Vorgang.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+')))/100),0,2) + " " + Vorgang.Währung

Now I have everything together. I know where to store the discount and how it appears on the invoices. Only one problem remains to be solved. What if the customer actually pays 3% less. So instead of the 100 euro invoice amount only 97. Then the invoice remains open in the Wawi with a shortfall of 3 euros. Here is a hint right away. What comes now should be urgently clarified in advance with the tax advisor. Otherwise, it can be very difficult later on. Why? It is due to the German VAT set and the fact that on an invoice items with different VAT rates can be and how then to proceed, I can not yet say binding. I therefore make it easy for myself at this point and omit that there are two different VAT rates. So we have an amount of 3 euros discount that is still open. We could write an invoice correction of 3 euros on the invoice. This would value-adjust our sales statistics. However, I am taking a different approach here. This means that my sales statistics in JTL-Wawi are not one hundred percent correct, but I make it much easier for myself in accounting, because I can export the accounting data cleanly. In addition, I get the value of how much discount I have given to my customers. To achieve this I need my own payment method. And that brings me to the practical implementation.

Create payment type

How and where to create payment types in JTL-Wawi can be read in the wiki. I open the Manage Payment Types window via the Settings menu item and create a new Cash Discount payment type there. As SKR 03/04 account I enter here the account 4730 for granted discounts. At this point, please urgently consult your tax advisor!

Customize customers

Once I have done this as shown in the screenshot, I can customize my customers. Here I have to open each customer individually in the Customer Management and in the Customer Details window under Attributes I have to store the attribute with the name Cash Discount and in the assign the value that the customer should receive later as a cash discount. Here 2 for 2% discount. Just enter the payment method and you’re done.

Now it gets a little more difficult. If you do not dare to do it yourself, you should ask your JTL-Wawi service partner to do it for you. In the template management, the invoice template must now be adjusted so that the discount for the customer is also output later on the invoice. In the invoice template, the printout for displaying the cash discount must now be built in. To do this, open the default template for your invoices in the Templates.

Customize print template

In the print template editor, select only the Free text field area and insert the following expression as a new line.

"Bei Zahlung bis zum " + date$(AddDays (Vorgang.Erstelldatum,Vorgang.Kunde.Zahlungsziel))+ " abzgl. " + (RegExMatch$ (RegExMatch$ (Vorgang.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+')) + "% Skonto " + str$(Vorgang.Auftrag.Gesamtbruttopreis - ( Vorgang.Auftrag.Gesamtbruttopreis * val((RegExMatch$ (RegExMatch$ (Vorgang.Kunde.Attribute,'Skonto=[0-9]+'),'[0-9]+')))/100),0,2) + " " + Vorgang.Währung

This will look like the screenshot below:Dami

Conclusion

With a workaround, the cash discount problem can already be solved. However, this way has a taint. On the one hand, a separate account is required for each VAT type for the DATEV export and the correct calculation of VAT. This cannot be replicated via this route. I do get the discount correctly displayed on the invoice. However, if the customer withdraws when paying this, I have to treat this invoice separately. In any case, in practice I would create a separate payment type for this with the corresponding DATEV account. Of course, it would be nicer if this process was implemented cleanly in JTL-WAWI. Let’s be surprised here….

Do you have questions or need an individual offer? Do not hesitate to contact us.


    eBakery requires the contact information you provide to contact you regarding our products and services. You can unsubscribe from these notifications at any time. For information on unsubscribing, as well as our privacy practices and commitment to protecting your privacy, please see our Privacy Policy.*.

    • 0/5
    • 0 ratings
    0 ratingsX
    Very bad! Bad Hmmm Oke Good!
    0% 0% 0% 0% 0%

    Haben Sie Fragen oder brauchen ein individuelles Angebot? Zögern Sie nicht, uns zu kontaktieren.


      eBakery requires the contact information you provide to contact you regarding our products and services. You can unsubscribe from these notifications at any time. For information on unsubscribing, as well as our privacy practices and commitment to protecting your privacy, please see our Privacy Policy.*.

      Related Posts

      Leave a Comment

      Hat dir der Artikel gefallen?

      Dann melde dich doch zu unserem Newsletter an!

      Neben unseren Blog Themen informieren wir dich darin regelmäßig zu neuen Features und Tutorials