on 12-18-2011 12:41 AM
Hallo zusammen,
nachfolgend möchte ich kurz mein Anliegen erklären, hierzu suche ich eine Lösung:
Gegeben sind
Artikel > Skonto, true, gemäß, ZB (14 Tage 2%, 30 Tage Netto) bei GP hinterlegt
Arbeit > Skonto, false, sofort Netto.
Reise > Skonto, false, sofort Netto.
Nachfolgend beziehe ich mich zur Einfachheit auf Verkaufsberichte (Angebot/Auftrag/Rechnung).
Fall1: Artikel
Hier sollen die ZB gemäß GP angedruckt werden, zusätzlich aber der Wert in EUR der als Skonto abgezogen werden darf.
Fall2: Arbeit
Hier sollen die ZB gemäß GP angedruckt werden, zusätzlich aber der Hinweis: Dienstleistungen sind nicht skontierbar (sinngemäß)
Fall3: Arbeit + Artikel
Hier sollen die ZB gemäß GP angedruckt werden, zusätzlich aber der Wert in EUR der als Skonto abgezogen werden darf
und der Hinweis: Dienstleistungen sind nicht skontierbar (sinngemäß)
Wie bekommt man die Skontobrechnung inkl. Berücksichtigung der Skontierbarkeit als SUMME in die Formulare?
Bin etwas erstaunt das sowas nicht im B1 ab Haus implemntiert ist.
Bin für Hilfe danbar.
Gruß
MD
Link zur englischsprachigen Version:
Edited by: Marc Dreffke on Dec 18, 2011 11:42 PM
Hallo Marc,
wundere Dich ruhig... B1 ist wie es ist. Ich sehe trotzdem kein Problem, Deine Wünsche umzusetzen.
Ein paar Anmerkungen / Korrekturen / Richtigstellungen:
- Ein BELEG hat eine Zahlungsbedingung (nicht eine Belegzeile). Diese wird vom GP zur Erfassungszeit gezogen, und kann im Beleg geändert werden. Sie bezieht sich aber immer auf den Beleg-Gesamtwert.
- Ein Artikel hat meines Wissens nach keine Eigenschaft / Einstellungsmöglichkeiten, ob er Skontierbar ist, oder nicht.
- Eine Eigenschaft würde sich anbieten (Skoto-Fähig Ja/Nein)
- Den Belegdruck musst Du schon selbst organisieren. Ist aber mit Coresuite nicht so das Problem - man rechnet den LineTotal der Skotofähigen Artikel zusammen, und Druck die Texte an.
hdh
Andreas
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Andreas!
Du hast natürlich recht, den die Eigenschaft "Skontofähig" war ein Wunschgedanken von mir, weil ich die auch noch in keiner 50 EUR Software gesehen habe/Ironie off
Die Artikeleigenschaft habe ich hierzu heute früh missbraucht, da die meißten meiner items skontofähig sind, werd ich den Haken dort generell setzen.
Ich bin was das Programmieren angeht wirklich im B1 keine Leuchte:
to-do: LineTotal der Skotofähigen Artikel(aus Artikeleingenschaft, Skontofähig=true) abzüglich der im GP hinterlegten % rechnen.
Hört sich klasse an, wird auch funktionieren.. aber wie? .) ^^
Gruß
Marc
Hallo Marc,
bitte bedenke, das Du in einem Forum wie diesem Ideen oder Gedankenanstöße bekommst - keine Lösungen.
Zu Deiner Frage: In einem Coresuite Report (womit druckt ihr???) wäre das wirklich nicht das Problem, und ohne großartige "Programmierung" erledigt. Als Gedankenanstoß: Mach eine Summe auf Linetotal, bedinge es aber mit der Eigenschaft. Also ala (Nehme an Eigenschaft 1 ist "Skontofähig"):
iif(DocumentRow("RowRowItems.QryGroup1")="Y",DocumentRow("LineTotal"),0)
Bedenke: Letztendlich ist es nur das "geduldige" Papier, welches Du so bedruckst. SAP selbst rechnet den Skonto-Fähigen Abzug so: DocTotal * Skontosatz (unabhängig von Deiner Artikeleigenschaft). In der Fibu, in welcher die Zahlung gebucht wird, ist also der tatsächliche Skotosatz nicht ersichtlich. Fazit: In den Nachfolgenden Prozessen funktioniert es ggf. nicht sauber.
hdh
Andreas
Um diesen Beitrag wieder zu beleben: Kann ich denn mit dieser Codezeile etwas im Formular "anfangen", oder stellt dies nur die Basis für weitere Schritte dar?
Was wird diese Zeile im Formular (141 > Designer installiert, daher nehme ich an, eine Änderung hat globale Auswirkkungen auf alle verküpften Dokumente) bewirken?
Hi Marc,
ggf. solltest Du Dich an euren SAP - Partner wenden... Die Änderung ist nicht ganz trivial, allerdings wirklich machbar.
Vergiss bitte nicht, das Du nur das Papier entsprechend bedruckst, und die folgenden Prozesse außer acht lässt.
Fall Ihr keinen Partner habt (?), so kannst Du dich gerne noch einmal pers. melden. Kontakt hier
hdh
Andreas
Nach einer kurzen Nacht habe ich folgendes direkt im SQL erstellt:
SELECT
T0.[DocNum] AS 'Belegnummer',
SUM(T1.[LineTotal]) AS 'Betrag Zeilensumme', T0.[DocTotal] AS 'Gesamt', T5.[Discount] AS 'Skontowert',
(CAST (T0.[DocTotal] AS money)-(CAST (T0.[DocTotal] AS money)-(((SUM(CAST (T1.[LineTotal] AS money)1.1900)/(T5.Discount/100 + 1))+((CAST (T0.[DocTotal] AS money)/1.1900)-(SUM(CAST (T1.[LineTotal] AS money))))1.1900)))) AS 'Skontobereinigt'
FROM
.[OINV] T0 FULL OUTER JOIN .[INV1] T1
ON T1.[DocEntry] = T0.[DocEntry]
ON T2.[ItemCode] = T1.[ItemCode]
ON T1.[BaseCard] = T3.[CardCode]
ON T3.[GroupNum] = T4.[GroupNum]
ON T4.DiscCode = T5.CdcCode
WHERE T2.[QryGroup1] = (N'Y' )
GROUP BY T0.[DocNum], T5.Discount , T0.[DocTotal], T2.[QryGroup1]
Rechnungsnummer Linetotal Skonto RN Betrag SkontoimGP RN Betrag Skontoabzug
800000000 48.000000 176.120000 2.000000 175.000000
800000001 357.000000 543.830000 2.000000 535.500000
Wie baue ich das am Besten in die Verkaufsberichte ein?
Zahlungskonditionen: 10 Tage abzüglich "T5.Discount/SkontoimGP" EUR "RN Betrag Skontoabzug", 30 Tage Netto
Hallo H. Dreffke,
sorry, aber in diesem SQL sind einige Fehler enthalten.
- T5.Discount ist kein Skonto, sondern der Zeilenrabatt
- folglich sind die folgenden Formeln ebenfalls nicht korrekt
- LEFT OUTER JOIN ist in diesem (allen) Fall nicht korrekt; ein INNER JOIN wär's gewesen
- der Join zur OCRD ist nicht korrekt (weiß nicht, ob der BaseCard immer gefüllt ist, ev. mit CardCode joinen)
- der Join zur CDC1 ist nicht korrekt
Um welche Verkaufsberichte geht es?
Mein Vorschlag zur Query (Lösungsansatz!)
SELECT T0.[DocNum], T3.[PymntGroup], T1.[ItemCode], T1.[Dscription], T1.[Quantity], T1.[LineTotal], T2.[QryGroup1]
FROM [dbo].[OINV] T0
INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN [dbo].[OITM] T2 ON T1.ItemCode = T2.ItemCode
INNER JOIN OCTG T3 ON T0.GroupNum = T3.GroupNum
Der Join zur CDC1 ist nicht trivial, da es ja mehrere Skontosätze zu einer Zahlungsbedingung geben kann. Hier muss man ggf. annahmen treffen, oder vielleicht mit dem Maximal-Skontosatz arbeiten.
Hat man den Skontosatz ermittelt, wäre die Rechnung für den Skontobetrag (ungetestet) ungefähr so:
case when T2.[QryGroup1]='N' then T1.LineTotal else T1.LineTotal * Skontosatz end
Skontosatz ist hier nur ein Platzhalter.
hdh
User | Count |
---|---|
109 | |
15 | |
10 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.