dbo.backend_balances_contables

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

8
Name Data Type Length Description
@p_id_balance int 4
@p_Cuit varchar 20
@p_anios smallint 2
@p_visible bit 1
@p_task_id varchar 20
@p_user_id int 4
@p_res_fin_cash decimal 13
@p_res_fin_no_cash decimal 13

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec backend_balances_contables null,'30501152826',60,1,'',15342812
exec backend_balances_contables 365506,null,null,null,null,15342812
*/

CREATE OR ALTER PROCEDUREdbo.backend_balances_contables
@p_id_balance int, -- si viene nulo busca los otros tres campos, si viene con valor solo busca por este id.
@p_Cuit varchar(20),
@p_anios smallint,
@p_visible bit,
@p_task_id varchar(20) = '', 
@p_user_id int = 0,
@p_res_fin_cash decimal(20,2) = null,
@p_res_fin_no_cash decimal(20,2) = null

-- Se muestran todos juntos (no separados en Visibles y No visibles)

AS
BEGIN
/*
select * from balances_contables where cuit='30553863046'
update balances_contables set res_fin_cash=3233,res_fin_no_cash=4512 where cuit='30553863046'

exec backend_balances_contables 381992,'30553863046',5,1

*/


SET NOCOUNT ON;
  
declare @dtStart date, @dtEnd date

if (@p_id_balance is not null) 
   begin
    set @p_cuit = null
    set @p_anios = null
    set @p_visible = null
   end  
else 
   begin
    set @dtEnd = getdate()
    set @dtStart = dateadd(year, (-1)*(@p_anios), @dtEnd)
   end 
  

if (@p_id_balance is not null) 

begin
  select 
  bc.id_balance,
  bc.cuit,
  bc.codigo,
  bc.fecha_balance,
  bc.bal_manifestacion,
  bc.ejercicio,
  bc.periodo,
  bc.monedaifx,
  bc.moneda as moneda,
 
  bc.ac_cajban,
  bc.ac_inver,
     bc.ac_crevta,
  bc.ac_otrcre,
  bc.ac_biecam,
  bc.ac_otract,
  bc.ac_bietan,
  bc.ac_total,

  bc.anc_crevta,
  bc.anc_otrcre,
  bc.anc_inver,
  bc.anc_actint,
  bc.anc_otract,
  bc.anc_bieuso,
  bc.anc_bieusovo,
  bc.anc_depacu,
  bc.anc_total,

  bc.act_total,

  bc.pc_ctapag,
  bc.pc_presta,
  bc.pc_remune,
  bc.pc_carfis,
  bc.pc_antcli,
  bc.pc_otrpas,
  bc.pc_total,
 
  bc.pnc_cuepag,
  bc.pnc_previ,
  bc.pnc_presta,
  bc.pnc_otrpas,
  bc.pnc_deufis,
  bc.pnc_total,
 
  bc.pas_total,

  bc.capsoc,
  bc.resacu,
  bc.res_noasig,

  bc.patrimonio,

  bc.res_vtanet,
  bc.res_compras,
  bc.res_cosmer,
  bc.amortiza,
  bc.res_gascom,
  bc.res_gasadm,
  bc.res_gasfin,
  --res_otros,
  --res_resinv,
  --res_ie,
  bc.res_otrosing,
  bc.res_otrosegr,
  bc.res_resfin,
  bc.res_iva,
  --total_res,
  bc.ganancia,
  bc.ebitda,
  bc.ajucap,

  bc.notas,
  bc.valoracion, 
  bc.comentarios,

  bc.ind_liqcorr,
  bc.ind_liqseca,
  bc.ind_endeu,
  bc.ind_solvencia,
  bc.ind_endeuact,
  bc.ind_captra,
  bc.ind_cappro,
  bc.ind_invbu,
  bc.ind_inmact,
  bc.ind_inmpat,
  bc.ind_marbru,
  bc.ind_utilfin,
  bc.ind_retpat,
  bc.ind_rotvta,
  bc.ind_rotvta_dias,
  bc.ind_rotact,
  bc.ind_rotact_dias,
  bc.ind_rentabilidad,
  bc.ind_indrot,
  bc.ind_indrot_dias,
  bc.ind_rotinv,
  bc.ind_rotinv_dias,
  bc.ind_prest_pn,
  bc.ind_prest_vtas,
  bc.ind_solvencia_pat,
  bc.ind_ebipas,

  bc.fecha_act,
  bc.usuario,
  bc.idifx,
  bc.created,
  bc.created_by,
  bc.modified,
  bc.modified_by,
  bc.visible,
  bc.estado,
  bc.id_padron,

  visible = case bc.visible
   when 1 then 'ACTIVO'
   when 0 then 'INACTIVO' 
  end, 
  bal_man = case bc.bal_manifestacion
   when 'M' then 'Manifestación Bienes'
   when 'B' then 'Balance' 
  end,
  fecha_dia_mes_anio = convert(varchar(10),bc.fecha_balance,103),
  monedas.nombre_moneda,
  bc.task_id,
  tareas_usuarios_documentos.user_id as usuario_tarea,
  tareas_usuarios_documentos.fecha_inicio_tarea,
  tareas_usuarios_documentos.fecha_rechazo,
  tareas_usuarios_documentos.fecha_aprobacion, 
  tareas_usuarios_documentos.fecha_fin_tarea,
  bc.ruta_archivo, 
    ug.user_id as ug_user, ug.group_id as ug_group,
  -- Si el usuario tiene permiso para publicar BALANCES-COMPLETO --> autorizado
 -- Si el usuario tiene peromiso para publicar BALANCES-PUBLICACION y la tarea es de el, o no es de nadie --> autorizado, si la tarea es de otro --> NOautorizado
 -- Si el usuario no tiene permiso para publicar --> NOautorizado
'autorizado' as autorizado,
   iif((isnull(ug.group_id,0)=1001 or 
     (isnull(ug.group_id,0)=1000 and ug.user_id = tareas_usuarios_documentos.user_id) or 
     (isnull(ug.group_id,0)=1000 and isnull(bc.task_id,0) = 0))
   ,'autorizado','NOautorizado') as autorizadoORIG,

   res_fin_cash,res_fin_no_cash,rec_pam, 
   cargar_datos, 
   nominal_ajustado
 
  from balances_contables bc
  left join monedas
  on monedas.moneda = bc.moneda
  left join tareas_usuarios_documentos
    on tareas_usuarios_documentos.task_id = bc.task_id

    left join users_by_group ug on ug.user_id = @p_user_id and ug.group_id in (1000,1001)

  where bc.id_balance = @p_id_balance

  order by bc.fecha_balance desc
end

else 

begin

 if (@p_task_id != '') 

 begin

   select 
  bc.id_balance,
  bc.cuit,
  bc.codigo,
  bc.fecha_balance,
  bc.bal_manifestacion,
  bc.ejercicio,
  bc.periodo,
  bc.monedaifx,
  bc.moneda as moneda,
 
  bc.ac_cajban,
  bc.ac_inver,
     bc.ac_crevta,
  bc.ac_otrcre,
  bc.ac_biecam,
  bc.ac_otract,
  bc.ac_bietan,
  bc.ac_total,

  bc.anc_crevta,
  bc.anc_otrcre,
  bc.anc_inver,
  bc.anc_actint,
  bc.anc_otract,
  bc.anc_bieuso,
  bc.anc_bieusovo,
  bc.anc_depacu,
  bc.anc_total,

  bc.act_total,

  bc.pc_ctapag,
  bc.pc_presta,
  bc.pc_remune,
  bc.pc_carfis,
  bc.pc_antcli,
  bc.pc_otrpas,
  bc.pc_total,
 
  bc.pnc_cuepag,
  bc.pnc_previ,
  bc.pnc_presta,
  bc.pnc_otrpas,
  bc.pnc_deufis,
  bc.pnc_total,
 
  bc.pas_total,

  bc.capsoc,
  bc.resacu,
  bc.res_noasig,

  bc.patrimonio,

  bc.res_vtanet,
  bc.res_compras,
  bc.res_cosmer,
  bc.amortiza,
  bc.res_gascom,
  bc.res_gasadm,
  bc.res_gasfin,
  --res_otros,
  --res_resinv,
  --res_ie,
  bc.res_otrosing,
  bc.res_otrosegr,
  bc.res_resfin,
  bc.res_iva,
  --total_res,
  bc.ganancia,
  bc.ebitda,
  bc.ajucap,

  bc.notas,
  bc.valoracion, 
  bc.comentarios,

  bc.ind_liqcorr,
  bc.ind_liqseca,
  bc.ind_endeu,
  bc.ind_solvencia,
  bc.ind_endeuact,
  bc.ind_captra,
  bc.ind_cappro,
  bc.ind_invbu,
  bc.ind_inmact,
  bc.ind_inmpat,
  bc.ind_marbru,
  bc.ind_utilfin,
  bc.ind_retpat,
  bc.ind_rotvta,
  bc.ind_rotvta_dias,
  bc.ind_rotact,
  bc.ind_rotact_dias,
  bc.ind_rentabilidad,
  bc.ind_indrot,
  bc.ind_indrot_dias,
  bc.ind_rotinv,
  bc.ind_rotinv_dias,
  bc.ind_prest_pn,
  bc.ind_prest_vtas,
  bc.ind_solvencia_pat,
  bc.ind_ebipas,

  bc.fecha_act,
  bc.usuario,
  bc.idifx,
  bc.created,
  bc.created_by,
  bc.modified,
  bc.modified_by,
  bc.visible,
  bc.estado,
  bc.id_padron,

  visible = case bc.visible
   when 1 then 'ACTIVO'
   when 0 then 'INACTIVO' 
  end, 
  bal_man = case bc.bal_manifestacion
   when 'M' then 'Manifestación Bienes'
   when 'B' then 'Balance' 
  end,
  fecha_dia_mes_anio = convert(varchar(10),bc.fecha_balance,103),
  monedas.nombre_moneda,
  bc.task_id,
  tareas_usuarios_documentos.user_id as usuario_tarea,
  tareas_usuarios_documentos.fecha_inicio_tarea,
  tareas_usuarios_documentos.fecha_rechazo,
  tareas_usuarios_documentos.fecha_aprobacion, 
  tareas_usuarios_documentos.fecha_fin_tarea,
  bc.ruta_archivo,
    ug.user_id as ug_user, ug.group_id as ug_group,
    -- Si el usuario tiene permiso para publicar BALANCES-COMPLETO --> autorizado
 -- Si el usuario tiene peromiso para publicar BALANCES-PUBLICACION y la tarea es de el, o no es de nadie --> autorizado, si la tarea es de otro --> NOautorizado
 -- Si el usuario no tiene permiso para publicar --> NOautorizado
'autorizado' as autorizado,
   iif((isnull(ug.group_id,0)=1001 or 
     (isnull(ug.group_id,0)=1000 and ug.user_id = tareas_usuarios_documentos.user_id) or 
     (isnull(ug.group_id,0)=1000 and isnull(bc.task_id,0) = 0))
   ,'autorizado','NOautorizado') as autorizadoORIG,
   res_fin_cash,res_fin_no_cash,rec_pam,
   cargar_datos, 
   nominal_ajustado

  from balances_contables bc
  left join monedas
  on monedas.moneda = bc.moneda
  left join tareas_usuarios_documentos
    on tareas_usuarios_documentos.task_id = bc.task_id
    left join users_by_group ug on ug.user_id = @p_user_id and ug.group_id in (1000,1001)


  where bc.task_id  = CONVERT(int, @p_task_id) 

  order by bc.fecha_balance desc

 end 

 else 

 begin

   select 
  bc.id_balance,
  bc.cuit,
  bc.codigo,
  bc.fecha_balance,
  bc.bal_manifestacion,
  bc.ejercicio,
  bc.periodo,
  bc.monedaifx,
  bc.moneda as moneda,
 
  bc.ac_cajban,
  bc.ac_inver,
     bc.ac_crevta,
  bc.ac_otrcre,
  bc.ac_biecam,
  bc.ac_otract,
  bc.ac_bietan,
  bc.ac_total,

  bc.anc_crevta,
  bc.anc_otrcre,
  bc.anc_inver,
  bc.anc_actint,
  bc.anc_otract,
  bc.anc_bieuso,
  bc.anc_bieusovo,
  bc.anc_depacu,
  bc.anc_total,

  bc.act_total,

  bc.pc_ctapag,
  bc.pc_presta,
  bc.pc_remune,
  bc.pc_carfis,
  bc.pc_antcli,
  bc.pc_otrpas,
  bc.pc_total,
 
  bc.pnc_cuepag,
  bc.pnc_previ,
  bc.pnc_presta,
  bc.pnc_otrpas,
  bc.pnc_deufis,
  bc.pnc_total,
 
  bc.pas_total,

  bc.capsoc,
  bc.resacu,
  bc.res_noasig,

  bc.patrimonio,

  bc.res_vtanet,
  bc.res_compras,
  bc.res_cosmer,
  bc.amortiza,
  bc.res_gascom,
  bc.res_gasadm,
  bc.res_gasfin,
  --res_otros,
  --res_resinv,
  --res_ie,
  bc.res_otrosing,
  bc.res_otrosegr,
  bc.res_resfin,
  bc.res_iva,
  --total_res,
  bc.ganancia,
  bc.ebitda,
  bc.ajucap,

  bc.notas,
  bc.valoracion, 
  bc.comentarios,

  bc.ind_liqcorr,
  bc.ind_liqseca,
  bc.ind_endeu,
  bc.ind_solvencia,
  bc.ind_endeuact,
  bc.ind_captra,
  bc.ind_cappro,
  bc.ind_invbu,
  bc.ind_inmact,
  bc.ind_inmpat,
  bc.ind_marbru,
  bc.ind_utilfin,
  bc.ind_retpat,
  bc.ind_rotvta,
  bc.ind_rotvta_dias,
  bc.ind_rotact,
  bc.ind_rotact_dias,
  bc.ind_rentabilidad,
  bc.ind_indrot,
  bc.ind_indrot_dias,
  bc.ind_rotinv,
  bc.ind_rotinv_dias,
  bc.ind_prest_pn,
  bc.ind_prest_vtas,
  bc.ind_solvencia_pat,
  bc.ind_ebipas,

  bc.fecha_act,
  bc.usuario,
  bc.idifx,
  bc.created,
  bc.created_by,
  bc.modified,
  bc.modified_by,
  bc.visible,
  bc.estado,
  bc.id_padron,

  visible = case bc.visible
   when 1 then 'ACTIVO'
   when 0 then 'INACTIVO' 
  end, 
  bal_man = case bc.bal_manifestacion
   when 'M' then 'Manifestación Bienes'
   when 'B' then 'Balance' 
  end,
  fecha_dia_mes_anio = convert(varchar(10),bc.fecha_balance,103),
  monedas.nombre_moneda,
  bc.task_id,
  tareas_usuarios_documentos.user_id as usuario_tarea,
  tareas_usuarios_documentos.fecha_inicio_tarea,
  tareas_usuarios_documentos.fecha_rechazo,
  tareas_usuarios_documentos.fecha_aprobacion, 
  tareas_usuarios_documentos.fecha_fin_tarea,
  bc.ruta_archivo,
    ug.user_id as ug_user, ug.group_id as ug_group,
  -- Si el usuario tiene permiso para publicar BALANCES-COMPLETO --> autorizado
 -- Si el usuario tiene peromiso para publicar BALANCES-PUBLICACION y la tarea es de el, o no es de nadie --> autorizado, si la tarea es de otro --> NOautorizado
 -- Si el usuario no tiene permiso para publicar --> NOautorizado
'autorizado' as autorizado,
   iif((isnull(ug.group_id,0)=1001 or 
     (isnull(ug.group_id,0)=1000 and ug.user_id = tareas_usuarios_documentos.user_id) or 
     (isnull(ug.group_id,0)=1000 and isnull(bc.task_id,0) = 0))
   ,'autorizado','NOautorizado') as autorizadoORIG,
   res_fin_cash,res_fin_no_cash,rec_pam,
   cargar_datos, 
   nominal_ajustado
 
  from balances_contables bc 
  left join monedas on monedas.moneda = bc.moneda

  left join tareas_usuarios_documentos on tareas_usuarios_documentos.task_id = bc.task_id
        left join users_by_group ug on ug.user_id = @p_user_id and ug.group_id in (1000,1001)

  where bc.cuit = @p_Cuit and (bc.fecha_balance between @dtStart and @dtEnd or bc.fecha_balance is null)
  /* agregado */
  and ( (@p_visible = 1 and estado != 'ELIMINADO')
  or  (@p_visible = 0 and estado = 'ELIMINADO') )
  /* */ 
  order by bc.fecha_balance desc

 end 
end 
END
GO

Used By

No items found