fix bug prices are missing

This commit is contained in:
dom 2021-02-12 22:50:34 +01:00
parent 0bc3c6dc51
commit ad27892b99
1 changed files with 81 additions and 76 deletions

157
bnn.go
View File

@ -28,75 +28,75 @@ type Info struct {
// Item Structure of each Item
type Item struct {
ArtikelNr string //hausinterne Artikelnummer, mit der bestellt werden soll
Aenderungskennung string //N=neu, A=Änderung, X=ausgelistet, R=Restbestand, V=vorübergehend ausgelistet, W=wiedergelistet
AenderungsDatum int //letztes Artikel-Änderungsdatum JJJJMMTT
AenderungsZeit int //Uhrzeit letzte Artikel-Änderung SSMM
EANladen int //EAN-Nummer Ladeneinheit (1)
EANbestell int //EAN-Nummer Bestelleinheit (1)
Bezeichnung string //Artikelbezeichnung
Bezeichnung2 string //Zusatz-Artikelbezeichnung
Bezeichnung3 string //Bezeichnung für Etiketten- bzw. Kassentext
Handelsklasse string //Handelsklasse (in römischen Zahlen: I, II, III, IV ...)
HerstellerInverkehrbringer string //Herstellerkürzel (nach BNN-Liste) des Herstellers lt. Deklaration auf der Verpackung
Hersteller string //Herstellerkürzel (nach BNN-Liste) falls abweichend von der Verpackung
Herkunft string //Qualitätsland (Auto-Länderkennzeichen)
Qualitaet string //Qualitätskennung (nach BNN-IK-Liste)
Kontrollstelle string //EG-Kontrollstellen-Kennung
MHDRestlaufzeit int //übliche Restlaufzeit in Tagen
WGBNN int //Warengruppe BNNEH (nach BNN-Liste)
WGIfH int //Warengruppe Institut für Handelsforschung (Liste beim BNN erhältlich)
WGGH int //Warengruppe des jeweiligen Großhändlers
ErsatzArtikelNr string //Ersatz-Artikelnummer Ersatzartikel wird geliefert, falls sonst nicht lieferbar
MinBestellMenge int //Mindestbestellmenge in Bestelleinheit (1)
Bestelleinheit string //Bestelleinheit (1) = Verkaufseinheit des Lieferanten
BestelleinheitsMenge int //Anzahl Ladeneinheiten je Bestelleinheit (1)
Ladeneinheit string //Ladeneinheit (1) = Verkaufseinheit im Laden
Mengenfaktor int //Faktor zur Menge-Preis-Relation Ladeneinheit (2)
Gewichtsartikel bool //J=Ja, N=Nein Ja, wenn der Artikel nur abgewogen verkauft wird
PfandNrLadeneinheit string //hausinterne PfandNr für Ladeneinheit (1)
PfandNrBestelleinheit string //hausinterne PfandNr für Bestelleinheit (1)
GewichtLadeneinheit int //Bruttogewicht einer Ladeneinheit (1) in kg
GewichtBestelleinheit int //Bruttogewicht einer Bestelleinheit (1) in kg
Breite int //Packungsbreite der Ladeneinheit in cm
Hoehe int //Packungshöhe der Ladeneinheit in cm
Tiefe int //Packungstiefe der Ladeneinheit in cm
MwstKennung int //Mehrwertsteuer 1=reduziert 2=voll 3=LandwirtsSatz
VkFestpreis int //Festpreis Endkunde incl. MWSt. lt. Hersteller (Bücher)
EmpfVk int //empf.VK des Herstellers incl. MWSt. je Ladeneinheit
EmpfVkGH int //VK-Vorschlag des Lieferanten incl. MWSt. je Ladeneinheit
Preis int //Einzelpreis o. MWSt je Ladeneinheit Mengenfaktor beachten!
rabattfaehig bool //J=Ja, N=Nein
skontierfaehig bool //J=Ja, N=Nein
StaffelMenge1 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis1 int //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig1 bool //J=Ja, N=Nein
skontierfaehig1 bool //J=Ja, N=Nein
StaffelMenge2 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis2 int //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig2 bool //J=Ja, N=Nein
skontierfaehig2 bool //J=Ja, N=Nein
StaffelMenge3 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis3 int //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig3 bool //J=Ja, N=Nein
skontierfaehig3 bool //J=Ja, N=Nein
StaffelMenge4 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis4 int //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig4 bool //J=Ja, N=Nein
skontierfaehig4 bool //J=Ja, N=Nein
StaffelMenge5 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis5 int //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig5 bool //J=Ja, N=Nein
skontierfaehig5 bool //J=Ja, N=Nein
Artikelart string //F=Frische (mit Tagespreisen), T=Trocken, W=NaturWaren, P=Pfand (dieser Artikel ist das Pfand selbst!), A=Artikel aus FrischePreisliste (aktuelles Angebot)
Aktionspreis string //A=Aktionspreis
AktionspreisGueltigAb string //Datum JJJJMMTT, 0 bzw. leer = ab sofort
AktionspreisGueltigBis string //Datum JJJJMMTT, 0 bzw. leer = unbestimmt
empfVkAktion int //Aktions-VK-Vorschlag incl. MWSt.
GrundpreisEinheit string //Einheit der Grundpreisauszeichnung (kg, l)
GrundpreisFaktor int //Mengen-Faktor der Grundpreiseinheit zur Ladeneinheit
LieferbarAb string //Datum JJJJMMTT
LieferbarBis string //Datum JJJJMMTT
ArtikelNr string //hausinterne Artikelnummer, mit der bestellt werden soll
Aenderungskennung string //N=neu, A=Änderung, X=ausgelistet, R=Restbestand, V=vorübergehend ausgelistet, W=wiedergelistet
AenderungsDatum int //letztes Artikel-Änderungsdatum JJJJMMTT
AenderungsZeit int //Uhrzeit letzte Artikel-Änderung SSMM
EANladen int //EAN-Nummer Ladeneinheit (1)
EANbestell int //EAN-Nummer Bestelleinheit (1)
Bezeichnung string //Artikelbezeichnung
Bezeichnung2 string //Zusatz-Artikelbezeichnung
Bezeichnung3 string //Bezeichnung für Etiketten- bzw. Kassentext
Handelsklasse string //Handelsklasse (in römischen Zahlen: I, II, III, IV ...)
HerstellerInverkehrbringer string //Herstellerkürzel (nach BNN-Liste) des Herstellers lt. Deklaration auf der Verpackung
Hersteller string //Herstellerkürzel (nach BNN-Liste) falls abweichend von der Verpackung
Herkunft string //Qualitätsland (Auto-Länderkennzeichen)
Qualitaet string //Qualitätskennung (nach BNN-IK-Liste)
Kontrollstelle string //EG-Kontrollstellen-Kennung
MHDRestlaufzeit int //übliche Restlaufzeit in Tagen
WGBNN int //Warengruppe BNNEH (nach BNN-Liste)
WGIfH int //Warengruppe Institut für Handelsforschung (Liste beim BNN erhältlich)
WGGH int //Warengruppe des jeweiligen Großhändlers
ErsatzArtikelNr string //Ersatz-Artikelnummer Ersatzartikel wird geliefert, falls sonst nicht lieferbar
MinBestellMenge int //Mindestbestellmenge in Bestelleinheit (1)
Bestelleinheit string //Bestelleinheit (1) = Verkaufseinheit des Lieferanten
BestelleinheitsMenge int //Anzahl Ladeneinheiten je Bestelleinheit (1)
Ladeneinheit string //Ladeneinheit (1) = Verkaufseinheit im Laden
Mengenfaktor int //Faktor zur Menge-Preis-Relation Ladeneinheit (2)
Gewichtsartikel bool //J=Ja, N=Nein Ja, wenn der Artikel nur abgewogen verkauft wird
PfandNrLadeneinheit string //hausinterne PfandNr für Ladeneinheit (1)
PfandNrBestelleinheit string //hausinterne PfandNr für Bestelleinheit (1)
GewichtLadeneinheit int //Bruttogewicht einer Ladeneinheit (1) in kg
GewichtBestelleinheit int //Bruttogewicht einer Bestelleinheit (1) in kg
Breite int //Packungsbreite der Ladeneinheit in cm
Hoehe int //Packungshöhe der Ladeneinheit in cm
Tiefe int //Packungstiefe der Ladeneinheit in cm
MwstKennung int //Mehrwertsteuer 1=reduziert 2=voll 3=LandwirtsSatz
VkFestpreis float64 //Festpreis Endkunde incl. MWSt. lt. Hersteller (Bücher)
EmpfVk int //empf.VK des Herstellers incl. MWSt. je Ladeneinheit
EmpfVkGH int //VK-Vorschlag des Lieferanten incl. MWSt. je Ladeneinheit
Preis float64 //Einzelpreis o. MWSt je Ladeneinheit Mengenfaktor beachten!
rabattfaehig bool //J=Ja, N=Nein
skontierfaehig bool //J=Ja, N=Nein
StaffelMenge1 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis1 float64 //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig1 bool //J=Ja, N=Nein
skontierfaehig1 bool //J=Ja, N=Nein
StaffelMenge2 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis2 float64 //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig2 bool //J=Ja, N=Nein
skontierfaehig2 bool //J=Ja, N=Nein
StaffelMenge3 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis3 float64 //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig3 bool //J=Ja, N=Nein
skontierfaehig3 bool //J=Ja, N=Nein
StaffelMenge4 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis4 float64 //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig4 bool //J=Ja, N=Nein
skontierfaehig4 bool //J=Ja, N=Nein
StaffelMenge5 int //Staffelmenge in Ladeneinheit (1)
StaffelPreis5 float64 //Staffelpreis je Ladeneinheit (1) o. MWSt.
rabattfaehig5 bool //J=Ja, N=Nein
skontierfaehig5 bool //J=Ja, N=Nein
Artikelart string //F=Frische (mit Tagespreisen), T=Trocken, W=NaturWaren, P=Pfand (dieser Artikel ist das Pfand selbst!), A=Artikel aus FrischePreisliste (aktuelles Angebot)
Aktionspreis string //A=Aktionspreis
AktionspreisGueltigAb string //Datum JJJJMMTT, 0 bzw. leer = ab sofort
AktionspreisGueltigBis string //Datum JJJJMMTT, 0 bzw. leer = unbestimmt
empfVkAktion int //Aktions-VK-Vorschlag incl. MWSt.
GrundpreisEinheit string //Einheit der Grundpreisauszeichnung (kg, l)
GrundpreisFaktor int //Mengen-Faktor der Grundpreiseinheit zur Ladeneinheit
LieferbarAb string //Datum JJJJMMTT
LieferbarBis string //Datum JJJJMMTT
}
// Bnn Information of file
@ -117,6 +117,11 @@ func convertStringToInt(s string) int {
return ret
}
func convertStringToFloat(s string) float64 {
ret, _ := strconv.ParseFloat(strings.ReplaceAll(s, ",", "."), 64)
return ret
}
// ReadBnnFile Reads file and returns object with all containing information
func ReadBnnFile(path string) (Bnn, error) {
file, err := os.Open(path)
@ -218,30 +223,30 @@ func ReadBnn(r io.Reader) (Bnn, error) {
item.Hoehe = convertStringToInt(col[31])
item.Tiefe = convertStringToInt(col[32])
item.MwstKennung = convertStringToInt(col[33])
item.VkFestpreis = convertStringToInt(col[34])
item.VkFestpreis = convertStringToFloat(col[34])
item.EmpfVk = convertStringToInt(col[35])
item.EmpfVkGH = convertStringToInt(col[36])
item.Preis = convertStringToInt(col[37])
item.Preis = convertStringToFloat(col[37])
item.rabattfaehig = convertBnnBool(col[38])
item.skontierfaehig = convertBnnBool(col[39])
item.StaffelMenge1 = convertStringToInt(col[40])
item.StaffelPreis1 = convertStringToInt(col[41])
item.StaffelPreis1 = convertStringToFloat(col[41])
item.rabattfaehig1 = convertBnnBool(col[42])
item.skontierfaehig1 = convertBnnBool(col[43])
item.StaffelMenge2 = convertStringToInt(col[44])
item.StaffelPreis2 = convertStringToInt(col[45])
item.StaffelPreis2 = convertStringToFloat(col[45])
item.rabattfaehig2 = convertBnnBool(col[46])
item.skontierfaehig2 = convertBnnBool(col[47])
item.StaffelMenge3 = convertStringToInt(col[48])
item.StaffelPreis3 = convertStringToInt(col[49])
item.StaffelPreis3 = convertStringToFloat(col[49])
item.rabattfaehig3 = convertBnnBool(col[50])
item.skontierfaehig3 = convertBnnBool(col[51])
item.StaffelMenge4 = convertStringToInt(col[52])
item.StaffelPreis4 = convertStringToInt(col[53])
item.StaffelPreis4 = convertStringToFloat(col[53])
item.rabattfaehig4 = convertBnnBool(col[54])
item.skontierfaehig4 = convertBnnBool(col[55])
item.StaffelMenge5 = convertStringToInt(col[56])
item.StaffelPreis5 = convertStringToInt(col[57])
item.StaffelPreis5 = convertStringToFloat(col[57])
item.rabattfaehig5 = convertBnnBool(col[58])
item.skontierfaehig5 = convertBnnBool(col[59])
item.Artikelart = col[60]