feat: Implement mfr truncation fix and enhance invoice handling
Playwright Tests / test (push) Canceled after 0s
Playwright Tests / test (push) Canceled after 0s
- Added a new SQL script to address the "String or binary data would be truncated" error in mfr sync by widening the Note fields in service objects and companies to NVARCHAR(MAX). - Updated the table types and associated stored procedures to accommodate the changes, ensuring compatibility with existing data. - Queued a re-sync for previously rejected rows due to truncation issues. - Created application logins for fuchs_fds and fuchs_web with placeholder passwords for initial setup. - Introduced functions for invoice backdating and invoice date retrieval to streamline invoice processing. - Developed a password generation function with customizable parameters for length and character types. - Added a random number generation function to support password creation.
This commit is contained in:
@@ -43,11 +43,16 @@ BEGIN
|
||||
;
|
||||
|
||||
|
||||
-- The invoice date (fds__fn_invoiceDate: DateFinalized as German day, ADR 0035) drives both the export
|
||||
-- period and the Belegdatum; DateCreated is only the draft's creation and may lie in a later month for
|
||||
-- a backdated invoice.
|
||||
-- [DateOfCreation] keeps its name for the callers (HandleDatev / FdsMfr.GetDatevZip) but carries that day.
|
||||
DECLARE @inv TABLE([Id] varchar(20), [InvoiceID] varchar(255), [DocumentName] nvarchar(255), [DateOfCreation] date, [fds] bit, [file_guid] varchar(36));
|
||||
INSERT INTO @inv
|
||||
SELECT [Id],[invoiceid],[DocumentName],[DateOfCreation] = [DateCreated],[fds] = IIF([isExternal] = 0,1,0), [file_guid]
|
||||
SELECT [Id],[invoiceid],[DocumentName],[DateOfCreation] = d.[InvoiceDate],[fds] = IIF([isExternal] = 0,1,0), [file_guid]
|
||||
FROM [dbo].[fds__invoices]
|
||||
where CAST([DateCreated] as date) between @startdate AND @enddate and [isfinal] = 1;
|
||||
CROSS APPLY (SELECT [InvoiceDate] = [dbo].[fds__fn_invoiceDate]([DateFinalized], [DateCreated])) as d
|
||||
where [isfinal] = 1 and d.[InvoiceDate] between @startdate AND @enddate;
|
||||
|
||||
SELECT
|
||||
inv.[Id],inv.[InvoiceID],inv.[DocumentName],inv.[fds]
|
||||
@@ -78,15 +83,15 @@ BEGIN
|
||||
,[deb_cred] = CASE WHEN [invoiceBalance] >= 0 THEN 'S' ELSE 'H' END
|
||||
,[customer] = (SELECT TOP(1) [ExternalId] FROM [dbo].[mfr__companies] as c WHERE c.[Id] = iv.[CustomerId])
|
||||
,[contra_account] = ca.[account]
|
||||
,[Belegdatum] = iv.[DateCreated]
|
||||
,[Belegdatum] = i.[DateOfCreation] -- the invoice date (DateFinalized as German day), see @inv
|
||||
,[Buchungstext] = (SELECT TOP(1) SReq.[name] FROM @SReq as sreq WHERE iv.[Id] = sreq.[invoice.Id])
|
||||
,[DateOfCreation] = iv.[DateCreated]
|
||||
,[file_guid]
|
||||
from [dbo].[fds__invoices] as iv
|
||||
,[DateOfCreation] = i.[DateOfCreation]
|
||||
,[file_guid] = iv.[file_guid]
|
||||
from [dbo].[fds__invoices] as iv
|
||||
JOIN @inv as i on iv.[Id] = i.[Id]
|
||||
LEFT JOIN [dbo].[fds__invoice_details] as d on iv.[Id] = d.[InvId]
|
||||
LEFT JOIN sc on iv.[id] = sc.[invoice.Id]
|
||||
LEFT JOIN @contraaccounts as ca ON (CASE WHEN d.InvoiceOptions like '%§13b%' and RIGHT(ca.[name], 3) = '13b' then 1 WHEN d.InvoiceOptions like '%§13b%' THEN 0 when ISNULL(iv.[InvoiceVAT_1], 19.0) = ca.[vat] THEN 1 ELSE 0 END) = 1
|
||||
where iv.Id in (SELECT [Id] FROM @inv)
|
||||
)
|
||||
select
|
||||
[Umsatz (ohne Soll/Haben-Kz)] = ABS([balance])--CAST(FORMAT(ABS([balance]), '0.00', 'de') as varchar(13))
|
||||
|
||||
Reference in New Issue
Block a user