USP_DATAFORMTEMPLATE_ADD_RESERVATIONCONTRACT
The save procedure used by the add dataform template "Group Sales Contract Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@RESERVATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(50) | IN | Name |
@RESERVATIONATTACHMENTTYPECODEID | uniqueidentifier | IN | Attachment type |
@FILENAME | nvarchar(255) | IN | |
@FILE | varbinary | IN | File |
@MARKCONTRACTSENT | bit | IN | Mark contract as sent |
@SAVEDEPOSITINFO | bit | IN | |
@DEPOSITDUEDATE | date | IN | Deposit due date |
@DEPOSITAMOUNT | money | IN | Amount due |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RESERVATIONCONTRACT
(
@ID uniqueidentifier = null output,
@RESERVATIONID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(50) = null,
@RESERVATIONATTACHMENTTYPECODEID uniqueidentifier = null,
@FILENAME nvarchar(255) = null,
@FILE varbinary(max) = null,
@MARKCONTRACTSENT bit = 1,
@SAVEDEPOSITINFO bit = 0,
@DEPOSITDUEDATE date = null,
@DEPOSITAMOUNT money = 0
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @STATUSCODE tinyint;
select @STATUSCODE = SALESORDER.STATUSCODE
from dbo.SALESORDER
inner join dbo.RESERVATION on SALESORDER.ID = RESERVATION.ID
where RESERVATION.ID = @RESERVATIONID;
begin try
if @STATUSCODE in (1, 5)
raiserror('BBERR_INVALIDSTATUS', 13, 1);
if @SAVEDEPOSITINFO = 1
begin
if (select DEPOSITREQUIRED from dbo.RESERVATION where ID = @RESERVATIONID) = 0
raiserror('BBERR_DEPOSITNOTREQUIRED', 13, 1);
if @DEPOSITDUEDATE is null
raiserror('BBERR_DEPOSITDUEDATEREQUIRED', 13, 1);
if @DEPOSITAMOUNT <= 0
raiserror('BBERR_INVALIDDEPOSITAMOUNT', 13, 1);
update dbo.RESERVATION set
DEPOSITAMOUNT = @DEPOSITAMOUNT,
DEPOSITDUEDATE = @DEPOSITDUEDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @RESERVATIONID;
end
update dbo.RESERVATIONATTACHMENT set
ISCONTRACT = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
RESERVATIONID = @RESERVATIONID
and ISCONTRACT = 1;
insert into dbo.RESERVATIONATTACHMENT
(
[ID],
[DATEENTERED],
[TITLE],
[RESERVATIONATTACHMENTTYPECODEID],
[FILENAME],
[FILE],
[RESERVATIONID],
[ISCONTRACT],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@CURRENTDATE,
@NAME,
@RESERVATIONATTACHMENTTYPECODEID,
@FILENAME,
@FILE,
@RESERVATIONID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
if @MARKCONTRACTSENT = 1
begin
update dbo.RESERVATION set
CONTRACTSENT = 1,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @RESERVATIONID;
insert into dbo.[RESERVATIONSTATUSHISTORY]
(
[ID],
[RESERVATIONID],
[STATUSCODE],
[STATUSDATE],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
newid(),
@RESERVATIONID,
6,
@CURRENTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
exec dbo.USP_RESERVATION_UPDATESTATUSANDHISTORY @RESERVATIONID, @CHANGEAGENTID
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;