Está en la página 1de 32

TO.BTL-2019-00000.

00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

Nombre Objeto : TRF_GENERA_OC_TIM_F (MODIFICAR)

Descripción : Genera Orden de Compra entre empresas

Tipo : PROCEDURE

1. Functional Overview:
Genera OC entre empresas

2. Technical Specifications:

2.1. Input / Output Parameters:

Input / Output In / Out Type Mandator Default Description


Parameters y Value

2.2. Procedure Outline:

create or replace procedure TRF_GENERA_OC_TIM_F


----------------------------------------------------------------------------
--
-- 07/06/2013 LIRG.
-- Procedimiento que genera las órdenes de compra entre empresas.
-- Modificaciones
-- ==============
-- JCS 09/12/2013 TO.4209.01 Se retira creacion de Cpk de estilo e
insercion de estilos en la OC
-- JCS 31/01/2014 TO.4220.06 Se adiciona agrupacion por impuesto para
generacion de OCs
-- JCS 18/06/2014 Se redondea a empaque completo en caso de decimales
en la cantidad embarcada
-- JCS 22/07/2015 Se agrega campos de Inner Pack a la creacion de Case
Pack
-- JCS 07/09/2015 Se agrega campo eaches_per_inner a la creacion de
Case Pack
-- JCS 30/03/2016 TO.102033.01 Se corrige creacion de casepack de
productos pesables
-- CLM 31/10/2016 TO.113114.01 Se ordena cursor c2 para que no queden
tims sin procesar.
-- ELG 10/04/2018 Se modifica para F12 HT_Oriente
-- JCS 18/02/2019 TO.157293 Se corrige seleccion de Casepack
-- JSC 26/12/2019 Se integra desarrollo: DELTA JT 25.04.2018 -
Considerando tabla de excepciones una OC por producto ej. azucar
----------------------------------------------------------------------------
--
AS
BEGIN

Página 1/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

DECLARE

v_procedimiento VARCHAR2(30) := 'TRF_GENERA_OC_TIM_F';


v_vpc_tech_key vpcmstee.vpc_tech_key%type;
v_nivel_oc pmgmctee.prd_lvl_id%type;
vn_num_oc SDIPMGHDI.pmg_po_number%TYPE;
vn_sec_cabe SDIPMGHDI.AUDIT_NUMBER%TYPE;
var_vendor_number vpcmstee.vendor_number%type;
var_prcfecha date;
v_org_lvl_number orgmstee.org_lvl_number%type;
lv_line_number sdipmgdti.pmg_line_number%TYPE;
vn_lote number(12);
var_cst_type_id csttypee.cst_type_id%type;
var_cst_avg_level csttypee.cst_avg_level%type;
VAR_CP_CST_COST CSTTMPWW.CST_COST%TYPE;
v_case_cont number;
lv_procesa_x_cola char:='N';
session_num fabashexee.session_number%TYPE;
n_seque NUMBER :=0;
v_curr_code vpcmstee.curr_code%type;
v_case_pack_id faprdcpkwww.case_pack_id%TYPE;
out_resultado NUMBER;
v_org_lvl_number_oc orgmstee.org_lvl_number%type;
v_bas_usr_name basusree.bas_user_name%type;
v_curr_code2 vpcmstee.curr_code%type;
--JCS TO.4220.06 31/01/2014 SN
var_tax fatrftimee.tax%type;
ln_count_impto number;
--JCS TO.4220.06 31/01/2014 EN
--JCS 09/12/2013 TO.4209.01 SC
/*v_prd_lvl_number_parent prdmstee.prd_lvl_number%type;
v_prd_name_full_parent prdmstee.prd_name_full%type;
lv_vpc_case_pack_id vpcprdee.vpc_case_pack_id%type;
v_prd_sll_uom_parent prdmstee.prd_sll_uom%type;*/
--JCS 09/12/2013 TO.4209.01 EC
--EELG 10/04/2018 SN
ln_vpc_prd_tech_key vpcprdee.vpc_prd_tech_key%type;
lc_vpc_case_pack_id vpcprdee.vpc_case_pack_id%type;
lv_cont number;
-- DELTA JT 25.04.2018 inicio
lv_nivel_id prdmstee.prd_lvl_id%type;
v_prd_lvl_child prdmstee.prd_lvl_child%type;
v_prd_lvl_parent prdmstee.prd_lvl_child%type;
lv_prd_lvl_number prdmstee.prd_lvl_number%type;
-- DELTA JT 25.04.2018 fin
--EELG 10/04/2018 EN
lc_po_auto_release sdipmghdi.po_auto_release%type; --JCS 18/02/2019 N

--JCS TO.4220.06 31/01/2014 SN


CURSOR c0 IS
select t.*, t.rowid, p.prd_lvl_id, p.prd_lvl_parent
from fatrftimee t, prdmstee p
where t.prd_lvl_child = p.prd_lvl_child
and t.date_download is null
and t.estado = 1;
--JCS TO.4220.06 31/01/2014 EN

Página 2/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

-- DELTA JT 25.04.2018 inicio: Alterno para tratamiento de excepciones


CURSOR c0a IS
select distinct t.prd_lvl_child, p.prd_lvl_id, p.prd_lvl_parent
from fatrftimee t, prdmstee p
where t.prd_lvl_child = p.prd_lvl_child
and t.date_download is null
and t.estado = 1;
-- DELTA JT 25.04.2018 fin: Alterno para tratamiento de excepciones:
--cursor de OCs a generar
CURSOR c2 IS
select distinct cp.cap_chain_id,
plv.prd_lvl_parent prd_lvl_parent,
t.org_rec_loc trf_rec_loc,
t.trf_manifest_id,
t.trf_number,
t.tax --JCS TO.4220.06 31/01/2014 N
from fatrftimee t,
prdmstee p,
prdplvee plv,
capstree cp
where cp.org_lvl_child = t.org_ship_loc
and p.prd_lvl_child = t.prd_lvl_child
and plv.prd_parent_id=v_nivel_oc
and plv.prd_lvl_child =
decode(p.prd_lvl_id,0,p.prd_lvl_parent,p.prd_lvl_child)
and t.date_download is null
and t.estado = 1
order by
cp.cap_chain_id,plv.prd_lvl_parent,trf_rec_loc,trf_manifest_id;--CLM
TO.113114.01 31/10/2016

-- DELTA JT 25.04.2018 inicio: cursor de OCs a generar - por producto para


el tratamiento de excepciones ej. azucar
CURSOR c2a IS
select distinct cp.cap_chain_id,
t.prd_lvl_child,
t.org_rec_loc trf_rec_loc,
t.trf_manifest_id,
t.trf_number,
t.tax
from fatrftimee t,
prdmstee p,
capstree cp
where cp.org_lvl_child = t.org_ship_loc
and p.prd_lvl_child = t.prd_lvl_child
and t.prd_lvl_child = v_prd_lvl_child
and t.date_download is null
and t.estado = 1
order by cp.cap_chain_id,t.prd_lvl_child,trf_rec_loc,trf_manifest_id;

--cursor de OCs a generar - por nivel de jerarquia variable


CURSOR c2b IS
select distinct cp.cap_chain_id,
t.prd_lvl_child,

Página 3/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

plv.prd_lvl_parent prd_lvl_parent,
t.org_rec_loc trf_rec_loc,
t.trf_manifest_id,
t.trf_number,
t.tax
from fatrftimee t,
prdmstee p,
prdplvee plv,
capstree cp
where cp.org_lvl_child = t.org_ship_loc
and p.prd_lvl_child = t.prd_lvl_child
and plv.prd_parent_id = v_nivel_oc
and plv.prd_lvl_child =
decode(p.prd_lvl_id,0,p.prd_lvl_parent,p.prd_lvl_child)
and plv.prd_lvl_parent = v_prd_lvl_parent
and t.date_download is null
and t.estado = 1
order by
cp.cap_chain_id,plv.prd_lvl_parent,t.prd_lvl_child,trf_rec_loc,trf_manifest_
id;--CLM TO.113114.01 31/10/2016

-- DELTA JT 25.04.2018 fin:


--cursor detalle OC
CURSOR c3(in_prd_parent prdplvee.prd_lvl_number%type,
in_trf_rec_loc trfhdree.trf_rec_loc%type,
in_trf_manifest_id fatrftimee.trf_manifest_id%type,
in_trf_number fatrftimee.trf_number%type,
in_tax fatrftimee.tax%type) IS --JCS TO.4220.06
31/01/2014 N
select plv.prd_lvl_parent,
p.prd_lvl_child,
p.prd_lvl_number,
p.prd_name_full name_full,
p.prd_sll_uom sll_uom,
p.prd_status prd_status,
p.prd_lvl_id,
p.prd_lvl_parent parent_child,
t.org_rec_loc,
sum(t.cantidad_env) cantidad,
t.trf_manifest_id,
t.trf_number
from fatrftimee t,
prdmstee p,
prdplvee plv
where p.prd_lvl_child = t.prd_lvl_child
and plv.prd_parent_id=v_nivel_oc
and plv.prd_lvl_child =
decode(p.prd_lvl_id,0,p.prd_lvl_parent,p.prd_lvl_child)
and plv.prd_lvl_parent = in_prd_parent
and t.org_rec_loc = in_trf_rec_loc
and t.trf_manifest_id = in_trf_manifest_id
and t.trf_number = in_trf_number
and t.tax = in_tax --JCS TO.4220.06 31/01/2014 N
and t.date_download is null
and t.estado = 1
group by plv.prd_lvl_parent,

Página 4/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

p.prd_lvl_child,
p.prd_lvl_number,
p.prd_name_full,
p.prd_sll_uom,
p.prd_status,
p.prd_lvl_id,
p.prd_lvl_parent,
t.org_rec_loc,
t.trf_manifest_id,
t.trf_number;
-- DELTA JT 25.04.2018 inicio: cursor detalle OC alterno: tratamiento de
excepciones x sku
CURSOR c3a(in_prd_child prdmstee.prd_lvl_child%type,
in_trf_rec_loc trfhdree.trf_rec_loc%type,
in_trf_manifest_id fatrftimee.trf_manifest_id%type,
in_trf_number fatrftimee.trf_number%type,
in_tax fatrftimee.tax%type) IS
select -- plv.prd_lvl_parent,
p.prd_lvl_child,
p.prd_lvl_number,
p.prd_name_full name_full,
p.prd_sll_uom sll_uom,
p.prd_status prd_status,
p.prd_lvl_id,
--p.prd_lvl_parent parent_child,
t.org_rec_loc,
t.trf_manifest_id,
t.trf_number,
sum(t.cantidad_env) cantidad
from fatrftimee t,
prdmstee p
-- prdplvee plv
where p.prd_lvl_child = t.prd_lvl_child
-- and plv.prd_parent_id = v_nivel_oc
-- and plv.prd_lvl_child =
decode(p.prd_lvl_id,0,p.prd_lvl_parent,p.prd_lvl_child)
-- and plv.prd_lvl_parent = in_prd_parent
and t.prd_lvl_child = in_prd_child
and t.org_rec_loc = in_trf_rec_loc
and t.trf_manifest_id = in_trf_manifest_id
and t.trf_number = in_trf_number
and t.tax = in_tax
and t.date_download is null
and t.estado = 1
group by -- plv.prd_lvl_parent,
p.prd_lvl_child,
p.prd_lvl_number,
p.prd_name_full,
p.prd_sll_uom,
p.prd_status,
p.prd_lvl_id,
--p.prd_lvl_parent,
t.org_rec_loc,
t.trf_manifest_id,
t.trf_number;
--DELTA JT 25.04.2018 fin:

Página 5/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--JCS 09/12/2013 TO.4209.01 SC


/*CURSOR c4(p_pmg_po_number pmghdree.pmg_po_number%TYPE) IS
SELECT p1.prd_lvl_child,p1.prd_lvl_number,dt.org_lvl_number,
dt.pmg_line_number, SUM(pmg_sell_qty) AS pmg_sell_qty
FROM sdipmgdti dt, prdmstee p, prdmstee p1
WHERE pmg_po_number = p_pmg_po_number
AND dt.prd_lvl_number = p.prd_lvl_number
AND p.prd_lvl_parent = p1.prd_lvl_child
AND p.prd_lvl_id = 0
GROUP BY p1.prd_lvl_child,p1.prd_lvl_number,dt.org_lvl_number,
dt.pmg_line_number;*/
--JCS 09/12/2013 TO.4209.01 EC
procedure trf_determina_je(
in_prd_lvl_child in prdmstee.prd_lvl_child%type,
lv_nivel_id out prdmstee.prd_lvl_id%type,
lv_prd_lvl_number out prdmstee.prd_lvl_number%type
)
AS
Begin
declare

lv_division prdmstee.prd_lvl_number%type;
lv_dpto prdmstee.prd_lvl_number%type;
lv_subdpto prdmstee.prd_lvl_number%type;
lv_clase prdmstee.prd_lvl_number%type;
lv_subclase prdmstee.prd_lvl_number%type;
lv_sku prdmstee.prd_lvl_number%type;
lv_prd_lvl_child prdmstee.prd_lvl_child%type;
lv_name prdmstee.prd_name_full%type;
lv_conta number := null;

begin

SELECT
trim(di.prd_lvl_number),
trim(li.prd_lvl_number),
trim(sl.prd_lvl_number),
trim(cl.prd_lvl_number),
trim(prd1.prd_lvl_number),
prd.prd_lvl_child,
prd.prd_lvl_number,
prd.prd_name_full
into
lv_division,
lv_dpto,
lv_subdpto,
lv_clase,
lv_subclase,
lv_prd_lvl_child,
lv_sku,
lv_name
FROM prdmstee prd, prdmstee prd1, prdmstee li, prdmstee di, prdmstee sl,
prdmstee cl, prdplvee plv
WHERE prd.prd_lvl_child = in_prd_lvl_child
AND plv.prd_lvl_child = DECODE(prd.prd_lvl_id, 1, prd.prd_lvl_child, 0,

Página 6/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

prd.prd_lvl_parent)
AND plv.prd_parent_id = 1
AND plv.prd_lvl_parent = prd1.prd_lvl_child --SubClase
AND prd1.prd_lvl_parent = cl.prd_lvl_child --Clase
AND cl.prd_lvl_parent = sl.prd_lvl_child --SubDepartamento
AND sl.prd_lvl_parent = li.prd_lvl_child --Departamento
and li.prd_lvl_parent = di.prd_lvl_child; --Division
-- 6 Division, 5 Departamento, 4 Sub Depto, 3 Clase, 2 Subclase

-- busca en excepciones desde el nivel 0,1 al nivel 3 Clase


-- SOLO TOMAR LA JERARQUIA MAYOR SI EXISTIERA PARTE DEL LVL_ID 0,1 -> 3
lv_nivel_id := null;
lv_prd_lvl_number := null;

-- busca en excepciones por sku


begin
select count(1)
into lv_conta
from fatrftimez
where prd_lvl_number = lv_sku;
--and estado = 1;
exception
when no_data_found then
lv_conta := null;
end;

if lv_conta > 0 then


-- nivel encontrado
lv_nivel_id:= 1;
lv_prd_lvl_number := lv_sku;
end if;

-- busca en excepciones por sub clase


begin
select count(1)
into lv_conta
from fatrftimez
where prd_lvl_number = lv_subclase;
--and estado = 1;
exception
when no_data_found then
lv_conta := null;
end;

if lv_conta > 0 then


-- nivel encontrado
lv_nivel_id:= 2;
lv_prd_lvl_number := lv_subclase;
end if;

-- busca en excepciones por clase


begin
select count(1)
into lv_conta
from fatrftimez
where prd_lvl_number = lv_clase;

Página 7/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--and estado = 1;
exception
when no_data_found then
lv_conta := null;
end;

if lv_conta > 0 then


-- graba nivel encontrado - clase
lv_nivel_id := 3;
lv_prd_lvl_number := lv_clase;
end if;

end;
end trf_determina_je;

BEGIN

begin
select d.caldat
into var_prcfecha
from caldayee d
where d.cal_type = 'M';
exception
when no_data_found then
var_prcfecha := trunc(sysdate);
end;

--nivel de generación de OC
select prd_lvl_id - 1
into v_nivel_oc
from pmgmctee
where rownum = 1;

--JCS 18/02/2019 SN
Begin
select trim(param_value)
into lc_po_auto_release
from chlparam
where param_code = 'POAUTREHTO';
Exception
When No_Data_Found Then lc_po_auto_release := 'F';
End;
--JCS 18/02/2019 EN

--JCS TO.4220.06 31/01/2014 SN


For r0 in c0 Loop

select count(*)
into ln_count_impto
from faprdtxsee
where prd_lvl_child =
decode(r0.prd_lvl_id,1,r0.prd_lvl_child,0,r0.prd_lvl_parent)
and txs_code_tech_key = (select txs_code_tech_key
from txscodee
where txs_code = (SELECT chl.param_value
FROM chlparam chl

Página 8/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

WHERE chl.param_code =
'TXSCODIGV'));

If ln_count_impto > 0 Then


select txs_rate
into var_tax
from txscodee cod, txsratee rat
where cod.txs_code_tech_key = rat.txs_code_tech_key
and cod.txs_code = (SELECT chl.param_value
FROM chlparam chl
WHERE chl.param_code = 'TXSCODIGV')
and sysdate between rat.txs_eff_from and rat.txs_eff_to;
Else
var_tax := 0;
End If;

update fatrftimee
set tax = var_tax
where rowid = r0.rowid;
End Loop;
commit;
--JCS TO.4220.05 31/01/2014 EN
-- Delta JT 16.04.2018

----------------------------------------------------------------------------
-
-- 1ra Barrida, proceso solo Excepciones

----------------------------------------------------------------------------
-
For r00 in c0a Loop

-- Lee JERARQUIA y busca en Excepciones


lv_nivel_id := null;
lv_prd_lvl_number := null;
trf_determina_je(case when r00.prd_lvl_id=1 then r00.prd_lvl_child
else r00.prd_lvl_parent end,lv_nivel_id,lv_prd_lvl_number);
v_nivel_oc := lv_nivel_id;
v_prd_lvl_child := case when r00.prd_lvl_id=1 then
r00.prd_lvl_child else r00.prd_lvl_parent end;

-- si encontró procesa
if lv_nivel_id is not null and lv_prd_lvl_number is not null then

-- nivel de producto
if lv_nivel_id <= 1 then
--v_nivel_oc := 1;

FOR d22 in c2a LOOP

/***creando cabecera y detalle de OC***/


bastkey('tech_lot_key',0,vn_lote);
bastkey('pmg_po_number',0,vn_num_oc);
bastkey('audit_number',0,vn_sec_cabe);

begin

Página 9/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--obteniendo proveedor
select vpc_tech_key
into v_vpc_tech_key
from FACHNPAREE e
where e.cap_chain_id = d22.cap_chain_id
and rownum = 1;
exception
when no_data_found then return;
end;

begin
select v.vendor_number , v.curr_code
into var_vendor_number, v_curr_code
from vpcmstee v
where v.vpc_tech_key = v_vpc_tech_key; --2593
exception
when no_data_found then return;
end;

select org_lvl_number
into v_org_lvl_number_oc
from orgmstee
where org_lvl_child = d22.trf_rec_loc;

select bas_user_name
into v_bas_usr_name
from basusree
where usr_signon = 'JUser';

select curr_code
into v_curr_code2
from curmstee
where curr_default ='T';

INSERT INTO sdipmghdi


(audit_number, pmg_po_number,
vendor_number,
vpc_shp_point, pmg_type_name,
org_lvl_number,
bas_usr_name, pmg_buyer, curr_code,
date_created, tran_type, dmt_code,
po_auto_release, apply_vpc_chgalw, jda_origin,
pmg_ext_po_num, PMG_EXP_RCT_DATE,
pmg_cncl_by_date)
VALUES
(vn_sec_cabe, vn_num_oc,
var_vendor_number,
null, 'Normal',
v_org_lvl_number_oc,
v_bas_usr_name, v_bas_usr_name,
v_curr_code2,
SYSDATE, 'A', 2,
'F', 'T', 'F',
'TRF-EMP', null, null);

lv_line_number :=1;

Página 10/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

n_seque :=0;

--detalle de OC
--FOR d3 IN c3(d2.prd_lvl_parent, d2.trf_rec_loc,
d2.trf_manifest_id, d2.trf_number) LOOP --JCS TO.4220.06 31/01/2014 C
FOR d33 IN c3a(d22.prd_lvl_child, d22.trf_rec_loc,
d22.trf_manifest_id, d22.trf_number, d22.tax) LOOP --JCS TO.4220.06
31/01/2014 N

--validando estado de producto


IF d33.prd_status != 0 THEN
update prdmstee p
set prd_status = 0
where p.prd_lvl_child = d33.prd_lvl_child;

insert into prdsteee e


(prd_lvl_child, effect_date, prd_status)
values
(d33.prd_lvl_child, sysdate, 0);
END IF;

select org_lvl_number into v_org_lvl_number


from orgmstee o
where org_lvl_child = d33.org_rec_loc;

--obteniendo el costo promedio de la empresa origen


select cst_type_id, cst_avg_level
into var_cst_type_id, var_cst_avg_level
from csttypee e
where e.cap_chain_id = d22.cap_chain_id
and e.cst_type_number = 1;

--costo promedio
BEGIN
SELECT B.CST_COST
INTO VAR_CP_CST_COST
FROM CSTMSTEE B, PRDMSTEE P
WHERE CST_TYPE_ID = var_cst_type_id
AND P.PRD_LVL_CHILD = d33.PRD_lvl_CHILD
AND B.PRD_LVL_CHILD = DECODE(P.PRD_LVL_ID, 0,
P.PRD_LVL_PARENT, P.PRD_LVL_CHILD)
AND B.CST_ORG_ID = 0
AND B.CST_LEVEL = var_cst_avg_level;
EXCEPTION WHEN NO_DATA_FOUND THEN
VAR_CP_CST_COST := 0;
END;

--validando Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d33.prd_lvl_child;

/*****************CREANDO CASE PACK


**************************/

Página 11/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

IF v_case_cont = 0 THEN

select session_number.nextval
into session_num
from dual;

n_seque := n_seque + 1;

v_case_pack_id := trim(d33.prd_lvl_number)||'_'||n_seque;

--inserta tabla temporal new case pack


insert into FAPRDCPKWWW
(nsession_number, nsecuencia,
prd_lvl_number,
case_pack_id, vendor_number,
curr_code,
vpc_prd_cost, vpc_case_qty,
case_pack_desc,
vpc_cst_start, prd_sll_uom,
primary_flag,
bflag_carga, xdesc_error,
vpc_buy_multiple,
vpc_case_std_pack, eaches_per_inner,
vpc_case_wgt_uom,
--vpc_case_wgt, --JCS 22/07/2015 C
vpc_case_wgt, inv_units_per_inner,
number_of_inners, --JCS 22/07/2015 N
vpc_case_gross_wgt --JCS 30/03/2016 TO.102033.01 N
)
values
(session_num, n_seque,
d33.prd_lvl_number,
v_case_pack_id, var_vendor_number,
v_curr_code,
VAR_CP_CST_COST, 1,
substr(d33.name_full,1,40),
var_prcfecha, d33.sll_uom, 'F',
null, null, 1,
--1, null,
decode(trim(d3.sll_uom),'KG',d3.sll_uom,null), --JCS 07/09/2015 C
1, 1,
decode(trim(d33.sll_uom),'KG',d33.sll_uom,null), --JCS 07/09/2015 N
--decode(trim(d3.sll_uom),'KG',1,null) --JCS
22/07/2015 C
decode(trim(d33.sll_uom),'KG',1,null), 1, 1,
--JCS 22/07/2015 N
decode(trim(d33.sll_uom),'KG',1,null) --JCS
30/03/2016 TO.102033.01 N
);

prd_load_case_pack_f(session_num, 'JUser', out_resultado);

END IF;

Página 12/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--validando creación de Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d33.prd_lvl_child;

IF v_case_cont > 0 THEN

bastkey('audit_number',0,vn_sec_cabe);

--TO.138741.02 12/03/2018 SN
select count(*)
into lv_cont
from f12hdref
where nfolio = d22.trf_number;

lc_vpc_case_pack_id := null;

If (lv_cont > 0) then


ln_vpc_prd_tech_key :=
Chle3Util.Get_Prd_CP(d33.prd_lvl_child,'F',v_vpc_tech_key,0);

Begin
select vpc_case_pack_id
into lc_vpc_case_pack_id
from vpcprdee
where vpc_prd_tech_key = ln_vpc_prd_tech_key;
Exception
When No_Data_Found Then lc_vpc_case_pack_id:='';
End;
VAR_CP_CST_COST := null;
End if;
--TO.138741.02 12/03/2018 EN

insert into SDIPMGDTI (


audit_number, tran_type, pmg_seq_num,
--1
pmg_po_number, pmg_line_number,
prd_lvl_number, --2
org_lvl_number, pmg_dtl_type,
vpc_case_pack_id, --3
prd_upc, pmg_sell_qty,
pmg_pack_qty, --4
pmg_sell_cost, pmg_pack_cost,
pmg_res_sell_qty, --5
pmg_retail, vpc_apt_desc,
pmg_pay_date, --6
pmg_call_off_po, dmt_code,
trf_alloc_id, --7
pmg_ship_date, pmg_exp_rct_date,
pmg_cancel_date, --8
pmg_manual_dist, distro_id,
pmg_ship_via, --9
pmg_fob, rcv_qc_exp,
style_prd_lvl_nbr, --10

Página 13/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

pmg_track_code, date_created,
download_date_1, --11
download_date_2, pmg_po_notes,
pmg_recv_notes, --12
pmg_pis_date, pmg_ext_rct_date,
pmg_otb_bud_date, --13
pmg_allocator, prd_cross_dock,
pmg_cncl_by_date, --14
pmg_apply_dc_pack, pmg_dc_pack_qty,
vpc_case_qty, --15
vpc_case_std_pack, pmg_dist_sell_qty,
pmg_dtl_tech_key, --16
pmg_ext_po_num, pmg_loc_curr,
pmg_tax_exc_hm, --17
pmg_tax_exc_lc, pmg_tax_exc_po,
pmg_tot_tax_hm, --18
pmg_tot_tax_po, pmg_spread_mult,
frt_terms_desc, --19
ship_via_desc, fob_terms_desc,
pmg_prd_vendor, --20
pmg_reallocate, pmg_aal_method,
pmg_apply_buy_multiple, --21
net_cost_flag, pmg_pack_net_cost)
--22
values (
vn_sec_cabe, 'A' , 0,
--1
vn_num_oc, lv_line_number,
d33.prd_lvl_NUMBER, --2
--v_org_lvl_number, 1, null,
--3
v_org_lvl_number, 1,
lc_vpc_case_pack_id, --3 --EELG 10/04/2018
--null, d3.cantidad, null,
--4 -- JCS 18/06/2014 C
null, ceil(d33.cantidad), null,
--4 -- JCS 18/06/2014 N
VAR_CP_CST_COST, null, null,
--5
null, null, null,
--6
null, 2, null,
--7
null, null, null,
--8
null, null, null,
--9
null, null, null,
--10
null, var_prcfecha, null,
--11
null, null, null,
--12
null, null, null,
--13
null, null, null,

Página 14/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--14
null, null, null,
--15
null, null, null,
--16
null, null, null,
--17
null, null, null,
--18
null, null, null,
--19
null, null, null,
--20
null, null, null,
--21
null, null);
--22

lv_line_number := lv_line_number +1;

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.ESTADO = 2
where x.prd_lvl_child = d33.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d33.org_rec_loc
and x.trf_manifest_id = d33.trf_manifest_id
and x.trf_number = d33.trf_number;

ELSE

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.desc_error = 'Producto no tiene case pack',
x.ESTADO = 4
where x.prd_lvl_child = d33.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d33.org_rec_loc
and x.trf_manifest_id = d33.trf_manifest_id
and x.trf_number = d33.trf_number;
END IF;
END LOOP;

insert into FAPMGLOTWW (


tech_lot_key, pmg_po_number, fec_creacion,
usr_tech_key)
values (
vn_lote, vn_num_oc, sysdate,
null);

--procesando SDIs
pmgaddim2(vn_lote, 'T',null,0,100,lv_procesa_x_cola);
END LOOP;

Página 15/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

else

-- obtuvo el nivel jerarquico 2=sub clase o 3=clase, se debe


trabajar con los hijos de este nivel
v_prd_lvl_parent:=null;
v_nivel_oc := v_nivel_oc-1;
select prd_lvl_parent
into v_prd_lvl_parent
from prdplvee
where prd_lvl_child = v_prd_lvl_child
and prd_parent_id = v_nivel_oc;

FOR d22 in c2b LOOP

/***creando cabecera y detalle de OC***/


bastkey('tech_lot_key',0,vn_lote);
bastkey('pmg_po_number',0,vn_num_oc);
bastkey('audit_number',0,vn_sec_cabe);

begin
--obteniendo proveedor
select vpc_tech_key
into v_vpc_tech_key
from FACHNPAREE e
where e.cap_chain_id = d22.cap_chain_id
and rownum = 1;
exception
when no_data_found then return;
end;

begin
select v.vendor_number , v.curr_code
into var_vendor_number, v_curr_code
from vpcmstee v
where v.vpc_tech_key = v_vpc_tech_key; --2593
exception
when no_data_found then return;
end;

select org_lvl_number
into v_org_lvl_number_oc
from orgmstee
where org_lvl_child = d22.trf_rec_loc;

select bas_user_name
into v_bas_usr_name
from basusree
where usr_signon = 'JUser';

select curr_code
into v_curr_code2
from curmstee
where curr_default ='T';

INSERT INTO sdipmghdi


(audit_number, pmg_po_number,

Página 16/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

vendor_number,
vpc_shp_point, pmg_type_name,
org_lvl_number,
bas_usr_name, pmg_buyer, curr_code,
date_created, tran_type, dmt_code,
po_auto_release, apply_vpc_chgalw, jda_origin,
pmg_ext_po_num, PMG_EXP_RCT_DATE,
pmg_cncl_by_date)
VALUES
(vn_sec_cabe, vn_num_oc,
var_vendor_number,
null, 'Normal',
v_org_lvl_number_oc,
v_bas_usr_name, v_bas_usr_name,
v_curr_code2,
SYSDATE, 'A', 2,
'F', 'T', 'F',
'TRF-EMP', null, null);

lv_line_number :=1;
n_seque :=0;

--detalle de OC
--FOR d3 IN c3(d2.prd_lvl_parent, d2.trf_rec_loc,
d2.trf_manifest_id, d2.trf_number) LOOP --JCS TO.4220.06 31/01/2014 C
FOR d33 IN c3(d22.prd_lvl_parent, d22.trf_rec_loc,
d22.trf_manifest_id, d22.trf_number, d22.tax) LOOP --JCS TO.4220.06
31/01/2014 N

--validando estado de producto


IF d33.prd_status != 0 THEN
update prdmstee p
set prd_status = 0
where p.prd_lvl_child = d33.prd_lvl_child;

insert into prdsteee e


(prd_lvl_child, effect_date, prd_status)
values
(d33.prd_lvl_child, sysdate, 0);
END IF;

select org_lvl_number into v_org_lvl_number


from orgmstee o
where org_lvl_child = d33.org_rec_loc;

--obteniendo el costo promedio de la empresa origen


select cst_type_id, cst_avg_level
into var_cst_type_id, var_cst_avg_level
from csttypee e
where e.cap_chain_id = d22.cap_chain_id
and e.cst_type_number = 1;

--costo promedio
BEGIN
SELECT B.CST_COST
INTO VAR_CP_CST_COST

Página 17/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

FROM CSTMSTEE B, PRDMSTEE P


WHERE CST_TYPE_ID = var_cst_type_id
AND P.PRD_LVL_CHILD = d33.PRD_lvl_CHILD
AND B.PRD_LVL_CHILD = DECODE(P.PRD_LVL_ID, 0,
P.PRD_LVL_PARENT, P.PRD_LVL_CHILD)
AND B.CST_ORG_ID = 0
AND B.CST_LEVEL = var_cst_avg_level;
EXCEPTION WHEN NO_DATA_FOUND THEN
VAR_CP_CST_COST := 0;
END;

--validando Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d33.prd_lvl_child;

/*****************CREANDO CASE PACK


**************************/
IF v_case_cont = 0 THEN

select session_number.nextval
into session_num
from dual;

n_seque := n_seque + 1;

v_case_pack_id := trim(d33.prd_lvl_number)||'_'||n_seque;

--inserta tabla temporal new case pack


insert into FAPRDCPKWWW
(nsession_number, nsecuencia,
prd_lvl_number,
case_pack_id, vendor_number,
curr_code,
vpc_prd_cost, vpc_case_qty,
case_pack_desc,
vpc_cst_start, prd_sll_uom,
primary_flag,
bflag_carga, xdesc_error,
vpc_buy_multiple,
vpc_case_std_pack, eaches_per_inner,
vpc_case_wgt_uom,
--vpc_case_wgt, --JCS 22/07/2015 C
vpc_case_wgt, inv_units_per_inner,
number_of_inners, --JCS 22/07/2015 N
vpc_case_gross_wgt --JCS 30/03/2016 TO.102033.01 N
)
values
(session_num, n_seque,
d33.prd_lvl_number,
v_case_pack_id, var_vendor_number,
v_curr_code,
VAR_CP_CST_COST, 1,
substr(d33.name_full,1,40),

Página 18/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

var_prcfecha, d33.sll_uom, 'F',


null, null, 1,
--1, null,
decode(trim(d3.sll_uom),'KG',d3.sll_uom,null), --JCS 07/09/2015 C
1, 1,
decode(trim(d33.sll_uom),'KG',d33.sll_uom,null), --JCS 07/09/2015 N
--decode(trim(d3.sll_uom),'KG',1,null) --JCS
22/07/2015 C
decode(trim(d33.sll_uom),'KG',1,null), 1, 1,
--JCS 22/07/2015 N
decode(trim(d33.sll_uom),'KG',1,null) --JCS
30/03/2016 TO.102033.01 N
);

prd_load_case_pack_f(session_num, 'JUser', out_resultado);

END IF;

--validando creación de Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d33.prd_lvl_child;

IF v_case_cont > 0 THEN

bastkey('audit_number',0,vn_sec_cabe);

--TO.138741.02 12/03/2018 SN
select count(*)
into lv_cont
from f12hdref
where nfolio = d22.trf_number;

lc_vpc_case_pack_id := null;

If (lv_cont > 0) then


ln_vpc_prd_tech_key :=
Chle3Util.Get_Prd_CP(d33.prd_lvl_child,'F',v_vpc_tech_key,0);

Begin
select vpc_case_pack_id
into lc_vpc_case_pack_id
from vpcprdee
where vpc_prd_tech_key = ln_vpc_prd_tech_key;
Exception
When No_Data_Found Then lc_vpc_case_pack_id:='';
End;
VAR_CP_CST_COST := null;
End if;
--TO.138741.02 12/03/2018 EN

Página 19/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

insert into SDIPMGDTI (


audit_number, tran_type, pmg_seq_num,
--1
pmg_po_number, pmg_line_number,
prd_lvl_number, --2
org_lvl_number, pmg_dtl_type,
vpc_case_pack_id, --3
prd_upc, pmg_sell_qty,
pmg_pack_qty, --4
pmg_sell_cost, pmg_pack_cost,
pmg_res_sell_qty, --5
pmg_retail, vpc_apt_desc,
pmg_pay_date, --6
pmg_call_off_po, dmt_code,
trf_alloc_id, --7
pmg_ship_date, pmg_exp_rct_date,
pmg_cancel_date, --8
pmg_manual_dist, distro_id,
pmg_ship_via, --9
pmg_fob, rcv_qc_exp,
style_prd_lvl_nbr, --10
pmg_track_code, date_created,
download_date_1, --11
download_date_2, pmg_po_notes,
pmg_recv_notes, --12
pmg_pis_date, pmg_ext_rct_date,
pmg_otb_bud_date, --13
pmg_allocator, prd_cross_dock,
pmg_cncl_by_date, --14
pmg_apply_dc_pack, pmg_dc_pack_qty,
vpc_case_qty, --15
vpc_case_std_pack, pmg_dist_sell_qty,
pmg_dtl_tech_key, --16
pmg_ext_po_num, pmg_loc_curr,
pmg_tax_exc_hm, --17
pmg_tax_exc_lc, pmg_tax_exc_po,
pmg_tot_tax_hm, --18
pmg_tot_tax_po, pmg_spread_mult,
frt_terms_desc, --19
ship_via_desc, fob_terms_desc,
pmg_prd_vendor, --20
pmg_reallocate, pmg_aal_method,
pmg_apply_buy_multiple, --21
net_cost_flag, pmg_pack_net_cost)
--22
values (
vn_sec_cabe, 'A' , 0,
--1
vn_num_oc, lv_line_number,
d33.prd_lvl_NUMBER, --2
--v_org_lvl_number, 1, null,
--3
v_org_lvl_number, 1,
lc_vpc_case_pack_id, --3 --EELG 10/04/2018
--null, d3.cantidad, null,
--4 -- JCS 18/06/2014 C

Página 20/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

null, ceil(d33.cantidad), null,


--4 -- JCS 18/06/2014 N
VAR_CP_CST_COST, null, null,
--5
null, null, null,
--6
null, 2, null,
--7
null, null, null,
--8
null, null, null,
--9
null, null, null,
--10
null, var_prcfecha, null,
--11
null, null, null,
--12
null, null, null,
--13
null, null, null,
--14
null, null, null,
--15
null, null, null,
--16
null, null, null,
--17
null, null, null,
--18
null, null, null,
--19
null, null, null,
--20
null, null, null,
--21
null, null);
--22

lv_line_number := lv_line_number +1;

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.ESTADO = 2
where x.prd_lvl_child = d33.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d33.org_rec_loc
and x.trf_manifest_id = d33.trf_manifest_id
and x.trf_number = d33.trf_number;

ELSE

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,

Página 21/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

x.desc_error = 'Producto no tiene case pack',


x.ESTADO = 4
where x.prd_lvl_child = d33.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d33.org_rec_loc
and x.trf_manifest_id = d33.trf_manifest_id
and x.trf_number = d33.trf_number;
END IF;
END LOOP;

insert into FAPMGLOTWW (


tech_lot_key, pmg_po_number, fec_creacion,
usr_tech_key)
values (
vn_lote, vn_num_oc, sysdate,
null);

--procesando SDIs
pmgaddim2(vn_lote, 'T',null,0,100,lv_procesa_x_cola);
END LOOP;

end if;
end if;
End Loop;
commit;

----------------------------------------------------------------------------
-
-- 2da Barrida, proceso normal sin considerar Excepciones

----------------------------------------------------------------------------
-

--nivel de generación de OC
select prd_lvl_id - 1
into v_nivel_oc
from pmgmctee
where rownum = 1;

FOR d2 in c2 LOOP

/***creando cabecera y detalle de OC***/


bastkey('tech_lot_key',0,vn_lote);
bastkey('pmg_po_number',0,vn_num_oc);
bastkey('audit_number',0,vn_sec_cabe);

begin
--obteniendo proveedor
select vpc_tech_key
into v_vpc_tech_key
from FACHNPAREE e
where e.cap_chain_id = d2.cap_chain_id
and rownum = 1;
exception
when no_data_found then return;

Página 22/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

end;

begin
select v.vendor_number , v.curr_code
into var_vendor_number, v_curr_code
from vpcmstee v
where v.vpc_tech_key = v_vpc_tech_key; --2593
exception
when no_data_found then return;
end;

select org_lvl_number
into v_org_lvl_number_oc
from orgmstee
where org_lvl_child = d2.trf_rec_loc;

select bas_user_name
into v_bas_usr_name
from basusree
where usr_signon = 'JUser';

select curr_code
into v_curr_code2
from curmstee
where curr_default ='T';

INSERT INTO sdipmghdi


(audit_number, pmg_po_number, vendor_number,
vpc_shp_point, pmg_type_name, org_lvl_number,
bas_usr_name, pmg_buyer, curr_code,
date_created, tran_type, dmt_code,
po_auto_release, apply_vpc_chgalw, jda_origin,
pmg_ext_po_num, PMG_EXP_RCT_DATE,
pmg_cncl_by_date)
VALUES
(vn_sec_cabe, vn_num_oc,
var_vendor_number,
null, 'Normal',
v_org_lvl_number_oc,
v_bas_usr_name, v_bas_usr_name, v_curr_code2,
SYSDATE, 'A', 2,
--'F', 'T', 'F', --JCS
18/02/2019 C
lc_po_auto_release, 'T', 'F', --JCS
18/02/2019 N
'TRF-EMP', null, null);

lv_line_number :=1;
n_seque :=0;

--detalle de OC
--FOR d3 IN c3(d2.prd_lvl_parent, d2.trf_rec_loc,
d2.trf_manifest_id, d2.trf_number) LOOP --JCS TO.4220.06 31/01/2014 C
FOR d3 IN c3(d2.prd_lvl_parent, d2.trf_rec_loc,
d2.trf_manifest_id, d2.trf_number, d2.tax) LOOP --JCS TO.4220.06 31/01/2014
N

Página 23/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

-- Delta JT 16.04.2018 Inicio


-- Lee JERARQUIA y busca en Excepciones
lv_nivel_id := null;
lv_prd_lvl_number := null;

trf_determina_je(d3.prd_lvl_child,lv_nivel_id,lv_prd_lvl_number);
-- Delta JT 16.04.2018 fin

-- si no encontró en excepciones procesa normal, si existe ya


lo proceso en el primer barrido : no lo procesa
if lv_prd_lvl_number is null then
--validando estado de producto
IF d3.prd_status != 0 THEN

update prdmstee p
set prd_status = 0
where p.prd_lvl_child = d3.prd_lvl_child;

insert into prdsteee e


(prd_lvl_child, effect_date, prd_status)
values
(d3.prd_lvl_child, sysdate, 0);

END IF;

select org_lvl_number
into v_org_lvl_number
from orgmstee o
where org_lvl_child = d3.org_rec_loc;

--obteniendo el costo promedio de la empresa origen


select cst_type_id, cst_avg_level
into var_cst_type_id, var_cst_avg_level
from csttypee e
where e.cap_chain_id = d2.cap_chain_id
and e.cst_type_number = 1;

--costo promedio
BEGIN
SELECT B.CST_COST
INTO VAR_CP_CST_COST
FROM CSTMSTEE B, PRDMSTEE P
WHERE CST_TYPE_ID = var_cst_type_id
AND P.PRD_LVL_CHILD = d3.PRD_lvl_CHILD
AND B.PRD_LVL_CHILD = DECODE(P.PRD_LVL_ID, 0,
P.PRD_LVL_PARENT, P.PRD_LVL_CHILD)
AND B.CST_ORG_ID = 0
AND B.CST_LEVEL = var_cst_avg_level;
EXCEPTION WHEN NO_DATA_FOUND THEN
VAR_CP_CST_COST := 0;
END;

--validando Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v

Página 24/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

where v.vpc_tech_key = v_vpc_tech_key


and v.prd_lvl_child = d3.prd_lvl_child;

/*****************CREANDO CASE PACK


**************************/
IF v_case_cont = 0 THEN

select session_number.nextval
into session_num
from dual;

--n_seque := n_seque + 1; --JCS 18/02/2019 C


n_seque := n_seque + 10; --JCS 18/02/2019 N

v_case_pack_id := trim(d3.prd_lvl_number)||'_'||n_seque;

--inserta tabla temporal new case pack


insert into FAPRDCPKWWW
(nsession_number, nsecuencia,
prd_lvl_number,
case_pack_id, vendor_number,
curr_code,
vpc_prd_cost, vpc_case_qty,
case_pack_desc,
vpc_cst_start, prd_sll_uom,
primary_flag,
bflag_carga, xdesc_error,
vpc_buy_multiple,
vpc_case_std_pack, eaches_per_inner,
vpc_case_wgt_uom,
--vpc_case_wgt, --JCS 22/07/2015 C
vpc_case_wgt, inv_units_per_inner,
number_of_inners, --JCS 22/07/2015 N
vpc_case_gross_wgt --JCS 30/03/2016 TO.102033.01 N
)
values
(session_num, n_seque,
d3.prd_lvl_number,
v_case_pack_id, var_vendor_number,
v_curr_code,
VAR_CP_CST_COST, 1,
substr(d3.name_full,1,40),
var_prcfecha, d3.sll_uom, 'F',
null, null, 1,
--1, null,
decode(trim(d3.sll_uom),'KG',d3.sll_uom,null), --JCS 07/09/2015 C
1, 1,
decode(trim(d3.sll_uom),'KG',d3.sll_uom,null), --JCS 07/09/2015 N
--decode(trim(d3.sll_uom),'KG',1,null) --JCS
22/07/2015 C
decode(trim(d3.sll_uom),'KG',1,null), 1, 1,
--JCS 22/07/2015 N
decode(trim(d3.sll_uom),'KG',1,null) --JCS
30/03/2016 TO.102033.01 N
);

Página 25/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

prd_load_case_pack_f(session_num, 'JUser', out_resultado);

END IF;

--validando creación de Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d3.prd_lvl_child;

IF v_case_cont > 0 THEN

bastkey('audit_number',0,vn_sec_cabe);

--EELG 10/04/2018 SN
select count(*)
into lv_cont
from f12hdref
where nfolio = d2.trf_number;

lc_vpc_case_pack_id := null;

If (lv_cont > 0) then


ln_vpc_prd_tech_key :=
Chle3Util.Get_Prd_CP(d3.prd_lvl_child,'F',v_vpc_tech_key,0);

Begin
select vpc_case_pack_id
into lc_vpc_case_pack_id
from vpcprdee
where vpc_prd_tech_key = ln_vpc_prd_tech_key;
Exception
When No_Data_Found Then lc_vpc_case_pack_id:='';
End;
VAR_CP_CST_COST := null;
--JCS 18/02/2019 SN
Else
Begin
select v.vpc_case_pack_id
into lc_vpc_case_pack_id
from vpcprdee v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d3.prd_lvl_child
and rownum = 1;
Exception
When No_Data_Found Then lc_vpc_case_pack_id:='';
End;
--JCS 18/02/2019 EN
End if;
--EELG 10/04/2018 EN

insert into SDIPMGDTI (


audit_number, tran_type, pmg_seq_num,

Página 26/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

--1
pmg_po_number, pmg_line_number,
prd_lvl_number, --2
org_lvl_number, pmg_dtl_type,
vpc_case_pack_id, --3
prd_upc, pmg_sell_qty,
pmg_pack_qty, --4
pmg_sell_cost, pmg_pack_cost,
pmg_res_sell_qty, --5
pmg_retail, vpc_apt_desc,
pmg_pay_date, --6
pmg_call_off_po, dmt_code,
trf_alloc_id, --7
pmg_ship_date, pmg_exp_rct_date,
pmg_cancel_date, --8
pmg_manual_dist, distro_id,
pmg_ship_via, --9
pmg_fob, rcv_qc_exp,
style_prd_lvl_nbr, --10
pmg_track_code, date_created,
download_date_1, --11
download_date_2, pmg_po_notes,
pmg_recv_notes, --12
pmg_pis_date, pmg_ext_rct_date,
pmg_otb_bud_date, --13
pmg_allocator, prd_cross_dock,
pmg_cncl_by_date, --14
pmg_apply_dc_pack, pmg_dc_pack_qty,
vpc_case_qty, --15
vpc_case_std_pack, pmg_dist_sell_qty,
pmg_dtl_tech_key, --16
pmg_ext_po_num, pmg_loc_curr,
pmg_tax_exc_hm, --17
pmg_tax_exc_lc, pmg_tax_exc_po,
pmg_tot_tax_hm, --18
pmg_tot_tax_po, pmg_spread_mult,
frt_terms_desc, --19
ship_via_desc, fob_terms_desc,
pmg_prd_vendor, --20
pmg_reallocate, pmg_aal_method,
pmg_apply_buy_multiple, --21
net_cost_flag, pmg_pack_net_cost)
--22
values (
vn_sec_cabe, 'A' , 0,
--1
vn_num_oc, lv_line_number,
d3.prd_lvl_NUMBER, --2
--v_org_lvl_number, 1, null,
--3
v_org_lvl_number, 1,
lc_vpc_case_pack_id, --3 --EELG 10/04/2018
--null, d3.cantidad, null,
--4 -- JCS 18/06/2014 C
null, ceil(d3.cantidad), null,
--4 -- JCS 18/06/2014 N

Página 27/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

VAR_CP_CST_COST, null, null,


--5
null, null, null,
--6
null, 2, null,
--7
null, null, null,
--8
null, null, null,
--9
null, null, null,
--10
null, var_prcfecha, null,
--11
null, null, null,
--12
null, null, null,
--13
null, null, null,
--14
null, null, null,
--15
null, null, null,
--16
null, null, null,
--17
null, null, null,
--18
null, null, null,
--19
null, null, null,
--20
null, null, null,
--21
null, null);
--22

lv_line_number := lv_line_number +1;

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.ESTADO = 2
where x.prd_lvl_child = d3.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d3.org_rec_loc
and x.trf_manifest_id = d3.trf_manifest_id
and x.trf_number = d3.trf_number;

ELSE

UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.desc_error = 'Producto no tiene case pack',
x.ESTADO = 4

Página 28/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

where x.prd_lvl_child = d3.prd_lvl_child


and x.ESTADO = 1
and x.org_rec_loc = d3.org_rec_loc
and x.trf_manifest_id = d3.trf_manifest_id
and x.trf_number = d3.trf_number;

END IF;

--JCS 09/12/2013 TO.4209.01 SC


/*If d3.prd_lvl_id = 0 Then
--Creacion de Case Pack Estilo
select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d3.prd_lvl_parent;

If v_case_cont = 0 Then
select session_number.nextval into session_num from dual;

n_seque := n_seque + 1;

select prd_lvl_number, prd_name_full, prd_sll_uom


into v_prd_lvl_number_parent, v_prd_name_full_parent,
v_prd_sll_uom_parent
from prdmstee
where prd_lvl_child = d3.prd_lvl_parent;

v_case_pack_id := trim(v_prd_lvl_number_parent)||'_'||
n_seque;

--inserta tabla temporal new case pack


insert into FAPRDCPKWWW
(nsession_number, nsecuencia,
prd_lvl_number,
case_pack_id, vendor_number,
curr_code,
vpc_prd_cost, vpc_case_qty,
case_pack_desc,
vpc_cst_start, prd_sll_uom,
primary_flag,
bflag_carga, xdesc_error,
vpc_buy_multiple,
vpc_case_std_pack, eaches_per_inner,
vpc_case_wgt_uom,
vpc_case_wgt)
values
(session_num, n_seque,
v_prd_lvl_number_parent,
v_case_pack_id, var_vendor_number,
v_curr_code,
VAR_CP_CST_COST, 1,
substr(v_prd_name_full_parent,1,40),
var_prcfecha, v_prd_sll_uom_parent, 'F',
null, null, 1,
1, null,

Página 29/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

decode(trim(v_prd_sll_uom_parent),'KG',v_prd_sll_uom_parent,null),
decode(trim(v_prd_sll_uom_parent),'KG',1,null));

prd_load_case_pack_f(session_num, 'JUser', out_resultado);


End If;

--validando creación de Case Pack


select count(0)
into v_case_cont
from VPCPRDEE v
where v.vpc_tech_key = v_vpc_tech_key
and v.prd_lvl_child = d3.prd_lvl_child;

If v_case_cont = 0 Then
UPDATE fatrftimee x
SET x.DFECHA_OC = var_prcfecha,
x.pmg_po_number = vn_num_oc,
x.desc_error = x.desc_error||' Estilo no tiene case
pack',
x.ESTADO = 4
where x.prd_lvl_child = d3.prd_lvl_child
and x.ESTADO = 1
and x.org_rec_loc = d3.org_rec_loc
and x.trf_manifest_id = d3.trf_manifest_id
and x.trf_number = d3.trf_number;
End If;
End If;*/
--JCS 09/12/2013 TO.4209.01 EC

end if;
END LOOP;

--JCS 09/12/2013 TO.4209.01 SC


--Insertar estilos correspondientes a variaciones.
/*FOR sdi IN c4(vn_num_oc) LOOP

SELECT vp.vpc_case_pack_id
INTO lv_vpc_case_pack_id
FROM vpcprdee vp
WHERE vp.vpc_tech_key = v_vpc_tech_key
AND vp.prd_lvl_child = sdi.prd_lvl_child;

--Grabar línea de Detalle por Estilo (Totalizando por


Variaciones)
insert into sdipmgdti
(audit_number, pmg_po_number,
prd_lvl_number,
pmg_sell_qty , pmg_prd_vendor,
org_lvl_number,
tran_type, pmg_seq_num,
pmg_dtl_type,
dmt_code, date_created,
pmg_line_number,
style_prd_lvl_nbr, vpc_case_pack_id,
pmg_dist_sell_qty,
pmg_res_sell_qty)

Página 30/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

values
(audit_number.nextval, vn_num_oc,
sdi.prd_lvl_number,
sdi.pmg_sell_qty, NULL,
sdi.org_lvl_number,
'A', 0, 1,
2, trunc(sysdate),
sdi.pmg_line_number,
null, lv_vpc_case_pack_id,
sdi.pmg_sell_qty,
sdi.pmg_sell_qty);
END LOOP;*/
--JCS 09/12/2013 TO.4209.01 EC

insert into FAPMGLOTWW (


tech_lot_key, pmg_po_number, fec_creacion,
usr_tech_key)
values (
vn_lote, vn_num_oc, sysdate,
null);

--procesando SDIs
pmgaddim2(vn_lote, 'T',null,0,100,lv_procesa_x_cola);

/* --Validando creación de OC
Select count(0)
into v_valida_oc
from pmghdree
where pmg_po_number = vn_num_oc;

--Si no existe la OC no se crea la recepción


IF v_valida_oc > 0 THEN
PMG_RPT_PENDLIBINTEMP_F(var_prcfecha);
END IF;*/

END LOOP;

commit;

--alerta de OCs pendientes


PMG_RPT_PENDLIBINTEMP_F(var_prcfecha);

EXCEPTION
WHEN OTHERS THEN
errhandle (v_procedimiento);
RAISE;
END;
END;

3. Logical Outline:
o Ninguno

Página 31/32
TO.BTL-2019-00000.00 - SP TRF_GENERA_OC_TIM_F PROCEDURE

4. Called From:
o Ninguno

5. Called To:
o Ninguno

6. Consideraciones de Migración:
o Ambientes:
Desarrollo PMMINTDS
Test PMMINTPETS
Producción PMMINTPEPR

Firmas

___________________ ______________________
Technical Manager Cliente Jefe proyecto Cliente

Página 32/32

También podría gustarte