You are on page 1of 7

USE [YarnInventory]

GO
/****** Object: StoredProcedure [dbo].[Sx_YI_IndentDetail] Script Date: 02-03-
2022 09:17:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC [Sx_YI_MRNDetail]
5,5,1,20171101,1,123.0000,45,5535,0,0,28,0,0,1549.80,7084.80,0,1,'ABC'

Create PROCEDURE [dbo].[Sx_YI_ReceiveOrdersDetail]

@pOrderDetailID INT,
@pOrderHeaderID INT,
@pCompanyID INT,
@pOrderDate INT,
@pItemID INT,
@pReceivedQty DECIMAL(18,4),
@pRate DECIMAL(18,2),
@pTaxableAmount DECIMAL (18,2),
@pTotalAmount DECIMAL (18,2),
@pIsDel BIT,
@pUserID INT,
@pMachine VARCHAR(50)

AS

BEGIN TRANSACTION
DECLARE @tTempId INT,@tErr INT,@tErrMsg VARCHAR(100), @Opening INT, @OpeningId INT,
@PreReceivedQty INT

IF @pOrderDetailID = 0
BEGIN
IF ISNULL(@pReceivedQty,0) > 0
BEGIN
INSERT INTO YI_ReceiveOrdersDetail
(OrderHeaderID,ItemID,ReceivedQty,Rate,TaxableAmount,TotalAmount,IsDel)

VALUES
(@pOrderHeaderID,@pItemID,@pReceivedQty,@pRate,@pTaxableAmount,@pTotalAmount,@pIsDe
l)

SET @tTempId = @@IDENTITY


SET @tErr = @@ERROR
IF @tErr <> 0 GOTO ErrHandler

IF NOT EXISTS(SELECT NULL FROM YI_ItemStock(NOLOCK)


WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID)
BEGIN
INSERT INTO
YI_ItemStock(CompanyID,ItemID,OpeningBalance,ReceivedQty,

AdjustmentPositive,AdjustmentNegative)

VALUES(@pCompanyID,@pItemID,@Opening,@pReceivedQty,0,0)

SET @OpeningId = @@IDENTITY


SET @tErr = @@ERROR
IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockHis(ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'Order-IN'
FROM YI_ItemStock(NOLOCK)
WHERE ItemStockID = @OpeningId

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END
ELSE
BEGIN
UPDATE YI_ItemStock SET ReceivedQty =
ISNULL(ReceivedQty,0) + ISNULL(@pReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockHis(ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'MRN-INUP'
FROM YI_ItemStock(NOLOCK)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END

IF NOT EXISTS(SELECT NULL FROM YI_ItemStockDateWise(NOLOCK)

WHERE CompanyID = @pCompanyID


AND StockDate = @pIndentDate
AND ItemID = @pItemID)
BEGIN
SELECT @Opening = ISNULL(ClosingBalance,0) FROM
YI_ItemStock(NOLOCK)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
INSERT INTO
YI_ItemStockDateWise(CompanyID,StockDate,ItemID,OpeningBalance,ReceivedQty,

AdjustmentPositive,AdjustmentNegative)

VALUES(@pCompanyID,@pIndentDate,@pItemID,@Opening,@pReceivedQty,0,0)

SET @OpeningId = @@IDENTITY


SET @tErr = @@ERROR
IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockDateWiseHis(ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalan
ce,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalance,ReceivedQty,IssuedQty
,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'INDENT-IN'
FROM YI_ItemStockDateWise(NOLOCK)
WHERE ItemStockDateWiseID = @OpeningId

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END
ELSE
BEGIN
UPDATE YI_ItemStockDateWise SET ReceivedQty =
ISNULL(ReceivedQty,0) + ISNULL(@pReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND StockDate = @pIndentDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockDateWiseHis(ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalan
ce,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalance,ReceivedQty,IssuedQty
,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'INDENT-INUP'
FROM YI_ItemStockDateWise(NOLOCK)
WHERE CompanyID = @pCompanyID
AND StockDate = @pIndentDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END
UPDATE YI_ItemStock SET ClosingBalance =
(ISNULL(OpeningBalance,0)+ISNULL(ReceivedQty,0)+ISNULL(AdjustmentPositive,0)) -

(ISNULL(IssuedQty,0)+ISNULL(AdjustmentNegative,0))
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ItemStockDateWise SET ClosingBalance =


(ISNULL(OpeningBalance,0)+ISNULL(ReceivedQty,0)+ISNULL(AdjustmentPositive,0)) -

(ISNULL(IssuedQty,0)+ISNULL(AdjustmentNegative,0))
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END
ELSE
BEGIN
SET @tErrMsg = 'Quantity must be greater than 0.'
GOTO ErrHandler
END
END
ELSE
BEGIN
IF ISNULL(@pReceivedQty,0) > 0
BEGIN
SELECT @PreReceivedQty = ISNULL(ReceivedQty,0)
FROM YI_IndentDetail(NOLOCK)
WHERE IndentDetailID = @pOrderDetailID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockHis(ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'ORDER-BFUP'
FROM YI_ItemStock(NOLOCK)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ItemStock SET ReceivedQty = ISNULL(ReceivedQty,0)


- ISNULL(@PreReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockDateWiseHis(ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalan
ce,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalance,ReceivedQty,IssuedQty
,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'MRN-BFUP'
FROM YI_ItemStockDateWise(NOLOCK)
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ItemStockDateWise SET ReceivedQty =


ISNULL(ReceivedQty,0) - ISNULL(@PreReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ReceiveOrdersDetail SET OrderHeaderID =


@pOrderHeaderID,
ItemID = @pItemID,
ReceivedQty =
@pReceivedQty,
Rate = @pRate,
TaxableAmount =
@pTaxableAmount,
TotalAmount =
@pTotalAmount,
IsDel = @pIsDel

WHERE OrderDetailID = @pOrderDetailID

SET @tTempId = @pOrderDetailID


SET @tErr = @@ERROR
IF @tErr <> 0 GOTO ErrHandler

IF ISNULL(@pIsDel,0) = 0
BEGIN
UPDATE YI_ItemStock SET ReceivedQty =
ISNULL(ReceivedQty,0) + ISNULL(@pReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockHis(ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,
AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockID,CompanyID,ItemID,OpeningBalance,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'INDENT-AFUP'
FROM YI_ItemStock(NOLOCK)
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ItemStockDateWise SET ReceivedQty =


ISNULL(ReceivedQty,0) + ISNULL(@pReceivedQty,0)
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

INSERT INTO
YI_ItemStockDateWiseHis(ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalan
ce,ReceivedQty,IssuedQty,

AdjustmentPositive,AdjustmentNegative,UserID,Machine,CreateDate,TransEvent)
SELECT
ItemStockDateWiseID,CompanyID,StockDate,ItemID,OpeningBalance,ReceivedQty,IssuedQty
,

AdjustmentPositive,AdjustmentNegative,@pUserID,@pMachine,GETDATE(),'INDENT-AFUP'
FROM YI_ItemStockDateWise(NOLOCK)
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler
END

UPDATE YI_ItemStock SET ClosingBalance =


(ISNULL(OpeningBalance,0)+ISNULL(ReceivedQty,0)+ISNULL(AdjustmentPositive,0)) -

(ISNULL(IssuedQty,0)+ISNULL(AdjustmentNegative,0))
WHERE CompanyID = @pCompanyID
AND ItemID = @pItemID

SET @tErr = @@ERROR


IF @tErr <> 0 GOTO ErrHandler

UPDATE YI_ItemStockDateWise SET ClosingBalance =


(ISNULL(OpeningBalance,0)+ISNULL(ReceivedQty,0)+ISNULL(AdjustmentPositive,0)) -

(ISNULL(IssuedQty,0)+ISNULL(AdjustmentNegative,0))
WHERE CompanyID = @pCompanyID
AND StockDate = @pOrderDate
AND ItemID = @pItemID
SET @tErr = @@ERROR
IF @tErr <> 0 GOTO ErrHandler
END
ELSE
BEGIN
SET @tErrMsg = 'Quantity must be greater than 0.'
GOTO ErrHandler
END
END

IF @tTempId > 0
BEGIN

INSERT INTO YI_ReceiveOrdersDetailHis


(OrderDetailID,OrderHeaderID,ItemID,ReceivedQty,Rate,TaxableAmount,TotalAmount,IsDe
l,UserID,Machine)

VALUES
(@tTempId,@pOrderHeaderID,@pItemID,@pReceivedQty,@pRate,@pTaxableAmount,@pTotalAmou
nt,@pIsDel,@pUserID,@pMachine)

SET @tErr = @@Error


IF @tErr <> 0 GOTO ErrHandler

END

COMMIT;
RETURN;

ErrHandler:
IF @tErrMsg = ' '
BEGIN
SELECT @tErrMsg = DESCRIPTION FROM MASTER.DBO.SYSMESSAGES WHERE ERROR =
@tErr
END

IF @@TRANCOUNT > 0
BEGIN
RAISERROR(@tErrMsg,16,1)
ROLLBACK TRANSACTION
RETURN;
END

You might also like