This commit is contained in:
seb
2026-10-18 20:54:08 +02:00
parent c211040cd3
commit 9f9310e1ff
11 changed files with 31 additions and 31 deletions

View File

@@ -47,7 +47,7 @@ import {
import { backendErrorFrom, isBackendFailure } from '../utils/backendError';
const NUMBER_SCHEMES = [
{ type: 'sku', label: 'Artikel-SKU', icon: Inventory2Icon },
{ type: 'sku', label: 'Artikelnummer (ArtNr)', icon: Inventory2Icon },
{ type: 'entity', label: 'Kundennummer', icon: PeopleIcon },
{ type: 'delivery', label: 'Lieferschein', icon: LocalShippingIcon },
{ type: 'adjustment', label: 'Bestandskorrektur', icon: TuneIcon },

View File

@@ -280,7 +280,7 @@ export default class ArticleImageSearchDialog extends PureComponent {
suggestions.push({ label: `${brandName} ${articleName}`, value: `${brandName} ${articleName}` });
}
if (sku && sku !== query && sku !== articleName) {
suggestions.push({ label: `SKU: ${sku}`, value: sku });
suggestions.push({ label: `ArtNr: ${sku}`, value: sku });
}
if (firstEan && firstEan !== query) {
suggestions.push({ label: `EAN: ${firstEan}`, value: firstEan });

View File

@@ -147,7 +147,7 @@ export default class ArticleSupplierDialog extends PureComponent {
)}
<TextInput
label="Lieferanten-Artikelnummer (SKU)"
label="Lieferanten-Artikelnummer (ArtNr)"
value={sku}
onChange={(e) => this.setState({ sku: e.target.value })}
placeholder="z. B. LF-09412"

View File

@@ -130,7 +130,7 @@ export default class ArticleSearchDialog extends PureComponent {
<Typography variant="caption" color="text.secondary">
{line ? (
<>
{isDelivery ? 'Lieferanten-SKU' : 'SKU'}: <strong>{rawSku || '–'}</strong>
{isDelivery ? 'Lieferanten-ArtNr' : 'ArtNr'}: <strong>{rawSku || '–'}</strong>
{line?.name ? ` · ${line.name}` : ''}
</>
) : isDelivery ? (

View File

@@ -505,8 +505,8 @@ export default class BookDeliveryDialog extends PureComponent {
<TableHead sx={{ backgroundColor: SURFACE_RAISED }}>
<TableRow>
<TableCell sx={{ fontWeight: 600, width: 44 }} align="center">Pos.</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Lieferanten-SKU</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Eigene SKU</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Lieferanten-ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Eigene ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600 }}>EAN</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Artikel</TableCell>
<TableCell align="right" sx={{ fontWeight: 600 }}>Bestand</TableCell>
@@ -780,7 +780,7 @@ export default class BookDeliveryDialog extends PureComponent {
{prefillLine && (
<Alert severity="info" sx={{ mb: 2 }}>
Vorausgewählt zum Verbuchen: Position{' '}
<strong>{prefillLine.sku ? `SKU ${prefillLine.sku}` : prefillLine.name}</strong> ({amountsToBook[prefillLine.id] || 0} Stk.). Andere Positionen stehen auf 0.
<strong>{prefillLine.sku ? `ArtNr ${prefillLine.sku}` : prefillLine.name}</strong> ({amountsToBook[prefillLine.id] || 0} Stk.). Andere Positionen stehen auf 0.
</Alert>
)}
{this.renderLinesTable()}

View File

@@ -793,7 +793,7 @@ class ManifestFormLine extends PureComponent {
)}
<HelpOutlineIcon sx={{ fontSize: 15, color: 'warning.main' }} />
<Typography variant="caption" color="text.secondary" sx={{ fontSize: '0.72rem' }}>
Kein Artikel für SKU &bdquo;{rawSku}&ldquo; gefunden.
Kein Artikel für ArtNr &bdquo;{rawSku}&ldquo; gefunden.
</Typography>
</Box>
);
@@ -981,7 +981,7 @@ class ManifestFormLine extends PureComponent {
{/* Supplier SKU if distinct */}
{supplierArticle.sku && supplierArticle.sku !== rawSku && supplierArticle.sku !== article.sku && (
<Typography variant="caption" color="text.secondary" sx={{ fontSize: '0.7rem' }}>
(Lief.-SKU: <strong>{supplierArticle.sku}</strong>)
(Lief.-ArtNr: <strong>{supplierArticle.sku}</strong>)
</Typography>
)}
@@ -1093,8 +1093,8 @@ class ManifestFormLine extends PureComponent {
<HelpOutlineIcon sx={{ fontSize: 15, color: 'warning.main' }} />
<Typography variant="caption" color="text.secondary" sx={{ fontSize: '0.72rem' }}>
{this.props.kind === 'delivery'
? `Kein Lieferanten-Artikel für SKU „${rawSku}“ gefunden.`
: `Kein Artikel für SKU „${rawSku}“ gefunden.`}
? `Kein Lieferanten-Artikel für ArtNr „${rawSku}“ gefunden.`
: `Kein Artikel für ArtNr „${rawSku}“ gefunden.`}
</Typography>
</Box>
);

View File

@@ -359,7 +359,7 @@ export default class OrderShipmentDialog extends PureComponent {
onChange={() => this.handleToggleAll(openItems)}
/>
</TableCell>
<TableCell sx={{ fontWeight: 600 }}>SKU</TableCell>
<TableCell sx={{ fontWeight: 600 }}>ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600 }}>Artikel</TableCell>
<TableCell align="right" sx={{ fontWeight: 600 }}>Bestellt</TableCell>
<TableCell align="right" sx={{ fontWeight: 600 }}>Geliefert</TableCell>

View File

@@ -347,7 +347,7 @@ export default class ShipmentDetailDialog extends PureComponent {
<Table size="small">
<TableHead sx={{ bgcolor: SURFACE_RAISED }}>
<TableRow>
<TableCell sx={{ fontWeight: 600, py: 0.75 }}>SKU</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.75 }}>ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.75 }}>Bezeichnung</TableCell>
<TableCell align="right" sx={{ fontWeight: 600, py: 0.75 }}>Menge</TableCell>
</TableRow>

View File

@@ -224,7 +224,7 @@ export function buildLines(lines, { requireAtLeastOne }) {
const missing = [];
if (!sku && !name) {
missing.push('Artikel (SKU oder Name)');
missing.push('Artikel (ArtNr oder Name)');
}
if (amount == null) {
missing.push(rawAmount != null ? 'gültige Menge' : 'Menge');
@@ -556,35 +556,35 @@ export async function buildManifestBody(
export const LINE_COLUMNS = [
{ id: 'pos', label: 'Pos', width: 44, align: 'center' },
{ id: 'amount', label: 'Amount', width: 80, align: 'right', type: 'number' },
{ id: 'sku', label: 'SKU', width: 130, align: 'left', type: 'text' },
{ id: 'sku', label: 'ArtNr', width: 130, align: 'left', type: 'text' },
{ id: 'name', label: 'Name', width: 200, align: 'left', type: 'text' },
{ id: 'tax', label: 'Tax', width: 70, align: 'right', type: 'number' },
{ id: 'rebate', label: 'Rebate', width: 75, align: 'right', type: 'number' },
{ id: 'net', label: 'Net', width: 95, align: 'right', type: 'number' },
{ id: 'gross', label: 'Gross', width: 95, align: 'right', type: 'number' },
{ id: 'tax', label: 'MwSt', width: 70, align: 'right', type: 'number' },
{ id: 'rebate', label: 'Rabatt', width: 75, align: 'right', type: 'number' },
{ id: 'net', label: 'Netto', width: 95, align: 'right', type: 'number' },
{ id: 'gross', label: 'Brutto', width: 95, align: 'right', type: 'number' },
];
export const QUOTE_LINE_COLUMNS = LINE_COLUMNS;
export const ORDER_LINE_COLUMNS = [
{ id: 'pos', label: 'Pos', width: 44, align: 'center' },
{ id: 'sku', label: 'SKU', width: 130, align: 'left', type: 'text' },
{ id: 'sku', label: 'ArtNr', width: 130, align: 'left', type: 'text' },
{ id: 'name', label: 'Name', width: 200, align: 'left', type: 'text' },
{ id: 'amount', label: 'Amount', width: 80, align: 'right', type: 'number' },
{ id: 'tax', label: 'Tax', width: 70, align: 'right', type: 'number' },
{ id: 'rebate', label: 'Rebate', width: 75, align: 'right', type: 'number' },
{ id: 'net', label: 'Net', width: 95, align: 'right', type: 'number' },
{ id: 'gross', label: 'Gross', width: 95, align: 'right', type: 'number' },
{ id: 'tax', label: 'MwSt', width: 70, align: 'right', type: 'number' },
{ id: 'rebate', label: 'Rabatt', width: 75, align: 'right', type: 'number' },
{ id: 'net', label: 'Netto', width: 95, align: 'right', type: 'number' },
{ id: 'gross', label: 'Brutto', width: 95, align: 'right', type: 'number' },
];
export const DELIVERY_LINE_COLUMNS = [
{ id: 'pos', label: 'Pos', width: 44, align: 'center' },
{ id: 'sku', label: 'SKU', width: 130, align: 'left', type: 'text' },
{ id: 'sku', label: 'ArtNr', width: 130, align: 'left', type: 'text' },
{ id: 'name', label: 'Name', width: 220, align: 'left', type: 'text' },
{ id: 'amount', label: 'Amount', width: 88, align: 'right', type: 'number' },
{ id: 'pu', label: 'PU', width: 80, align: 'right', type: 'number' },
{ id: 'taxrate', label: 'Tax', width: 80, align: 'right', type: 'number' },
{ id: 'netprice', label: 'Net', width: 104, align: 'right', type: 'number' },
{ id: 'taxrate', label: 'MwSt', width: 80, align: 'right', type: 'number' },
{ id: 'netprice', label: 'Netto', width: 104, align: 'right', type: 'number' },
];
/** @typedef {'delivery'|'quote'|'order'} ManifestKind */

View File

@@ -635,7 +635,7 @@ class ArtikelSearchPage extends Component {
sx={{ maxWidth: 520, flexGrow: 1 }}
autoFocus
autoComplete="off"
placeholder="(EAN, SKU, Name)"
placeholder="(EAN, ArtNr, Name)"
value={input}
onChange={this.handleInputChange}
slotProps={{

View File

@@ -528,7 +528,7 @@ class LieferungNeuPage extends PureComponent {
const internalSku = article?.sku;
if (!internalSku) {
const msg = 'Artikel hat keine SKU.';
const msg = 'Artikel hat keine ArtNr.';
enqueueSnackbar(msg, { variant: 'error' });
throw new Error(msg);
}
@@ -1517,8 +1517,8 @@ class LieferungNeuPage extends PureComponent {
<TableHead sx={{ bgcolor: SURFACE_RAISED }}>
<TableRow>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Zeitpunkt</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Lieferanten SKU</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Eigene SKU</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Lieferanten-ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Eigene ArtNr</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5 }}>Name</TableCell>
<TableCell align="right" sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Menge geliefert</TableCell>
<TableCell sx={{ fontWeight: 600, py: 0.5, whiteSpace: 'nowrap' }}>Lager</TableCell>