USP_DATAFORMTEMPLATE_EDIT_COMBINATIONAVAILABILITY
The save procedure used by the edit dataform template "Combination Availability 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. |
@ALLOWDAILYSALES | bit | IN | |
@ALLOWADVANCESALES | bit | IN | |
@ALLOWONLINESALES | bit | IN | Online |
@ALLOWMONDAY | bit | IN | Monday |
@ALLOWTUESDAY | bit | IN | Tuesday |
@ALLOWWEDNESDAY | bit | IN | Wednesday |
@ALLOWTHURSDAY | bit | IN | Thursday |
@ALLOWFRIDAY | bit | IN | Friday |
@ALLOWSATURDAY | bit | IN | Saturday |
@ALLOWSUNDAY | bit | IN | Sunday |
@ALLOWCOMBINATIONDATEFROM | datetime | IN | From |
@ALLOWCOMBINATIONDATETO | datetime | IN | To |
@ALLOWCOMBINATIONTIMEFROM | UDT_HOURMINUTE | IN | From |
@ALLOWCOMBINATIONTIMETO | UDT_HOURMINUTE | IN | To |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_COMBINATIONAVAILABILITY
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@ALLOWDAILYSALES bit,
@ALLOWADVANCESALES bit,
@ALLOWONLINESALES bit,
@ALLOWMONDAY bit,
@ALLOWTUESDAY bit,
@ALLOWWEDNESDAY bit,
@ALLOWTHURSDAY bit,
@ALLOWFRIDAY bit,
@ALLOWSATURDAY bit,
@ALLOWSUNDAY bit,
@ALLOWCOMBINATIONDATEFROM datetime,
@ALLOWCOMBINATIONDATETO datetime,
@ALLOWCOMBINATIONTIMEFROM dbo.UDT_HOURMINUTE,
@ALLOWCOMBINATIONTIMETO dbo.UDT_HOURMINUTE
)
as
set nocount on;
if @CHANGEAGENTID is null begin
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
end
declare @CURRENTDATE datetime = getdate();
begin try
update dbo.COMBINATIONAVAILABILITY set
ALLOWMONDAY = @ALLOWMONDAY,
ALLOWTUESDAY = @ALLOWTUESDAY,
ALLOWWEDNESDAY = @ALLOWWEDNESDAY,
ALLOWTHURSDAY = @ALLOWTHURSDAY,
ALLOWFRIDAY = @ALLOWFRIDAY,
ALLOWSATURDAY = @ALLOWSATURDAY,
ALLOWSUNDAY = @ALLOWSUNDAY,
ALLOWCOMBINATIONDATEFROM = @ALLOWCOMBINATIONDATEFROM,
ALLOWCOMBINATIONDATETO = @ALLOWCOMBINATIONDATETO,
ALLOWCOMBINATIONTIMEFROM = @ALLOWCOMBINATIONTIMEFROM,
ALLOWCOMBINATIONTIMETO = @ALLOWCOMBINATIONTIMETO,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
declare @SALESMETHODID uniqueidentifier = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(0); -- Daily Sales
if @ALLOWDAILYSALES = 1 begin
if not exists (select 1 from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID) begin
insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
ID,
COMBINATIONAVAILABILITYID,
SALESMETHODID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
newid(),
@ID,
@SALESMETHODID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end else begin
delete from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID;
end
set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(1); -- Advance Sales
if @ALLOWADVANCESALES = 1 begin
if not exists (select 1 from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID) begin
insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
ID,
COMBINATIONAVAILABILITYID,
SALESMETHODID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
newid(),
@ID,
@SALESMETHODID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end else begin
delete from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID;
end
set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(2); -- Online Sales
if @ALLOWONLINESALES = 1 begin
declare @COMBINATIONID uniqueidentifier;
select @COMBINATIONID = COMBINATIONID from dbo.COMBINATIONAVAILABILITY where ID = @ID;
if dbo.UFN_COMBINATION_CANBEONLINE(@COMBINATIONID) = 0 begin
raiserror('BBERR_COMBINATIONAVAILABILITY_NOTALLOWEDONLINE', 13, 1);
end
if not exists (select 1 from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID) begin
insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
ID,
COMBINATIONAVAILABILITYID,
SALESMETHODID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
) values (
newid(),
@ID,
@SALESMETHODID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
end else begin
delete from dbo.COMBINATIONAVAILABILITYSALESMETHOD where COMBINATIONAVAILABILITYID = @ID and SALESMETHODID = @SALESMETHODID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;