Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
99.25% covered (success)
99.25%
264 / 266
98.77% covered (success)
98.77%
160 / 162
CRAP
0.00% covered (danger)
0.00%
0 / 1
Artikel
99.25% covered (success)
99.25%
264 / 266
98.77% covered (success)
98.77%
160 / 162
174
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 __toString
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 addArtikelArtikelgruppe
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
 addArtikelgruppe
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
3
 getArt
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setArt
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getArtikelArtikelgruppen
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getArtikelnr
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setArtikelnr
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
1
 padArtikelnr
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getArtikelgruppe
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setArtikelgruppe
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getArtikelgruppen
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 getBemerkung
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBemerkung
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung2
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung2
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung3
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung3
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung4
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung4
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung5
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung5
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung6
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung6
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung7
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung7
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBezeichnung8
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBezeichnung8
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBildanzeigeProzent
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getDatumLetzteBestellung
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErloeskonto
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErloeskontoAusland
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErloeskontoEgMitId
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getErloeskontoEgOhneId
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getLfdnr
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getPreiseinheit
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
2
 setPreiseinheit
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
2
 getSteuersatz
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setSteuersatz
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getUmsatzMenge
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setUmsatzMenge
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isBemerkungAnzeigen
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isBestandFuehren
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBestandFuehren
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isProvisionmoeglich
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isTeillieferung
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 removeAllArtikelgruppen
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
 removeArtikelArtikelgruppe
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
2
 removeArtikelgruppe
80.00% covered (warning)
80.00%
4 / 5
0.00% covered (danger)
0.00%
0 / 1
3.07
 setArtLohn
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setArtMaterial
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setArtSonstiges
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBemerkungAnzeigen
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setBildanzeigeProzent
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setDatumLetzteBestellung
75.00% covered (warning)
75.00%
3 / 4
0.00% covered (danger)
0.00%
0 / 1
2.06
 setErloesKontoAusland
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setErloesKontoEgOhneId
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setErloesegmitid
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setErloesktonto
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setProvisionMoeglich
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 setTeillieferung
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld1
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld2
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld2
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld3
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld3
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld4
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld4
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld5
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld5
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld6
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld6
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld7
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld7
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld8
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld8
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld9
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld9
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld10
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld10
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld11
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld11
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld12
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld12
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld13
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld13
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld14
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld14
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld15
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld15
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld16
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld16
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld17
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld17
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld18
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld18
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld19
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld19
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld20
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld20
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld21
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld21
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld22
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld22
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld23
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld23
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld24
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld24
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld25
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld25
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld26
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld26
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld27
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld27
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld28
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld28
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld29
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld29
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFreifeld30
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFreifeld30
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText2
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText2
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText3
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText3
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText4
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText4
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText5
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText5
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText6
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText6
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText7
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText7
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getText8
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setText8
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isShopartikel
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopartikel
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShopherstellerlink
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopherstellerlink
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShopid
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopid
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShoplieferstatus
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShoplieferstatus
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShoplieferstatustext
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShoplieferstatustext
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShopmetadescription
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopmetadescription
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShopmetatags
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopmetatags
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getShopmetatitle
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopmetatitle
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isShopremove
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopremove
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isShopremoved
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopremoved
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 isShopstartseite
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setShopstartseite
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Satag\AmicronEntityBundle\Entity;
6
7use Doctrine\Common\Collections\ArrayCollection;
8use Doctrine\Common\Collections\Collection;
9use Doctrine\DBAL\Types\Types;
10use Doctrine\ORM\Mapping as ORM;
11use Satag\AmicronEntityBundle\Doctrine\IdGeneratorArtikel;
12use Satag\AmicronEntityBundle\Traits\BlameableEntity;
13use Satag\AmicronEntityBundle\Traits\BlameableEntityInterface;
14use Satag\AmicronEntityBundle\Traits\DecimalEntity;
15use Satag\AmicronEntityBundle\Traits\VorlegbareEntity;
16use Satag\AmicronEntityBundle\Util\Pad;
17use Symfony\Component\Validator\Constraints as Assert;
18
19/**
20 * @see \Satag\AmicronEntityBundle\Tests\Entity\ArtikelTest
21 */
22#[ORM\Entity]
23#[ORM\HasLifecycleCallbacks]
24#[ORM\Table(name: 'ARTIKEL')]
25#[ORM\Index(columns: ['shopid'], name: 'ARTIKEL_SHOPID_IDX')]
26#[ORM\Index(columns: ['vorlageam'], name: 'ARTIKEL_VORLAGEAM_DIDX')]
27#[ORM\Index(columns: ['suchartikelnr'], name: 'SUCHARTIKELNR_IDX')]
28#[ORM\Index(columns: ['gruppelfdnr'], name: 'ARTIKEL_ARTGRUPLFDNR_FK')]
29#[ORM\Index(columns: ['kundengruppelfdnr'], name: 'ARTIKEL_KUNDENGRUPPELFDNR_FK')]
30#[ORM\Index(columns: ['lagerlfdnr'], name: 'ARTIKEL_LAGERLFDNR_FK')]
31#[ORM\Index(columns: ['letztebestellunglfdnr'], name: 'ARTIKEL_LETZTEBESTLFDNR_FK')]
32#[ORM\Index(columns: ['lieferantlfdnr'], name: 'ARTIKEL_LIEFERANTLFDNR_FK')]
33#[ORM\Index(columns: ['herstellerlfdnr'], name: 'ARTIKEL_HERSTELLELFDNR_FK')]
34#[ORM\UniqueConstraint(name: 'ARTIKEL_UK', columns: ['artikelnr'])]
35class Artikel implements BlameableEntityInterface, \Stringable
36{
37    use BlameableEntity;
38    use DecimalEntity;
39    use VorlegbareEntity;
40
41    /**
42     * Art aus Gruppe verwenden.
43     */
44    final public const string ART_GRUPPE = 'G';
45    /**
46     * Art Lohn/Dienstleistung.
47     */
48    final public const string ART_LOHN = 'L';
49    /**
50     * Art  Material/Ware.
51     */
52    final public const string ART_MATERIAL = 'M';
53    /**
54     * Art Sonstiges.
55     */
56    final public const string ART_SONSTIGES = 'S';
57
58    /**
59     * Bezeichnung in Amicron Faktura ist "Kundengruppe".
60     */
61    #[ORM\ManyToOne(targetEntity: Adressgruppe::class, cascade: ['persist'])]
62    #[ORM\JoinColumn(name: 'kundengruppelfdnr', referencedColumnName: 'lfdnr')]
63    public ?Adressgruppe $adressgruppe = null;
64
65    /**
66     * Wählen Sie hier, ob es sich bei dem Artikel um Material oder um Lohn bzw. eine Dienstleistung handelt. Eine Voreinstellung ist bei der Artikelgruppe möglich; wenn bei Ãœbernahme der Gruppe festgestellt wird, das das Feld beim Artikel leer ist, wird automatisch der Vorgabewert aus der Gruppe Ã¼bernommen.
67     * Im Auftrag kann eine Summe der Material- bzw. Lohnpositionen ausgegeben werden, was eine Voraussetzung für den Steuerbonus für Handwerkerleistungen notwendig ist.
68     */
69    #[ORM\Column(name: 'art', type: Types::STRING, length: 1, nullable: true)]
70    #[Assert\Choice([null, 'M', 'L', 'S', 'G'], message: 'Artikel Art is defined by constants ARTIKEL::ART_*')]
71    private ?string $art = 'M';
72
73    /**
74     * Diese Nummer muss eindeutig sein. Bei Ã„nderungen wird diese Nummer zwar nicht automatisch
75     * in den vorhandenen Aufträgen und Bestellungen geändert, alle Verknüpfungen zum
76     * ursprünglichen Datensatz bleiben jedoch bestehen. Buchstaben können automatisch in Großbuchstaben umgewandelt werden, wenn Sie in den
77     * Einstellungen (siehe Handbuch Seite 175) die entsprechende Option aktiviert haben. (Setup:SYS:ArtNrGross = J).
78     */
79    #[ORM\Column(name: 'artikelnr', type: Types::STRING, length: 20, unique: true, nullable: false)]
80    private string $artikelnr = '';
81
82    /**
83     * @var Collection<int, ArtikelArtikelgruppe>
84     */
85    #[ORM\OneToMany(mappedBy: 'artikel', targetEntity: ArtikelArtikelgruppe::class, cascade: ['persist'], fetch: 'EXTRA_LAZY', orphanRemoval: true)]
86    private Collection $artikel_artikelgruppen;
87
88    #[ORM\ManyToOne(targetEntity: Artikelgruppe::class, cascade: ['persist'])]
89    #[ORM\JoinColumn(name: 'gruppelfdnr', referencedColumnName: 'lfdnr')]
90    private ?Artikelgruppe $artikelgruppe = null;
91
92    /**
93     * In den Einstellungen (siehe Handbuch Seite 175) kann festgelegt werden, ob das Feld angezeigt werden soll oder nicht.
94     * Setup:KUERZEL:ArtBemerkungAnzeigen = J.
95     */
96    #[ORM\Column(name: 'bemerkung', type: Types::TEXT, nullable: true)]
97    private ?string $bemerkung = null;
98
99    /**
100     * Wenn gesetzt, wird die Bemerkung gezeigt, sobald der Artikel einem Auftrag hinzugefügt wird.
101     */
102    #[ORM\Column(name: 'bemerkungzeigen', type: Types::BOOLEAN, length: 1, nullable: true)]
103    private ?bool $bemerkungAnzeigen = null;
104
105    #[ORM\Column(name: 'bestellt', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
106    public ?string $bestandBestellt = null;
107
108    /**
109     * AMICRON-FAKTURA bucht standardmäßig bei Lieferschein- oder Rechnungsdruck die verkaufte
110     * Menge eines Artikels automatisch vom Lager (Handbuch Seite 155) ab. Wenn diese Option deaktiviert wird, werden
111     * die Bestände und die Reservierungen des Artikels hingegen nicht automatisch aktualisiert.
112     * Außerdem findet dann auch keine Warnung statt, wenn die eingegebene Auftragsbestellmenge
113     * den Mindestbestand unterschreitet. Weitere Informationen finden Sie auch im Kapitel
114     * "Buchungsvorgänge in der Auftragsbearbeitung (Handbuch Seite 263)". Bei einer Inventur (Handbuch Seite 191) können
115     * nur Artikel mit aktivierter Bestandsführung erfasst werden.
116     */
117    #[ORM\Column(name: 'bestandfuehren', type: Types::BOOLEAN, length: 1, nullable: true)]
118    private ?bool $bestandFuehren = false;
119
120    #[ORM\Column(name: 'reserviert', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
121    public ?string $bestandReserviert = null;
122
123    #[ORM\Column(name: 'bestellmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
124    public ?string $bestellmenge = null;
125
126    #[ORM\Column(name: 'bezeichnung', type: Types::STRING, length: 80, nullable: true)]
127    private ?string $bezeichnung = null;
128
129    #[ORM\Column(name: 'bezeichnung2', type: Types::STRING, length: 80, nullable: true)]
130    private ?string $bezeichnung2 = null;
131
132    #[ORM\Column(name: 'bezeichnung3', type: Types::STRING, length: 80, nullable: true)]
133    private ?string $bezeichnung3 = null;
134
135    #[ORM\Column(name: 'bezeichnung4', type: Types::STRING, length: 80, nullable: true)]
136    private ?string $bezeichnung4 = null;
137
138    #[ORM\Column(name: 'bezeichnung5', type: Types::STRING, length: 80, nullable: true)]
139    private ?string $bezeichnung5 = null;
140
141    #[ORM\Column(name: 'bezeichnung6', type: Types::STRING, length: 80, nullable: true)]
142    private ?string $bezeichnung6 = null;
143
144    #[ORM\Column(name: 'bezeichnung7', type: Types::STRING, length: 80, nullable: true)]
145    private ?string $bezeichnung7 = null;
146
147    #[ORM\Column(name: 'bezeichnung8', type: Types::STRING, length: 80, nullable: true)]
148    private ?string $bezeichnung8 = null;
149
150    #[ORM\Column(name: 'bild', type: 'blob_base64', nullable: true)]
151    #[Assert\DisableAutoMapping]
152    public ?string $bild = null;
153
154    #[ORM\Column(name: 'bildgeaendertam', type: Types::DATETIME_IMMUTABLE, nullable: true)]
155    public ?\DateTimeImmutable $bildGeaendertAm = null;
156
157    #[ORM\Column(name: 'bildanzeige', type: Types::INTEGER, nullable: true)]
158    private ?int $bildanzeige = 100;
159
160    #[ORM\Column(name: 'bilddateiname', type: Types::STRING, length: 80, nullable: true)]
161    public ?string $bilddateiname = null;
162
163    #[ORM\Column(name: 'ean', type: Types::STRING, length: 30, nullable: true)]
164    public ?string $ean = null;
165
166    #[ORM\Column(name: 'ekkto', type: Types::STRING, length: 6, nullable: true)]
167    public ?string $einkaufskonto = null;
168
169    #[ORM\Column(name: 'ekausland', type: Types::STRING, length: 6, nullable: true)]
170    public ?string $einkaufskontoAusland = null;
171
172    #[ORM\Column(name: 'ekegmitid', type: Types::STRING, length: 6, nullable: true)]
173    public ?string $einkaufskontoEgMitId = null;
174
175    #[ORM\Column(name: 'ekegohneid', type: Types::STRING, length: 6, nullable: true)]
176    public ?string $einkaufskontoEgOhneId = null;
177
178    #[ORM\Column(name: 'passiverartikelek', type: 'boolean_int', length: 1, nullable: true)]
179    public ?bool $einkaufssperre = null;
180
181    #[ORM\Column(name: 'ekletzter', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
182    public ?string $ekletzter = null;
183
184    #[ORM\Column(name: 'ekmittel', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
185    public ?string $ekmittel = null;
186
187    #[ORM\Column(name: 'ekpreis', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
188    public ?string $ekpreis = null;
189
190    #[ORM\Column(name: 'erloesausland', type: Types::STRING, length: 6, nullable: true)]
191    private ?string $erloesausland = null;
192
193    #[ORM\Column(name: 'erloesegmitid', type: Types::STRING, length: 6, nullable: true)]
194    private ?string $erloesegmitid = null;
195
196    #[ORM\Column(name: 'erloesegohneid', type: Types::STRING, length: 6, nullable: true)]
197    private ?string $erloesegohneid = null;
198
199    #[ORM\Column(name: 'erloeskto', type: Types::STRING, length: 6, nullable: true)]
200    private ?string $erloeskto = null;
201
202    /**
203     * U = Konto des Steuersatzes verwenden
204     * A = Konten im Artikel verwenden.
205     */
206    #[ORM\Column(name: 'ktoverwenden', type: Types::STRING, length: 1, nullable: true)]
207    #[Assert\Choice(['U', 'A'], message: 'U = Konto des Steuersatzes verwenden, A = Konten im Artikel verwenden')]
208    public ?string $fibuKontenVerwenden = 'U';
209
210    #[ORM\Column(name: 'freifeld1', type: Types::STRING, length: 255, nullable: true)]
211    private ?string $freifeld1 = null;
212
213    #[ORM\Column(name: 'freifeld10', type: Types::STRING, length: 255, nullable: true)]
214    private ?string $freifeld10 = null;
215
216    #[ORM\Column(name: 'freifeld11', type: Types::STRING, length: 255, nullable: true)]
217    private ?string $freifeld11 = null;
218
219    #[ORM\Column(name: 'freifeld12', type: Types::STRING, length: 255, nullable: true)]
220    private ?string $freifeld12 = null;
221
222    #[ORM\Column(name: 'freifeld13', type: Types::STRING, length: 255, nullable: true)]
223    private ?string $freifeld13 = null;
224
225    #[ORM\Column(name: 'freifeld14', type: Types::STRING, length: 255, nullable: true)]
226    private ?string $freifeld14 = null;
227
228    #[ORM\Column(name: 'freifeld15', type: Types::STRING, length: 255, nullable: true)]
229    private ?string $freifeld15 = null;
230
231    #[ORM\Column(name: 'freifeld16', type: Types::STRING, length: 255, nullable: true)]
232    private ?string $freifeld16 = null;
233
234    #[ORM\Column(name: 'freifeld17', type: Types::STRING, length: 255, nullable: true)]
235    private ?string $freifeld17 = null;
236
237    #[ORM\Column(name: 'freifeld18', type: Types::STRING, length: 255, nullable: true)]
238    private ?string $freifeld18 = null;
239
240    #[ORM\Column(name: 'freifeld19', type: Types::STRING, length: 255, nullable: true)]
241    private ?string $freifeld19 = null;
242
243    #[ORM\Column(name: 'freifeld2', type: Types::STRING, length: 255, nullable: true)]
244    private ?string $freifeld2 = null;
245
246    #[ORM\Column(name: 'freifeld20', type: Types::STRING, length: 255, nullable: true)]
247    private ?string $freifeld20 = null;
248
249    #[ORM\Column(name: 'freifeld21', type: Types::STRING, length: 255, nullable: true)]
250    private ?string $freifeld21 = null;
251
252    #[ORM\Column(name: 'freifeld22', type: Types::STRING, length: 255, nullable: true)]
253    private ?string $freifeld22 = null;
254
255    #[ORM\Column(name: 'freifeld23', type: Types::STRING, length: 255, nullable: true)]
256    private ?string $freifeld23 = null;
257
258    #[ORM\Column(name: 'freifeld24', type: Types::STRING, length: 255, nullable: true)]
259    private ?string $freifeld24 = null;
260
261    #[ORM\Column(name: 'freifeld25', type: Types::STRING, length: 255, nullable: true)]
262    private ?string $freifeld25 = null;
263
264    #[ORM\Column(name: 'freifeld26', type: Types::STRING, length: 255, nullable: true)]
265    private ?string $freifeld26 = null;
266
267    #[ORM\Column(name: 'freifeld27', type: Types::STRING, length: 255, nullable: true)]
268    private ?string $freifeld27 = null;
269
270    #[ORM\Column(name: 'freifeld28', type: Types::STRING, length: 255, nullable: true)]
271    private ?string $freifeld28 = null;
272
273    #[ORM\Column(name: 'freifeld29', type: Types::STRING, length: 255, nullable: true)]
274    private ?string $freifeld29 = null;
275
276    #[ORM\Column(name: 'freifeld3', type: Types::STRING, length: 255, nullable: true)]
277    private ?string $freifeld3 = null;
278
279    #[ORM\Column(name: 'freifeld30', type: Types::STRING, length: 255, nullable: true)]
280    private ?string $freifeld30 = null;
281
282    #[ORM\Column(name: 'freifeld4', type: Types::STRING, length: 255, nullable: true)]
283    private ?string $freifeld4 = null;
284
285    #[ORM\Column(name: 'freifeld5', type: Types::STRING, length: 255, nullable: true)]
286    private ?string $freifeld5 = null;
287
288    #[ORM\Column(name: 'freifeld6', type: Types::STRING, length: 255, nullable: true)]
289    private ?string $freifeld6 = null;
290
291    #[ORM\Column(name: 'freifeld7', type: Types::STRING, length: 255, nullable: true)]
292    private ?string $freifeld7 = null;
293
294    #[ORM\Column(name: 'freifeld8', type: Types::STRING, length: 255, nullable: true)]
295    private ?string $freifeld8 = null;
296
297    #[ORM\Column(name: 'freifeld9', type: Types::STRING, length: 255, nullable: true)]
298    private ?string $freifeld9 = null;
299
300    #[ORM\Column(name: 'garantieeinkaufmonate', type: Types::INTEGER, nullable: true)]
301    public ?int $garantieeinkaufmonate = null;
302
303    #[ORM\Column(name: 'garantieverkaufmonate', type: Types::INTEGER, nullable: true)]
304    public ?int $garantieverkaufmonate = null;
305
306    #[ORM\Column(name: 'gewicht', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
307    public ?string $gewicht = null;
308
309    #[ORM\Column(name: 'grundeinheit', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
310    public ?string $grundeinheit = null;
311
312    #[ORM\Column(name: 'grundgewicht', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
313    public ?string $grundgewicht = null;
314
315    #[ORM\Column(name: 'hauptartikelpreiseuebern', type: Types::BOOLEAN, length: 1, nullable: true)]
316    public ?bool $hauptartikelpreiseuebern = null;
317
318    #[ORM\Column(name: 'hauptartikeluebernehmen', type: Types::BOOLEAN, length: 1, nullable: true)]
319    public ?bool $hauptartikeluebernehmen = null;
320
321    #[ORM\ManyToOne(targetEntity: Hersteller::class, cascade: ['persist'])]
322    #[ORM\JoinColumn(name: 'herstellerlfdnr', referencedColumnName: 'lfdnr', nullable: true)]
323    public ?Hersteller $hersteller = null;
324
325    #[ORM\ManyToOne(targetEntity: Lager::class, cascade: ['persist'])]
326    #[ORM\JoinColumn(name: 'lagerlfdnr', referencedColumnName: 'lfdnr')]
327    public ?Lager $lager = null;
328
329    #[ORM\Column(name: 'bestanddatum', type: Types::DATETIME_IMMUTABLE, nullable: true)]
330    private ?\DateTimeImmutable $letzteBestellung = null;
331
332    #[ORM\ManyToOne(targetEntity: Auftraglieferant::class, cascade: ['persist'])]
333    #[ORM\JoinColumn(name: 'letztebestellunglfdnr', referencedColumnName: 'lfdnr')]
334    public ?Auftraglieferant $letztebestellung = null;
335
336    #[ORM\Column(name: 'letzterverkauf', type: Types::DATETIME_IMMUTABLE, nullable: true)]
337    public ?\DateTimeImmutable $letzterverkauf = null;
338
339    #[ORM\Column(name: 'lfdnr', type: Types::INTEGER, nullable: false)]
340    #[ORM\Id]
341    #[ORM\GeneratedValue(strategy: 'CUSTOM')]
342    #[ORM\CustomIdGenerator(class: IdGeneratorArtikel::class)]
343    public private(set) ?int $lfdnr = null;
344
345    #[ORM\ManyToOne(targetEntity: Lieferant::class)]
346    #[ORM\JoinColumn(name: 'lieferantlfdnr', referencedColumnName: 'lfdnr')]
347    public ?Lieferant $lieferant = null;
348
349    #[ORM\Column(name: 'lieferantartikelnr', type: Types::STRING, length: 30, nullable: true)]
350    public ?string $lieferantartikelnr = null;
351
352    #[ORM\Column(name: 'lieferzeittage', type: Types::INTEGER, nullable: true)]
353    public ?int $lieferzeittage = null;
354
355    #[ORM\Column(name: 'lieferzeittext', type: Types::STRING, length: 30, nullable: true)]
356    public ?string $lieferzeittext = null;
357
358    #[ORM\Column(name: 'mark', type: Types::BOOLEAN, length: 1, nullable: true)]
359    public ?bool $mark = null;
360
361    #[ORM\Column(name: 'masseinheit', type: Types::STRING, length: 6, nullable: true)]
362    public ?string $masseinheit = null;
363
364    #[ORM\Column(name: 'mengeneinheit', type: Types::STRING, length: 8, nullable: true)]
365    public ?string $mengeneinheit = null;
366
367    #[ORM\Column(name: 'bestandmindest', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
368    public ?string $mindestbestand = null;
369
370    #[ORM\Column(name: 'preiseinheit', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
371    private ?string $preiseinheit = null;
372
373    #[ORM\Column(name: 'provisionmoeglich', type: Types::BOOLEAN, length: 1, nullable: true)]
374    private ?bool $provisionMoeglich = null;
375
376    #[ORM\Column(name: 'provision', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
377    public ?string $provisionProzent = null;
378
379    #[ORM\Column(name: 'rabattgruppe', type: Types::STRING, length: 20, nullable: true)]
380    public ?string $rabattgruppe = null;
381
382    #[ORM\Column(name: 'rabattgruppeeinkauf', type: Types::STRING, length: 20, nullable: true)]
383    public ?string $rabattgruppeeinkauf = null;
384
385    #[ORM\Column(name: 'seriennraktiv', type: Types::BOOLEAN, length: 1, nullable: true)]
386    public ?bool $seriennraktiv = null;
387
388    #[ORM\Column(name: 'sernrgenglobal', type: 'boolean_int', nullable: true)]
389    public ?bool $sernrgenglobal = null;
390
391    #[ORM\Column(name: 'sernrgenmaske', type: Types::STRING, length: 40, nullable: true)]
392    public ?string $sernrgenmaske = null;
393
394    #[ORM\Column(name: 'sernrgenstart', type: Types::INTEGER, nullable: true)]
395    public ?int $sernrgenstart = null;
396
397    #[ORM\Column(name: 'sernrgenstep', type: Types::INTEGER, nullable: true)]
398    public ?int $sernrgenstep = null;
399
400    #[ORM\Column(name: 'shopartikel', type: Types::BOOLEAN, length: 1, nullable: true)]
401    private ?bool $shopartikel = null;
402
403    #[ORM\Column(name: 'shopherstellerlink', type: Types::TEXT, nullable: true)]
404    private ?string $shopherstellerlink = null;
405
406    #[ORM\Column(name: 'shopid', type: Types::STRING, length: 16, nullable: true)]
407    private ?string $shopid = null;
408
409    #[ORM\Column(name: 'shoplieferstatus', type: Types::INTEGER, nullable: true)]
410    private ?int $shoplieferstatus = null;
411
412    #[ORM\Column(name: 'shoplieferstatustext', type: Types::STRING, length: 40, nullable: true)]
413    private ?string $shoplieferstatustext = null;
414
415    #[ORM\Column(name: 'shopmetadescription', type: Types::TEXT, nullable: true)]
416    private ?string $shopmetadescription = null;
417
418    #[ORM\Column(name: 'shopmetatags', type: Types::TEXT, nullable: true)]
419    private ?string $shopmetatags = null;
420
421    #[ORM\Column(name: 'shopmetatitle', type: Types::STRING, length: 80, nullable: true)]
422    private ?string $shopmetatitle = null;
423
424    #[ORM\Column(name: 'shopremove', type: Types::BOOLEAN, length: 1, nullable: true)]
425    private ?bool $shopremove = null;
426
427    #[ORM\Column(name: 'shopremoved', type: Types::BOOLEAN, length: 1, nullable: true)]
428    private ?bool $shopremoved = null;
429
430    #[ORM\Column(name: 'shopstartseite', type: Types::BOOLEAN, length: 1, nullable: true)]
431    private ?bool $shopstartseite = null;
432
433    #[ORM\Column(name: 'skontierbar', type: Types::BOOLEAN, length: 1, nullable: true)]
434    public ?bool $skontierbar = null;
435
436    #[ORM\Column(name: 'steuersatz', type: Types::STRING, length: 2, nullable: true)]
437    private ?string $steuersatz = ' 1';
438
439    #[ORM\Column(name: 'stueckliste', type: Types::BOOLEAN, length: 1, nullable: true)]
440    public ?bool $stueckliste = null;
441
442    #[ORM\Column(name: 'stuecklistebuchen', type: Types::BOOLEAN, length: 1, nullable: true)]
443    public ?bool $stuecklistebuchen = null;
444
445    #[ORM\Column(name: 'stuecklisteekuebern', type: Types::BOOLEAN, length: 1, nullable: true)]
446    public ?bool $stuecklisteekuebern = null;
447
448    #[ORM\Column(name: 'stuecklistegewichtuebern', type: Types::BOOLEAN, length: 1, nullable: true)]
449    public ?bool $stuecklistegewichtuebern = null;
450
451    #[ORM\Column(name: 'stuecklistepreiseuebern', type: Types::BOOLEAN, length: 1, nullable: true)]
452    public ?bool $stuecklistepreiseuebern = null;
453
454    #[ORM\Column(name: 'stuecklisteuebernehmen', type: Types::BOOLEAN, length: 1, nullable: true)]
455    public ?bool $stuecklisteuebernehmen = null;
456
457    #[ORM\Column(name: 'stuecklistevkuebern', type: Types::BOOLEAN, length: 1, nullable: true)]
458    public ?bool $stuecklistevkuebern = null;
459
460    #[ORM\Column(name: 'suchartikelnr', type: Types::STRING, length: 20, nullable: true)]
461    public ?string $suchartikelnr = null;
462
463    /**
464     * Als Teillieferung, wenn nicht verfügbar (nur bei aktiver Rückstandsverwaltung).
465     */
466    #[ORM\Column(name: 'alsteillieferung', type: Types::BOOLEAN, length: 1, nullable: true)]
467    private ?bool $teillieferung = null;
468
469    #[ORM\Column(name: 'text', type: Types::TEXT, nullable: true)]
470    private ?string $text = null;
471
472    #[ORM\Column(name: 'text2', type: Types::TEXT, nullable: true)]
473    private ?string $text2 = null;
474
475    #[ORM\Column(name: 'text3', type: Types::TEXT, nullable: true)]
476    private ?string $text3 = null;
477
478    #[ORM\Column(name: 'text4', type: Types::TEXT, nullable: true)]
479    private ?string $text4 = null;
480
481    #[ORM\Column(name: 'text5', type: Types::TEXT, nullable: true)]
482    private ?string $text5 = null;
483
484    #[ORM\Column(name: 'text6', type: Types::TEXT, nullable: true)]
485    private ?string $text6 = null;
486
487    #[ORM\Column(name: 'text7', type: Types::TEXT, nullable: true)]
488    private ?string $text7 = null;
489
490    #[ORM\Column(name: 'text8', type: Types::TEXT, nullable: true)]
491    private ?string $text8 = null;
492
493    #[ORM\Column(name: 'umsatz', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
494    public ?string $umsatzBetrag = null;
495
496    #[ORM\Column(name: 'umsatzfuehren', type: Types::BOOLEAN, length: 1, nullable: true)]
497    public ?bool $umsatzfuehren = null;
498
499    #[ORM\Column(name: 'umsatzmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
500    private ?string $umsatzmenge = null;
501
502    #[ORM\Column(name: 'passiverartikel', type: Types::BOOLEAN, length: 1, nullable: true)]
503    public ?bool $verkaufssperre = null;
504
505    /**
506     * Der hier eingetragene Wert informiert darüber, welche Menge des Artikels in einer Verpackung
507     * enthalten ist. Die Verpackungseinheit hat keinen Einfluss auf die Preisberechnung.
508     * In den Einstellungen 175 kann die Anzeige dieses Feldes aktiviert bzw. deaktiviert werden.
509     * Unabhängig von der gewählten Anzeigeeinstellung wird das Feld immer dann angezeigt, wenn
510     * ein Wert enthalten ist.
511     */
512    #[ORM\Column(name: 'verpackungseinheit', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
513    public ?string $verpackungseinheit = null;
514
515    #[ORM\Column(name: 'vk1', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
516    public ?string $vk1 = null;
517
518    #[ORM\Column(name: 'vk1brutto', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
519    public ?string $vk1brutto = null;
520
521    #[ORM\Column(name: 'vk2', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
522    private ?string $vk2 = null;
523
524    #[ORM\Column(name: 'vk2abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
525    private ?string $vk2abmenge = null;
526
527    #[ORM\Column(name: 'vk3', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
528    private ?string $vk3 = null;
529
530    #[ORM\Column(name: 'vk3abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
531    private ?string $vk3abmenge = null;
532
533    #[ORM\Column(name: 'vk4', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
534    private ?string $vk4 = null;
535
536    #[ORM\Column(name: 'vk4abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
537    private ?string $vk4abmenge = null;
538
539    #[ORM\Column(name: 'vk5', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
540    public ?string $vk5 = null;
541
542    #[ORM\Column(name: 'vk5abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
543    public ?string $vk5abmenge = null;
544
545    #[ORM\Column(name: 'vk6', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
546    public ?string $vk6 = null;
547
548    #[ORM\Column(name: 'vk6abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
549    public ?string $vk6abmenge = null;
550
551    #[ORM\Column(name: 'vk7', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
552    public ?string $vk7 = null;
553
554    #[ORM\Column(name: 'vk7abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
555    public ?string $vk7abmenge = null;
556
557    #[ORM\Column(name: 'vk8', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
558    public ?string $vk8 = null;
559
560    #[ORM\Column(name: 'vk8abmenge', type: 'amicron_decimal', precision: 15, scale: 6, nullable: true)]
561    public ?string $vk8abmenge = null;
562
563    #[ORM\Column(name: 'vkgeaendertam', type: Types::DATETIME_IMMUTABLE, nullable: true)]
564    public ?\DateTimeImmutable $vkGeaendertAm = null;
565
566    #[ORM\Column(name: 'zolltarifnummer', type: Types::STRING, length: 11, nullable: true)]
567    public ?string $zolltarifnummer = null;
568
569    public function __construct(
570        string $artikelNr = ''
571    ) {
572        $this->artikel_artikelgruppen = new ArrayCollection();
573        if ($artikelNr !== '') {
574            $this->setArtikelnr($artikelNr);
575        }
576    }
577
578    public function __toString(): string
579    {
580        return \sprintf('\\\\Artikel:%s (%s)', $this->lfdnr, $this->getArtikelnr());
581    }
582
583    public function addArtikelArtikelgruppe(ArtikelArtikelgruppe $artikelArtikelgruppe): void
584    {
585        if ($this->artikel_artikelgruppen->contains($artikelArtikelgruppe)) {
586            return;
587        }
588
589        $this->artikel_artikelgruppen[] = $artikelArtikelgruppe;
590        // needed to update the owning side of the relationship!
591        $artikelArtikelgruppe->setArtikel($this);
592        $artikelArtikelgruppe->getArtikelgruppe()->addArtikelArtikelgruppe($artikelArtikelgruppe);
593    }
594
595    public function addArtikelgruppe(Artikelgruppe $artikelgruppe): self
596    {
597        foreach ($this->getArtikelArtikelgruppen() as $artikelArtikelgruppe) {
598            if ($artikelArtikelgruppe->getArtikelgruppe() === $artikelgruppe) {
599                return $this;
600            }
601        }
602        $artikelArtikelgruppe = new ArtikelArtikelgruppe();
603        $artikelArtikelgruppe->setArtikel($this);
604        $artikelArtikelgruppe->setArtikelgruppe($artikelgruppe);
605        $this->addArtikelArtikelgruppe($artikelArtikelgruppe);
606
607        return $this;
608    }
609
610    public function getArt(): string
611    {
612        return (string) $this->art;
613    }
614
615    public function setArt(string $art): self
616    {
617        $this->art = $art;
618
619        return $this;
620    }
621
622    /**
623     * @return Collection<int, ArtikelArtikelgruppe>
624     */
625    public function getArtikelArtikelgruppen(): ArrayCollection|Collection
626    {
627        return $this->artikel_artikelgruppen;
628    }
629
630    public function getArtikelnr(): string
631    {
632        return trim($this->artikelnr);
633    }
634
635    public function setArtikelnr(string $artikelnr): self
636    {
637        $artikelnr = trim($artikelnr);
638        $this->suchartikelnr = $artikelnr;
639        $this->artikelnr = (string) Pad::number($artikelnr, 20);
640
641        return $this;
642    }
643
644    public static function padArtikelnr(string $artikelnr): string
645    {
646        return (string) Pad::number($artikelnr, 20);
647    }
648
649    public function getArtikelgruppe(): ?Artikelgruppe
650    {
651        return $this->artikelgruppe;
652    }
653
654    public function setArtikelgruppe(?Artikelgruppe $artikelgruppe): self
655    {
656        $this->artikelgruppe = $artikelgruppe;
657
658        /*
659         * @todo Add logic to add this to ArtikelgruppeArtikel Relation
660         */
661        return $this;
662    }
663
664    /**
665     * @return Collection<int, Artikelgruppe>
666     */
667    public function getArtikelgruppen(): Collection
668    {
669        $artikelgruppen = new ArrayCollection();
670        foreach ($this->getArtikelArtikelgruppen() as $artikelArtikelgruppen) {
671            $artikelgruppen->add($artikelArtikelgruppen->getArtikelgruppe());
672        }
673
674        return $artikelgruppen;
675    }
676
677    public function getBemerkung(): string
678    {
679        return (string) $this->bemerkung;
680    }
681
682    public function setBemerkung(?string $bemerkung): self
683    {
684        $this->bemerkung = $bemerkung;
685
686        return $this;
687    }
688
689    public function getBezeichnung(): string
690    {
691        return (string) $this->bezeichnung;
692    }
693
694    public function setBezeichnung(string $bezeichnung): self
695    {
696        $this->bezeichnung = $bezeichnung;
697
698        return $this;
699    }
700
701    public function getBezeichnung2(): string
702    {
703        return (string) $this->bezeichnung2;
704    }
705
706    public function setBezeichnung2(string $bezeichnung2): self
707    {
708        $this->bezeichnung2 = $bezeichnung2;
709
710        return $this;
711    }
712
713    public function getBezeichnung3(): string
714    {
715        return (string) $this->bezeichnung3;
716    }
717
718    public function setBezeichnung3(string $bezeichnung3): self
719    {
720        $this->bezeichnung3 = $bezeichnung3;
721
722        return $this;
723    }
724
725    public function getBezeichnung4(): string
726    {
727        return (string) $this->bezeichnung4;
728    }
729
730    public function setBezeichnung4(string $bezeichnung4): self
731    {
732        $this->bezeichnung4 = $bezeichnung4;
733
734        return $this;
735    }
736
737    public function getBezeichnung5(): string
738    {
739        return (string) $this->bezeichnung5;
740    }
741
742    public function setBezeichnung5(string $bezeichnung5): self
743    {
744        $this->bezeichnung5 = $bezeichnung5;
745
746        return $this;
747    }
748
749    public function getBezeichnung6(): string
750    {
751        return (string) $this->bezeichnung6;
752    }
753
754    public function setBezeichnung6(string $bezeichnung6): self
755    {
756        $this->bezeichnung6 = $bezeichnung6;
757
758        return $this;
759    }
760
761    public function getBezeichnung7(): string
762    {
763        return (string) $this->bezeichnung7;
764    }
765
766    public function setBezeichnung7(string $bezeichnung7): self
767    {
768        $this->bezeichnung7 = $bezeichnung7;
769
770        return $this;
771    }
772
773    public function getBezeichnung8(): string
774    {
775        return (string) $this->bezeichnung8;
776    }
777
778    public function setBezeichnung8(string $bezeichnung8): self
779    {
780        $this->bezeichnung8 = $bezeichnung8;
781
782        return $this;
783    }
784
785    public function getBildanzeigeProzent(): int
786    {
787        return (int) $this->bildanzeige;
788    }
789
790    public function getDatumLetzteBestellung(): ?\DateTimeImmutable
791    {
792        return $this->letzteBestellung;
793    }
794
795    public function getErloeskonto(): ?string
796    {
797        return $this->erloeskto;
798    }
799
800    public function getErloeskontoAusland(): ?string
801    {
802        return $this->erloesausland;
803    }
804
805    public function getErloeskontoEgMitId(): ?string
806    {
807        return $this->erloesegmitid;
808    }
809
810    public function getErloeskontoEgOhneId(): ?string
811    {
812        return $this->erloesegohneid;
813    }
814
815    public function getLfdnr(): ?int
816    {
817        return $this->lfdnr;
818    }
819
820    public function getPreiseinheit(): ?string
821    {
822        return $this->preiseinheit ? (string) round((float) $this->preiseinheit) : null;
823    }
824
825    /**
826     * Die Preiseinheit gibt an, für welche Menge der Einzelpreis gilt. Falls der Einzelpreis nicht pro Stück gilt, kann Ã¼ber die Preiseinheit der Einzelpreis berechnet werden. Standardmäßig gilt bei der Preiseinheit 1 der Einzelpreis pro Menge 1. Bei einer Preiseinheit von z. B. 100 gilt hingegen der Einzelpreis pro Menge 100, d. h. wenn z. B. 400 Stück verkauft werden, berechnet sich der Gesamtpreis aus 4 x Einzelpreis.
827     *
828     * Allgemein gilt somit die Formel:  Gesamtpreis= Verkaufsmenge / Preiseinheit x Einzelpreis
829     *
830     * @return $this
831     */
832    public function setPreiseinheit(?string $preiseinheit): self
833    {
834        $this->preiseinheit = $preiseinheit ? (string) round((float) $preiseinheit, 2) : null;
835
836        return $this;
837    }
838
839    public function getSteuersatz(): string
840    {
841        return (string) $this->steuersatz;
842    }
843
844    public function setSteuersatz(string $steuersatz): self
845    {
846        $this->steuersatz = Steuersatz::padSteuersatz($steuersatz);
847
848        return $this;
849    }
850
851    public function getUmsatzMenge(): ?string
852    {
853        return $this->umsatzmenge;
854    }
855
856    public function setUmsatzMenge(?string $umsatzmenge): self
857    {
858        $this->umsatzmenge = $umsatzmenge;
859
860        return $this;
861    }
862
863    public function isBemerkungAnzeigen(): bool
864    {
865        return (bool) $this->bemerkungAnzeigen;
866    }
867
868    public function isBestandFuehren(): bool
869    {
870        return $this->bestandFuehren ?? false;
871    }
872
873    public function setBestandFuehren(bool $boolean): self
874    {
875        $this->bestandFuehren = $boolean;
876
877        return $this;
878    }
879
880    public function isProvisionmoeglich(): ?bool
881    {
882        return $this->provisionMoeglich;
883    }
884
885    /**
886     * Als Teillieferung, wenn nicht verfügbar (bei aktivierter Rückstandsverwaltung).
887     */
888    public function isTeillieferung(): bool
889    {
890        return (bool) $this->teillieferung;
891    }
892
893    public function removeAllArtikelgruppen(): self
894    {
895        foreach ($this->getArtikelArtikelgruppen() as $artikelArtikelgruppen) {
896            $this->removeArtikelArtikelgruppe($artikelArtikelgruppen);
897        }
898
899        return $this;
900    }
901
902    public function removeArtikelArtikelgruppe(ArtikelArtikelgruppe $artikelArtikelgruppe): void
903    {
904        if (!$this->artikel_artikelgruppen->contains($artikelArtikelgruppe)) {
905            return;
906        }
907
908        $this->artikel_artikelgruppen->removeElement($artikelArtikelgruppe);
909        // needed to update the owning side of the relationship!
910        $artikelArtikelgruppe->getArtikelgruppe()->removeArtikelArtikelgruppe($artikelArtikelgruppe);
911        $artikelArtikelgruppe->setArtikel(null);
912    }
913
914    public function removeArtikelgruppe(Artikelgruppe $artikelgruppe): self
915    {
916        foreach ($this->getArtikelArtikelgruppen() as $artikelArtikelgruppen) {
917            if ($artikelArtikelgruppen->getArtikelgruppe() === $artikelgruppe) {
918                $this->removeArtikelArtikelgruppe($artikelArtikelgruppen);
919
920                return $this;
921            }
922        }
923
924        return $this;
925    }
926
927    /**
928     * Artikel für Lohn/Dienstleistung.
929     */
930    public function setArtLohn(): self
931    {
932        return $this->setArt(self::ART_LOHN);
933    }
934
935    /**
936     * Artkikel Art Material/Ware.
937     */
938    public function setArtMaterial(): self
939    {
940        return $this->setArt(self::ART_MATERIAL);
941    }
942
943    /**
944     * Artikel für Sonstiges (kein Lohn, keine Material).
945     */
946    public function setArtSonstiges(): self
947    {
948        return $this->setArt(self::ART_SONSTIGES);
949    }
950
951    public function setBemerkungAnzeigen(bool $anzeigen): self
952    {
953        $this->bemerkungAnzeigen = $anzeigen;
954
955        return $this;
956    }
957
958    public function setBildanzeigeProzent(int $bildanzeige): self
959    {
960        $this->bildanzeige = $bildanzeige;
961
962        return $this;
963    }
964
965    public function setDatumLetzteBestellung(\DateTimeImmutable|\DateTime|null $bestanddatum): self
966    {
967        $this->letzteBestellung = $bestanddatum instanceof \DateTime
968            ? \DateTimeImmutable::createFromMutable($bestanddatum)
969            : $bestanddatum;
970
971        return $this;
972    }
973
974    public function setErloesKontoAusland(?string $erloesausland): self
975    {
976        $this->erloesausland = $erloesausland;
977
978        return $this;
979    }
980
981    public function setErloesKontoEgOhneId(?string $erloesegohneid): self
982    {
983        $this->erloesegohneid = $erloesegohneid;
984
985        return $this;
986    }
987
988    public function setErloesegmitid(?string $erloesegmitid): self
989    {
990        $this->erloesegmitid = $erloesegmitid;
991
992        return $this;
993    }
994
995    public function setErloesktonto(?string $erloeskto): self
996    {
997        $this->erloeskto = $erloeskto;
998
999        return $this;
1000    }
1001
1002    public function setProvisionMoeglich(?bool $provisionMoeglich): self
1003    {
1004        $this->provisionMoeglich = $provisionMoeglich;
1005
1006        return $this;
1007    }
1008
1009    public function setTeillieferung(bool $teillieferung): self
1010    {
1011        $this->teillieferung = $teillieferung;
1012
1013        return $this;
1014    }
1015
1016    public function getFreifeld1(): ?string
1017    {
1018        return $this->freifeld1;
1019    }
1020
1021    public function setFreifeld1(?string $freifeld1): self
1022    {
1023        $this->freifeld1 = $freifeld1;
1024
1025        return $this;
1026    }
1027
1028    public function getFreifeld2(): ?string
1029    {
1030        return $this->freifeld2;
1031    }
1032
1033    public function setFreifeld2(?string $freifeld2): self
1034    {
1035        $this->freifeld2 = $freifeld2;
1036
1037        return $this;
1038    }
1039
1040    public function getFreifeld3(): ?string
1041    {
1042        return $this->freifeld3;
1043    }
1044
1045    public function setFreifeld3(?string $freifeld3): self
1046    {
1047        $this->freifeld3 = $freifeld3;
1048
1049        return $this;
1050    }
1051
1052    public function getFreifeld4(): ?string
1053    {
1054        return $this->freifeld4;
1055    }
1056
1057    public function setFreifeld4(?string $freifeld4): self
1058    {
1059        $this->freifeld4 = $freifeld4;
1060
1061        return $this;
1062    }
1063
1064    public function getFreifeld5(): ?string
1065    {
1066        return $this->freifeld5;
1067    }
1068
1069    public function setFreifeld5(?string $freifeld5): self
1070    {
1071        $this->freifeld5 = $freifeld5;
1072
1073        return $this;
1074    }
1075
1076    public function getFreifeld6(): ?string
1077    {
1078        return $this->freifeld6;
1079    }
1080
1081    public function setFreifeld6(?string $freifeld6): self
1082    {
1083        $this->freifeld6 = $freifeld6;
1084
1085        return $this;
1086    }
1087
1088    public function getFreifeld7(): ?string
1089    {
1090        return $this->freifeld7;
1091    }
1092
1093    public function setFreifeld7(?string $freifeld7): self
1094    {
1095        $this->freifeld7 = $freifeld7;
1096
1097        return $this;
1098    }
1099
1100    public function getFreifeld8(): ?string
1101    {
1102        return $this->freifeld8;
1103    }
1104
1105    public function setFreifeld8(?string $freifeld8): self
1106    {
1107        $this->freifeld8 = $freifeld8;
1108
1109        return $this;
1110    }
1111
1112    public function getFreifeld9(): ?string
1113    {
1114        return $this->freifeld9;
1115    }
1116
1117    public function setFreifeld9(?string $freifeld9): self
1118    {
1119        $this->freifeld9 = $freifeld9;
1120
1121        return $this;
1122    }
1123
1124    public function getFreifeld10(): ?string
1125    {
1126        return $this->freifeld10;
1127    }
1128
1129    public function setFreifeld10(?string $freifeld10): self
1130    {
1131        $this->freifeld10 = $freifeld10;
1132
1133        return $this;
1134    }
1135
1136    public function getFreifeld11(): ?string
1137    {
1138        return $this->freifeld11;
1139    }
1140
1141    public function setFreifeld11(?string $freifeld11): self
1142    {
1143        $this->freifeld11 = $freifeld11;
1144
1145        return $this;
1146    }
1147
1148    public function getFreifeld12(): ?string
1149    {
1150        return $this->freifeld12;
1151    }
1152
1153    public function setFreifeld12(?string $freifeld12): self
1154    {
1155        $this->freifeld12 = $freifeld12;
1156
1157        return $this;
1158    }
1159
1160    public function getFreifeld13(): ?string
1161    {
1162        return $this->freifeld13;
1163    }
1164
1165    public function setFreifeld13(?string $freifeld13): self
1166    {
1167        $this->freifeld13 = $freifeld13;
1168
1169        return $this;
1170    }
1171
1172    public function getFreifeld14(): ?string
1173    {
1174        return $this->freifeld14;
1175    }
1176
1177    public function setFreifeld14(?string $freifeld14): self
1178    {
1179        $this->freifeld14 = $freifeld14;
1180
1181        return $this;
1182    }
1183
1184    public function getFreifeld15(): ?string
1185    {
1186        return $this->freifeld15;
1187    }
1188
1189    public function setFreifeld15(?string $freifeld15): self
1190    {
1191        $this->freifeld15 = $freifeld15;
1192
1193        return $this;
1194    }
1195
1196    public function getFreifeld16(): ?string
1197    {
1198        return $this->freifeld16;
1199    }
1200
1201    public function setFreifeld16(?string $freifeld16): self
1202    {
1203        $this->freifeld16 = $freifeld16;
1204
1205        return $this;
1206    }
1207
1208    public function getFreifeld17(): ?string
1209    {
1210        return $this->freifeld17;
1211    }
1212
1213    public function setFreifeld17(?string $freifeld17): self
1214    {
1215        $this->freifeld17 = $freifeld17;
1216
1217        return $this;
1218    }
1219
1220    public function getFreifeld18(): ?string
1221    {
1222        return $this->freifeld18;
1223    }
1224
1225    public function setFreifeld18(?string $freifeld18): self
1226    {
1227        $this->freifeld18 = $freifeld18;
1228
1229        return $this;
1230    }
1231
1232    public function getFreifeld19(): ?string
1233    {
1234        return $this->freifeld19;
1235    }
1236
1237    public function setFreifeld19(?string $freifeld19): self
1238    {
1239        $this->freifeld19 = $freifeld19;
1240
1241        return $this;
1242    }
1243
1244    public function getFreifeld20(): ?string
1245    {
1246        return $this->freifeld20;
1247    }
1248
1249    public function setFreifeld20(?string $freifeld20): self
1250    {
1251        $this->freifeld20 = $freifeld20;
1252
1253        return $this;
1254    }
1255
1256    public function getFreifeld21(): ?string
1257    {
1258        return $this->freifeld21;
1259    }
1260
1261    public function setFreifeld21(?string $freifeld21): self
1262    {
1263        $this->freifeld21 = $freifeld21;
1264
1265        return $this;
1266    }
1267
1268    public function getFreifeld22(): ?string
1269    {
1270        return $this->freifeld22;
1271    }
1272
1273    public function setFreifeld22(?string $freifeld22): self
1274    {
1275        $this->freifeld22 = $freifeld22;
1276
1277        return $this;
1278    }
1279
1280    public function getFreifeld23(): ?string
1281    {
1282        return $this->freifeld23;
1283    }
1284
1285    public function setFreifeld23(?string $freifeld23): self
1286    {
1287        $this->freifeld23 = $freifeld23;
1288
1289        return $this;
1290    }
1291
1292    public function getFreifeld24(): ?string
1293    {
1294        return $this->freifeld24;
1295    }
1296
1297    public function setFreifeld24(?string $freifeld24): self
1298    {
1299        $this->freifeld24 = $freifeld24;
1300
1301        return $this;
1302    }
1303
1304    public function getFreifeld25(): ?string
1305    {
1306        return $this->freifeld25;
1307    }
1308
1309    public function setFreifeld25(?string $freifeld25): self
1310    {
1311        $this->freifeld25 = $freifeld25;
1312
1313        return $this;
1314    }
1315
1316    public function getFreifeld26(): ?string
1317    {
1318        return $this->freifeld26;
1319    }
1320
1321    public function setFreifeld26(?string $freifeld26): self
1322    {
1323        $this->freifeld26 = $freifeld26;
1324
1325        return $this;
1326    }
1327
1328    public function getFreifeld27(): ?string
1329    {
1330        return $this->freifeld27;
1331    }
1332
1333    public function setFreifeld27(?string $freifeld27): self
1334    {
1335        $this->freifeld27 = $freifeld27;
1336
1337        return $this;
1338    }
1339
1340    public function getFreifeld28(): ?string
1341    {
1342        return $this->freifeld28;
1343    }
1344
1345    public function setFreifeld28(?string $freifeld28): self
1346    {
1347        $this->freifeld28 = $freifeld28;
1348
1349        return $this;
1350    }
1351
1352    public function getFreifeld29(): ?string
1353    {
1354        return $this->freifeld29;
1355    }
1356
1357    public function setFreifeld29(?string $freifeld29): self
1358    {
1359        $this->freifeld29 = $freifeld29;
1360
1361        return $this;
1362    }
1363
1364    public function getFreifeld30(): ?string
1365    {
1366        return $this->freifeld30;
1367    }
1368
1369    public function setFreifeld30(?string $freifeld30): self
1370    {
1371        $this->freifeld30 = $freifeld30;
1372
1373        return $this;
1374    }
1375
1376    public function getText(): ?string
1377    {
1378        return $this->text;
1379    }
1380
1381    public function setText(?string $text): self
1382    {
1383        $this->text = $text;
1384
1385        return $this;
1386    }
1387
1388    public function getText2(): ?string
1389    {
1390        return $this->text2;
1391    }
1392
1393    public function setText2(?string $text2): self
1394    {
1395        $this->text2 = $text2;
1396
1397        return $this;
1398    }
1399
1400    public function getText3(): ?string
1401    {
1402        return $this->text3;
1403    }
1404
1405    public function setText3(?string $text3): self
1406    {
1407        $this->text3 = $text3;
1408
1409        return $this;
1410    }
1411
1412    public function getText4(): ?string
1413    {
1414        return $this->text4;
1415    }
1416
1417    public function setText4(?string $text4): self
1418    {
1419        $this->text4 = $text4;
1420
1421        return $this;
1422    }
1423
1424    public function getText5(): ?string
1425    {
1426        return $this->text5;
1427    }
1428
1429    public function setText5(?string $text5): self
1430    {
1431        $this->text5 = $text5;
1432
1433        return $this;
1434    }
1435
1436    public function getText6(): ?string
1437    {
1438        return $this->text6;
1439    }
1440
1441    public function setText6(?string $text6): self
1442    {
1443        $this->text6 = $text6;
1444
1445        return $this;
1446    }
1447
1448    public function getText7(): ?string
1449    {
1450        return $this->text7;
1451    }
1452
1453    public function setText7(?string $text7): self
1454    {
1455        $this->text7 = $text7;
1456
1457        return $this;
1458    }
1459
1460    public function getText8(): ?string
1461    {
1462        return $this->text8;
1463    }
1464
1465    public function setText8(?string $text8): self
1466    {
1467        $this->text8 = $text8;
1468
1469        return $this;
1470    }
1471
1472    public function isShopartikel(): ?bool
1473    {
1474        return $this->shopartikel;
1475    }
1476
1477    public function setShopartikel(?bool $shopartikel): self
1478    {
1479        $this->shopartikel = $shopartikel;
1480
1481        return $this;
1482    }
1483
1484    public function getShopherstellerlink(): ?string
1485    {
1486        return $this->shopherstellerlink;
1487    }
1488
1489    public function setShopherstellerlink(?string $shopherstellerlink): self
1490    {
1491        $this->shopherstellerlink = $shopherstellerlink;
1492
1493        return $this;
1494    }
1495
1496    public function getShopid(): ?string
1497    {
1498        return $this->shopid;
1499    }
1500
1501    public function setShopid(?string $shopid): self
1502    {
1503        $this->shopid = $shopid;
1504
1505        return $this;
1506    }
1507
1508    public function getShoplieferstatus(): ?int
1509    {
1510        return $this->shoplieferstatus;
1511    }
1512
1513    public function setShoplieferstatus(?int $shoplieferstatus): self
1514    {
1515        $this->shoplieferstatus = $shoplieferstatus;
1516
1517        return $this;
1518    }
1519
1520    public function getShoplieferstatustext(): ?string
1521    {
1522        return $this->shoplieferstatustext;
1523    }
1524
1525    public function setShoplieferstatustext(?string $shoplieferstatustext): self
1526    {
1527        $this->shoplieferstatustext = $shoplieferstatustext;
1528
1529        return $this;
1530    }
1531
1532    public function getShopmetadescription(): ?string
1533    {
1534        return $this->shopmetadescription;
1535    }
1536
1537    public function setShopmetadescription(?string $shopmetadescription): self
1538    {
1539        $this->shopmetadescription = $shopmetadescription;
1540
1541        return $this;
1542    }
1543
1544    public function getShopmetatags(): ?string
1545    {
1546        return $this->shopmetatags;
1547    }
1548
1549    public function setShopmetatags(?string $shopmetatags): self
1550    {
1551        $this->shopmetatags = $shopmetatags;
1552
1553        return $this;
1554    }
1555
1556    public function getShopmetatitle(): ?string
1557    {
1558        return $this->shopmetatitle;
1559    }
1560
1561    public function setShopmetatitle(?string $shopmetatitle): self
1562    {
1563        $this->shopmetatitle = $shopmetatitle;
1564
1565        return $this;
1566    }
1567
1568    public function isShopremove(): ?bool
1569    {
1570        return $this->shopremove;
1571    }
1572
1573    public function setShopremove(?bool $shopremove): self
1574    {
1575        $this->shopremove = $shopremove;
1576
1577        return $this;
1578    }
1579
1580    public function isShopremoved(): ?bool
1581    {
1582        return $this->shopremoved;
1583    }
1584
1585    public function setShopremoved(?bool $shopremoved): self
1586    {
1587        $this->shopremoved = $shopremoved;
1588
1589        return $this;
1590    }
1591
1592    public function isShopstartseite(): ?bool
1593    {
1594        return $this->shopstartseite;
1595    }
1596
1597    public function setShopstartseite(?bool $shopstartseite): self
1598    {
1599        $this->shopstartseite = $shopstartseite;
1600
1601        return $this;
1602    }
1603}