Wareneingang

 

Im Wareneingang geht es darum, die in A.eins erfassten Daten mit den Ladeträgern zu verknüpfen. In der Bestellung werden in der Regel noch keine Partien festgelegt. Dies geschieht erst bei Anlieferung im Entladeschein.

Die Ladepapiere werden also dazu verwendet, einen Entladeschein zu erstellen, der die angelieferten Mengen aus den Bestellpositionen zusammenfasst. Dabei können auch Anlieferungen aus verschiedenen Bestellungen unter Umständen sogar von verschiedenen Lieferanten zusammengefasst werden.

Hier werden nun auch Partien zugeordnet.

Der Entladeschein wird gedruckt und kann im Lager abgearbeitet werden.

 

Empfohlener Arbeitsablauf Scanner:

1.   Scan der Entladescheinposition (ggf. mit Partie)

2.   Scan der NVE (Ladeträgeridentifikation)

3.   Eingabe der Menge auf dem Ladeträger

 

Somit sind Ladeträger, der Artikel, die Partie und die Menge miteinander verbunden.

Beim Abschluss des Wareneingangs wird eine Summe über die einzelnen Positionen gebildet und der Eingangslieferschein aus der Bestellung teildisponiert. Dabei werden Partie-Informationen und Mengen aus dem Entladeschein verwendet.

Die Datenbank-Funktion „AMIC_LVS_WE_Abschluss“ sorgt dafür, dass die gesammelten Vorgangsimporte (LVS) in eine Teildispo umgewandelt werden.

Beide Sätze müssen anschließend in einen Verarbeitungsstatus gesetzt werden. (2 für LVS, 5 für Ladeschein)

 

Die eigentliche Belegerstellung erfolgt durch die Verarbeitung im Vorgangsimport.

Achtung! Um die Partieinformationen aus dem Ladeschein zu verwenden, muss das Vorgangsimportkontrollmakro des Eingangslieferscheins dies unterstützen.

Der folgende Code macht dies beispielsweise:

public void WPos_Nach_Ladeschein_zu_ReLi(IVorgang vorg, int modus, int wabewId_SRC = 0, int wabewid_LD = 0, bool teilUmwandlung = false)

{

  if (wabewid_LD != 0)

  {

    // Partien nachpflegen

    DataTable dt = D.GetSql(@"select distinct ivp.PartieId,isnull(vp.PartieArtiPosit, pa.PartieArtiPosit) as PartieArtiPosit, vp.V_PosiParMenge

                              from WARENBEWEGUNG wb

                              join V_POSIWARE vw on wb.wabewid = vw.wabewid

                              join artikel a on a.artikelid = wb.artikelid

                              left outer join V_POSIPARTIE vp on vw.v_id = vp.v_id and vw.v_posizaehler = vp.v_posiZaehler

                              join ImportVorgPosition ivp on ivp.internereferenz = wb.wabew_guid and ivp.satzid = 2

                              join partiestamm ps on ps.partieid = ivp.partieid

                              join partieartikel pa on pa.artikelid = a.artistammid and pa.partieid = ivp.partieid

                              where wb.wabewid = ?", wabewid_LD);

 

    if (dt.Rows != null && dt.Rows.Count > 0)

    {

      vorg.StartPartie();

      float ergebnisMenge = 0;

      vorg.GetValPos(WARENPOSITION.ID_MENGE, out ergebnisMenge);

 

      foreach (DataRow zeile in dt.Rows)

      {

        float menge = (float)D.Get<decimal>(zeile["V_PosiParMenge"], (decimal)ergebnisMenge);

        int partieid = D.Get<Int32>(zeile["PartieId"], 0);

        int partieArtiPosit = D.Get<Int32>(zeile["PartieArtiPosit"], 0);

        vorg.AddPartieMenge(partieid: partieid, partieartiposit: partieArtiPosit, menge: menge);

      }

      vorg.EndPartie();

    }

  }

}