- feat: order confirmation PDF generation with VAT support
- feat: order confirmation modal with custom item editing
- fix: attendance negative duration clamping and switchProject timing
- fix: Quill editor locked to Tahoma 14px, PDF heading sizes
- fix: invoice/offer PDF font consistency (Tahoma enforcement)
- fix: invoice alert cron improvements
- fix: NAS financials manager edge cases
- refactor: numbering service with unique sequence constraints

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-04-23 17:23:10 +02:00
parent b197017644
commit 07cb428287
36 changed files with 2233 additions and 480 deletions

View File

@@ -785,9 +785,8 @@ export default function InvoiceDetail() {
setSaving(true);
try {
const payload = {
const payload: any = {
...form,
invoice_number: invoiceNumber,
items: items
.filter((i) => i.description.trim())
.map((item, i) => ({
@@ -795,6 +794,7 @@ export default function InvoiceDetail() {
position: i,
})),
};
if (isEdit) payload.invoice_number = invoiceNumber;
const url = isEdit
? `${API_BASE}/invoices/${id}`
@@ -1416,19 +1416,12 @@ export default function InvoiceDetail() {
<input
type="text"
value={invoiceNumber}
onChange={(e) => {
if (!isEdit) setInvoiceNumber(e.target.value);
}}
readOnly
className="admin-form-input"
readOnly={isEdit}
style={
isEdit
? {
backgroundColor: "var(--bg-secondary)",
cursor: "default",
}
: undefined
}
style={{
backgroundColor: "var(--bg-secondary)",
cursor: "default",
}}
/>
</FormField>
<FormField label="Odběratel" error={errors.customer_id} required>