CREATE PROCEDURE [dbo].[spBATGenerateFirstCommGLNumber_Legacy]
@ICPriKey int,
@BranchPriKey int,
@DivisionID int,
@OrdPriKey int,
@CommissionSysuser int,
@BATProcessPriKey int,
@Source varchar(50),
@SourcePriKey int
as
set nocount on
declare @theLaborTypeID int
declare @glNumber varchar( 50 )
declare @glcPriKey int
declare @countGLCSegmets int
declare @glcSourceName varchar( 10 )
declare @glsCounter int
declare @padLength int
declare @glAccount varchar( 100 )
declare @firstGLNumber varchar( 66 )
declare @batErrorCode int
declare @icdPriKey int
declare @theItemCode int
declare @theCommissionableSysuserName varchar( 70 )
declare @theLaborTypeDesc varchar(20)
declare @theCommodity varchar( 26 )
declare @theAuthority varchar( 30 )
declare @theMoveType varchar( 15 )
declare @theBlankSessionID varchar( 50 )
set @theBlankSessionID = ''
set @batErrorCode = 0
set @glsCounter = 1
set @firstGLNumber = ' '
if not exists
(
select 1
from Branch
where BranchPriKey = @BranchPriKey
)
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
702,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
set @glcPriKey =
(
select GLCPriKey
from Branch
where BranchPriKey = @BranchPriKey
)
set @countGLCSegmets =
(
select count(*)
from GLDetail
where GLCPriKey = @glcPriKey
)
end
if( @Source = 'CommissionedDetail' )
begin
set @theLaborTypeID = ( select LaborTypeFID from CommissionedDetail where CDPriKey = @SourcePriKey )
end
else if( @Source = 'SplitCommissions' )
begin
set @theLaborTypeID = ( select LaborTypeFID from SplitCommissions where SCPriKey = @SourcePriKey )
end
if( @theLaborTypeID is null )
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
295,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if @glcPriKey is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
294,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @icdPriKey = spBATSelectionProcess
@ICPriKey,
@glcPriKey,
@OrdPriKey,
'ICDetail',
@Source,
@SourcePriKey,
null
end
if( select count(*)
from ICCommissions ic
WHERE ic.ICDPriKey = @icdPriKey and ic.LaborType = @theLaborTypeID) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
162,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if not exists
(
select 1
from ICCommissions ic
where
(
ic.ICDPriKey = @icdPriKey and
ic.LaborType = @theLaborTypeID
)
)
begin
set @theItemCode =
(
select rtrim( str( ItemCode.ItemCode ) )
from ItemCode
where ItemCode.ICPRiKey = @ICPriKey
)
set @theLaborTypeDesc = isnull(
(
select LaborType
from LaborType
where LaborType.PriKey = @theLaborTypeID
), 'Missing Labor Type' )
set @theCommissionableSysuserName =
(
select dbo.FormatLastNameFirstName( Sysuser.LASTNAME, Sysuser.FIRSTNAME ) + ' (' + @theLaborTypeDesc + ')'
from Sysuser
where Sysuser.SysUserID = @CommissionSysuser
)
exec GetOrderAuthorityCommodityMoveType
@inOrderID = @OrdPriKey,
@outAuthority = @theAuthority output,
@outCommodity = @theCommodity output,
@outMoveType = @theMoveType output
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
292,
'Order',
@OrdPriKey,
@theItemCode,
@theCommissionableSysuserName,
@theMoveType,
@theCommodity,
@theAuthority
set @firstGLNumber = null
end
if( select count(*)
from GLSource
where SourceName = 'Natural' ) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
682,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if( select count(*)
from GLSource
where SourceName = 'Sub' ) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
683,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if( select count(*)
from GLSource
where SourceName = 'Company' ) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
684,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if( select count(*)
from GLSource
where SourceName = 'Branch' ) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
685,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if( select count(*)
from GLSource
where SourceName = 'Division' ) > 1
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
686,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
if @batErrorCode = 0
begin
while @glsCounter <= @countGLCSegmets
begin
set @padLength =
(
select SegmentLength
from GLDetail
where
SegmentNumber = @glsCounter and
GLCPriKey = @glcPriKey
)
set @glcSourceName =
(
select gls.SourceName
from GLSource gls
inner join GLDetail gld on gld.GLSPriKey = gls.GLSPriKey
where
gld.GLCPriKey = @glcPriKey and
gld.SegmentNumber = @glsCounter
)
if @glcSourceName = 'Natural'
begin
set @glNumber =
(
select ltrim( rtrim( ic.CommGLAccount ) )
from ICCommissions ic
where
ic.ICDPriKey = @icdPriKey and
ic.LaborType = @theLaborTypeID
)
if @glNumber is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
163,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if len( rtrim( @glNumber ) ) > @padLength
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
164,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @glAccount = udfLeftPadding
@padLength,
@glNumber
if @glsCounter > 1 and @firstGLNumber <> ' '
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + '-' + ltrim( rtrim( @glAccount ) )
end
else
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + ltrim( rtrim( @glAccount ) )
end
end
end
else if @glcSourceName = 'Sub'
begin
set @glNumber =
(
select ltrim( rtrim( ic.CommGLSubAccount ) )
from ICCommissions ic
where
ic.ICDPriKey = @icdPriKey and
ic.LaborType = @theLaborTypeID
)
if @glNumber is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
165,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if len( rtrim( @glNumber ) ) > @padLength
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
180,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @glAccount = udfLeftPadding
@padLength,
@glNumber
if @glsCounter > 1 and @firstGLNumber <> ' '
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + '-' + ltrim( rtrim( @glAccount ) )
end
else
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + ltrim( rtrim( @glAccount ) )
end
end
end
else if @glcSourceName = 'Company'
begin
set @glNumber =
(
select ltrim( rtrim( CompanyGLCode ) )
from Branch
where BranchPriKey = @BranchPriKey
)
if @glNumber is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
216,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if len( rtrim( @glNumber ) ) > @padLength
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
217,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @glAccount = udfLeftPadding
@padLength,
@glNumber
if @glsCounter > 1 and @firstGLNumber <> ' '
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + '-' + ltrim( rtrim( @glAccount ) )
end
else
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + ltrim( rtrim( @glAccount ) )
end
end
end
else if @glcSourceName = 'Branch'
begin
set @glNumber =
(
select ltrim( rtrim( GLCode ) )
from Branch
where BranchPriKey = @BranchPriKey
)
if @glNumber is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
218,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if len(rtrim(@glNumber)) > @padLength
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
219,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @glAccount = udfLeftPadding
@padLength,
@glNumber
if @glsCounter > 1 and @firstGLNumber <> ' '
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + '-' + ltrim( rtrim( @glAccount ) )
end
else
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + ltrim( rtrim( @glAccount ) )
end
end
end
else if @glcSourceName = 'Division'
begin
if not exists
(
select DivisionID
from Division
where DivisionID = @DivisionID
)
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
239,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
set @glNumber =
(
select ltrim( rtrim( GLCode ) )
from Division
where DivisionID = @DivisionID
)
if @glNumber is null
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
220,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else if len( rtrim( @glNumber ) ) > @padLength
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
221,
'Order',
@OrdPriKey
set @firstGLNumber = null
end
else
begin
exec @glAccount = udfLeftPadding
@padLength,
@glNumber
if @glsCounter > 1 and @firstGLNumber <> ' '
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + '-' + ltrim( rtrim( @glAccount ) )
end
else
begin
set @firstGLNumber = ltrim( rtrim( @firstGLNumber ) ) + ltrim( rtrim( @glAccount ) )
end
end
end
end
else
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
222,
'Order',
@OrdPriKey
set @glsCounter = @countGLCSegmets + 1
set @firstGLNumber = null
end
set @glsCounter = @glsCounter + 1
end
end
if @firstGLNumber is not null
begin
exec @batErrorCode = spBATCheckGLNumber
@theBlankSessionID,
@firstGLNumber,
@branchPriKey,
@Source,
@SourcePriKey,
'Order',
@OrdPriKey
if @batErrorCode = 0
begin
update BATProcess set
GLNumber = @firstGLNumber
where BATProcessPriKey = @BATProcessPriKey
end
else
begin
exec @batErrorCode = spBATRecordError
@theBlankSessionID,
@Source,
@SourcePriKey,
743,
'Order',
@OrdPriKey
end
end
GO
GRANT EXECUTE ON [dbo].[spBATGenerateFirstCommGLNumber_Legacy] TO [MssExec]
GO