Fertigungsaufträge: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Zeile 220: Zeile 220:
** Listet padatf anhand des ABDatums
** Listet padatf anhand des ABDatums
***
***
=== OneABDateMatch ===
* Sucht in der Termintabelle (das sind 10 Einträge) Datums die zu einem gewissen Datum passen
** Dabei summiert er die Abschreibungsmenge
** Dabei summiert er Abschreibungsmenge * Einzelpreis2


== Terminliste ==
== Terminliste ==

Version vom 14. Januar 2019, 13:26 Uhr

Übergang von "ElTex" nach "OrgaMon"

  • Eine automatische Übernahme von Daten aus der alten Software ist nicht nötig, Schritt für Schritt wird die neue Software mit Daten befüllt

Istzustand

  • Speicherung Kunden (KUNDE.BTV) /Produzenten (PRODUCER.BTV) -> heisst im OrgaMon "Personen"
  • Speicherung Rohstoffe (TEILE.BTV) -> heisst im OrgaMon "Artikel". es gab verschiedene Artikelarten
    • Gewebe, Gewirke, Zutaten, FertigProdukt
  • Jahresabschluss
    • es wurden diverse Belege in ein Abschlussverzeichnis (z.B. ".\2012") verschoben, KUNDE und PRODUCER, TEILE wurden beibehalten

Mehrstufiges Abschreibesystem

  • Es ist schwer zu verstehen, aber ich versuche das Abschreibesystem zu beschreiben und habe dazu Quelltexte zu Rate gezogen:
  • Es gibt mehrere Beleg-Varianten:
BelegArtType    = (BA_ProForma,
                   BA_Abschreibung,
                   BA_ProduktionsAuftrag,
                   BA_Rechnung,
                   BA_Gutschrift,
                   BA_Mahnung1,
                   BA_Mahnung2,
                   BA_Lieferschein,
                   BA_Import,
                   BA_ImportPA,
                   BA_notvalid);
  • Es gibt folgende Beleg-Tabellen in der Datenbank, diese enthalten den jeweiligen Beleg-Kopf:
BELEGE     Proforma Rechnungen                                                       prrdatf
GUTSCHR    Gutschriften                                                              gutdatf
IMPORT     gab es nur mal als Datei, wurde bei Programmstart ab noch nicht geöffnet
IMPPA      gab es nur mal als Datei, wurde bei Programmstart ab noch nicht geöffnet
LSCHEIN    Lieferscheine                                                             lscdatf
PA         Produktions Aufträge                                                      padatf
RECHNUNG   Rechnungen                                                                recdatf
NUM        Nummernkreise                                                             numdatf
 
  • Nummernkreise
 kunnum := 0;
  teinum := 0;
  angnum := 0;
  recnum := 0;
  gutnum := 0;
  txtnum := 0;
  posnum := 0;
  impnum := 0;
  • Beleg-Köpfe (gleich für ALLE Belege)
BelegeType = record
              { KEYS }
        { 0 } BelNo            : LongInt;     { Belegnummer }
        { 1 } knum             : LongInt;     { interne Kunden-Nummer }
        { 2 } pnum             : LongInt;     { interne Produzent-Nummer }
        { 3 } ModellName       : string[15];  { für PA, Abschlußjahr für LSCHEIN / RECHNUNG }
        { 4 } ModellNummer     : string[10];  { für PA }
        { 5 } LieferTerminD    : longint;     { für PA }
        { 6 } LieferTerminP    : longint;     { für PA }

              { Allgemeine Beleg-Daten }
              status         : BelegStatusType;  { Status des Beleges }
              Art            : BelegArtType;     { Art des Beleges }
              Bearbeiter     : string[20];       { Verkäuferbez }
              AnlageDatum    : longint;          { Beleg angelegt }
              TxtNo          : LongInt;          { Proforma : Interne Nummer erweiterter Beleg-Text }

              MwStSatz       : array[1..3] of real; { Damalige MwSt-Sätze }
                                                    { PA: MwST[3] = Preis 1 }
              { Daten für Abschreibung bei "Fertigung" }
              FertigungsAnzahl : real;
              ModellBez        : array[1..2] of string[35];
              ZollCode         : ZollCodeType;
              ZollPro          : real;

              { Daten für "Produktions Auftrag" }
              pano             : LongInt;    { Beleg-Nummer für PA-Beleg }
              PANummer         : string[6];
              StueckIst        : real;       { RE = Summe Wert }
              StueckSoll       : real;       { RE = Summe Mahngebüren }
          {e} EinzelPreis      : real;       { RE = Summe bezahlt }
          {c} GesamtPreis      : real;       { RE = Summe offen }
          {E} EinzelPreis2     : real;
          {E} GesamtPreis2     : real;
          {E} PA_Lieferung     : array[1..MaxPALieferungen] of PALieferungenType;
              PA_Rest          : real;
          {E} PA_Umsatz        : real;
          {E} PA_Umsatz2       : real;
              Bemerkung        : string[50];  { Stichwort }
          {E} VerbrauchEinzel  : array[1..2] of real;
          {c} VerbrauchGesamt  : array[1..2] of real;
              ABScheinNummer   : string[10];
              ArtikelNummer    : longint;
              material         : string[15];
              SubDir           : string[4];
             end;


  • Es gibt Beleg-Dateien im Dateisystem, diese enthalten die Posten eines Beleges:
PostenType = record
              { Keys }
              PosId   : LongInt;     { eigener PostenId }
              ArtNo   : LongInt;     { interne Artikel-Nummer }

              { DATA }
              Typ         : ArtikelArtType;
              material    : string[15];

              bez         : array[1..2] of string[35]; { 2 zeilige Bezeichnung }
              kg_s_m      : real;   { kg / Stück oder kg / Meter }
              Gewicht     : real;   { Gesamt-Gewicht }
              m_stueck    : real;   { Meter pro Stück  }
          {E} dm_s        : real;   { Einzel-Preis }
          {E} gespr       : real;   { Gesamt-Preis }
              vpe         : real;   { Verpackungs-Einheit }
              FehlMenge   : real;   { Fehlmengen in der PA }
              FehlDatum   : longint;
              filler      : array[1..422] of byte;
              ZollCode    : ZollCodeType;
              ZollPro     : real;
          {E} ZollPreis   : real;   { Zoll-Abschlag }
              menge       : real;
              breite      : real;
              stueck_koli : real;        { Verpackungseinheit Kolis }
              MwSt        : byte;        { Mehrwertsteuer Satz 0...3 }
              DontCopy    : boolean;     { gibt darüber Auskunft, }
                                         { ob Position in den Abschreibungsbeleg }
                                         { kopiert werden soll }
             end;


.RE (Rechnung)
.PA (Produktionsauftrag)
.LS (Lieferschein)
.BEL (Proforma)

 BA_ProForma           : .BEL
 BA_ProduktionsAuftrag : .PA
 BA_ImportPA           : .IPA
 BA_Rechnung           : .RE
 BA_Lieferschein       : .LS
 BA_Gutschrift         : .GUT
 BA_Import             : .IBE


  • Es gibt eine "Skizzen" Verzeichnis D:\SKIZZEN\ mit BMP Dateien die scheinbar anzeigbar waren, ich denke das gehört eher zum Thema "Artikel" "Rohstoffe" oder "Modelle"

Fertigungs Auftrags Liste

  • F1
    • Es wurde in Spalte 1 oder 2 "AddThisLieferung" durchgeführt
    • Es wurde in Spalte 3 oder 4 "AddThisRechnung" durchgeführt
  • F2 Lieferschein editieren
  • F3 Rechnung editieren

F1 AddThisLieferung

  • Man steht in der Terminliste auf einem der 10 Termine, das merkt er sich auf genau welchem in "line"
  • Er merkt sich die Kundennummer, sucht in den Lieferscheinen alle Belege diese Person
  • Wenn es einen Lieferschein im Status "in Bearbeitung" gibt merkt er sich diesen Lieferschein
  • Gibt es das nicht wird ein neuer Lieferschein angelegt aus dem Nummern kreis "Rechnung" mit der Person und dem Status "InBearbeitung"
  • der Lieferschein wird nun geladen, es wird auf die letzte Zeile positioniert
  • es wird eine neue Zeile angefügt:
    • Bezeichnung (Bez[1]) wird beleg.modellbez[1] + " " + beleg.ModellName
    • Bezeichnung (Bez[2]) wird "Lieferung vom " + der .LieferTermin aus der Terminliste
    • Material wird beleg.ModellNummer + " " + beleg.PANummer
    • Menge wird die .Liefermenge aus der Termintabelle
    • Preis wird beleg.EinzelPreis

F1 AddThisRechnung

  • Man steht in der Terminliste auf einem der 10 Termine, das merkt er sich auf genau welchem in "line"
  • Er merkt sich die Kundennummer, sucht in den Rechnungen alle Belege diese Person
  • Wenn es eine Rechnung im Status "in Bearbeitung" gibt merkt er sich diese Rechnung
  • Gibt es das nicht wird eine neue Rechnung angelegt aus dem Nummernkreis "Rechnung" mit der Person und dem Status "InBearbeitung"
  • der Lieferschein wird nun geladen, es wird auf die letzte Zeile positioniert
  • es wird eine neue Zeile angefügt:
    • Bezeichnung (Bez[1]) wird beleg.modellbez[1] + " " + beleg.ModellName
    • Bezeichnung (Bez[2]) wird "Faktura vom " + der .RechnungsTermin aus der Terminliste
    • Material wird beleg.ModellNummer + " " + beleg.PANummer
    • Menge wird die .RechnungsMenge aus der Termintabelle
    • Preis wird beleg.EinzelPreis

FillWithProformaData

  • Hat was mit Zollgesamt zu tun und wird nicht mehr benötigt
  • Grober Überblick:
    • Ausgehend von einer Belegnummer und einem Abschreibungsdatum wird etwas aufsummiert
Eintragen von Relations-Daten in eine einzelne Zoll-Zeile

Input:   BelNo
         ABDatum
OutPut:  BelNo       (-> 0 im Fehlerfall)
         Stueck      Quelle: PAs
         Kilo        Quelle: PAs / PR
         ArtNo       Quelle: PR
         ProdNo      Quelle: PR
         ZollMinus   Quelle: PR
         EZoll
         EUst

Kontext-Auto-Loaded:

 -> Teil = teirec
    • Holt aus den Artikeln die Zollprozent
    • addiert aus "Proforma Rechnungen"
      • _Kilo := _kilo + AufRunden(posrec.Gewicht);
      • _zoll := _zoll + strtop(ptostr(posrec.ZollPreis,10));
      • _wert := _wert + strtop(ptostr(posrec.gespr,10));
    • Listet padatf anhand des ABDatums

OneABDateMatch

  • Sucht in der Termintabelle (das sind 10 Einträge) Datums die zu einem gewissen Datum passen
    • Dabei summiert er die Abschreibungsmenge
    • Dabei summiert er Abschreibungsmenge * Einzelpreis2

Terminliste

  • Es gibt 10 Liefereinträge in die Tabelle:


PALieferungenType = record
                     LieferTermin       : longint;  { RE= Mahnung }
                     LieferMenge        : real;
                     RechnungTermin     : longint;  { RE= Zahlung }
                 {E} RechnungMenge      : real;
                     AbschreibungTermin : longint;
                     AbschreibungMenge  : real;
                     FNummer            : string[12];
                    end;

Das Bearbeitungsjahr umschalten

  • Dazu wurden einfach nur 2 Tabellen auf das jeweils angeforderte Jahr umgeschaltet:
    • PA (Produktionsaufträge)
    • BELEGE (Proforma Rechnungen)