USP_DATAFORMTEMPLATE_EDIT_MERCHANDISEPRODUCT_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@PICTURE varbinary IN
@PICTURETHUMBNAIL varbinary IN
@NAME nvarchar(50) IN
@DESCRIPTION nvarchar(255) IN
@MERCHANDISEDEPARTMENTID uniqueidentifier IN
@MERCHANDISEDEPARTMENTCATEGORYID uniqueidentifier IN
@VENDORID uniqueidentifier IN
@ISDISCOUNTABLE bit IN
@ONHANDQUANTITY int IN
@ISACTIVE bit IN
@PICTURECHANGED bit IN
@TAXID uniqueidentifier IN

Definition

Copy

                create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MERCHANDISEPRODUCT_2 (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @PICTURE varbinary(max),
                    @PICTURETHUMBNAIL varbinary(max),
                    @NAME nvarchar(50),
                    @DESCRIPTION nvarchar(255),
                    @MERCHANDISEDEPARTMENTID uniqueidentifier,
                    @MERCHANDISEDEPARTMENTCATEGORYID uniqueidentifier,
                    @VENDORID uniqueidentifier,
                    @ISDISCOUNTABLE bit,
                    @ONHANDQUANTITY integer,
                    @ISACTIVE bit,
                    @PICTURECHANGED bit,
                    @TAXID uniqueidentifier
                )
                as

                    set nocount on;

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        if @PICTURECHANGED = 0
                        begin
                            set @PICTURE = null
                            set @PICTURETHUMBNAIL = null
                        end

                        if exists(select 1 from dbo.PRODUCT where NAME = @NAME and ID <> @ID)
                            raiserror('BBERR_PRODUCTNAME_NOTUNIQUE',13,1)

                        if @ISDISCOUNTABLE = 1 and dbo.UFN_MERCHANDISEDEPARTMENT_ISDISCOUNTABLE(@MERCHANDISEDEPARTMENTID) = 0
                            raiserror('BBERR_DEPARTMENTNOTDISCOUNTABLE', 13, 1);

                        update dbo.PRODUCT set
                            NAME = @NAME,
                            DESCRIPTION = @DESCRIPTION,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ID

                        update dbo.MERCHANDISEPRODUCT set
                            PICTURE = @PICTURE,
                            PICTURETHUMBNAIL = @PICTURETHUMBNAIL,
                            MERCHANDISEDEPARTMENTID = @MERCHANDISEDEPARTMENTID,
                            MERCHANDISEDEPARTMENTCATEGORYID = @MERCHANDISEDEPARTMENTCATEGORYID,
                            ISACTIVE = @ISACTIVE,
                            ONHANDQUANTITY = @ONHANDQUANTITY,
                            ISDISCOUNTABLE = @ISDISCOUNTABLE,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE,
                            TAXID = @TAXID
                        where ID = @ID

                        update dbo.PRODUCTVENDOR set
                            VENDORID = @VENDORID,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where PRODUCTID = @ID
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                return 0;