drop procedure sp_Action_tblTransactionPcs drop type BulkTransactionPcs go /****** Object: UserDefinedTableType [dbo].[BulkTransactionPcs] Script Date: 15/03/2026 8:58:01 AM ******/ CREATE TYPE [dbo].[BulkTransactionPcs] AS TABLE( [CmpID] [tinyint] NULL, [FinancialID] [tinyint] NULL, [TransactionID] [bigint] NULL, [TransactionDate] [datetime] NULL, [PcsInwardDetailID] [bigint] NULL, [PcsInwardID] [bigint] NULL, [PcsInwardDetailFinID] [tinyint] NULL, [ToWorkerID] [int] NULL, [Qty] [tinyint] NULL, [OutWardQty] [tinyint] NULL, [ProcessType] [varchar](3) NULL, [TransactionType] [varchar](2) NULL, [AgainstTransactionID] [bigint] NULL, [AgainstTransactionFinID] [tinyint] NULL, [WorkRate] [decimal](7, 2) NULL, [ExtraRate] [decimal](4, 0) NULL, [EntryTimeUniqueID] [varchar](1000) NULL, [IsIssueRawMaterial] [bit] NULL, [ExtrachargesIDList] [varchar](1000) NULL, [ExtrarateList] [varchar](1000) NULL, [ETime] [time](7) NULL, [CheckingNameID] [smallint] NULL, [GajjNameID] [smallint] NULL, [ButtonNameID] [smallint] NULL, [PressingNameID] [smallint] NULL, [Barcode] [varchar](100) NULL, [ImageURL] [nvarchar](max) NULL ) GO create procedure dbo.sp_Action_tblTransactionPcs ( @TempTable dbo.BulkTransactionPcs READONLY ) as begin declare @CmpID tinyint, @FinancialID tinyint, @TransactionID bigint, @ImgBarcodeID bigint, @TransactionDate datetime, @PcsInwardDetailID bigint , @PcsInwardID bigint, @PcsInwardDetailFinID tinyint, @ToWorkerID int, @Qty tinyint, @OutWardQty tinyint, @ProcessType varchar(3) , @TransactionType varchar(2), @AgainstTransactionID bigint, @AgainstTransactionFinID tinyint, @WorkRate decimal(7,2) , @ExtraRate decimal(4,0), @EntryTimeUniqueID varchar(1000), @IsIssueRawMaterial bit, @ExtrachargesIDList varchar(1000) ,@ExtrarateList varchar(1000), @ETime time, @CheckingNameID smallint, @GajjNameID smallint, @ButtonNameID smallint ,@PressingNameID smallint, @Barcode varchar(100), @ImageURL nvarchar(max),@transactiontypeID tinyint,@ProcessTypeID tinyint DECLARE cur_MbTrans CURSOR FOR select t.CmpID ,t.FinancialID ,t.TransactionID ,t.TransactionDate ,t.PcsInwardDetailID ,t.PcsInwardID ,t.PcsInwardDetailFinID ,t.ToWorkerID ,t.Qty ,t.OutWardQty ,t.ProcessType ,t.TransactionType ,t.AgainstTransactionID ,t.AgainstTransactionFinID ,t.WorkRate ,t.ExtraRate ,t.EntryTimeUniqueID ,t.IsIssueRawMaterial ,t.ExtrachargesIDList ,t.ExtrarateList ,t.ETime ,t.CheckingNameID ,t.GajjNameID ,t.ButtonNameID ,t.PressingNameID ,t.Barcode ,t.ImageURL,tt.transactiontypeID,pt.ProcessTypeID from @TempTable t inner join tblTransactiontype tt on t.CmpID=tt.CmpID and t.TransactionType=tt.TransactionType inner join tblProcessType pt on t.CmpID=pt.CmpID and t.ProcessType=pt.ProcessType OPEN cur_MbTrans; -- 4. Fetch the first row into the variables FETCH NEXT FROM cur_MbTrans INTO @CmpID, @FinancialID,@TransactionID,@TransactionDate,@PcsInwardDetailID,@PcsInwardID ,@PcsInwardDetailFinID,@ToWorkerID,@Qty,@OutWardQty,@ProcessType,@TransactionType,@AgainstTransactionID,@AgainstTransactionFinID ,@WorkRate,@ExtraRate,@EntryTimeUniqueID,@IsIssueRawMaterial,@ExtrachargesIDList,@ExtrarateList,@ETime,@CheckingNameID ,@GajjNameID,@ButtonNameID,@PressingNameID,@Barcode,@ImageURL,@transactiontypeID,@ProcessTypeID WHILE @@FETCH_STATUS = 0 BEGIN exec Sp_AutoIDGenerate 'tblTransactionPcs','TransactionID',@CmpID,-1,@FinancialID,-1,@TransactionID output insert into tblTransactionPcs (CmpID,FinancialID,TransactionID,TransactionDate,PcsInwardDetailID,PcsInwardID, PcsInwardDetailFinID,TOWorkderID,Qty,OutWardQty,ProcessTypeID, transactiontypeID,AgainstTransactionID, AgainstTransactionFINID,WorkRate, ExtraRate, EntryTimeUniqueID, IsIssueRawMaterial,ExtrachargesIDList,ExtraRateList, Etime,IsDeleted) values (@CmpID,@FinancialID,@TransactionID,@TransactionDate,@PcsInwardDetailID,@PcsInwardID, @PcsInwardDetailFinID,@ToWorkerID,1,0,@ProcessTypeID, @transactiontypeID,@AgainstTransactionID, @AgainstTransactionFINID,@WorkRate, @ExtraRate, @EntryTimeUniqueID, @IsIssueRawMaterial,@ExtrachargesIDList,@ExtraRateList, @Etime,0) if @Barcode!='' and @ProcessTypeID=1 begin update tblPcsInwardDetails set OutWardQty=OutWardQty + 1 where CmpID=@CmpID and LocationID=1 and FinancialID=@PcsInwardDetailFinID and PcsInwardID=@PcsInwardID and PcsInwardDetailID=@PcsInwardDetailID and ISActive=1 and IsDeleted=0 exec Sp_AutoIDGenerate 'tblPcsInwardImageBarCode','ImgBarCodeID',@CmpID,-1,@FinancialID,-1,@ImgBarCodeID output insert into tblPcsInwardImageBarCode (CmpID,FinancialID,TransactionID,ImgBarCodeID,PcsInwardDetailFinID,PcsInwardID ,PcsInwardDetailID,Barcode,ImageUrl,IsDeleted) values (@CmpID,@FinancialID,@TransactionID,@ImgBarCodeID,@PcsInwardDetailFinID,@PcsInwardID ,@PcsInwardDetailID,@Barcode,@ImageUrl,0) end if @Barcode!='' and @ProcessTypeID=2 begin if @ImgBarcodeID=0 begin exec Sp_AutoIDGenerate 'tblPcsInwardImageBarCode','ImgBarCodeID',@CmpID,-1,@FinancialID,-1,@ImgBarCodeID output insert into tblPcsInwardImageBarCode (CmpID,FinancialID,TransactionID,ImgBarCodeID,PcsInwardDetailFinID,PcsInwardID ,PcsInwardDetailID,Barcode,ImageUrl,IsDeleted) values (@CmpID,@FinancialID,@TransactionID,@ImgBarCodeID,@PcsInwardDetailFinID,@PcsInwardID ,@PcsInwardDetailID,@Barcode,@ImageUrl,0) end end FETCH NEXT FROM cur_MbTrans INTO @CmpID, @FinancialID,@TransactionID,@TransactionDate,@PcsInwardDetailID,@PcsInwardID ,@PcsInwardDetailFinID,@ToWorkerID,@Qty,@OutWardQty,@ProcessType,@TransactionType,@AgainstTransactionID,@AgainstTransactionFinID ,@WorkRate,@ExtraRate,@EntryTimeUniqueID,@IsIssueRawMaterial,@ExtrachargesIDList,@ExtrarateList,@ETime,@CheckingNameID ,@GajjNameID,@ButtonNameID,@PressingNameID,@Barcode,@ImageURL,@transactiontypeID,@ProcessTypeID end CLOSE cur_MbTrans; DEALLOCATE cur_MbTrans; end