Neu Lagerbewertung

W&M Sport

Aktives Mitglied
15. April 2014
86
11
Hallo Marc
1.3.19.3
ist eh nicht so schlim die alte version reicht mir vollkommen.
Das Auswahl FELD geht auf aber hat keine Einträge. habe auch probleme mit der verbindung zur daten bank, bekomme eine Fehlermeldung Server -26 Keine verbindung möglich..., habe aber die gleichen zugänge wie bei deiner alten Version.
Habs hinbekommen sorry für die Störung
Marc du bist der beste!!!!!!!!!!
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
311
43
Hallo Marc,
zunächst Danke für das Tool.

Tue mich gerade schwer mit der Anbindung der Db vom Client aus.
Was genau trage ich unter "Data Source" und "Initial Catalog" ein?
Auslesen will ich die Db Mandant_1 auf dem Server mit der IP z.B. 192.168.1.15

Danke für eine kurze Erläuterung.
 

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.683
242
Leipzig
Also,
Konfiguriert werden müssen die folgenden parameter

Data Source=.\SQLEXPRESS;Initial Catalog=eazybusiness;User ID=sa;Password=sa04jT14;MultipleActiveResultSets=True

.\SQLEXPRESS ist der Servername bzw Instanzname
eazybusiness ist die Datenbank. Hier sollte wenn es die ebStandard ist das stehen bleiben, ist es ein anderer Mandant dann was wie Mandant_x wobei x eine zahl darstellt
sa = Benutzername, Standard immer sa ausser im Hosting
sa04jT14 = Passwort, Standard Passwort

Ich gehe mal davon aus, wenn es eine Standard Installation ist dann wird der erste parameter was wie (local)\JTLWAWI oder .\JTLWAWI oder [Rechnername]\JTLWawi sein, wobei [RechnerName] gegen den Hostnamen getauscht werden muss.

Hallöle. Ich habe auch leider Gottes das Problem, dass das Tool nicht auf die DB zugreifen kann/will.
Wie du hier und auch in der README geschrieben hast, habe ich folgendes stehen:


Code:
    <add name="Visitmedia.ViCtorStat.Properties.Settings.DBVerbindung"
      connectionString="Data Source=.\sqlx.jtl-hosting.de,xxxxx\JTLWAWIHOSTINGXXXAB;Initial Catalog=eazybusiness;User ID=username;Password=xxxxxmitsonderzeichen;MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />

Aber verflixt nochmal er will keine Verbindung herstellen.
Irgendeine Idee?
netzwerkfehler.PNG
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.886
191
Hürth
Ganz am anfang ist der Fehler

Du hast folgendes da stehen
.\sqlx.jtl- hosting.de,xxxxx\JTLWAWIHOSTINGXXXAB

da drüfte aber nur

sqlx.jtl-hosting.de,xxxxx\JTLWAWIHOSTINGXXXAB


den der Punkt davor steht für "localhost" und danach der instanzname, in deinem fall hast du dahinter den host und nochmal den Instanznamen geschrieben
 
  • Gefällt mir
Reaktionen: holzpuppe

holzpuppe

Sehr aktives Mitglied
14. Oktober 2011
1.683
242
Leipzig
:eek:o_O Danke.

Wieder was gelernt.
Jetzt klappt es. Sehr schön.
Und für Andere. Falls ihr Kaspersky installiert habt und Programmkontrolle eingeschaltet ist. Dann "ViCtor Stat" noch auf "grün" switchen. (Unter Zahnrad/Schutz/Programmkontrolle/Programme verwalten)
 

volvisti

Sehr aktives Mitglied
18. Juli 2017
311
43
Hallo Marc,
besten Dank für die erleuchtende Erklärung.
Kaum macht man's richtig....
Schönen Tag noch!
 

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
2.343
838
Hallo zusammen,

cooles Tool, konnte ich auch gerade gut gebrauchen. Vielen Dank, @Visitmedia | Marc !

@ManuelP Gibt es ansonsten schon Neuigkeiten seitens JTL bezüglich der Anpassungen der Lagerbewertung? Gibt es dazu eventuell ein Ticket im Issue-Tracker?

Wäre cool, wenn man auch bald direkt in der Wawi mit korrekten EKs (Kalkulationsgrundlagen) und Stichtagsbeständen bzw. Stichtagsbewertungen arbeiten könnte.

Gruß,
Verkäuferlein
 

Manuel Pietzsch

JTL-Wawi
Mitarbeiter
2. Januar 2012
2.851
1.015
Hückelhoven
Hi @Verkäuferlein,

ab der JTL-Wawi 1.4 werden die korrekten EKs in tWarenlagereingang gespeichert. Gegen jeden Wareneingang wird ein Datensatz in tWarenlagerausgang gebucht.

Summe der Wareneingänge abzüglich der Warenausgänge bis zu einem Zeitpunkt kann dann mit dem EK multipliziert werden. So hättest du den Stichtagsbezogenen Lagerwert.

Die Vorlage für die Lagerbewertung wird auch noch kommen, aber so ginge es direkt über die DB.

Gruß

Manuel
 

Mexx18689

Gut bekanntes Mitglied
16. Dezember 2015
238
5
Hey Leute, kann mir jemand helfen wie ich das Tool einbaue?! Also wirklich eine Anfänger Anleitung in kurzen Schritten ? Wo kopiere ich was rein und wo finde ich was.......Das wäre klasse.
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.886
191
Hürth
Sehr cool! Das sollte im SQL von @luffi bereits berücksichtigt sein, weil er ja den fEKEinzel aus der tWarenlagerEingang benutzt - der fEKEinzel war das, was du damit gemeint hast @ManuelP richtig?


Ich meld mich dann mal dazu, ja ist es.

Hey,
danke die für deinen Code! Man könnte hier auch das Kürzel eingeben und dann unten im WHERE cKuerzel abprüfen. Vorteil: Mit declare @warenlager varchar(500) = 'Streckenlager' bekäme man dann automatisch den Wert von allen Streckenlagern, ohne dass man jedes Streckenlager explizit anwählen muss.

Natürlich kann man das machen. da gibt es auch noch diverse andere Möglichkeiten zu Filtern.


Hey Leute, kann mir jemand helfen wie ich das Tool einbaue?! Also wirklich eine Anfänger Anleitung in kurzen Schritten ? Wo kopiere ich was rein und wo finde ich was.......Das wäre klasse.

Anleitung ist doch relativ einfach.
zip Downloaden, entpacken, in der Readme steht der Rest drin, was gemacht werden muss, da nur noch eine Textdatei angepasst werden muss. Danach einfach starten und ausführen.
 

thowi

Sehr aktives Mitglied
8. Juni 2018
424
64
da gibt es auch noch diverse andere Möglichkeiten zu Filtern.
Ja! Ich überlege gerade, in die letzte spalte dann noch @warenlager auszugeben und den kompletten code in einer Schleife durch alle verfügbaren Lager zu schicken, sodass man hinterher alles kopieren und im Excel in eine Pivot-Tabelle schubsen kann.

Mal gucken, Schleifen in SQL hab ich noch nicht gemacht... müsste ich vermutlich mit UNION ALL dann hintereinander hängen, befürchte aber, dass dann die Performance leidet. Mal sehen!
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.886
191
Hürth
Ja! Ich überlege gerade, in die letzte spalte dann noch @warenlager auszugeben und den kompletten code in einer Schleife durch alle verfügbaren Lager zu schicken, sodass man hinterher alles kopieren und im Excel in eine Pivot-Tabelle schubsen kann.

Mal gucken, Schleifen in SQL hab ich noch nicht gemacht... müsste ich vermutlich mit UNION ALL dann hintereinander hängen, befürchte aber, dass dann die Performance leidet. Mal sehen!

Ich muss morgen eh an das Tool mal dran, was abändern, gerne kann ich das einbauen das man auch alle Lager mit angabe des Lagers ausgeben kann.
 
  • Gefällt mir
Reaktionen: thowi

thowi

Sehr aktives Mitglied
8. Juni 2018
424
64
Das wäre doch cool! Wärst du dann so nett auch das SQL dazu hier zu veröffentlichen? Ich möchte gerne das SQL nutzen, weil ich das dann direkt im Excel auswerten kann.
 

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.886
191
Hürth
So anbei schon mal das SQL, der Download für das Tool folgt morgen,
aber achtung! Diese Variante zeigt, wenn man das Lager leer lässt. Den bestand immer Pro Lager an, aber keinen Gesamt bestand.

SQL:
/* HIER WERTE ANPASSEN */
declare @stichtag varchar(50) = '12-31-2018'
declare @warenlager varchar(500) = 'WMS' -- Lässt man hier den Wert leer, oder einen den es nicht gibt, kommen alle Lager raus.



declare @timeStamp datetime2 = CONVERT(DATE, @stichtag)
declare @warenlagerId int = (SELECT TOP 1 kWarenlager FROM tWarenlager WHERE cName = @warenlager And nAktiv = 1)


SELECT cArtNr 'Artikelnummer',
       bestand.Bestand,
       fEkNetto AS 'EK Netto',
       fEkNetto * bestand.Bestand AS 'Gesamt Ek Netto (GLD)',
       bestand.Wert 'Gesamt Ek Laut WE',
       fVKNetto AS 'VK Netto',
       fVKNetto * bestand.Bestand AS 'Gesamt VK Netto',
       @timeStamp 'Zeitpunkt',
       wl.cName AS 'Warenlager'
FROM tArtikel a
     JOIN
(
    SELECT tabEingang.kArtikel,
           tabEingang.kWarenLager,
           IsNull(Eingaenge, 0) - ISNULL(Ausgaenge, 0) 'Bestand',
           IsNull(WertEingänge, 0) - ISNULL(WertAusgänge, 0) 'Wert'
    FROM
    (
        SELECT SUM(wle.fAnzahl) AS 'Eingaenge',
               SUM(wle.fAnzahl * wle.fEKEinzel) AS 'WertEingänge',
               kArtikel,
               wlp.kWarenLager
        FROM dbo.tWarenLagerEingang wle
             JOIN dbo.tWarenLagerPlatz wlp ON wlp.kWarenLagerPlatz = wle.kWarenLagerPlatz
        WHERE wle.dErstellt < @timeStamp
              AND (@warehouse IS NULL
                   OR wlp.kWarenLager = @warehouse)
        --    and ISNULL(wle.kWarenLagerEingang_Ursprung,0) != 0
        GROUP BY wle.kArtikel,
                 wlp.kWarenLager
    ) tabEingang
    LEFT JOIN
    (
        SELECT SUM(wla.fAnzahl) AS 'Ausgaenge',
               SUM(wla.fAnzahl * wle.fEKEinzel) AS 'WertAusgänge',
               wla.kArtikel,
               wlp.kWarenLager
        FROM dbo.tWarenLagerAusgang wla
             JOIN dbo.tWarenLagerEingang wle ON wla.kWarenLagerEingang = wle.kWarenLagerEingang
             JOIN dbo.tWarenLagerPlatz wlp ON wlp.kWarenLagerPlatz = wla.kWarenLagerPlatz
        WHERE 1 = 1
              AND wla.dErstellt < @timeStamp
              AND (@warehouse IS NULL
                   OR wlp.kWarenLager = @warehouse)
        GROUP BY wla.kArtikel,
                 wlp.kWarenLager
    ) tabAusgang ON tabEingang.kArtikel = tabAusgang.kArtikel
) bestand ON a.kArtikel = bestand.kArtikel
     JOIN dbo.tWarenlager wl ON bestand.kWarenLager = wl.kWarenLager
WHERE Bestand > 0;

Tool folgt gleich, oder morgen mal schauen.
 
  • Gefällt mir
Reaktionen: thowi

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.886
191
Hürth
  • Gefällt mir
Reaktionen: thowi