53 lines
2.5 KiB
MySQL
53 lines
2.5 KiB
MySQL
|
|
-- Draft p1790621868706_fb5f7cf3 - SuperValu invoice 907260825592619
|
||
|
|
-- 2 of 3: InvoiceHeader + InvoiceDetail, the rows SaveService would write for this draft.
|
||
|
|
-- Vendor 1 = SuperValu (the draft has no vendor selected).
|
||
|
|
-- PO: next 10-digit number across InvoiceHeader and POHeader, same as the app.
|
||
|
|
USE posinv;
|
||
|
|
GO
|
||
|
|
|
||
|
|
SET XACT_ABORT ON;
|
||
|
|
BEGIN TRAN;
|
||
|
|
|
||
|
|
DECLARE @vendor int = 1,
|
||
|
|
@inv varchar(100) = '907260825592619',
|
||
|
|
@date datetime = '20260825',
|
||
|
|
@receiver int = 1, -- your emp_no from posbdat..Employees
|
||
|
|
@po varchar(12);
|
||
|
|
|
||
|
|
IF EXISTS (SELECT 1 FROM dbo.InvoiceHeader WITH (UPDLOCK, HOLDLOCK) WHERE InvoiceNumber = @inv AND Vendor = @vendor)
|
||
|
|
BEGIN
|
||
|
|
ROLLBACK;
|
||
|
|
RAISERROR('Invoice 907260825592619 already exists for vendor 1', 16, 1);
|
||
|
|
RETURN;
|
||
|
|
END
|
||
|
|
|
||
|
|
SELECT @po = RIGHT(REPLICATE('0', 10) + CAST(CASE WHEN InvoiceMax > POMax THEN InvoiceMax ELSE POMax END + 1 AS varchar(20)), 10)
|
||
|
|
FROM (SELECT
|
||
|
|
ISNULL((SELECT MAX(TRY_CONVERT(bigint, LTRIM(RTRIM(PONumber)))) FROM dbo.InvoiceHeader WITH (UPDLOCK, HOLDLOCK)
|
||
|
|
WHERE LTRIM(RTRIM(PONumber)) NOT LIKE '%[^0-9]%'), 0) AS InvoiceMax,
|
||
|
|
ISNULL((SELECT MAX(TRY_CONVERT(bigint, LTRIM(RTRIM(PONumber)))) FROM dbo.POHeader WITH (UPDLOCK, HOLDLOCK)
|
||
|
|
WHERE LTRIM(RTRIM(PONumber)) NOT LIKE '%[^0-9]%'), 0) AS POMax) AS M;
|
||
|
|
|
||
|
|
-- TotalCost = sum of line Totals (21.00 + 20.53)
|
||
|
|
-- TotalPrice = sum of Price * Pack * QuantityCase (only the qty-1 rotini line: 1.39 * 1 * 1)
|
||
|
|
-- Price_Cost_Change = 1 because script 3 creates a batch
|
||
|
|
INSERT INTO dbo.InvoiceHeader
|
||
|
|
(PONumber, PODate, InvoiceDate, Vendor, InvoiceNumber, VendorTotal, ReceivedInvoice, Price_Cost_Change,
|
||
|
|
TotalCost, TotalPrice, InvoiceQuantity, Salesman, Receiver, Deliverer)
|
||
|
|
VALUES
|
||
|
|
(@po, @date, @date, @vendor, @inv, 480.11, 1, 1,
|
||
|
|
41.53, 1.39, 1, '', @receiver, '');
|
||
|
|
|
||
|
|
-- Cost = case cost / pack, CaseCost = invoice cost, Price = unit retail
|
||
|
|
INSERT INTO dbo.InvoiceDetail
|
||
|
|
(PONumber, UPC, Cert_code, Description, Cost, Price, Total, Pack, CaseCost, QuantityCase, Size, UnitOfMeasure, PurchaseType)
|
||
|
|
VALUES
|
||
|
|
(@po, '0002680000550', 'F 645479', 'AMER/BEAUTY ROTINI', 0, 1.39, 21.00, 1, 0, 0, '16', 'OZ', 0),
|
||
|
|
(@po, '0088810925309', '3491452', 'HST GLAZED HNY BUN', 0, 2.49, 0, 184, 0, 0, NULL, 'OZ', 0),
|
||
|
|
(@po, '0019269900079', '4178665', 'SMYNG BLDK ROSE BG BWL 3.', 0, 3.29, 0, 824, 0, 0, '0.65', 'OZ', 0),
|
||
|
|
(@po, '0002680000550', '645479', 'AMER/BEAUTY ROTINI', 20.53, 1.39, 20.53, 1, 20.53, 1, '16', 'OZ', 0);
|
||
|
|
|
||
|
|
SELECT @po AS PONumber;
|
||
|
|
COMMIT;
|
||
|
|
GO
|