USP_DATAFORMTEMPLATE_EDIT_GROUPSALESDEFAULT_1

The save procedure used by the edit dataform template "Group Sales Default Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@DEPOSITREQUIRED bit IN Reservation deposit required
@DEPOSITTIMEVALUE smallint IN Due date
@DEPOSITTIMECODE tinyint IN
@DEPOSITTYPECODE tinyint IN Type
@DEPOSITAMOUNT money IN Value
@DEPOSITPERCENT decimal(5, 2) IN Value
@CONTRACTREQUIRED bit IN Contract required
@CONTRACTTIMEVALUE smallint IN Due date
@CONTRACTTIMECODE tinyint IN
@CONTRACTLETTERTEMPLATEID uniqueidentifier IN Default template
@CONTRACTRESERVATIONATTACHMENTTYPECODEID uniqueidentifier IN Attachment type
@FINALTIMEVALUE smallint IN Balance due
@FINALTIMECODE tinyint IN
@FINALTIMEWITHDEPOSITCODE tinyint IN
@FINALTIMEWITHOUTDEPOSITCODE tinyint IN
@FINALCOUNTREQUIRED bit IN Final count required
@FINALCOUNTTIMEVALUE smallint IN Due date
@FINALCOUNTTIMECODE tinyint IN
@SECURITYDEPOSITREQUIRED bit IN Security deposit required
@SECURITYDEPOSITTIMEVALUE smallint IN Due date
@SECURITYDEPOSITTIMECODE tinyint IN
@SECURITYDEPOSITTYPECODE tinyint IN Type
@SECURITYDEPOSITAMOUNT money IN Value
@SECURITYDEPOSITPERCENT decimal(5, 2) IN Value

Definition

Copy


                create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GROUPSALESDEFAULT_1
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @DEPOSITREQUIRED bit,
                    @DEPOSITTIMEVALUE smallint,
                    @DEPOSITTIMECODE tinyint,
                    @DEPOSITTYPECODE tinyint,
                    @DEPOSITAMOUNT money,
                    @DEPOSITPERCENT decimal(5,2),
                    @CONTRACTREQUIRED bit,
                    @CONTRACTTIMEVALUE smallint,
                    @CONTRACTTIMECODE tinyint,
                    @CONTRACTLETTERTEMPLATEID uniqueidentifier,
                    @CONTRACTRESERVATIONATTACHMENTTYPECODEID uniqueidentifier,
                    @FINALTIMEVALUE smallint,
                    @FINALTIMECODE tinyint,
                    @FINALTIMEWITHDEPOSITCODE tinyint,
                    @FINALTIMEWITHOUTDEPOSITCODE tinyint,
                    @FINALCOUNTREQUIRED bit,
                    @FINALCOUNTTIMEVALUE smallint,
                    @FINALCOUNTTIMECODE tinyint,
                    @SECURITYDEPOSITREQUIRED bit,
                    @SECURITYDEPOSITTIMEVALUE smallint,
                    @SECURITYDEPOSITTIMECODE tinyint,
                    @SECURITYDEPOSITTYPECODE tinyint,
                    @SECURITYDEPOSITAMOUNT money,
                    @SECURITYDEPOSITPERCENT decimal(5,2)
                )
                as

                    set nocount on;

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        if @DEPOSITTYPECODE = 1 and @DEPOSITPERCENT = 0.00
                            raiserror('BBERR_INVALIDPERCENT', 13, 1)

                        if @DEPOSITTYPECODE = 1
                            set @DEPOSITAMOUNT = 0
                        else
                            set @DEPOSITPERCENT = 0.00

                        if @DEPOSITREQUIRED = 1
                            set @FINALTIMECODE = @FINALTIMEWITHDEPOSITCODE
                        else
                            set @FINALTIMECODE = @FINALTIMEWITHOUTDEPOSITCODE    

                        if @SECURITYDEPOSITTYPECODE = 1 and @SECURITYDEPOSITPERCENT = 0.00
                            raiserror('BBERR_SECURITYINVALIDPERCENT', 13, 1)

                        if @SECURITYDEPOSITTYPECODE = 1
                            set @SECURITYDEPOSITAMOUNT = 0
                        else
                            set @SECURITYDEPOSITPERCENT = 0.00

                        --Determine if due dates would result in an error if allowed to be used in the reservation add form

                        --Since time considerations vary for each due date (including # of days, the date that # is in relation, and the kind of relationship the # and date have), 

                        --we can only find a conflict if two dates have the same kind of relationship


                        declare @DEPOSITDUEDATE datetime
                        declare @CONTRACTDUEDATE datetime
                        declare @FINALCOUNTDUEDATE datetime
                        declare @FINALTIMEDUEDATE datetime
                        declare @SECURITYDEPOSITDUEDATE datetime

                        --Dates based on if visit was today and due date based on this date

                        if @DEPOSITREQUIRED = 1 and @DEPOSITTIMECODE = 0
                            set @DEPOSITDUEDATE = dateadd(day, -1 * @DEPOSITTIMEVALUE, @CURRENTDATE)
                        if @CONTRACTREQUIRED = 1 and @CONTRACTTIMECODE = 0
                            set @CONTRACTDUEDATE = dateadd(day, - 1 * @CONTRACTTIMEVALUE, @CURRENTDATE)
                        if @FINALCOUNTREQUIRED = 1 and @FINALCOUNTTIMECODE = 0
                            set @FINALCOUNTDUEDATE = dateadd(day, -1 * @FINALCOUNTTIMEVALUE, @CURRENTDATE)
                        if @FINALTIMECODE = 0
                            set @FINALTIMEDUEDATE = dateadd(day, -1 * @FINALTIMEVALUE, @CURRENTDATE)
                        if @SECURITYDEPOSITREQUIRED = 1 and @SECURITYDEPOSITTIMECODE = 0
                            set @SECURITYDEPOSITDUEDATE = dateadd(day, -1 * @SECURITYDEPOSITTIMEVALUE, @CURRENTDATE)

                        --Dates based on if order was placed today and due date based on this date

                        if @DEPOSITREQUIRED = 1 and @DEPOSITTIMECODE = 1
                            set @DEPOSITDUEDATE = dateadd(day, @DEPOSITTIMEVALUE, @CURRENTDATE)
                        if @CONTRACTREQUIRED = 1 and @CONTRACTTIMECODE = 1
                            set @CONTRACTDUEDATE = dateadd(day, @CONTRACTTIMEVALUE, @CURRENTDATE)
                        if @FINALCOUNTREQUIRED = 1 and @FINALCOUNTTIMECODE = 1
                            set @FINALCOUNTDUEDATE = dateadd(day, @FINALCOUNTTIMEVALUE, @CURRENTDATE)
                        if @FINALTIMECODE = 1
                            set @FINALTIMEDUEDATE = dateadd(day, @FINALTIMEVALUE, @CURRENTDATE)
                        if @SECURITYDEPOSITREQUIRED = 1 and @SECURITYDEPOSITTIMECODE = 1
                            set @SECURITYDEPOSITDUEDATE = dateadd(day, @SECURITYDEPOSITTIMEVALUE, @CURRENTDATE)

                        if @DEPOSITREQUIRED = 1 and (@DEPOSITTIMECODE = @FINALTIMECODE) and (@DEPOSITDUEDATE > @FINALTIMEDUEDATE)
                            raiserror('BBERR_DEPOSITDUEAFTERBALANCEDUE', 13, 1);
                        if @CONTRACTREQUIRED = 1 and (@CONTRACTTIMECODE = @FINALTIMECODE) and (@CONTRACTDUEDATE > @FINALTIMEDUEDATE)
                            raiserror('BBERR_CONTRACTDUEAFTERBALANCEDUE', 13, 1);
                        if @FINALCOUNTREQUIRED = 1 and (@FINALCOUNTTIMECODE = @FINALTIMECODE) and (@FINALCOUNTDUEDATE > @FINALTIMEDUEDATE)
                            raiserror('BBERR_FINALCOUNTDUEAFTERBALANCEDUE', 13, 1);
                        if @SECURITYDEPOSITREQUIRED = 1 and (@SECURITYDEPOSITTIMECODE = @FINALTIMECODE) and (@SECURITYDEPOSITDUEDATE > @FINALTIMEDUEDATE)
                            raiserror('BBERR_SECURITYDEPOSITDUEAFTERBALANCEDUE', 13, 1);

                        update dbo.GROUPSALESDEFAULT set
                            DEPOSITREQUIRED = @DEPOSITREQUIRED,
                            DEPOSITTIMEVALUE = @DEPOSITTIMEVALUE,
                            DEPOSITTIMECODE = @DEPOSITTIMECODE,
                            DEPOSITTYPECODE = @DEPOSITTYPECODE,
                            DEPOSITAMOUNT = case @DEPOSITTYPECODE when 0 then @DEPOSITAMOUNT else 0 end,
                            DEPOSITPERCENT = case @DEPOSITTYPECODE when 1 then @DEPOSITPERCENT else 0 end,
                            CONTRACTREQUIRED = @CONTRACTREQUIRED,
                            CONTRACTTIMEVALUE = @CONTRACTTIMEVALUE,
                            CONTRACTTIMECODE = @CONTRACTTIMECODE,
                            CONTRACTLETTERTEMPLATEID = @CONTRACTLETTERTEMPLATEID,
                            CONTRACTRESERVATIONATTACHMENTTYPECODEID = @CONTRACTRESERVATIONATTACHMENTTYPECODEID,
                            FINALCOUNTREQUIRED = @FINALCOUNTREQUIRED,
                            FINALCOUNTTIMEVALUE = @FINALCOUNTTIMEVALUE,
                            FINALCOUNTTIMECODE = @FINALCOUNTTIMECODE,
                            FINALTIMEVALUE = @FINALTIMEVALUE,
                            FINALTIMECODE = @FINALTIMECODE,
                            SECURITYDEPOSITREQUIRED = @SECURITYDEPOSITREQUIRED,
                            SECURITYDEPOSITTIMEVALUE = @SECURITYDEPOSITTIMEVALUE,
                            SECURITYDEPOSITTIMECODE = @SECURITYDEPOSITTIMECODE,
                            SECURITYDEPOSITTYPECODE = @SECURITYDEPOSITTYPECODE,
                            SECURITYDEPOSITAMOUNT = case @SECURITYDEPOSITTYPECODE when 0 then @SECURITYDEPOSITAMOUNT else 0 end,
                            SECURITYDEPOSITPERCENT = case @SECURITYDEPOSITTYPECODE when 1 then @SECURITYDEPOSITPERCENT else 0 end,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @ID
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                return 0;