Fertigungsaufträge: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Root (Diskussion | Beiträge) |
Root (Diskussion | Beiträge) |
||
Zeile 115: | Zeile 115: | ||
PA Produktions Aufträge padatf | PA Produktions Aufträge padatf | ||
RECHNUNG Rechnungen recdatf | RECHNUNG Rechnungen recdatf | ||
=== Nummernkreise === | === Nummernkreise === |
Version vom 14. Januar 2019, 18:01 Uhr
Übergang von "ElTex" nach "OrgaMon"
- Eltex ist eine DOS Anwendung die vom 05.05.1994 bis zum 07.01.2002 programmiert wurde
- 2018 kam die Anfrage 2 Kleinigkeiten zu ändern (2 Feldgrössen, Drucken), das ist aus mehreren Gründen nicht möglich
- Ein breits geäusserter Gedanke auf den OrgaMon umzustellen wird wieder aufgenommen
- 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
- Die Frage ist jetzt:
- Was macht das ELTEX-Programm?
- Wie macht man Übergänge zum OrgaMon?
- Welche Funktionslücken hat der OrgaMon, die man durch Programmierung schliessen muss.
Einige Erkenntnisse gibt es schon
- Es gibt zahlreiche Daten die inhaltlich zu "Posten" gehören in den Belegen also im Beleg-Kopf, das ist ganz schlimm
- Beispiele "Modellbezeichnung"
Datenstrukturen
- 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
Belege
- Beleg-Kopf-Daten (gleich für ALLE Beleg-Varianten)
- in der Regel kann man Beleg-Kopf Daten mit <Ctrl> & <ENTER> bearbeiten
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;
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;
Varianten
- 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
Nummernkreise
kunnum := 0; teinum := 0; angnum := 0; recnum := 0; gutnum := 0; txtnum := 0; posnum := 0; impnum := 0;
Posten
- Es gibt Posten-Dateien im Dateisystem, diese enthalten die Posten eines Beleges: Die Dateinamen sind eine nummer (belno oder pano) und ein Kopf-Typ (.PA, .LS usw)
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
ABsummeBuchen
- in den Artikel wird "ab_rest" also die Restabschreibemenge geschrieben/aktualisiert
Datenverarbeitung
Das Bearbeitungsjahr umschalten
- Dazu wurden einfach nur 2 Tabellen auf das jeweils angeforderte Jahr umgeschaltet:
- PA (Produktionsaufträge)
- BELEGE (Proforma Rechnungen)
Proforma, SaaCmdDBB
-> BelegListe (prrdatf, also "Proforma Rechnungen") F1 -> BelegeBearbeiten; Hier werden die Posten des Beleges bearbeitet F2 -> BelegeAbrufen; nur eine Belegsuche! ENTER -> PAListe Kunde und Produzent werden oben angezeigt und eine Liste: Es ist eine Liste aller padatf mit der Belegnummer aus prrdatf ModellName | Modellnummer | copy(PANummer,1,6) | rtostr(StueckSoll,6,0) |rtostr(StueckIst,6,0)| rtostr(PA_rest,6,0); F1 -> Summierung MakeSummierung(PFList); PFList ist eine Datei! BA_ProForma : BelegFName := BasePath + FSubDir + l2str(belrec.belno)+'.BEL'; BA_ProduktionsAuftrag : BelegFName := BasePath + FSubDir + l2str(belrec.pano)+'.PA'; BA_ImportPA : BelegFName := BasePath + FSubDir + l2str(belrec.pano)+'.IPA'; BA_Rechnung : BelegFName := BasePath + FSubDir + l2str(belrec.belno)+'.RE'; BA_Lieferschein : BelegFName := BasePath + FSubDir + l2str(belrec.belno)+'.LS'; BA_Gutschrift : BelegFName := BasePath + FSubDir + l2str(belrec.belno)+'.GUT'; BA_Import : BelegFName := BasePath + FSubDir + l2str(belrec.belno)+'.IBE'; Alle EinzelBelege zum Gesamt-Beleg summieren posrec.menge := posrec.menge + _posrec.menge; posrec.FehlMenge := posrec.FehlMenge + _posrec.FehlMenge; posrec.stueck_Koli := posrec.stueck_Koli + _posrec.stueck_Koli; KENTER -> BelegeBearbeiten; Hier werden die Posten des Beleges bearbeitet KINS -> Neuanlage MakeSummierung; art := BA_ProduktionsAuftrag; status := BS_InBearbeitung; pano := GetNum(GN_posnum,1); CreateEmptyPA; MakeBase; padatf.last; insertkey(KCENTER); KCENTER -> PADaten; padatf, Also Belegkopf writes('bst',BS2str(status)); writes('bea',bearbeiter); writes('mna',ModellName); writes('mnu',ModellNummer); writes('pan',PANummer); writes('sso',rtostr(StueckSoll,6,0)); writes('sis',rtostr(StueckIst,6,0)); writes('vp1',rtostr(VerbrauchEinzel[1],6,2)); writes('vp2',rtostr(VerbrauchEinzel[2],6,2)); writes('bem',Bemerkung); CENTER -> InpBelegDaten; writes('ada',long2date8(AnlageDatum)); writes('sta',BS2str(Status)); writes('bea',bearbeiter); writes('txt',ktostr(FExist(BelegTxtFname))); writes('mat',material); writes('be1',ModellBez[1]); writes('be2',ModellBez[2]); writes('zco',ZollCode); writes('zpr',rtostr(Zollpro,2,2)); writes('snu',ABScheinNummer); writes('mna',ModellName); writes('ist',rtostr(StueckIst,6,0)); danach werden alle PAs mit dieser Nummer bearbeitet und folgende Felder angepasst ModellBez[1] := _belrec.ModellBez[1]; ModellBez[2] := _belrec.ModellBez[2]; ArtikelNummer := _belrec.ArtikelNummer; ABScheinNummer := _belrec.ABScheinNummer; material := _belrec.material; ZollCode := _belrec.ZollCode; ZollPro := _belrec.ZollPro; 'c','k' ImportToProforma; INS: Entweder "Import" oder "Proforma" neu anlegen
Import, SaaCmdDI
- Hier werden 2 Tabellen umgeschaltet
ImportMode := true; prrdatf.FileSwitch(BasePath+FSubDir+'IMPORT.BTV'); padatf.FileSwitch(BasePath+FSubDir+'IMPPA.BTV'); BelegListe; prrdatf.FileSwitch(BasePath+FSubDir+'BELEGE.BTV'); padatf.FileSwitch(BasePath+FSubDir+'PA.BTV'); ImportMode := false;
Fertigungsliste, SaaCmdDBF
-> FertigungsAuftragsListe; Liste der padatf (Produktions Aufträge) Hier kann man nach 6 Kriterien sortieren Hier hat man massiv suchmöglichkeiten Unklare Aufsummierung SummeIst := SummeIst + StueckIst; SummeSoll := SummeSoll + StueckSoll; SummeRest := SummeRest + PA_Rest; SummeU1 := SummeU1 + PA_Umsatz; SummeU2 := SummeU2 + PA_Umsatz2; SummeGP1 := SummeGP1 + GesamtPreis; SummeGP2 := SummeGP2 + GesamtPreis2; Unklare Fehlmengenlogik CENTER -> FaRecInp; (im Prinzip immer eine Beleg-Kopf Geschichte!) 's' Skizze ALT F: Fehlmengen Alt F1: BelegeBearbeiten (also die einzelnen Posten) F6: Beleg-Kopf des Proforma-Beleges suchen und landen (Beleg.belno)
Zoll Gesamt, SaaCmdDZG
- wird nicht mehr benötigt
Lieferscheine, SaaCmdDBL
KENTER -> Kopf bearbeiten F1 -> Aus den Lierferschein eine Rechnung erstellen anhand "kopie" KCENTER -> Posten bearbeiten
Rechnungen, SaaCmdDBR
Gutschriften, SaaCmdDBG
Proforma-Vorlage, SaaCmdDBV
prrdatf wird geleert -> BelegeBearbeiten -> die einzelnen Posten bearbeiten