1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
910.
911.
912.
913.
914.
915.
916.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[create_event]
@SessionId integer,
@PersonnelId integer,
@UnitId integer,
@ItemId integer,
@KelaStatus integer,
@BelongsTo integer,
@ClientId integer,
@OrgId integer,
@DefaultFlag integer,
@Lang nvarchar(2),
@noRecurseFlag integer,
@outEventId integer output,
@GroupMemberId int=NULL,
@GroupMeetingId int=NULL,
@FinalEventStatus int=0,
@strCreaDate nvarchar(19)='',
@CreateST int=1 -- Wether we create the story_item_type_XX record or not.
AS
declare @EventId integer;
declare @DefaultFraction integer;
declare @ProfCode integer;
declare @EventStatus integer;
declare @DiscountPct numeric(18,6);
declare @Price numeric(18,2);
declare @DiscountAmount numeric(18,2);
declare @LectureFactor numeric(9,2);
declare @SpInvolvedFlag char(1);
declare @StoryItemOnlyFlag char (1);
declare @PayerOrgId integer;
declare @StoryItemType integer;
declare @PackageHeader CHAR(1);
declare @tmpItemID integer;
declare @AccountIfNsp integer;
declare @AccountIfSp integer;
declare @SpOrgId integer;
declare @strTmp varchar(500);
declare @iPos int;
declare @iLoop int;
declare @ItemDescr nvarchar(20);
declare @ClientGroupId integer;
declare @dtCreaDate datetime;
declare @IncomingReferralFlag char(1);
declare @FixedPrice numeric(18,2);
declare @EditedDefaultPrice numeric(18,2);
declare @DefaultPrice numeric(18,2);
declare @AgreementId integer;
declare @PriceListId integer;
declare @EventPayerTypeId integer;
declare @EventPayerId integer;
declare @strOutEventId nvarchar(30);
declare @FolderTypeId integer;
declare @KelaDetId integer;
declare @strKela nvarchar(30);
declare @tmpPayerOrgId int;
declare @tmpPayerTypeId int;
declare @tmpKelaStatusDefault nvarchar(255);
-- The default flag is nowadays always true / 21.11.2002 / PHe
set @DefaultFlag = 1
-- For now, lecture factor is 1
set @LectureFactor=1;
set @DefaultFraction = 1;
SET NOCOUNT ON
SET LOCK_TIMEOUT 30000
SET @PackageHeader = '0'
set @PayerOrgId = 0;
set @PriceListId = null
set @FolderTypeId = 1
set @tmpKelaStatusDefault = ''
if ISNULL(@SessionId,0) = 0
begin
select @SessionId = session_id
from active_session
where personnel_id = @PersonnelId and unit_id = @UnitId;
end
if @BelongsTo <> 1
begin
if ISNULL(@OrgId,0) <> 0
begin
select @DefaultFraction = isnull(adj_factor_event_type, 1),
@AgreementId = oc.agreement_id,
@PriceListId = oc.agreement_id,
@PayerOrgId = ext_payer_id
from agreement_profile ap, org_client oc
where oc.agreement_id = ap.agreement_id and oc.org_id = @OrgId;
end
if @PriceListId is null
begin
select @PriceListId = 0
end
end
set @ClientGroupId = NULL;
select @ClientGroupId = client_group_id
from client_group
where session_id = @SessionId;
select @ProfCode = prof_code
from personnel
where personnel_id = @PersonnelId;
if @BelongsTo <> 1
begin
set @DiscountPct = -1;
select @DiscountPct = isnull(discount_pct, -1),
@FixedPrice = fixed_price
from agreement_profile_item ai
where ai.agreement_id = @AgreementId
and ai.item_id = @ItemId;
if @DiscountPct = -1
begin
select @DiscountPct = isnull(discount_pct, 0)
from agreement_group_discount ag
where ag.agreement_id = @AgreementId
and ag.group_id in ( select group_id
from bd_event_type
where item_id = @ItemId );
end
if @DiscountPct = -1
begin
set @DiscountPct = 0;
end
end
if ((@BelongsTo = 1) or (@BelongsTo = 2))
begin
select
@FolderTypeId = isnull(folder_type_id, 1),
@EventPayerTypeId = event_payer_type_id,
@EventPayerId = event_payer_id,
@PriceListId = agreement_id
from session
where session_id = @SessionId
end
select @Price = default_price,
@SpInvolvedFlag = sp_involved_flag,
@StoryItemOnlyFlag = story_item_only_flag,
@StoryItemType = story_item_type,
@PackageHeader = is_package_header_flag,
@AccountIfNsp = account_if_nsb,
@AccountIfSp = account_if_sb,
@ItemDescr = case @lang
when 'FI' then case isnull(item_short_descr_fi,'') when '' then item_descr_fi else item_short_descr_fi end
when 'EN' then case isnull(item_short_descr_en,'') when '' then item_descr_en else item_short_descr_en end
when 'FR' then case isnull(item_short_descr_fr,'') when '' then item_descr_fr else item_short_descr_fr end
when 'SW' then case isnull(item_short_descr_sw,'') when '' then item_descr_sw else item_short_descr_sw end
else item_descr_fi
end,
@IncomingReferralFlag = incoming_referral_flag,
@EditedDefaultPrice = default_price,
@DefaultPrice = default_price
from bd_event_type
where item_id = @ItemId;
if @BelongsTo = 1
begin
set @Price = @Price * @DefaultFraction * @LectureFactor;
set @DiscountPct = 0.0;
set @DiscountAmount = 0.0;
end
else
begin
if @FixedPrice is null
begin
set @Price = @Price * @DefaultFraction * @LectureFactor;
set @DiscountAmount = @Price * @DiscountPct / 100;
set @Price = @Price - @DiscountAmount;
end
else
begin
set @Price = @FixedPrice * @DefaultFraction * @LectureFactor;
set @EditedDefaultPrice = @Price;
set @DefaultPrice = @Price;
set @DiscountAmount = 0.0
set @DiscountPct = 0.0
end
end
if @StoryItemOnlyFlag = '1'
set @EventStatus = 5;
else
begin
if @SpInvolvedFlag = '1'
set @EventStatus = 2;
else
begin
if @DefaultFlag = 1
set @EventStatus = 4;
else
set @EventStatus = 1;
end
end
if @BelongsTo = 3 -- case group, missing kela status
begin
if (@KelaStatus is null) or (@KelaStatus < 0)
begin
set @KelaStatus = 0;
select @KelaStatus=isnull(kela_status,0) from event
where session_id=@SessionId
end
end
if @KelaStatus = -1
begin
select @KelaStatus = isnull(ev1.kela_status, 0)
from event ev1, event ev2
where ev1.event_id = ev2.event_id and ev2.session_id = @SessionId and (ev2.item_id = 1 or ev2.item_id = 3);
end
if @StoryItemType = 2 and @KelaStatus is null
begin
set @tmpKelaStatusDefault = dbo.GetSystemParameter('KELA_STATUS_DEFAULT','')
if Len(@tmpKelaStatusDefault) > 0
set @KelaStatus = @tmpKelaStatusDefault
end
if @strCreaDate='' or @strCreaDate is null
set @dtCreaDate=GetDate()
else
set @dtCreaDate=convert(datetime,@strCreaDate,104)
if @FolderTypeId = 1
begin
set @KelaDetId = Null
end
else
begin
set @strKela = convert(nvarchar, @KelaStatus)
if len(@strKela) > 1
begin
set @KelaStatus = substring(@strKela,1,1)
set @KelaDetId = substring(@strKela,2,1)
end
else
begin
set @KelaDetId = @KelaStatus
end
end
exec get_next_id_pro 'EVENT_ID', @EventId output
insert into event (
event_id,
event_status,
becoming_status,
session_id,
unit_id,
group_id,
item_id,
main_client_id,
org_id,
client_group_id,
kela_status,
kela_code,
kela_subvention,
default_price,
currency,
code1,
code2,
edited_default_price,
time_factor,
night_factor,
amount_factor,
fraction_factor,
lecture_factor,
discount_pct,
discount_amount,
price,
account,
org_share_pct,
story_item_type,
crea_date,
no_show_flag,
sp_org_id,
belongs_to,
story_item_only_flag,
account_if_sp,
account_if_nsp,
project_id,
group_meeting_id,
handling_fee,
real_unit_id,
agreement_id,
kela_det_id
)
select
@EventId,
@FinalEventStatus,
@EventStatus,
@SessionId,
@UnitId,
group_id,
item_id,
@ClientId,
@OrgId,
@ClientGroupId,
@KelaStatus,
kela_code,
kela_subvention,
@DefaultPrice,
1,
code1,
code2,
@EditedDefaultPrice,
1,
1,
1,
@DefaultFraction,
@LectureFactor,
@DiscountPct,
@DiscountAmount,
@Price,
account_if_nsb,
org_share_pct,
story_item_type,
@dtCreaDate,
'0',
sp_org_id_default,
@BelongsTo,
@StoryItemOnlyFlag,
@AccountIfSp,
@AccountIfNSp,
NULL,
@GroupMeetingId,
'0.00',
@UnitId,
@PriceListId,
@KelaDetId
from bd_event_type
where item_id = @ItemId;
-- Insert a record into EVENT_INPROGRESS (the trigger not needed anymore), 23 Oct 2003 / P Heimonen
insert into dbo.event_inprogress (
personnel_id,
event_id,
item_id)
values (
@PersonnelId,
@EventId,
@ItemId
)
if @SpInvolvedFlag = '1'
select @SpOrgId = sp_org_id from event where event_id = CAST(@EventId as nvarchar(30));
set @EventStatus = 0;
exec insert_EVENT_UNIT_TREE @UnitId, @EventId, 1
if @BelongsTo = 1
begin
insert into event_client (
client_id,
event_id)
values (
@ClientId,
@EventId);
exec handleEventsCategoryLists @ClientId, @EventId, @OrgId;
end
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
insert into event_author (
event_id,
personnel_id,
share)
values (
@EventId,
@PersonnelId,
100);
set @EventStatus = 1;
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
if @BelongsTo = 1
begin
if @EventPayerTypeId is not null
begin
if @EventPayerTypeId = 1 -- client
exec insert_EVENT_PAYER @EventId, null, @EventPayerId, @Price, @UnitId, 0, null, null
else if @EventPayerTypeId = 2 -- org
exec insert_EVENT_PAYER @EventId, @EventPayerId, null, @Price, @UnitId, 0, null, null
else if @EventPayerTypeId = 3 -- payment commitment
begin
--exec insert_EVENT_PAYER_2 @EventId, null, @ClientId, @Price, @UnitId, 0, null, @EventPayerId, null
select @tmpPayerOrgId = pc.org_id,
@tmpPayerTypeId = pc.payment_commitment_payer_type_id
from payment_commitment pc
where pc.payment_commitment_id = @EventPayerId
if @tmpPayerTypeId > 1 and Not IsNull(@tmpPayerOrgId,-1) = -1
exec insert_EVENT_PAYER_2 @EventId, @tmpPayerOrgId, null, @Price, @UnitId, 0, null, @EventPayerId, null
else
exec insert_EVENT_PAYER_2 @EventId, null, @ClientId, @Price, @UnitId, 0, null, @EventPayerId, null
end
end
else
begin
if @DefaultFlag = 1 And @OrgId > 0
exec insert_EVENT_PAYER @EventId, @OrgId, null, @Price, @UnitId, 0, null, null
else
exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
end
end
else
if @BelongsTo = 2
begin
select @PayerOrgId = ext_payer_id
from org_client oc
where oc.org_id = @OrgId;
if isnull(@PayerOrgId,0) = 0
set @PayerOrgId = @OrgId
exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
end
else
if @BelongsTo = 3 -- Group
begin
if @GroupMemberId is null
begin -- Group is of price type 1
if @OrgId is not null
begin
set @PayerOrgId=@OrgId
exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
end
else
begin
exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
end
end
else
begin -- Group is of price type 2 or 3
if @ClientId is not null -- Payer_type=1
exec insert_EVENT_PAYER @EventId, null, @ClientId, @Price, @UnitId, 0, null, null
else
begin
set @PayerOrgId=@OrgId
exec insert_EVENT_PAYER @EventId, @PayerOrgId, null, @Price, @UnitId, 0, null, null
end
if @GroupMeetingId is null
update group_meeting_client
set event_id=convert(nvarchar,@EventId)
where group_member_id=@groupMemberId
else
update group_meeting_client
set event_id=convert(nvarchar,@EventId)
where group_member_id=@groupMemberId
and group_meeting_id=@GroupMeetingId
end
end
if @SpInvolvedFlag = '1'
begin
set @EventStatus = 2;
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
end
else
begin
if @DefaultFlag = 1
begin
set @EventStatus = 3;
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
set @EventStatus = 4;
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
end
end
if @StoryItemOnlyFlag = '1'
begin
set @EventStatus = 5;
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@EventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
end
-- An event status was passed to this procedure
if @FinalEventStatus<>0
insert into event_status_log (
event_id,
event_status,
status_date,
personnel_id,
prof_code)
values (
@EventId,
@FinalEventStatus,
current_timestamp,
@PersonnelId,
@ProfCode);
declare @StoryItemId integer;
set @StoryItemId=-1
if @CreateST<>0
begin
if @StoryItemType = 1
begin
exec create_new_story_item_type_1 @EventId, @PersonnelId, @StoryItemId output;
update event set story_item_id = @StoryItemId
where event_id = CAST(@EventId as nvarchar(30));
end
if @StoryItemType = 2
begin
exec create_new_story_item_type_2 @EventId, @StoryItemId output;
update event set story_item_id = @StoryItemId
where event_id = CAST(@EventId as nvarchar(30));
end
if @StoryItemType = 3
begin
exec create_new_story_item_type_3 @SessionId, @ClientId, @Lang, @StoryItemId output;
end
if @StoryItemType = 4
begin
exec create_new_story_item_type_4 @EventId, @ItemId, @StoryItemId output;
end
if @StoryItemType = 5
begin
exec create_new_story_item_type_5 @StoryItemId output;
end
if @StoryItemType = 6
begin
exec create_new_story_item_type_6 @StoryItemId output;
end
if @StoryItemType = 7
begin
exec create_new_story_item_type_7 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId, @StoryItemId output;
end
if @StoryItemType = 9
begin
exec create_new_story_item_type_9 @OrgId, @SessionId, @StoryItemId output;
end
if @StoryItemType = 10
begin
exec create_new_story_item_type_10 @SessionId, @EventId, @StoryItemId output;
end
if @StoryItemType = 11
begin
exec create_new_story_item_type_11 @StoryItemId output;
end
if @StoryItemType = 12
begin
exec create_new_story_item_type_12 @SessionId, @ClientId, @OrgId, @StoryItemId output;
end
if @StoryItemType = 13
begin
exec create_new_story_item_type_13 @StoryItemId output;
end
if @StoryItemType = 14
begin
exec create_new_story_item_type_14 @StoryItemId output;
end
if @StoryItemType = 16
begin
exec create_new_story_item_type_16 @StoryItemId output;
end
if @StoryItemType = 17
begin
exec create_new_story_item_type_17 @StoryItemId output;
end
if @StoryItemType = 18
begin
exec create_new_story_item_type_18 @StoryItemId output;
end
if @StoryItemType = 19
begin
exec create_new_story_item_type_19 NULL, @StoryItemId output;
end
if @StoryItemType = 21
begin
exec create_new_story_item_type_21 @ItemId, @PersonnelId, @UnitId, @StoryItemId output;
end
if @StoryItemType = 22
begin
exec create_new_story_item_type_22 @PersonnelId, @OrgId, @StoryItemId output;
end
if @StoryItemType = 24
begin
exec create_new_story_item_type_24 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId,@IncomingReferralFlag,@UnitId, @StoryItemId output;
end
if @StoryItemType = 25
begin
exec create_new_story_item_type_25_typed @itemId, @StoryItemId output;
end
if @StoryItemType = 26
begin
exec create_new_story_item_type_26 @StoryItemId output;
end
if @StoryItemType = 27
begin
exec create_new_story_item_type_27 @SpOrgId, @ItemId, @Lang, @SessionId, @PersonnelId, @StoryItemId output;
end
if @StoryItemType = 28
begin
exec create_new_story_item_type_28 @StoryItemId output;
end
if @StoryItemType = 29
begin
exec create_new_story_item_type_29 @ItemId, @StoryItemId output;
end
if @StoryItemType = 30
begin
exec create_new_story_item_type_30 @Lang, @SessionId, @ClientId, @StoryItemId output;
end
if @StoryItemType = 31
begin
exec create_new_story_item_type_31 @StoryItemId output;
end
if @StoryItemType = 32
begin
exec create_new_story_item_type_32 @StoryItemId output;
end
if @StoryItemType = 33
begin
exec create_new_story_item_type_33 @StoryItemId output;
end
if @StoryItemType = 34
begin
exec create_new_story_item_type_34 @StoryItemId output;
end
if @StoryItemType = 36
begin
exec create_new_story_item_type_36 @StoryItemId output;
end
if @StoryItemType = 37
begin
exec create_new_story_item_type_37 @StoryItemId output;
end
if @StoryItemType = 39
begin
exec create_new_story_item_type_39 @StoryItemId output;
end
if @StoryItemType = 41
begin
exec create_new_story_item_type_41 @StoryItemId output;
end
if @StoryItemType = 1001
begin
exec create_new_story_item_type_1001 @StoryItemId output;
end
if @StoryItemType >= 3 and @StoryItemType <> 8 and @StoryItemType <> 22
begin
exec copy_patient_and_personnel_info @StoryItemId, @ClientId, @OrgId, @PersonnelId, @UnitId, @Lang;
update event set story_item_id = @StoryItemId
where event_id = CAST(@EventId as nvarchar(30));
end
else
if @StoryItemType = 22
begin
exec copy_organisation_and_personnel_info @StoryItemId, @OrgId, @PersonnelId, @UnitId, @Lang;
update event set story_item_id = @StoryItemId
where event_id = CAST(@EventId as nvarchar(30));
end
-- added Oct 17, 2002 to maintain string format presentation of StoryItems. P Heimonen.
if @StoryItemType > 0
begin
insert into story_item_as_string (
story_item_id,
row_nbr,
story_item_type,
story_as_string,
lang_code)
values (
@StoryItemId,
1,
@StoryItemType,
@ItemDescr+':',
@Lang
)
end
end -- @CreateST<>0
-- end add
exec dbo.calculatePrice @EventId
select @EventId, @StoryItemType, @StoryItemId;
set @outEventId = @EventId;
SET @strOutEventId = CONVERT(NVARCHAR, @outEventId)
-- do not use cursor
if @noRecurseFlag = 0
begin
IF @PackageHeader = '1'
begin
DECLARE @tmpOrderNbr INTEGER
SELECT TOP 1
@tmpItemID = package_item_id,
@tmpOrderNbr = package_order_nbr
FROM package_event_type
WHERE item_id = @ItemId
ORDER BY package_order_nbr
WHILE @tmpItemID IS NOT NULL
BEGIN
if @KelaDetId >= 0
set @KelaStatus = convert(integer,@strKela)
exec create_event_from_pkg @SessionId,
@PersonnelId,
@UnitId,
@tmpItemID,
@KelaStatus,
@BelongsTo,
@ClientId,
@OrgId,
@DefaultFlag,
@Lang,
1,
@strOutEventId
SET @tmpItemID = NULL
SELECT TOP 1
@tmpItemID = package_item_id,
@tmpOrderNbr = package_order_nbr
FROM package_event_type
WHERE
item_id = @ItemId
AND package_order_nbr > @tmpOrderNbr
ORDER BY package_order_nbr
END
end
end
if (1=2) -- use cursor
begin
if @noRecurseFlag = 0
begin
IF @PackageHeader = '1'
begin
-- This done by Peksi due to strange previous behaviour...
-- new fix to get index usage right 27 Nov 2002
SELECT package_item_id
INTO #temp
FROM package_event_type
WHERE item_id = @ItemId
ORDER BY package_order_nbr
declare EventCurse cursor for
select item_id from #temp order by item_id;
open EventCurse;
fetch next from EventCurse into @tmpItemID;
set @strTmp = '';
while (@@FETCH_STATUS = 0)
begin
if len(@strTmp) > 0
begin
set @strTmp = @strTmp + ',' + cast(@tmpItemId as varchar)
end
else
begin
set @strTmp = cast(@tmpItemId as varchar)
end
fetch next from EventCurse into @tmpItemID;
end
close EventCurse;
deallocate EventCurse;
-- Drop needed for the fix above
drop table #temp
set @iLoop = 0;
while len(@strTmp) > 0 and @iLoop < 100
begin
set @iPos = charindex(',', @strTmp);
if @iPos > 0
begin
set @tmpItemId = cast(substring(@strTmp,1,@iPos-1) as int)
set @strTmp = substring(@strTmp, @iPos+1, len(@strTmp) - @iPos)
end
else
begin
set @tmpItemId = cast(substring(@strTmp,1, len(@strTmp)) as int)
set @strTmp = ''
end
set @iLoop = @iLoop + 1;
if @tmpItemId <> @ItemId
begin
exec create_event_from_pkg @SessionId,
@PersonnelId,
@UnitId,
@tmpItemID,
@KelaStatus,
@BelongsTo,
@ClientId,
@OrgId,
@DefaultFlag,
@Lang,
1,
@strOutEventId
end
end
end
end
end -- use cursor
if @EventId > 0
begin
exec store_classification @EventId,
@ClientId,
@OrgId,
@PersonnelId;
end