Transact BCP
Transact BCP
GO
/****** Object: StoredProcedure [dbo].[SYP_PM_BCP] Script Date: 5/18/2023
6:00:20 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SYP_PM_BCP]
(
@NombrePago NVARCHAR(100),
@MetodoPago NVARCHAR(50)
)
AS
--------------------------------------------------------
/* VARIABLES A SOLICITAR*/
--DECLARE @NombrePago NVARCHAR(100)
--DECLARE @MetodoPago NVARCHAR(50)
--------------------------------------------------------
BEGIN
SET NOCOUNT ON
/* VARIABLES GENERALES*/
DECLARE @dtw_ruta_config varchar(500)
DECLARE @moneda nvarchar(3)
DECLARE @TIPO_CTA_PROV NVARCHAR(20) -- TIPO DE LA CTA DE LA EMPRESA
-----------------------------------------------------------------------------------
------------------------------------------------------------
/* VARIABLES DETALLE DOCUMENTOS PROVEEDORES */
SET @TIPO_REG3 = '3' --VALOR FIJO 3
-----------------------------------------------------------------------------------
------------------------------------------------------------
/* DETALLE PROVEEDORES*/
--Cambio de Account de OCRB a Ref2 de PWZ3
SELECT '2'+
(CASE (select Top 1 isnull(Ref1, ' ') from pwz3 where IdEntry = t4.IdEntry and
CardCode = t4.CardCode)
when 'B' THEN
(case (SELECT A."Branch" FROM "OCRB" A WHERE A."CardCode"=
(T4."CardCode")
AND A."ControlKey"= (SELECT SUBSTRING("CurrCode",1,2) FROM
"PYM1" WHERE "PymCode" = @MetodoPago)
AND A."BankCode" =(SELECT B."BnkDflt" FROM "OPYM" B WHERE
B."PayMethCod"= @MetodoPago)
AND A.Account = (select Top 1 isnull(Ref2, ' ') from pwz3
where IdEntry = t4.IdEntry and CardCode = t4.CardCode))
when 'A' THEN 'A'
WHEN 'C' THEN 'C'
ELSE 'M' END)
when 'I' then 'B' else ' ' end ) +--as "TIPO CTA DE ABONO",
(CASE when (select Top 1 isnull(Ref1, ' ') from pwz3 where IdEntry = t4.IdEntry
and CardCode = t4.CardCode) ='G'
then ''
else REPLACE((select Top 1 isnull(Ref2, ' ') from pwz3 where IdEntry =
t4.IdEntry and CardCode = t4.CardCode),'-','') end )+
SPACE( 20-LEN(CASE when (select Top 1 isnull(Ref1, ' ') from pwz3 where IdEntry =
t4.IdEntry and CardCode = t4.CardCode) = 'G'
then ''
else REPLACE((select Top 1 isnull(Ref2, ' ') from pwz3 where IdEntry =
t4.IdEntry and CardCode = t4.CardCode),'-','') end ) ) +--as "CuentaAbono Prov",
(CASE when (select Top 1 isnull(Ref1, ' ') from pwz3 where IdEntry = t4.IdEntry
and CardCode = t4.CardCode) ='G'
then '2' else '1' end ) + --as "MODALIDAD DE PAGO",
CASE isnull(T3."U_SYP_BPTD",'6') WHEN '1' THEN '1'--'DNI'
WHEN '4' THEN '4'--'CE'
WHEN '6' THEN '6'--'RUC'
WHEN '7' THEN '7'--'PAS'
ELSE '6' END + --as "TIPO DE DOC DEL PROVEEDOR" ,
LEFT( T3."LicTradNum"+REPLICATE(' ', 12),12) + -- "NÚMERO DE DOC DEL PROVEEDOR",
SPACE(3)+-- "doc NIÑO",
--T4."InvPayAmnt" AS "IMPORTE",
CASE (CASE WHEN SUBSTRING("NumAtCard", 1, 2) = '01' THEN 'F'
WHEN SUBSTRING("NumAtCard", 1, 2) = '07' THEN 'N'
WHEN SUBSTRING("NumAtCard", 1, 2) = '08' THEN 'C' ELSE 'D' END) WHEN 'N' THEN
(T4."InvPayAmnt" * -1)
ELSE (T4."InvPayAmnt")END AS "IMPORTE",
4 AS "NIVEL",
UPDATE #SYP_TLC_BCP
SET "LINEA" = LEFT("LINEA",178)+
RIGHT(REPLICATE('0', 17) + CAST(CAST("IMPORTE" AS NUMERIC(14,2)) AS NVARCHAR), 17)
+ -- "MONTO",
'S'
where "NIVEL" = 2
-----------------------------------------------------------------------------------
--------------------------------------------------------------
/* DETALLE DOCUMENTOS PROVEEDORES*/
INSERT INTO #SYP_TLC_BCP (LINEA,CODIGO,IMPORTE,NIVEL,DOCENTRY,FLAG_EXO_ITF)
SELECT
'3' + --TIPO_REG3
CASE WHEN SUBSTRING("NumAtCard", 1, 2) = '01' THEN 'F'
WHEN SUBSTRING("NumAtCard", 1, 2) = '07' THEN 'N'
WHEN SUBSTRING("NumAtCard", 1, 2) = '08' THEN 'C' ELSE 'D' END +--Tipo doc Pago
--LEFT(REPLACE(SUBSTRING(T0."NumAtCard",4,12),'-','')+REPLICATE('0', 15) , 15) +--
Numero Documento
--RIGHT('000000000' +
Ltrim(Rtrim(REPLACE(SUBSTRING(T0."NumAtCard",4,12),'-',''))),15)+
RIGHT(REPLICATE('0', 15) + RIGHT((REPLICATE('0',(SELECT A.U_SYP_SIZESER FROM
"@SYP_TPODOC" A WHERE A.U_SYP_TDTD = SUBSTRING(T0.NumAtCard,1,2))) +
CONVERT(nvarchar(4),REPLACE(SUBSTRING(T0.NumAtCard,4,(SELECT A.U_SYP_SIZESER FROM
"@SYP_TPODOC" A WHERE A.U_SYP_TDTD = SUBSTRING(T0.NumAtCard,1,2))),'-',''))),
(SELECT A.U_SYP_SIZESER FROM "@SYP_TPODOC" A WHERE A.U_SYP_TDTD =
SUBSTRING(T0.NumAtCard,1,2))) + RIGHT((REPLICATE('0',(SELECT A.U_SYP_SIZECOR FROM
"@SYP_TPODOC" A WHERE A.U_SYP_TDTD = SUBSTRING(T0.NumAtCard,1,2))) +
CONVERT(nvarchar(8),REPLACE(SUBSTRING(T0.NumAtCard,9,(SELECT A.U_SYP_SIZECOR FROM
"@SYP_TPODOC" A WHERE A.U_SYP_TDTD = SUBSTRING(T0.NumAtCard,1,2))),'-',''))),
(SELECT A.U_SYP_SIZECOR FROM "@SYP_TPODOC" A WHERE A.U_SYP_TDTD =
SUBSTRING(T0.NumAtCard,1,2))) ,15) +
CASE (CASE WHEN SUBSTRING("NumAtCard", 1, 2) = '01' THEN 'F'
WHEN SUBSTRING("NumAtCard", 1, 2) = '07' THEN 'N'
WHEN SUBSTRING("NumAtCard", 1, 2) = '08' THEN 'C' ELSE 'D' END) WHEN 'N' THEN
RIGHT(REPLICATE('0', 17) + CAST(CAST(abs(T0."InvPayAmnt" * -1) AS NUMERIC(14,2)) AS
NVARCHAR), 17)
ELSE RIGHT(REPLICATE('0', 17) + CAST(CAST(abs(T0."InvPayAmnt") AS NUMERIC(14,2))
AS NVARCHAR), 17) END as "LINEA",--monto
T0."CardCode",
CASE (CASE WHEN SUBSTRING("NumAtCard", 1, 2) = '01' THEN 'F'
WHEN SUBSTRING("NumAtCard", 1, 2) = '07' THEN 'N'
WHEN SUBSTRING("NumAtCard", 1, 2) = '08' THEN 'C' ELSE 'D' END) WHEN 'N' THEN
(T0."InvPayAmnt" * -1)
ELSE (T0."InvPayAmnt")END,
3 ,ISNULL(T0."TransId", T0."InvKey"),
ISNULL(CASE WHEN (SELECT A.U_SYP_TCUENTA FROM OCRG A WHERE A.GroupCode =
T2.GroupCode) = 'Y' THEN 'S' ELSE 'N' END , 'N') as "FLAG_EXO_ITF"
FROM PWZ3 T0
INNER JOIN OPWZ T1 ON(T0."IdEntry" = T1."IdNumber")
INNER JOIN OCRD T2 ON(T0."CardCode" = T2."CardCode")
INNER JOIN PWZ2 T3 ON(T1."IdNumber" = T3."IdEntry") --METODOS DE PAGO
SET @TOTALCONTROL_CAB =
RIGHT('000000000000000'+LTRIM(STR(@TOTALCONTROL_CAB1,15,0)),15)
END