|
1
|
USE [wms-ani-ckd]
|
|
2
|
GO
|
|
3
|
|
|
4
|
/****** Object: StoredProcedure [dbo].[sp_insert_production_schedule_outer_from_hatc_filename2] Script Date: 10/25/2023 2:01:04 PM ******/
|
|
5
|
SET ANSI_NULLS ON
|
|
6
|
GO
|
|
7
|
|
|
8
|
SET QUOTED_IDENTIFIER ON
|
|
9
|
GO
|
|
10
|
|
|
11
|
|
|
12
|
|
|
13
|
|
|
14
|
|
|
15
|
|
|
16
|
|
|
17
|
|
|
18
|
|
|
19
|
CREATE PROCEDURE [dbo].[sp_insert_production_schedule_outer_from_hatc_filename2]
|
|
20
|
@filename VARCHAR(1000)
|
|
21
|
AS
|
|
22
|
BEGIN
|
|
23
|
|
|
24
|
SET NOCOUNT ON
|
|
25
|
|
|
26
|
-- DECLARE TEMP TABLE
|
|
27
|
DECLARE @tempTable table (
|
|
28
|
pc_no VARCHAR(20)
|
|
29
|
,part_no VARCHAR(20)
|
|
30
|
,part_color VARCHAR(20)
|
|
31
|
,control_no VARCHAR(20)
|
|
32
|
,model_no VARCHAR(20)
|
|
33
|
,maker_code VARCHAR(20)
|
|
34
|
,line_no VARCHAR(20)
|
|
35
|
,case_no NUMERIC
|
|
36
|
|
|
37
|
,case_packing_seq NUMERIC
|
|
38
|
,item_no NUMERIC
|
|
39
|
,packing_no NUMERIC
|
|
40
|
|
|
41
|
,c_no VARCHAR(10)
|
|
42
|
,cont_no VARCHAR(10)
|
|
43
|
|
|
44
|
,case_code VARCHAR(20)
|
|
45
|
,set_part_seq NUMERIC
|
|
46
|
|
|
47
|
,staging_plan_date VARCHAR(50)
|
|
48
|
,staging_plan_qty NUMERIC
|
|
49
|
|
|
50
|
,inner_plan_date VARCHAR(20)
|
|
51
|
,inner_plan_qty NUMERIC
|
|
52
|
,outer_plan_date VARCHAR(20)
|
|
53
|
,outer_plan_qty NUMERIC
|
|
54
|
|
|
55
|
,vanning_plan_date VARCHAR(20)
|
|
56
|
|
|
57
|
,packing_qty_in_case NUMERIC
|
|
58
|
,bag_qty_in_packing NUMERIC
|
|
59
|
,parts_qty_in_bag NUMERIC
|
|
60
|
|
|
61
|
,hatc_ref_id NUMERIC
|
|
62
|
,linecontrol_ref_id NUMERIC
|
|
63
|
,tagreceive_ref_id NUMERIC
|
|
64
|
)
|
|
65
|
|
|
66
|
-- CREATE OUTER SCHEDULE DETAIL
|
|
67
|
DECLARE @pc_no VARCHAR(20)
|
|
68
|
DECLARE @part_no VARCHAR(20)
|
|
69
|
DECLARE @part_color VARCHAR(20)
|
|
70
|
DECLARE @control_no VARCHAR(20)
|
|
71
|
DECLARE @model_no VARCHAR(20)
|
|
72
|
DECLARE @maker_code VARCHAR(20)
|
|
73
|
DECLARE @line_no VARCHAR(20)
|
|
74
|
|
|
75
|
DECLARE @case_packing_seq NUMERIC
|
|
76
|
DECLARE @item_no NUMERIC
|
|
77
|
DECLARE @packing_no NUMERIC
|
|
78
|
|
|
79
|
DECLARE @c_no VARCHAR(10)
|
|
80
|
DECLARE @cont_no VARCHAR(10)
|
|
81
|
|
|
82
|
DECLARE @case_code VARCHAR(20)
|
|
83
|
DECLARE @set_part_seq NUMERIC
|
|
84
|
|
|
85
|
DECLARE @staging_plan_date VARCHAR(50)
|
|
86
|
|
|
87
|
DECLARE @inner_plan_date VARCHAR(20)
|
|
88
|
DECLARE @outer_plan_date VARCHAR(20)
|
|
89
|
|
|
90
|
DECLARE @vanning_plan_date VARCHAR(20)
|
|
91
|
|
|
92
|
DECLARE @packing_qty_in_case NUMERIC
|
|
93
|
DECLARE @bag_qty_in_packing NUMERIC
|
|
94
|
DECLARE @parts_qty_in_bag NUMERIC
|
|
95
|
|
|
96
|
DECLARE @hatc_ref_id NUMERIC
|
|
97
|
DECLARE @linecontrol_ref_id NUMERIC
|
|
98
|
DECLARE @tagreceive_ref_id NUMERIC
|
|
99
|
|
|
100
|
DECLARE @case_no_from NUMERIC
|
|
101
|
DECLARE @case_no_to NUMERIC
|
|
102
|
|
|
103
|
DECLARE @staging_plan_qty NUMERIC
|
|
104
|
DECLARE @inner_plan_qty NUMERIC
|
|
105
|
DECLARE @outer_plan_qty NUMERIC
|
|
106
|
|
|
107
|
|
|
108
|
DECLARE @current_case_no NUMERIC
|
|
109
|
|
|
110
|
DECLARE @qty NUMERIC
|
|
111
|
|
|
112
|
DECLARE sp_insert_production_schedule_outer_from_hatc_filename_cs_ CURSOR FOR
|
|
113
|
SELECT
|
|
114
|
|
|
115
|
h.pc_no
|
|
116
|
, h.dc_full_part_no
|
|
117
|
, h.part_color
|
|
118
|
, h.control_no
|
|
119
|
, h.model_code
|
|
120
|
, h.maker_code
|
|
121
|
, t.line_no
|
|
122
|
|
|
123
|
-- Will extract the case
|
|
124
|
, CONVERT(int, h.case_no_from) As case_no_from
|
|
125
|
, CONVERT(int, h.case_no_to) As case_no_to
|
|
126
|
|
|
127
|
, h.case_packing_seq
|
|
128
|
, h.item_no
|
|
129
|
, h.packing_no
|
|
130
|
|
|
131
|
--, l.case_no -- Not use this value
|
|
132
|
--, l.container_no
|
|
133
|
|
|
134
|
, h.case_code
|
|
135
|
, ISNULL(seq.set_part_seq, 0)
|
|
136
|
|
|
137
|
, [dbo].[getWorkingDate](h.packing_date, -1) -- staging_plan_date
|
|
138
|
, h.packing_date -- inner_plan_date
|
|
139
|
, h.packing_date -- outer_plan_date
|
|
140
|
, [dbo].[getWorkingDate](h.packing_date, 1) -- vanning_plan_date
|
|
141
|
|
|
142
|
--, h.packing_qty_in_case
|
|
143
|
, IIF( CAST(parts_qty_in_packing AS int) = 0 AND CAST(parts_qty_in_bag AS int) = 0
|
|
144
|
, 1 -- For direct items
|
|
145
|
, h.packing_qty_in_case
|
|
146
|
)
|
|
147
|
|
|
148
|
--, h.parts_qty_in_packing
|
|
149
|
, IIF( CAST(parts_qty_in_packing AS int) = 0 AND CAST(parts_qty_in_bag AS int) = 0
|
|
150
|
, h.packing_qty_in_case -- For direct items
|
|
151
|
, h.parts_qty_in_packing
|
|
152
|
)
|
|
153
|
|
|
154
|
, h.parts_qty_in_bag
|
|
155
|
|
|
156
|
, h.id
|
|
157
|
--, l.id
|
|
158
|
, t.id
|
|
159
|
|
|
160
|
, IIF( CAST(parts_qty_in_packing AS int) = 0 AND CAST(parts_qty_in_bag AS int) = 0
|
|
161
|
, CAST(packing_qty_in_case AS int)
|
|
162
|
* 1 -- CAST(case_usage AS int)
|
|
163
|
, IIF(CAST(parts_qty_in_packing AS int)=0,1,CAST(parts_qty_in_packing AS int))
|
|
164
|
* IIF(CAST(parts_qty_in_bag AS int)=0,1,CAST(parts_qty_in_bag AS int))
|
|
165
|
* CAST(packing_qty_in_case AS int)
|
|
166
|
* 1 --IIF(model_code = 'PPP', 1, CAST(case_usage AS int))
|
|
167
|
)
|
|
168
|
|
|
169
|
FROM
|
|
170
|
(
|
|
171
|
SELECT *
|
|
172
|
FROM OriginalHatc
|
|
173
|
WHERE filename=@filename
|
|
174
|
AND ISNUMERIC(case_no_from)=1
|
|
175
|
AND part_no NOT LIKE '%E+%'
|
|
176
|
AND pc_no NOT LIKE '%E+%'
|
|
177
|
) h
|
|
178
|
|
|
179
|
--LEFT JOIN OriginalLineControl l
|
|
180
|
--ON RIGHT(h.pc_no, 6) = REPLACE(l.pc_no, '-', '')
|
|
181
|
--AND (
|
|
182
|
-- ( h.model_code!='PPP' AND h.control_no = l.control_no )
|
|
183
|
-- OR ( h.model_code='PPP' AND LEFT(h.control_no,4) = LEFT(l.control_no,4) )
|
|
184
|
-- )
|
|
185
|
/** Fixed use container no from Line Control only **/
|
|
186
|
--AND (
|
|
187
|
-- CAST(IIF(ISNUMERIC(l.case_no)=1, l.case_no, 0) AS Int)
|
|
188
|
-- BETWEEN CAST(h.case_no_from As int) AND CAST(h.case_no_to As int)
|
|
189
|
-- )
|
|
190
|
|
|
191
|
LEFT JOIN SetPartSeqMaster seq
|
|
192
|
ON REPLACE(REPLACE(seq.part_no, '-', ''), ' ', '') = REPLACE(h.dc_full_part_no, ' ', '')
|
|
193
|
AND seq.control_no = h.control_no
|
|
194
|
|
|
195
|
LEFT JOIN OriginalTagReceive t
|
|
196
|
ON h.dc_full_part_no = t.part_no
|
|
197
|
AND h.pc_no = t.pc_no
|
|
198
|
AND h.part_color = t.part_color
|
|
199
|
AND (
|
|
200
|
( h.model_code!='PPP' AND LEFT(h.control_no,3) = LEFT(t.control_no,3) )
|
|
201
|
OR ( h.model_code='PPP' AND LEFT(h.control_no,4) = LEFT(t.control_no,4))
|
|
202
|
)
|
|
203
|
/** Add to map with SEQ_ITM(case_no-packing_no) for PBP **/
|
|
204
|
AND ( t.model_no != 'PPP'
|
|
205
|
OR ( t.model_no = 'PPP' AND CAST([dbo].[Wordparser] ( t.seq_itm, 1, '-') As int) BETWEEN CAST(h.case_no_from As int) AND CAST(h.case_no_to As int) )
|
|
206
|
)
|
|
207
|
|
|
208
|
OPEN sp_insert_production_schedule_outer_from_hatc_filename_cs_
|
|
209
|
FETCH NEXT FROM sp_insert_production_schedule_outer_from_hatc_filename_cs_
|
|
210
|
INTO
|
|
211
|
|
|
212
|
@pc_no
|
|
213
|
, @part_no
|
|
214
|
, @part_color
|
|
215
|
, @control_no
|
|
216
|
, @model_no
|
|
217
|
, @maker_code
|
|
218
|
, @line_no
|
|
219
|
|
|
220
|
, @case_no_from
|
|
221
|
, @case_no_to
|
|
222
|
|
|
223
|
, @case_packing_seq
|
|
224
|
, @item_no
|
|
225
|
, @packing_no
|
|
226
|
|
|
227
|
--, @c_no
|
|
228
|
--, @cont_no
|
|
229
|
|
|
230
|
, @case_code
|
|
231
|
, @set_part_seq
|
|
232
|
|
|
233
|
, @staging_plan_date
|
|
234
|
, @inner_plan_date
|
|
235
|
, @outer_plan_date
|
|
236
|
, @vanning_plan_date
|
|
237
|
|
|
238
|
, @packing_qty_in_case
|
|
239
|
, @bag_qty_in_packing
|
|
240
|
, @parts_qty_in_bag
|
|
241
|
|
|
242
|
, @hatc_ref_id
|
|
243
|
--, @linecontrol_ref_id
|
|
244
|
, @tagreceive_ref_id
|
|
245
|
|
|
246
|
, @qty
|
|
247
|
;
|
|
248
|
|
|
249
|
WHILE (@@FETCH_STATUS = 0)
|
|
250
|
BEGIN
|
|
251
|
|
|
252
|
SET @current_case_no = @case_no_from
|
|
253
|
|
|
254
|
WHILE (@current_case_no <= @case_no_to)
|
|
255
|
BEGIN
|
|
256
|
|
|
257
|
-- Find container no
|
|
258
|
SET @cont_no = NULL
|
|
259
|
SET @linecontrol_ref_id = NULL
|
|
260
|
SELECT
|
|
261
|
@cont_no = container_no
|
|
262
|
, @linecontrol_ref_id = id
|
|
263
|
FROM OriginalLineControl
|
|
264
|
WHERE RIGHT(@pc_no, 6) = REPLACE(pc_no, '-', '')
|
|
265
|
AND (
|
|
266
|
( @model_no!='PPP' AND @control_no = control_no )
|
|
267
|
OR ( @model_no='PPP' AND LEFT(@control_no,4) = LEFT(control_no,4) )
|
|
268
|
)
|
|
269
|
/** Fixed use container no from Line Control only **/
|
|
270
|
AND @current_case_no = CAST(IIF(ISNUMERIC(case_no)=1, case_no, 0) AS Int)
|
|
271
|
|
|
272
|
-- Insert into temp table
|
|
273
|
MERGE @tempTable AS Target
|
|
274
|
USING
|
|
275
|
(
|
|
276
|
SELECT
|
|
277
|
@pc_no AS pc_no
|
|
278
|
, @part_no AS part_no
|
|
279
|
, @part_color AS part_color
|
|
280
|
, @control_no AS control_no
|
|
281
|
, @model_no AS model_no
|
|
282
|
, @maker_code AS maker_code
|
|
283
|
, @line_no AS line_no
|
|
284
|
, @current_case_no AS case_no
|
|
285
|
, @case_packing_seq AS case_packing_seq
|
|
286
|
, @item_no AS item_no
|
|
287
|
, @packing_no AS packing_no
|
|
288
|
, @current_case_no AS c_no -- Used case_no as c_no
|
|
289
|
, @cont_no AS cont_no
|
|
290
|
, @case_code AS case_code
|
|
291
|
, @set_part_seq AS set_part_seq
|
|
292
|
, @staging_plan_date AS staging_plan_date
|
|
293
|
, @qty AS staging_plan_qty
|
|
294
|
, @inner_plan_date AS inner_plan_date
|
|
295
|
, @qty AS inner_plan_qty
|
|
296
|
, @outer_plan_date AS outer_plan_date
|
|
297
|
, @qty AS outer_plan_qty
|
|
298
|
, @vanning_plan_date AS vanning_plan_date
|
|
299
|
, @packing_qty_in_case AS packing_qty_in_case
|
|
300
|
, @bag_qty_in_packing AS bag_qty_in_packing
|
|
301
|
, @parts_qty_in_bag AS parts_qty_in_bag
|
|
302
|
, @hatc_ref_id AS hatc_ref_id
|
|
303
|
, @linecontrol_ref_id AS linecontrol_ref_id
|
|
304
|
, @tagreceive_ref_id AS tagreceive_ref_id
|
|
305
|
)
|
|
306
|
AS Source
|
|
307
|
ON Source.pc_no = Target.pc_no
|
|
308
|
AND Source.part_no = Target.part_no
|
|
309
|
AND Source.part_color = Target.part_color
|
|
310
|
AND Source.control_no = Target.control_no
|
|
311
|
AND Source.case_no = Target.case_no
|
|
312
|
AND Source.case_packing_seq = Target.case_packing_seq
|
|
313
|
AND Source.item_no = Target.item_no
|
|
314
|
AND Source.packing_no = Target.packing_no
|
|
315
|
WHEN NOT MATCHED BY Target THEN
|
|
316
|
INSERT (
|
|
317
|
[pc_no]
|
|
318
|
,[part_no]
|
|
319
|
,[part_color]
|
|
320
|
,[control_no]
|
|
321
|
,[model_no]
|
|
322
|
,[maker_code]
|
|
323
|
,[line_no]
|
|
324
|
,[case_no]
|
|
325
|
,[case_packing_seq]
|
|
326
|
,[item_no]
|
|
327
|
,[packing_no]
|
|
328
|
,[c_no]
|
|
329
|
,[cont_no]
|
|
330
|
,[case_code]
|
|
331
|
,[set_part_seq]
|
|
332
|
,[staging_plan_date]
|
|
333
|
,[staging_plan_qty]
|
|
334
|
,[inner_plan_date]
|
|
335
|
,[inner_plan_qty]
|
|
336
|
,[outer_plan_date]
|
|
337
|
,[outer_plan_qty]
|
|
338
|
,[vanning_plan_date]
|
|
339
|
,[packing_qty_in_case]
|
|
340
|
,[bag_qty_in_packing]
|
|
341
|
,[parts_qty_in_bag]
|
|
342
|
,[hatc_ref_id]
|
|
343
|
,[linecontrol_ref_id]
|
|
344
|
,[tagreceive_ref_id]
|
|
345
|
)
|
|
346
|
VALUES (
|
|
347
|
|
|
348
|
Source.pc_no
|
|
349
|
, Source.part_no
|
|
350
|
, Source.part_color
|
|
351
|
, Source.control_no
|
|
352
|
, Source.model_no
|
|
353
|
, Source.maker_code
|
|
354
|
, Source.line_no
|
|
355
|
, Source.case_no
|
|
356
|
, Source.case_packing_seq
|
|
357
|
, Source.item_no
|
|
358
|
, Source.packing_no
|
|
359
|
, Source.c_no
|
|
360
|
, Source.cont_no
|
|
361
|
, Source.case_code
|
|
362
|
, Source.set_part_seq
|
|
363
|
, Source.staging_plan_date
|
|
364
|
, Source.staging_plan_qty
|
|
365
|
, Source.inner_plan_date
|
|
366
|
, Source.inner_plan_qty
|
|
367
|
, Source.outer_plan_date
|
|
368
|
, Source.outer_plan_qty
|
|
369
|
, Source.vanning_plan_date
|
|
370
|
, Source.packing_qty_in_case
|
|
371
|
, Source.bag_qty_in_packing
|
|
372
|
, Source.parts_qty_in_bag
|
|
373
|
, Source.hatc_ref_id
|
|
374
|
, Source.linecontrol_ref_id
|
|
375
|
, Source.tagreceive_ref_id
|
|
376
|
);
|
|
377
|
|
|
378
|
|
|
379
|
-- Goto next case
|
|
380
|
SET @current_case_no = @current_case_no + 1
|
|
381
|
END
|
|
382
|
|
|
383
|
|
|
384
|
FETCH NEXT FROM sp_insert_production_schedule_outer_from_hatc_filename_cs_
|
|
385
|
INTO
|
|
386
|
|
|
387
|
@pc_no
|
|
388
|
, @part_no
|
|
389
|
, @part_color
|
|
390
|
, @control_no
|
|
391
|
, @model_no
|
|
392
|
, @maker_code
|
|
393
|
, @line_no
|
|
394
|
|
|
395
|
, @case_no_from
|
|
396
|
, @case_no_to
|
|
397
|
|
|
398
|
, @case_packing_seq
|
|
399
|
, @item_no
|
|
400
|
, @packing_no
|
|
401
|
|
|
402
|
--, @c_no
|
|
403
|
--, @cont_no
|
|
404
|
|
|
405
|
, @case_code
|
|
406
|
, @set_part_seq
|
|
407
|
|
|
408
|
, @staging_plan_date
|
|
409
|
, @inner_plan_date
|
|
410
|
, @outer_plan_date
|
|
411
|
, @vanning_plan_date
|
|
412
|
|
|
413
|
, @packing_qty_in_case
|
|
414
|
, @bag_qty_in_packing
|
|
415
|
, @parts_qty_in_bag
|
|
416
|
|
|
417
|
, @hatc_ref_id
|
|
418
|
--, @linecontrol_ref_id
|
|
419
|
, @tagreceive_ref_id
|
|
420
|
|
|
421
|
, @qty
|
|
422
|
END
|
|
423
|
|
|
424
|
|
|
425
|
|
|
426
|
CLOSE sp_insert_production_schedule_outer_from_hatc_filename_cs_;
|
|
427
|
DEALLOCATE sp_insert_production_schedule_outer_from_hatc_filename_cs_;
|
|
428
|
|
|
429
|
-- 2023-10-25 : Replace the simple insert with merge with duplicated check
|
|
430
|
|
|
431
|
MERGE ProductionScheduleOuter AS Target
|
|
432
|
USING @tempTable AS s
|
|
433
|
ON s.pc_no = Target.pc_no
|
|
434
|
AND s.part_no = Target.part_no
|
|
435
|
AND s.part_color = Target.part_color
|
|
436
|
AND s.control_no = Target.control_no
|
|
437
|
AND s.case_no = Target.case_no
|
|
438
|
AND s.case_packing_seq = Target.case_packing_seq
|
|
439
|
AND s.item_no = Target.item_no
|
|
440
|
AND s.packing_no = Target.packing_no
|
|
441
|
WHEN NOT MATCHED BY Target THEN
|
|
442
|
|
|
443
|
-- Finally copy all entries to ProductionScheduleOuter
|
|
444
|
-- Insert outer detail
|
|
445
|
INSERT
|
|
446
|
(
|
|
447
|
[pc_no]
|
|
448
|
,[part_no]
|
|
449
|
,[part_color]
|
|
450
|
,[control_no]
|
|
451
|
,[model_no]
|
|
452
|
,[maker_code]
|
|
453
|
,[line_no]
|
|
454
|
,[case_no]
|
|
455
|
,[case_packing_seq]
|
|
456
|
,[item_no]
|
|
457
|
,[packing_no]
|
|
458
|
,[c_no]
|
|
459
|
,[cont_no]
|
|
460
|
,[case_code]
|
|
461
|
,[set_part_seq]
|
|
462
|
,[staging_plan_date]
|
|
463
|
,[staging_plan_qty]
|
|
464
|
,[inner_plan_date]
|
|
465
|
,[inner_plan_qty]
|
|
466
|
,[outer_plan_date]
|
|
467
|
,[outer_plan_qty]
|
|
468
|
,[vanning_plan_date]
|
|
469
|
,[packing_qty_in_case]
|
|
470
|
,[bag_qty_in_packing]
|
|
471
|
,[parts_qty_in_bag]
|
|
472
|
,[hatc_ref_id]
|
|
473
|
,[linecontrol_ref_id]
|
|
474
|
,[tagreceive_ref_id]
|
|
475
|
,[status]
|
|
476
|
,[stage]
|
|
477
|
,[create_user_id]
|
|
478
|
)
|
|
479
|
|
|
480
|
VALUES (
|
|
481
|
s.[pc_no]
|
|
482
|
, s.[part_no]
|
|
483
|
, s.[part_color]
|
|
484
|
, s.[control_no]
|
|
485
|
, s.[model_no]
|
|
486
|
, s.[maker_code]
|
|
487
|
, s.[line_no]
|
|
488
|
, s.[case_no]
|
|
489
|
, s.[case_packing_seq]
|
|
490
|
, s.[item_no]
|
|
491
|
, s.[packing_no]
|
|
492
|
, s.[c_no]
|
|
493
|
, s.[cont_no]
|
|
494
|
, s.[case_code]
|
|
495
|
, s.[set_part_seq]
|
|
496
|
, s.[staging_plan_date]
|
|
497
|
, s.[staging_plan_qty]
|
|
498
|
, s.[inner_plan_date]
|
|
499
|
, s.[inner_plan_qty]
|
|
500
|
, s.[outer_plan_date]
|
|
501
|
, s.[outer_plan_qty]
|
|
502
|
, s.[vanning_plan_date]
|
|
503
|
, s.[packing_qty_in_case]
|
|
504
|
, s.[bag_qty_in_packing]
|
|
505
|
, s.[parts_qty_in_bag]
|
|
506
|
, s.[hatc_ref_id]
|
|
507
|
, s.[linecontrol_ref_id]
|
|
508
|
, s.[tagreceive_ref_id]
|
|
509
|
|
|
510
|
,'IMPORTED'
|
|
511
|
,'IMPORTED'
|
|
512
|
, 'admin'
|
|
513
|
);
|
|
514
|
|
|
515
|
END
|
|
516
|
GO
|
|
517
|
|
|
518
|
|