dbo.LN_contrapartes_DE_LCS

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

12
Name Data Type Length Description
@prod varchar 10
@accion varchar 20
@contraparte int 4
@cliente int 4
@producto int 4
@desde date 3
@hasta date 3
@visible bit 1
@monto float 8
@moneda varchar 10
@id int 4
@texto varchar 100

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
23-07-2020
Marita Soria
Busca cifras de la tabla ln_dep_econ_compras para el producto Dependencia economica o Limite de Credito de la contraparte solicitada
exec [LN_contrapartes_DE_LCS] 'DE','productos', 95, 5546348

select * from clientes where cli_codigo = 10314
select * from ln_dep_econ_compras where cliente = 528397
*/

/*
exec [LN_contrapartes_DE_LCS] 'MLCS','delete', 31319,null,null,null,null,null,null,null,6621 
select * from LN_contrapartes_queue where processed = 0


LN_contrapartes_DE_LCS 'DE', 'productos', 147069, 1226057645,2035,'2020-01-01','2020-12-01',1,50000,'ARS'
*/

CREATE OR ALTER PROCEDURE dbo.LN_contrapartes_DE_LCS 
 @prod    varchar(10), 
 @accion      varchar(20),
 @contraparte int,
 @cliente  int,
 @producto int = null, 
 @desde date = null, 
 @hasta date = null, 
 @visible bit = null, 
 @monto float = null, 
 @moneda varchar(10) = null, 
 @id int = null,
 @texto varchar(100) = null  
AS
BEGIN
 SET NOCOUNT ON;
 declare @identificacion varchar(20), 
 @id_padron int 
 declare @familia  int = (select familia from ln_contraparte_familias where contraparte = @contraparte and activo = 1)
 select @identificacion = padrones.identificacion, @id_padron = padrones.id_padron
   from ln_contrapartes
  inner join padrones on padrones.id_padron = ln_contrapartes.id_padron 
  where contraparte = @contraparte

 if (@prod = 'DE')
 begin
  if (@accion = 'productos')
  begin
      select top 1 P.producto, P.nombre_producto
   from LN_productos P
   inner join LN_cliente_productos CP on CP.producto = P.producto 
   inner join LN_familia_productos FP on FP.producto = P.producto 
   where CP.cliente = @cliente
   and FP.familia = @familia
   and FP.activo = 1
   and P.visible = 1 
   and P.producto_id in ('dependEconomica','dependEconomicaBal')
  end 

  if (@accion = 'select')
  begin 
   select distinct cliente, contraparte, total_compras as monto, desde, convert(varchar,desde,103) as desde_dmy, 
                   hasta, convert(varchar,hasta,103) as hasta_dmy, DE.producto, P.producto_id, P.nombre_producto, 
       moneda, cotizacion, DE.visible, DE.id 
   from ln_dep_econ_compras  DE
   inner join LN_productos P on P.producto = DE.producto 
   inner join LN_familia_productos FP on FP.producto = P.producto 
   where DE.cliente = @cliente and DE.contraparte = @contraparte --and DE.visible = 1 
   and FP.familia = @familia
   and FP.activo = 1
   and P.visible = 1 
   and P.producto_id in ('dependEconomica','dependEconomicaBal')
   order by hasta desc
 
  end 

  if (@accion = 'delete')
  begin 
   update Ln_dep_econ_compras  
   set visible = iif(visible = 0, 1, 0), 
    modified = getdate()
   where id = @id 
  end 

  if (@accion = 'insert')
  begin 
   set @hasta = dateadd(mm,+1,@hasta)
   if (@desde is null) set @desde = dateadd(yy,-1,@hasta) 
   set @hasta = dateadd(dd,-1,@hasta)
   insert into Ln_dep_econ_compras  (cliente, contraparte, identificacion, id_padron, 
                                     producto, desde, hasta, total_compras, valor_cliente, moneda, 
             cotizacion, visible, created) 
      values (@cliente, @contraparte, @identificacion, @id_padron, 
           @producto, @desde, @hasta, @monto, @monto, @moneda, 
     1, 1, getdate()) 
   select 'insert OK'    
  end 
 end 

 if (@prod = 'LCS')
 begin
  if (@accion = 'select')
  begin 
   select distinct cliente, contraparte, monto_credito_solicitado as monto, fecha_solicitud as desde, convert(varchar,fecha_solicitud,103) as desde_dmy, 
       fecha_solicitud, convert(varchar,fecha_solicitud,103) as hasta_dmy, DE.producto, P.producto_id, P.nombre_producto, 
    moneda, cotizacion, DE.visible, DE.id, texto
   from ln_dep_econ_compras  DE
   inner join LN_productos P on P.producto = DE.producto 
   inner join LN_familia_productos FP on FP.producto = P.producto 
   where DE.cliente = @cliente and DE.contraparte = @contraparte --and DE.visible = 1 
   and FP.familia = @familia
   and FP.activo = 1
   and P.visible = 1 
   and P.producto_id in ('limiteCredito')
  end 
 end 

 if (@prod = 'LCS' or @prod = 'MLCS')
 begin
  if (@accion = 'delete')
  begin 
   update Ln_dep_econ_compras  
   set visible = iif(visible = 0, 1, 0), 
    modified = getdate()
   where id = @id 
  end 

  if (@accion = 'insert')
  begin 
   insert into Ln_dep_econ_compras  (cliente, contraparte, identificacion, id_padron, 
                                     producto, fecha_solicitud, monto_credito_solicitado, moneda, 
             cotizacion, visible, created, texto) 
      values (@cliente, @contraparte, @identificacion, @id_padron, 
           @producto, @desde, @monto, @moneda, 
     1, 1, getdate(), @texto)     
  end 
 end 

 if (@prod = 'MLCS')
 begin
  if (@accion = 'select')
  begin 
   select distinct cliente, contraparte, monto_credito_solicitado as monto, fecha_solicitud as desde, convert(varchar,fecha_solicitud,103) as desde_dmy, 
       fecha_solicitud, convert(varchar,fecha_solicitud,103) as hasta_dmy, DE.producto, P.producto_id, P.nombre_producto, 
    moneda, cotizacion, DE.visible, DE.id, texto
   from ln_dep_econ_compras  DE
   inner join LN_productos P on P.producto = DE.producto 
   inner join LN_familia_productos FP on FP.producto = P.producto 
   where DE.cliente = @cliente and DE.contraparte = @contraparte --and DE.visible = 1 
   and FP.familia = @familia
   and FP.activo = 1
   and P.visible = 1 
   and P.producto_id in ('limiteCreditoMultiple')
  end 
  end

  if (@accion = 'insert' or @accion = 'delete')
  begin
     if not exists (select * from LN_contrapartes_queue where contraparte = @contraparte and processed = 0)
    insert into LN_contrapartes_queue(contraparte) values (@contraparte)
  end

END 

GO

Used By

No items found