/****** Object: StoredProcedure [dbo].[WebFeatureSyncWorker] Script Date: 07/06/2020 15:20:26 ******/
/* Creates Stored Procedures for TempData database */
------- Change this <[TEMPLINK]> to the intermediate link between tempdata and NickMid databases.
USE [TempData]
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'WebFeatureSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[WebFeatureSyncWorker]
PRINT 'WebFeatureSyncWorker Droped'
END
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'CustomerSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[CustomerSyncWorker]
PRINT 'CustomerSyncWorker Droped'
END
Go
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'VisitorSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[VisitorSyncWorker]
PRINT 'VisitorSyncWorker Droped'
END
Go
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'BookSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[BookSyncWorker]
PRINT 'BookSyncWorker Droped'
END
Go
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'BookGroupSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[BookGroupSyncWorker]
PRINT 'BookGroupSyncWorker Droped'
END
Go
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'BookGroup2SyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[BookGroup2SyncWorker]
PRINT 'BookGroup2SyncWorker Droped'
END
SET ANSI_NULLS ON
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'StoreSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[StoreSyncWorker]
PRINT 'StoreSyncWorker Droped'
END
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'UnitSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[UnitSyncWorker]
PRINT 'UnitSyncWorker Droped'
END
Go
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'sanaditemsSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[sanaditemsSyncWorker]
PRINT 'sanaditemsSyncWorker Droped'
END
GO
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'sanaditemsSyncWorker')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE [dbo].[sanaditemsSyncWorker]
PRINT 'sanaditemsSyncWorker Droped'
END
GO
Go
USE [TempData]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[WebFeatureSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
DECLARE @Code bigint
DECLARE dbcursor CURSOR
FOR SELECT ID FROM TempData.dbo.WebFeatures WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @Code;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 ID FROM [TEMPLINK].[NickMid].dbo.WebFeatures WHERE FeatureID = @Code),0) <> 0)
INSERT INTO [TEMPLINK].[NickMid].dbo.WebFeatures
(
FeatureID,
FeatureName,
IsActive
)
SELECT
FeatureID,
FeatureName,
IsActive
FROM
TempData.dbo.WebFeatures
WHERE
ID = @Code
IF (ISNULL((SELECT TOP 1 ID FROM [TEMPLINK].[NickMid].dbo.WebFeatures WHERE FeatureID = @Code),0) = 0)
UPDATE
A
SET
A.IsActive = B.IsActive
FROM
[TEMPLINK].[NickMid].dbo.WebFeatures A
INNER JOIN TempData.dbo.WebFeatures B
ON A.FeatureID = B.FeatureID
WHERE
B.ID = @Code
UPDATE TempData.dbo.WebFeatures
SET IsDeleted = 'True'
WHERE ID = @Code
FETCH NEXT FROM dbcursor INTO @Code;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'WebFeatures', 16, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync failed', 2, GETDATE(), 'WebFeatures', 16, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[CustomerSyncWorker] Script Date: 07/06/2020 15:20:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[CustomerSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
--SET XACT_ABORT ON
--BEGIN TRANSACTION
DECLARE @Code bigint,
@ID bigint
DECLARE dbcursor CURSOR
FOR SELECT customercode, ID FROM TempData.dbo.tblcustomerinf WHERE ISNULL(IsDeleted, 0) = 0 Order BY Id Desc;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @Code, @ID;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 Code FROM [TEMPLINK].[NickMid].Product.CustomerInfo WHERE Code = @Code),0) <> 0)
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tblcustomerinf]
(
customerName,
customerCode,
customerAddress,
customerPhone,
customerfax,
customerZipCode,
prefix,
city,
comments,
manager,
nationalcode,
economiccode,
groupcode,
credit,
lastbuyinvoiceno,
lastbuydate,
lastsellinvoiceno,
lastselldate,
generalledger,
date,
email,
hesabtafzil,
CheckCredit,
VisitorCode,
SMS,
Mobile,
Pay,
Recive,
WebShopLoginStatus,
WebShopDescription,
WebShopSyncDocs,
ActionTypeID
)
SELECT
customerName,
customerCode,
customerAddress,
customerPhone,
customerfax,
customerZipCode,
prefix,
city,
comments,
manager,
nationalcode,
economiccode,
groupcode,
credit,
lastbuyinvoiceno,
lastbuydate,
lastsellinvoiceno,
lastselldate,
generalledger,
date,
email,
hesabtafzil,
CheckCredit,
VisitorCode,
SMS,
Mobile,
Pay,
Recive,
WebShopLoginStatus,
WebShopDescription,
WebShopSyncDocs,
2
FROM
TempData.dbo.tblcustomerinf
WHERE
customercode = @Code
AND ID = @ID
IF (ISNULL((SELECT TOP 1 Code FROM [TEMPLINK].[NickMid].Product.CustomerInfo WHERE Code = @Code),0) = 0)
INSERT INTO [TEMPLINK].[NickMid].dbo.tblcustomerinf
(
customerName,
customerCode,
customerAddress,
customerPhone,
customerfax,
customerZipCode,
prefix,
city,
comments,
manager,
nationalcode,
economiccode,
groupcode,
credit,
lastbuyinvoiceno,
lastbuydate,
lastsellinvoiceno,
lastselldate,
generalledger,
date,
email,
hesabtafzil,
CheckCredit,
VisitorCode,
SMS,
Mobile,
Pay,
Recive,
WebShopLoginStatus,
WebShopDescription,
WebShopSyncDocs,
ActionTypeID
)
SELECT
customerName,
customerCode,
customerAddress,
customerPhone,
customerfax,
customerZipCode,
prefix,
city,
comments,
manager,
nationalcode,
economiccode,
groupcode,
credit,
lastbuyinvoiceno,
lastbuydate,
lastsellinvoiceno,
lastselldate,
generalledger,
date,
email,
hesabtafzil,
CheckCredit,
VisitorCode,
SMS,
Mobile,
Pay,
Recive,
WebShopLoginStatus,
WebShopDescription,
WebShopSyncDocs,
1
FROM
TempData.dbo.tblcustomerinf
WHERE
customercode = @Code
AND ID = @ID
UPDATE TempData.dbo.tblcustomerinf
SET IsDeleted = 'True'
WHERE ID <= @ID and customerCode=@Code and ISNULL(IsDeleted,0)=0
FETCH NEXT FROM dbcursor INTO @Code, @ID;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'Customer', 11, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
--COMMIT
END TRY
BEGIN CATCH
--ROLLBACK
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync failed', 2, GETDATE(), 'Customer', 11, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[VisitorSyncWorker] Script Date: 07/06/2020 15:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[VisitorSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
DECLARE @Code bigint
DECLARE dbcursor CURSOR
FOR SELECT ID FROM TempData.dbo.tbl_Visitor WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @Code;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [TEMPLINK].[NickMid].dbo.tbl_Visitor
(
VisitorCode,
VisitorName,
VisitorPercent,
VisitorHesab,
ExpenseHesab
)
SELECT
VisitorCode,
VisitorName,
VisitorPercent,
VisitorHesab,
ExpenseHesab
FROM
TempData.dbo.tbl_Visitor
WHERE
ID = @Code
UPDATE TempData.dbo.tbl_Visitor
SET IsDeleted = 'True'
WHERE ID = @Code
FETCH NEXT FROM dbcursor INTO @Code;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'Visitor', 15, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync failed', 2, GETDATE(), 'Visitor', 15, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[BookSyncWorker] Script Date: 07/06/2020 15:20:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BookSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
--SET XACT_ABORT ON
--BEGIN TRANSACTION
DECLARE @S_Code bigint,
@ID bigint,
@ActionTypeId int
DECLARE dbcursor CURSOR
FOR SELECT s_code, ID,ActionTypeID FROM TempData.dbo.tblbookinf WHERE ISNULL(IsDeleted, 0) = 0 and WebShop_SPrice is not null Order by Id desc;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @S_Code, @ID,@ActionTypeId;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 SCode FROM [TEMPLINK].[NickMid].Product.Products WHERE SCode = @S_Code),0) <> 0)
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tblbookinf]
(
s_code,
bookname,
barcode,
bookcode,
lastsdate,
sprice,
weight,
pages,
pubyear,
safetystock,
discount,
translator,
subdiscount,
lastbnumber,
lastbdate,
groupcode,
writer,
covertype,
status,
lastseller,
publisher,
publishercode,
buytype,
currentdate,
bprice,
pubtime,
printcount,
covercount,
location,
isbn,
Tax1,
groupcode2,
Tax2,
image_address,
select_,
UnitID,
lastBPrice,
WebShop_Description,
WebShop_CartLimit,
WebShop_SellStatus,
WebShop_SPrice,
WebShop_Discount,
WebShop_SafetyStock,
ActionTypeID
)
SELECT
s_code,
REPLACE(REPLACE(bookname,N'ي',N'ی'),N'ك',N'ک'),
barcode,
bookcode,
lastsdate,
sprice,
weight,
pages,
pubyear,
safetystock,
discount,
translator,
subdiscount,
lastbnumber,
lastbdate,
groupcode,
writer,
covertype,
status,
lastseller,
publisher,
publishercode,
buytype,
currentdate,
bprice,
pubtime,
printcount,
covercount,
location,
isbn,
Tax1,
groupcode2,
Tax2,
image_address,
select_,
UnitID,
lastBPrice,
WebShop_Description,
WebShop_CartLimit,
WebShop_SellStatus,
WebShop_SPrice,
WebShop_Discount,
WebShop_SafetyStock,
case Isnull(@ActionTypeId,0)
when 0 then 2
ELSE @ActionTypeId
END
FROM
TempData.dbo.tblbookinf
WHERE
s_code = @S_Code
AND ID = @ID
IF (ISNULL((SELECT TOP 1 SCode FROM [TEMPLINK].[NickMid].Product.Products WHERE SCode = @S_Code),0) = 0)
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tblbookinf]
(
s_code,
bookname,
barcode,
bookcode,
lastsdate,
sprice,
weight,
pages,
pubyear,
safetystock,
discount,
translator,
subdiscount,
lastbnumber,
lastbdate,
groupcode,
writer,
covertype,
status,
lastseller,
publisher,
publishercode,
buytype,
currentdate,
bprice,
pubtime,
printcount,
covercount,
location,
isbn,
Tax1,
groupcode2,
Tax2,
image_address,
select_,
UnitID,
lastBPrice,
WebShop_Description,
WebShop_CartLimit,
WebShop_SellStatus,
WebShop_SPrice,
WebShop_Discount,
WebShop_SafetyStock,
ActionTypeID
)
SELECT
s_code,
REPLACE(REPLACE(bookname,N'ي',N'ی'),N'ك',N'ک'),
barcode,
bookcode,
lastsdate,
sprice,
weight,
pages,
pubyear,
safetystock,
discount,
translator,
subdiscount,
lastbnumber,
lastbdate,
groupcode,
writer,
covertype,
status,
lastseller,
publisher,
publishercode,
buytype,
currentdate,
bprice,
pubtime,
printcount,
covercount,
location,
isbn,
Tax1,
groupcode2,
Tax2,
image_address,
select_,
UnitID,
lastBPrice,
WebShop_Description,
WebShop_CartLimit,
WebShop_SellStatus,
WebShop_SPrice,
WebShop_Discount,
WebShop_SafetyStock,
1
FROM
TempData.dbo.tblbookinf
WHERE
s_code = @S_Code
AND ID = @ID
UPDATE TempData.dbo.tblbookinf
SET IsDeleted = 'True'
WHERE ID <= @ID and s_code=@S_Code and ISNULL(IsDeleted, 0) = 0
FETCH NEXT FROM dbcursor INTO @S_Code, @ID,@ActionTypeId;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@S_Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'Book', 10, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
END TRY
BEGIN CATCH
DECLARE @Message nvarchar(500)
SELECT
@Message=ERROR_MESSAGE()
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES(@Message, 2, GETDATE(), 'Book', 10, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[BookGroupSyncWorker] Script Date: 07/06/2020 15:20:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BookGroupSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
DECLARE @Code bigint
DECLARE dbcursor CURSOR
FOR SELECT ID FROM TempData.dbo.tblBookGroup WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @Code;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [TEMPLINK].[NickMid].dbo.tblbookgroup
(
GroupCode,
GroupName,
ActionTypeId
)
SELECT
GroupCode,
GroupName,
ActionTypeID
FROM
TempData.dbo.tblbookgroup
WHERE
ID = @Code
UPDATE TempData.dbo.tblBookGroup
SET IsDeleted = 'True'
WHERE ID = @Code
FETCH NEXT FROM dbcursor INTO @Code;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'BookGroup1', 13, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync failed', 2, GETDATE(), 'BookGroup1', 13, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[BookGroup2SyncWorker] Script Date: 07/06/2020 15:20:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[BookGroup2SyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
DECLARE @Code bigint
DECLARE dbcursor CURSOR
FOR SELECT ID FROM TempData.dbo.tblBookGroup2 WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @Code;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [TEMPLINK].[NickMid].dbo.tblBookGroup2
(
GroupCode,
GroupName
,ActionTypeId
)
SELECT
GroupCode,
GroupName,
ActionTypeID
FROM
TempData.dbo.tblBookGroup2
WHERE
ID = @Code
UPDATE TempData.dbo.tblBookGroup2
SET IsDeleted = 'True'
WHERE ID = @Code
FETCH NEXT FROM dbcursor INTO @Code;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'BookGroup2', 14, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync failed', 2, GETDATE(), 'BookGroup2', 14, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
USE [TempData]
GO
/****** Object: StoredProcedure [dbo].[StoreSyncWorker] Script Date: 07/06/2020 15:20:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sanaditemsSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Feature bit
IF EXISTS(select ID from [TempData].[dbo].[WebFeatures] where FeatureName='B2B' and IsActive=1)
SET @Feature=1
IF(ISNULL(@Feature,0)=1)
BEGIN
BEGIN TRY
DECLARE @sanad bigint,
@ID bigint,
@ActionTypeId int
DECLARE dbcursor CURSOR
FOR SELECT sanad, Id,ActionTypeID FROM TempData.dbo.tbl_sanaditems WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @sanad, @ID,@ActionTypeId;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 sanad FROM [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems] WHERE sanad = @sanad),0) =0 and @ActionTypeId=1)
BEGIN
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems]
([sanad]
,[hesabtafzil]
,[sharh2]
,[bedehkar]
,[bestankar]
,[molhaghat]
,[recno]
,[kol]
,[hesabmoin]
,[s_code_check]
,[type_note]
,[sharh1]
,[record_number]
,[sanaddate]
)
SELECT
[sanad]
,[hesabtafzil]
,[sharh2]
,[bedehkar]
,[bestankar]
,[molhaghat]
,[recno]
,[kol]
,[hesabmoin]
,[s_code_check]
,[type_note]
,[sharh1]
,[record_number]
,[sanaddate]
FROM [TempData].[dbo].[tbl_sanaditems] where Id=@ID
UPDATE TempData.[dbo].[tbl_sanaditems]
SET IsDeleted = 'True'
WHERE ID = @ID
END
--RECORD EXIST
ELSE IF (ISNULL((SELECT TOP 1 sanad FROM [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems] WHERE sanad = @sanad),0) <> 0)
BEGIN
--update
IF(@ActionTypeId=1)
BEGIN
update [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems]
SET
[hesabtafzil]=d.[hesabtafzil]
,[sharh2]=d.[sharh2]
,[bedehkar]=d.[bedehkar]
,[bestankar]=d.[bestankar]
,[molhaghat]=d.[molhaghat]
,[kol]=d.[kol]
,[hesabmoin]=d.[hesabmoin]
,[s_code_check]=d.[s_code_check]
,[type_note]=d.[type_note]
,[sharh1]=d.[sharh1]
,[record_number] =d.[record_number]
,[sanaddate]=d.[sanaddate]
FROM [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems] I
JOIN [TempData].[dbo].[tbl_sanaditems] d
on I.recno=d.recno
where d.Id=@ID
END
END
--Delete
IF(@ActionTypeId=3)
BEGIN
Delete [TEMPLINK].[NickMid].[dbo].[tbl_sanaditems] where sanad=@sanad
END
UPDATE TempData.[dbo].[tbl_sanaditems]
SET IsDeleted = 'True'
WHERE ID = @ID
FETCH NEXT FROM dbcursor INTO @sanad, @ID,@ActionTypeId;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@sanad,0) =0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'tbl_sanaditems', 13, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
END TRY
BEGIN CATCH
Declare @Message nvarchar(max)
set @Message=ERROR_MESSAGE()
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES(@Message, 2, GETDATE(), 'tbl_sanaditems', 13, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID(N'[dbo].[tblInvoiceSyncWorker]', 'P') IS NOT NULL
DROP PROCEDURE [dbo].[tblInvoiceSyncWorker]
GO
CREATE PROCEDURE [dbo].[tblInvoiceSyncWorker]
AS
BEGIN
DECLARE @Feature bit
IF EXISTS(select ID from [TempData].[dbo].[WebFeatures] where FeatureName='B2B' and IsActive=1)
SET @Feature=1
IF(ISNULL(@Feature,0)=1)
BEGIN
SET NOCOUNT ON;
BEGIN TRY
DECLARE @invoiceNo bigint,
@ID bigint,
@ActionTypeId int
DECLARE dbcursor CURSOR
FOR SELECT invoiceNo, Id,ActionTypeID FROM TempData.dbo.tblInvoice WHERE ISNULL(IsDeleted, 0) = 0;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @invoiceNo, @ID,@ActionTypeId;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 invoiceNo FROM [TEMPLINK].[NickMid].[dbo].[tblInvoice] WHERE invoiceNo = @invoiceNo),0) =0 and @ActionTypeId=1)
BEGIN
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tblInvoice]
([InvoiceNo]
,[InvoiceDate]
,[customerCode]
,[Discount]
,[Quantity]
,[SpecialDiscount]
,[InvoiceRealPrice]
,[expense]
,[invoicetype]
,[expensecomment]
,[cashiercode]
,[cardexinvoicetype]
,[sanad_no]
,[sellercode]
,[close_]
,[sharh_invoice]
,[image_address]
,[t_invoiceno]
,[dbName]
,[Tax1]
,[Tax2]
,[InvoiceTime]
,[VisitorCode]
,[Pos_]
,[RealDate]
)
SELECT
[InvoiceNo]
,[InvoiceDate]
,[customerCode]
,[Discount]
,[Quantity]
,[SpecialDiscount]
,[InvoiceRealPrice]
,[expense]
,[invoicetype]
,[expensecomment]
,[cashiercode]
,[cardexinvoicetype]
,[sanad_no]
,[sellercode]
,[close_]
,[sharh_invoice]
,[image_address]
,[t_invoiceno]
,[dbName]
,[Tax1]
,[Tax2]
,[InvoiceTime]
,[VisitorCode]
,[Pos_]
,[RealDate]
FROM [TempData].[dbo].[tblInvoice]
where Id=@ID
INSERT INTO [TEMPLINK].[NickMid].[dbo].[tblInvoiceItems]
([InvoiceNo]
,[Quantity]
,[quantityback]
,[Discount]
,[SPrice]
,[bprice]
,[RecNo]
,[backinvoiceno]
,[buyfrom]
,[s_code_book]
,[s_code_store]
,[Tax1]
,[Tax2]
)
SELECT
[InvoiceNo]
,[Quantity]
,[quantityback]
,[Discount]
,[SPrice]
,[bprice]
,[RecNo]
,[backinvoiceno]
,[buyfrom]
,[s_code_book]
,[s_code_store]
,[Tax1]
,[Tax2]
FROM [dbo].[tblInvoiceItems] where InvoiceNo=@invoiceNo
UPDATE TempData.[dbo].[tblInvoice]
SET IsDeleted='true'
where id=@ID
UPDATE TempData.[dbo].[tblInvoiceItems]
SET IsDeleted = 'True'
WHERE InvoiceNo=@invoiceNo
END
--RECORD EXIST
ELSE IF (ISNULL((SELECT TOP 1 invoiceNo FROM [TEMPLINK].[NickMid].[dbo].[tblInvoice] WHERE invoiceNo = @invoiceNo),0)<> 0)
BEGIN
--update
IF(@ActionTypeId=1)
BEGIN
update [TEMPLINK].[NickMid].[dbo].[tblInvoice]
SET
[InvoiceDate]=d.[InvoiceDate]
,[customerCode]=d.[customerCode]
,[Discount]=d.[Discount]
,[Quantity]=d.[Quantity]
,[SpecialDiscount]=d.[SpecialDiscount]
,[InvoiceRealPrice]=d.[InvoiceRealPrice]
,[expense]=d.[expense]
,[invoicetype]=d.[invoicetype]
,[expensecomment]=d.[expensecomment]
,[cashiercode]=d.[cashiercode]
,[cardexinvoicetype]=d.[cardexinvoicetype]
,[sanad_no]=d.[sanad_no]
,[sellercode]=d.[sellercode]
,[close_]=d.[close_]
,[sharh_invoice]=d.[sharh_invoice]
,[image_address]=d.[image_address]
,[t_invoiceno]=d.[t_invoiceno]
,[dbName]=d.[dbName]
,[Tax1]=d.[Tax1]
,[Tax2]=d.[Tax2]
,[InvoiceTime]=d.[InvoiceTime]
,[VisitorCode]=d.[VisitorCode]
,[Pos_]=d.[Pos_]
,[RealDate]=d.[RealDate]
FROM [TEMPLINK].[NickMid].[dbo].[tblInvoice] I
JOIN [TempData].[dbo].[tblInvoice] d
on I.InvoiceNo=d.InvoiceNo
where id=@id
update [TEMPLINK].[NickMid].[dbo].[tblInvoiceItems]
SET
[Quantity]=d.[Quantity]
,[quantityback]=d.[quantityback]
,[Discount]=d.[Discount]
,[SPrice]=d.[SPrice]
,[bprice]=d.[bprice]
,[backinvoiceno]=d.[backinvoiceno]
,[buyfrom]=d.[buyfrom]
,[s_code_book]=d.[s_code_book]
,[s_code_store]=d.[s_code_store]
,[Tax1]=d.[Tax1]
,[Tax2]=d.[Tax2]
FROM [TEMPLINK].[NickMid].[dbo].[tblInvoiceItems] I
JOIN [TempData].[dbo].[tblInvoiceItems] d
on I.RecNo=d.RecNo
where d.InvoiceNo=@invoiceNo
END
END
--Delete
IF(@ActionTypeId=3)
BEGIN
Delete [TEMPLINK].[NickMid].[dbo].[tblInvoice] where InvoiceNo=@invoiceNo
DELETE [TEMPLINK].[NickMid].[dbo].[tblInvoiceItems] where InvoiceNo=@invoiceNo
END
UPDATE TempData.[dbo].[tblInvoice]
SET IsDeleted = 'True'
WHERE ID = @ID
update TempData.[dbo].[tblInvoiceItems]
SET IsDeleted = 'True'
where InvoiceNo=@invoiceNo
FETCH NEXT FROM dbcursor INTO @invoiceNo, @ID,@ActionTypeId;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@invoiceNo,0) =0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'invoice', 14, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
END TRY
BEGIN CATCH
Declare @Message nvarchar(max)
set @Message=ERROR_MESSAGE()
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES(@Message, 2, GETDATE(), 'invoice', 14, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
END
GO
IF OBJECT_ID(N'[dbo].[StoreSyncWorker]', 'P') IS NOT NULL
DROP PROCEDURE [dbo].[StoreSyncWorker]
GO
CREATE PROCEDURE [dbo].[StoreSyncWorker]
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
DECLARE @S_Code bigint,
@ID bigint
DECLARE dbcursor CURSOR
FOR SELECT ID,s_code_book FROM TempData.dbo.tblstore WHERE ISNULL(IsDeleted, 0) = 0 Order By ID ;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @ID,@S_Code;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (ISNULL((SELECT TOP 1 SCode FROM [NickMid].Product.ProductStores WHERE SCode = @S_Code),0) <> 0)
BEGIN
INSERT INTO [NickMid].[dbo].[tblstore]
(
s_code_store,
s_code_book,
quantity,
ActionTypeID
)
SELECT
s_code_store,
s_code_book,
quantity,
2
FROM
TempData.dbo.tblstore
WHERE
s_code_book = @S_Code
AND ID = @ID
UPDATE TempData.dbo.tblstore
SET IsDeleted = 'True'
WHERE ID = @ID
END
FETCH NEXT FROM dbcursor INTO @ID,@S_Code;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
IF (ISNULL(@S_Code,0) <> 0)
BEGIN
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES('Sync sucessfuly completed', 1, GETDATE(), 'Store', 12, @@ROWCOUNT)
PRINT 'Sync successful'
PRINT GETDATE()
END
END TRY
BEGIN CATCH
Declare @Message nvarchar(max)
set @Message=ERROR_MESSAGE()
INSERT INTO TempData.dbo.tblJobLog(Message, StatusTypeId, DateTime, Type, TypeId, Rows)
VALUES(@Message, 2, GETDATE(), 'Store', 12, @@ROWCOUNT)
PRINT 'Sync failed'
PRINT GETDATE()
END CATCH
END
GO
/* Creates Jobs */
USE [msdb]
GO
DECLARE @jobId_ binary(16)
SELECT @jobId_ = job_id FROM msdb.dbo.sysjobs WHERE (name = N'NickMidSyncWorker')
IF (@jobId_ IS NOT NULL)
BEGIN
EXEC msdb.dbo.sp_delete_job @jobId_
END
/****** Object: Job [NickMidSyncWorker] Script Date: 8/24/2020 8:34:55 PM ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 8/24/2020 8:34:55 PM ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'NickMidSyncWorker',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Customer Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Customer Sync',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC CustomerSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Book Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Book Sync',
@step_id=2,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC BookSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Store Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Store Sync',
@step_id=3,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC StoreSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [BookGroup1 Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'BookGroup1 Sync',
@step_id=4,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC BookGroupSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [BookGroup2 Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'BookGroup2 Sync',
@step_id=5,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC BookGroup2SyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Visitor Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Visitor Sync',
@step_id=6,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC VisitorSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [sanaditems Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'sanaditems Sync',
@step_id=7,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC [dbo].[sanaditemsSyncWorker]',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [invoice Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'invoice Sync',
@step_id=8,
@cmdexec_success_code=0,
@on_success_action=3,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC [dbo].[tblInvoiceSyncWorker]',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [WebFeatures Sync] Script Date: 8/24/2020 8:34:56 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'WebFeatures Sync',
@step_id=9,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC WebFeatureSyncWorker',
@database_name=N'TempData',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Sync Schedule',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=2,
@freq_subday_interval=15,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20200126,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959,
@schedule_uid=N'dbbdca9b-d920-4c62-ab23-8055c40e3a52'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
GO
USE [msdb]
GO
DECLARE @jobId_ binary(16)
SELECT @jobId_ = job_id FROM msdb.dbo.sysjobs WHERE (name = N'NickhesabAutoInvoice')
IF (@jobId_ IS NOT NULL)
BEGIN
EXEC msdb.dbo.sp_delete_job @jobId_
END
USE [msdb]
GO
/****** Object: Job [NickhesabAutoInvoice] Script Date: 8/28/2020 5:37:23 AM ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 8/28/2020 5:37:23 AM ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'NickhesabAutoInvoice',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [InvoiceProcess] Script Date: 8/28/2020 5:37:23 AM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'InvoiceProcess',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'
------------------------------------------
-- Declarations
------------------------------------------
DECLARE
@CustomerCode bigint
,@CashierCode bigint
,@OwnerCode bigint
,@Store_SCode bigint
,@InvoiceNo bigint
,@InvoiceDate bigint
,@AutoInvoice bit
,@OrderId bigint
,@OrderCode nvarchar(max)
,@OrderDate nvarchar(max)
,@OrderTime nvarchar(max)
,@OwnerId bigint
,@OrderExpense bigint
,@OrderDiscount bigint
,@OrderQuantity bigint
,@OrderFinalPrice bigint
,@OrderTax1 bigint
,@OrderTax2 bigint
,@InvoiceDesc nvarchar(max)
,@SanadDesc nvarchar(max)
,@OwnerFName nvarchar(max)
,@OwnerLName nvarchar(max)
,@OwnerFullName nvarchar(max)
,@OwnerPhone nvarchar(max)
,@OrderItemSCode bigint
,@HesabTafzil1 bigint
,@HesabTafzil2 bigint
,@HesabTafzil3 bigint
,@HesabTafzil4 bigint
,@HesabTafzil5 bigint
,@HesabTafzil6 bigint
,@HesabTafzil7 bigint
,@HesabTafzilBack bigint
,@ERR bigint
,@PaymentType bigint
,@PaymentTypeName nvarchar(max)
,@Action bigint
,@IsSuccess bit
,@OrderType bigint
,@PaymentStatus bigint
,@IsDeleted bit
,@OrderState bigint
,@TempInvoiceNo bigint
,@SanadTypeID bigint
,@BookCode bigint
,@BookName nvarchar(max)
,@BPrice bigint
,@SPrice bigint
,@DiscountPercent bigint
,@Quantity bigint
,@Tax1 bigint
,@Tax2 bigint
,@CreatorUserId bigint
,@VisitorCode bigint
,@VCashierCode bigint
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
-- -----------------------------------
-- Get order information from NickMid
-- -----------------------------------
SELECT TOP 1
@OrderId = CAST(Id AS bigint)
,@OrderCode = CAST(OrderCode AS nvarchar(max))
,@OrderDate = CheckOutDateTime
,@OrderTime = SUBSTRING(CAST(CAST(CheckOutDateTime AS time) AS nvarchar(max)), 0, 6)
,@OrderExpense = CAST(TotalDeliveryPrice AS bigint)
,@OrderFinalPrice = CAST(TotalRoundPrice AS bigint)
,@PaymentType = PaymentType
,@PaymentTypeName =
CASE PaymentType
WHEN 0 THEN N''آنلاین''
WHEN 1 THEN N''در محل''
WHEN 2 THEN N''از حساب کاربری''
WHEN 3 THEN N''کارت به کارت''
WHEN 4 THEN N''اعتباری''
END
,@Action = [Action]
,@IsSuccess = IsSuccess
,@IsDeleted = IsDeleted
,@OrderState = OrderState
,@TempInvoiceNo = Isnull(TempInvoiceNo,0)
,@PaymentStatus = PaymentStatus
,@OrderType = OrderType
,@CreatorUserId =CreatorUserId
FROM
[TEMPLINK].[NickMid].[Order].[Orders]
where IsDeleted=0
IF(@OrderId IS NULL) OR (@OrderCode IS NULL) OR (@OrderId = '''') OR (@OrderCode = '''')
BEGIN
PRINT ''1. OrderID or OrderCode is not in true format''
ROLLBACK TRANSACTION
RETURN
END
SELECT
@OrderQuantity = SUM(Quantity)
FROM
[TEMPLINK].[NickMid].[Order].[OrderDetails]
WHERE
OrderId = @OrderId
SET @OrderDate = dbo.fn_setdatetostringformat(@OrderDate)
SELECT
@OrderDate = shamsidate
FROM
fn_miladitoshamsi(@OrderDate)
SELECT
@OwnerId = OwnerUserId
FROM
[TEMPLINK].[NickMid].[Order].[OrderInformations]
WHERE
Id = @OrderId
SELECT
@OwnerFName = FirstName
,@OwnerLName = LastName
,@OwnerPhone = MobileNumber
,@OwnerCode = Code
FROM
[TEMPLINK].[NickMid].[User].[UserProfiles]
WHERE
Id = @OwnerId
SET @OwnerFullName = @OwnerFName + '' '' + @OwnerLName
SET @InvoiceDesc = REPLACE(REPLACE(N''فروش اینترنتی '' + @PaymentTypeName + N'' به شماره سفارش '' + CAST(@OrderCode AS nvarchar(max)) + N'' به نام '' + @OwnerFullName,N''ي'',N''ی''),N''ك'',N''ک'')
SELECT
@SanadDesc = PaymentMessage
FROM
[TEMPLINK].[NickMid].[Order].[PaymentLogs]
WHERE
OrderId = @OrderId
-- -----------------------------------------
-- -- Get invoice information from Nickhesab
-- -----------------------------------------
SELECT
@CustomerCode = WebShopCustomerCode
,@CashierCode = WebShopCashierCode
,@Store_SCode = WebShopStore_SCode
,@SanadTypeID = ISNULL(WebShopSanadTypeID,1)
,@VCashierCode= ISNULL(WebShopVCashierCode,0)
FROM
dbo.tblconfigtable
WHERE
cashiercode = 10001
SET @InvoiceDate = CONVERT(bigint,Replace(@OrderDate,''/'',''''))
SELECT @HesabTafzil1 = account from tbl_account where name = ''sell''
SELECT @HesabTafzil2 = account from tbl_account where name = ''buyprice''
SELECT @HesabTafzil3 = account from tbl_account where name = ''anbar''
SELECT @HesabTafzil4 = account from tbl_account where name = ''expensesell''
SELECT @HesabTafzil5 = account from tbl_account where name = ''sellkhadamat''
SELECT @HesabTafzil6 = account from tbl_account where name = ''task_sell''
SELECT @HesabTafzil7 = account from tbl_account where name = ''task_tax''
SELECT @HesabTafzilBack=account from tbl_account where name =''backsell''
--backsell
---- ////DELETE
IF(@Action=3)
BEGIN
IF (@TempInvoiceNo<>0)
BEGIN
DELETE FROM
dbo.tbltempInvoice
WHERE InvoiceNo = @TempInvoiceNo
END
UPDATE
[TEMPLINK].[NickMid].[Order].[Orders]
SET
IsDeleted = 1
where Id=@OrderId
END
-- ----------------------------------------------
-- //////// Action 2 (EDIT ORDER) ////////
-- ----------------------------------------------
IF (@Action in(1,2) AND (@TempInvoiceNo <>0))
BEGIN
IF (@OrderType =1)
BEGIN
DELETE FROM
dbo.tbltempInvoiceItems
WHERE
InvoiceNo = @TempInvoiceNo
DELETE FROM
dbo.tbltempInvoice
WHERE
InvoiceNo = @TempInvoiceNo
SET @Action = 1
SET @TempInvoiceNo = 0
UPDATE
[TEMPLINK].[NickMid].[Order].[Orders]
SET
TempInvoiceNo = 0
where Id=@OrderId
END
END
-- ----------------------------------------------
-- //////// Action 1 (INSERT ORDER) /////////
-- ////OrderType=1 B2C صورتحساب--
-- ///OrderType=2 visitor
-- ///OrderType=3 B2B
-- //OrderType=4 Refund
-- //OrderType=5 Deleted
-- ----------------------------------------------
IF (@Action in(1,2) AND @TempInvoiceNo=0 AND (@OrderType IN (1, 2, 3,4)))
BEGIN
-- Normal sell orders
IF (@OrderType IN (1))
BEGIN
EXEC invoice_temp_insert @InvoiceDate, @CustomerCode, @CashierCode, 0, 2, @InvoiceNo OUTPUT
END
IF (@PaymentType = 3)
BEGIN
UPDATE
[TEMPLINK].[NickMid].[Order].[Orders]
SET
TempInvoiceNo = @InvoiceNo,
IsDeleted=1
WHERE
Id = @OrderId
END
-- Visitor sell orders
IF (@OrderType IN (2))
BEGIN
SELECT
@VisitorCode= Code
FROM
[TEMPLINK].[NickMid].[User].[UserProfiles]
WHERE
Id= @CreatorUserId
EXEC invoice_temp_insert @InvoiceDate, @OwnerCode, @VCashierCode, @VisitorCode,2, @InvoiceNo OUTPUT
END
-- -- B2B
IF (@OrderType IN (3))
BEGIN
EXEC previous_invoice_insert @InvoiceDate,@OwnerCode,@CashierCode,NULL, @InvoiceNo OUTPUT
UPDATE [dbo].[tblpreviousInvoice]
SET
busy = 0
,close_pre=''True''
WHERE
InvoiceNo = @InvoiceNo
DECLARE dbcursor CURSOR
FOR SELECT SCode from [TEMPLINK].[NickMid].[Order].[OrderDetails] WHERE OrderId = @OrderId;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
@BookCode = bookcode
,@BPrice = bprice
FROM
dbo.select_book2(@OrderItemSCode)
SELECT
@BookName = ProductName
,@Quantity = CAST(Quantity AS bigint)
,@DiscountPercent = CAST(Discount AS bigint)
,@SPrice = CAST(ProductPrice AS bigint)
,@Tax1 = CAST(Tax1 AS bigint)
,@Tax2 = CAST(Tax2 AS bigint)
FROM
[TEMPLINK].[NickMid].[Order].[OrderDetails]
WHERE
OrderId = @OrderId AND
SCode = @OrderItemSCode
INSERT INTO
dbo.tblpreviousInvoiceItems(InvoiceNo
,BookCode
,bookname
,Quantity
,Discount
,SPrice
,bprice
,s_code_book
,s_code_store
,Tax1
,Tax2)
VALUES
(@InvoiceNo
,@BookCode
,@BookName
,@Quantity
,@DiscountPercent
,@SPrice
,@BPrice
,@OrderItemSCode
,@Store_SCode
,@Tax1
,@Tax2)
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
UPDATE
dbo.tblpreviousInvoice
SET
Discount = 0
,Quantity = @OrderQuantity
,InvoiceRealPrice = @OrderFinalPrice
WHERE
InvoiceNo = @InvoiceNo
END
IF(@OrderType in (4))
BEGIN
EXEC invoice_temp_insert @InvoiceDate, @CustomerCode, @CashierCode, 0, 5, @InvoiceNo OUTPUT
END
IF(@InvoiceNo IS NULL) OR (@InvoiceNo = '''')
BEGIN
PRINT ''2. An error occured while TempInvoice insertion''
ROLLBACK TRANSACTION
RETURN
END
-------------------// Move order items of normal and Visitor orders
IF (@OrderType IN (1))
BEGIN
UPDATE
tbltempInvoice
SET
busy = 0
WHERE
InvoiceNo = @InvoiceNo
DECLARE dbcursor CURSOR
FOR SELECT SCode from [TEMPLINK].[NickMid].[Order].[OrderDetails] WHERE OrderId = @OrderId;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
@BookCode = bookcode
,@BPrice = bprice
FROM
dbo.select_book2(@OrderItemSCode)
SELECT
@BookName = ProductName
,@Quantity = CAST(Quantity AS bigint)
,@DiscountPercent = CAST(Discount AS bigint)
,@SPrice = CAST(ProductPrice AS bigint)
,@Tax1 = CAST(Tax1 AS bigint)
,@Tax2 = CAST(Tax2 AS bigint)
FROM
[TEMPLINK].[NickMid].[Order].[OrderDetails]
WHERE
OrderId = @OrderId AND
SCode = @OrderItemSCode
INSERT INTO
dbo.tbltempInvoiceItems(InvoiceNo
,BookCode
,bookname
,Quantity
,Discount
,SPrice
,bprice
,s_code_book
,s_code_store
,Tax1
,Tax2)
VALUES
(@InvoiceNo
,@BookCode
,@BookName
,@Quantity
,@DiscountPercent
,@SPrice
,@BPrice
,@OrderItemSCode
,@Store_SCode
,@Tax1
,@Tax2)
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
UPDATE
dbo.tbltempinvoice
SET
Discount = 0--@OrderDiscount
,expense = @OrderExpense
,expensecomment = ISNULL(@InvoiceDesc, '''')
,Quantity = @OrderQuantity
,InvoiceRealPrice = @OrderFinalPrice
WHERE
InvoiceNo = @InvoiceNo
----***paymentType=3==>cart2cart**---
END
-------------------// Move order items of visitor orders
IF (@OrderType IN (2))
BEGIN
UPDATE
dbo.tbltempInvoice
SET
busy = 0
WHERE
InvoiceNo = @InvoiceNo
DECLARE dbcursor CURSOR
FOR SELECT SCode from [TEMPLINK].[NickMid].[Order].[OrderDetails] WHERE OrderId = @OrderId;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
@BookCode = bookcode
,@BPrice = bprice
FROM
dbo.select_book2(@OrderItemSCode)
SELECT
@BookName = ProductName
,@Quantity = CAST(Quantity AS bigint)
,@DiscountPercent = CAST(Discount AS bigint)
,@SPrice = CAST(ProductPrice AS bigint)
,@Tax1 = CAST(Tax1 AS bigint)
,@Tax2 = CAST(Tax2 AS bigint)
FROM
[TEMPLINK].[NickMid].[Order].[OrderDetails]
WHERE
OrderId = @OrderId AND
SCode = @OrderItemSCode
INSERT INTO
dbo.tbltempInvoiceItems(InvoiceNo
,BookCode
,bookname
,Quantity
,Discount
,SPrice
,bprice
,s_code_book
,s_code_store
,Tax1
,Tax2)
VALUES
(@InvoiceNo
,@BookCode
,@BookName
,@Quantity
,@DiscountPercent
,@SPrice
,@BPrice
,@OrderItemSCode
,@Store_SCode
,@Tax1
,@Tax2)
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
UPDATE
dbo.tbltempInvoice
SET
Discount = 0--@OrderDiscount
,Quantity = @OrderQuantity
,InvoiceRealPrice = @OrderFinalPrice
WHERE
InvoiceNo = @InvoiceNo
END
END
-- ----------------------------------------------
-- //////// Sell payment successful /////////
-- ----------------------------------------------
IF (@IsDeleted = ''False'') AND
(@IsSuccess = ''True'') AND
(@PaymentStatus = 1) AND
(@OrderType= 1)
BEGIN
IF @SanadDesc ='''' OR @SanadDesc is null
SET @SanadDesc=@InvoiceDesc
EXEC dbo.invoice_close @InvoiceNo, @InvoiceDate, @hesabtafzil1
,@hesabtafzil2, @hesabtafzil3, @hesabtafzil4, @hesabtafzil5, @hesabtafzil6
,@hesabtafzil7, 0, @OrderExpense, @InvoiceDesc, @SanadDesc, @SanadTypeID, @ERR OUTPUT
UPDATE
dbo.tblInvoice
SET
sharh_invoice = @InvoiceDesc
WHERE
InvoiceNo = @ERR
SET @InvoiceNo=@ERR
IF(@ERR < 10)
BEGIN
PRINT ''3. An error occured while Invoice insertion''
ROLLBACK TRANSACTION
RETURN
END
END
----------------------------------------------
-- //////// Refund payment successful /////////
-- ----------------------------------------------
IF (@IsDeleted = ''False'') AND
(@IsSuccess = ''True'') AND
(@PaymentStatus = 1) AND
(@OrderType=4)
BEGIN
Declare @backinvoiceno bigint;
--GET OrderId Of Master OrderId from current refound description
select @OrderCode=SUBSTRING(description,
CHARINDEX(''{'', description) + 1,
CHARINDEX(''}'', description) - CHARINDEX(''{'', description) - 1)
from [TEMPLINK].[NickMid].[Order].[Orders] where Id=@OrderId
IF (@OrderCode is null)
BEGIN
ROLLBACK TRANSACTION
Print ''OrderId 4 has not any refrence''
END
select @backinvoiceno=TempInvoiceNo from [TEMPLINK].[NickMid].[Order].[Orders] where Id=@OrderCode
IF (@backinvoiceno is null)
BEGIN
ROLLBACK TRANSACTION
PRINT ''Return Transacion there is no refrence''
END
DECLARE dbcursor CURSOR
FOR SELECT SCode from [TEMPLINK].[NickMid].[Order].[OrderDetails] WHERE OrderId = @OrderId;
OPEN dbcursor
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT
@Quantity=CAST(Quantity AS bigint)
FROM
[TEMPLINK].[NickMid].[Order].[OrderDetails]
WHERE
OrderId = @OrderId AND
SCode = @OrderItemSCode
EXEC [dbo].[invoice_back_items_NickWeb] @backinvoiceno,@InvoiceNo,@OrderItemSCode,@Quantity,@Store_SCode,@ERR OUTPUT
FETCH NEXT FROM dbcursor INTO @OrderItemSCode;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
EXEC [dbo].[invoice_back_items_close] @InvoiceNo,@InvoiceDate,0,@HesabTafzilBack,@HesabTafzil2,@HesabTafzil3,@HesabTafzil4,@HesabTafzil5,@HesabTafzil6,@CashierCode,@SanadTypeID,@ERR OUTPUT
IF @SanadDesc ='''' OR @SanadDesc is null
SET @SanadDesc =REPLACE(REPLACE(N''برگشت از فروش اینترنتی '' + @PaymentTypeName + N'' به شماره سفارش '' + CAST(@OrderCode AS nvarchar(max)) + N'' به نام '' + @OwnerFullName,N''ي'',N''ی''),N''ك'',N''ک'')
UPDATE
dbo.tblInvoice
SET
sharh_invoice = @SanadDesc
WHERE
InvoiceNo = @ERR
IF(@ERR < 10)
BEGIN
PRINT ''3. An error occured while Invoice insertion''
ROLLBACK TRANSACTION
RETURN
END
END
-- ----------------------------------------------
-- //////// Backsell payment successful /////////
-- ----------------------------------------------
IF (@IsDeleted = ''False'') AND
(@IsSuccess = ''True'') AND
(@PaymentStatus = 1)
BEGIN
update [TEMPLINK].[NickMid].[Order].[Orders]
set IsDeleted=1,
DeletedDateTime=GetDate(),
TempInvoiceNo=@InvoiceNo
WHERE
id= @OrderId
END
COMMIT TRANSACTION
END TRY
BEGIN CATCH
declare @ErrorMessage nvarchar(500)
select @ErrorMessage=ERROR_MESSAGE()
PRINT @ErrorMessage+'' ''+''4. An error occured while invoice proccessing''
if (XACT_STATE())=1
Commit TRANSACTION;
else
RoLLBACK TRANSACTION;
if(@@TRANCOUNT>1)
ROLLBACK TRANSACTION
THROW;
END CATCH
',
@database_name=N'nickhesab',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'AutoInvoiceByOneMin',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=2,
@freq_subday_interval=30,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20191023,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959,
@schedule_uid=N'10b27af8-0dcc-44f1-9877-59fe37d5ff9b'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO