'use client'; import * as React from 'react'; import { View as PDFView, Text as PDFText, StyleSheet } from '@react-pdf/renderer'; import { DocumentTitle } from '../SharedUI'; const styles = StyleSheet.create({ table: { marginTop: 12 }, tableHeader: { flexDirection: 'row', paddingBottom: 8, borderBottomWidth: 1, borderBottomColor: '#000000', marginBottom: 12 }, tableRow: { flexDirection: 'row', paddingVertical: 8, borderBottomWidth: 1, borderBottomColor: '#f8fafc', alignItems: 'flex-start' }, colPos: { width: '8%' }, colDesc: { width: '62%' }, colQty: { width: '10%', textAlign: 'center' }, colPrice: { width: '20%', textAlign: 'right' }, headerText: { fontSize: 7, fontWeight: 'bold', textTransform: 'uppercase', letterSpacing: 1 }, posText: { fontSize: 8, color: '#999999' }, itemTitle: { fontSize: 10, fontWeight: 'bold', marginBottom: 4 }, itemDesc: { fontSize: 8, color: '#666666', lineHeight: 1.4 }, priceText: { fontSize: 10, fontWeight: 'bold' }, summaryContainer: { borderTopWidth: 1, borderTopColor: '#000000', paddingTop: 8 }, summaryRow: { flexDirection: 'row', justifyContent: 'flex-end', paddingVertical: 4, alignItems: 'baseline' }, summaryLabel: { fontSize: 7, color: '#64748b', textTransform: 'uppercase', letterSpacing: 1, fontWeight: 'bold', marginRight: 12 }, summaryValue: { fontSize: 9, fontWeight: 'bold', width: 100, textAlign: 'right' }, totalRow: { flexDirection: 'row', justifyContent: 'flex-end', paddingTop: 12, marginTop: 8, borderTopWidth: 2, borderTopColor: '#000000', alignItems: 'baseline' }, }); export const EstimationModule = ({ state, positions, totalPrice, date }: any) => ( <> Pos Beschreibung Menge Betrag {positions.map((item: any, i: number) => ( {item.pos.toString().padStart(2, '0')} {item.title} {state.positionDescriptions?.[item.title] || item.desc} {item.qty} {item.price > 0 ? `${item.price.toLocaleString('de-DE')} €` : 'n. A.'} ))} Nettobetrag{totalPrice.toLocaleString('de-DE')} € Umsatzsteuer (19%){(totalPrice * 0.19).toLocaleString('de-DE')} € Gesamtbetrag (Brutto){(totalPrice * 1.19).toLocaleString('de-DE')} € );