u
This commit is contained in:
@@ -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 },
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ? (
|
||||
|
||||
@@ -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()}
|
||||
|
||||
@@ -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 „{rawSku}“ gefunden.
|
||||
Kein Artikel für ArtNr „{rawSku}“ 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>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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={{
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user