USP_DATAFORMTEMPLATE_VIEW_VENDOR1099
The load procedure used by the view dataform template "Vendor 1099 Setting View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@CHECK1099BOX9 | bit | INOUT | Mark 1099 box 9 for direct sales of consumer products |
@CHECK10992TIN | bit | INOUT | Mark the 1099 2nd TIN notification box |
@NAMEFIRSTLINE | nvarchar(40) | INOUT | Name |
@NAMESECONDLINE | nvarchar(40) | INOUT | Name - Line 2 |
@FORMATTEDADDRESS | nvarchar(300) | INOUT | Address |
@DISTRIBUTION1099 | nvarchar(4000) | INOUT | 1099 box number distribution |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_VENDOR1099
(
@ID uniqueidentifier
,@DATALOADED bit = 0 output
,@CHECK1099BOX9 bit = null output
,@CHECK10992TIN bit = null output
,@NAMEFIRSTLINE nvarchar(40) = null output
,@NAMESECONDLINE nvarchar(40) = null output
,@FORMATTEDADDRESS nvarchar(300) = null output
,@DISTRIBUTION1099 nvarchar(4000) = null output
)
as
set nocount on;
declare @NAME1 as nvarchar(300)
declare @NAME2 as nvarchar(300)
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
select @DATALOADED = 1
,@CHECK1099BOX9 = VS.CHECK1099BOX9
,@CHECK10992TIN = VS.CHECK10992TIN
,@NAME1 = coalesce(A1.NAME, C.NAME)
,@NAME2 = coalesce(A2.NAME, '')
,@FORMATTEDADDRESS = dbo.UFN_BUILDFULLADDRESS( null, A.ADDRESSBLOCK, A.CITY, A.STATEID, A.POSTCODE, A.COUNTRYID)
,@DISTRIBUTION1099 = substring((SELECT
';' + (B.BOXNUMBER + ' - ' + B.DESCRIPTION) + ', ' + coalesce(S.ABBREVIATION + ', ', '') + cast(VD.[PERCENT] as nvarchar) + '%'
from dbo.VENDOR1099DISTRIBUTION VD
left join [STATE] S on S.ID = VD.STATEID
left outer join dbo.FINANCIALTRANSACTION1099BOXNUMBER as B on B.ID = VD.BOXNUMBER1099ID
where VD.VENDOR1099SETTINGID = VS.ID
for XML PATH( '' )
), 2, 4000 )
from dbo.VENDOR1099SETTING VS
inner join dbo.VENDOR V on VS.ID = V.ID
inner join dbo.CONSTITUENT C on V.ID = C.ID
left outer join dbo.ALIAS A1 on A1.ID = VS.NAMEFIRSTLINEALIASTYPECODEID
left outer join dbo.ALIAS A2 on A2.ID = VS.NAMESECONDLINEALIASTYPECODEID
left outer join dbo.ADDRESS as A on (A.ID = VS.ADDRESSID and VS.ADDRESSID is not null) or (VS.ADDRESSID is null and A.ISPRIMARY = 1 and A.CONSTITUENTID = C.ID)
where VS.ID = @ID
if LEN(@NAME1) > 40 AND LEN(@NAME2) = 0
begin
declare @Temp as nvarchar(40)
declare @LastIndex as int
set @Temp = @NAME1
if CHARINDEX(' ', @NAME1) > 0 AND CHARINDEX(' ', @NAME1) < 40
set @LastIndex = 42 - CHARINDEX(' ',REVERSE(@Temp),0)
else
set @LastIndex = 41
set @NAMEFIRSTLINE = RTRIM(SUBSTRING(@NAME1, 0, @LastIndex))
set @NAMESECONDLINE = LTRIM(SUBSTRING(@NAME1, @LastIndex, 300))
end
else
begin
set @NAMEFIRSTLINE = @NAME1
set @NAMESECONDLINE = @NAME2
end
if @DATALOADED = 0
begin
set @DATALOADED = 1
set @CHECK1099BOX9 = 0
set @CHECK10992TIN = 0
end
return 0;