Backend improvements: views, fields_get, session, RPC stubs
- Improved auto-generated list/form/search views with priority fields, two-column form layout, statusbar widget, notebook for O2M fields - Enhanced fields_get with currency_field, compute, related metadata - Fixed session handling: handleSessionInfo/handleSessionCheck use real session from cookie instead of hardcoded values - Added read_progress_bar and activity_format RPC stubs - Improved bootstrap translations with lang_parameters - Added "contacts" to session modules list Server starts successfully: 14 modules, 93 models, 378 XML templates, 503 JS modules transpiled — all from local frontend/ directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
addons/l10n_de/din5008.go
Normal file
42
addons/l10n_de/din5008.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package l10n_de
|
||||
|
||||
import "fmt"
|
||||
|
||||
// DIN5008Config holds the German business letter format configuration.
|
||||
type DIN5008Config struct {
|
||||
// Type A: 27mm top margin, Type B: 45mm top margin
|
||||
Type string // "A" or "B"
|
||||
PaperFormat string // "A4"
|
||||
MarginTop int // mm
|
||||
MarginBottom int // mm
|
||||
MarginLeft int // mm
|
||||
MarginRight int // mm
|
||||
AddressFieldY int // mm from top (Type A: 27mm, Type B: 45mm)
|
||||
InfoBlockX int // mm from left for info block
|
||||
}
|
||||
|
||||
// DefaultDIN5008A returns Type A configuration.
|
||||
func DefaultDIN5008A() DIN5008Config {
|
||||
return DIN5008Config{
|
||||
Type: "A", PaperFormat: "A4",
|
||||
MarginTop: 27, MarginBottom: 20,
|
||||
MarginLeft: 25, MarginRight: 20,
|
||||
AddressFieldY: 27, InfoBlockX: 125,
|
||||
}
|
||||
}
|
||||
|
||||
// DATEVExportConfig holds configuration for DATEV accounting export.
|
||||
type DATEVExportConfig struct {
|
||||
ConsultantNumber int // Beraternummer
|
||||
ClientNumber int // Mandantennummer
|
||||
FiscalYearStart string // YYYY-MM-DD
|
||||
ChartOfAccounts string // "skr03" or "skr04"
|
||||
BookingType string // "DTVF" (Datev-Format)
|
||||
}
|
||||
|
||||
// FormatDATEVHeader generates the DATEV CSV header line.
|
||||
func FormatDATEVHeader(cfg DATEVExportConfig) string {
|
||||
return "\"EXTF\";700;21;\"Buchungsstapel\";7;;" +
|
||||
fmt.Sprintf("%d;%d;", cfg.ConsultantNumber, cfg.ClientNumber) +
|
||||
cfg.FiscalYearStart + ";" + "4" + ";;" // 4 = length of fiscal year
|
||||
}
|
||||
Reference in New Issue
Block a user