dbo.LN_balances_data

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_cuit varchar 20
@p_todos varchar 1
@ids varchar 100
@p_top int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
/*
EXEC ln_balances 'balances_contraparte',4185
EXEC LN_balances_data '30501199253','S','367040,367041,367039'
EXEC LN_balances_data '30708982209',null,null

exec ln_balances_data '30715340026',null,null

*/



-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_balances_data 
 -- Add the parameters for the stored procedure here
 @p_cuit varchar(20), 
 @p_todos varchar(1) = 'N',
 @ids varchar(100) = NULL, 
 @p_top int = 5 

 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    SET CONCAT_NULL_YIELDS_NULL ON    

    -- Insert statements for procedure here

 /* Por IDs específicos de Balance */
 IF ( ISNULL(@ids, '') != '') BEGIN

  SET @ids  = '0,' + @ids

 END ELSE
 
 BEGIN

  /* Tomar los últimos N balances publicados no anteriores a los 6 años */
  IF (@p_todos = 'S')
   SET @p_top = 6

  SET @ids = '0'
  DECLARE @id INT, @fbal DATE

  DECLARE Balances CURSOR FOR

  SELECT TOP (@p_top) bc.id_balance, bc.fecha_balance 
  FROM balances_contables bc inner join monedas ON bc.moneda = monedas.moneda 
  WHERE bc.cuit = @p_cuit 
        and bc.fecha_balance >= convert(date,dateadd(yy, -6, getdate()))
  AND (@p_todos = 'S' OR ISNULL(bc.visible,0) = 1)
  AND ISNULL(bc.estado,'') != 'ELIMINADO'
  ORDER BY bc.fecha_balance DESC, bc.id_balance DESC

  Open Balances
  FETCH NEXT FROM Balances INTO @id, @fbal
  WHILE @@FETCH_STATUS = 0 BEGIN
   SET @ids = @ids + ',' + CONVERT(VARCHAR, @id)
   FETCH NEXT FROM Balances INTO @id, @fbal
  END
  Close Balances
  Deallocate Balances

 END

-- select @ids
 
 select convert(varchar, balances_contables.fecha_balance, 103) as fecha_cierre, 
   monedas.nombre_moneda,
   balances_contables.*,
    /*id_balance, cuit, codigo, fecha_balance, bal_manifestacion, ejercicio, periodo, monedaifx, balances_contables.moneda, ac_cajban, ac_inver, ac_crevta, ac_otrcre, ac_biecam, ac_otract, ac_bietan, ac_total, anc_crevta, anc_otrcre, 
                             anc_inver, anc_actint, anc_otract, anc_bieuso, anc_bieusovo, anc_depacu, anc_total, act_total, pc_ctapag, pc_presta, pc_remune, pc_carfis, pc_antcli, pc_otrpas, pc_total, pnc_cuepag, pnc_previ, pnc_presta, 
                             pnc_otrpas, pnc_deufis, pnc_total, pas_total, capsoc, resacu, res_noasig, patrimonio, res_vtanet, res_compras, res_cosmer, amortiza, res_gascom, res_gasadm, res_gasfin, res_otrosing, res_otrosegr, 
                             res_resfin, res_iva, ganancia, 
      convert(int,isnull(ebitda,0)) as ebitda, 
      ajucap, notas, comentarios, ind_liqcorr, ind_liqseca, ind_endeu, ind_solvencia, ind_endeuact, ind_captra, ind_cappro, ind_invbu, ind_inmact, ind_inmpat, ind_marbru, 
                             ind_utilfin, ind_retpat, ind_rotvta, ind_rotvta_dias, ind_rotact, ind_rotact_dias, ind_rentabilidad, ind_indrot, ind_indrot_dias, ind_rotinv, ind_rotinv_dias, ind_prest_pn, ind_prest_vtas, ind_solvencia_pat, 
                             fecha_act, usuario, idifx, created, created_by, modified, modified_by, visible, estado, id_padron, 
      ind_ebipas, 
      task_id, resacu_ant, res_noasig_ant, ruta_archivo, valoracion, res_fin_cash, res_fin_no_cash, 
                             rec_pam,*/

   /*res_vtanet as AGB,*/
   convert(decimal(12,2),iif(isnull(patrimonio,0) != 0, isnull(pas_total,0)/patrimonio, 0)) as endeudamiento_total, /*** pasivo_total / patrimonio_neto  **/
   convert(decimal(12,2),iif(isnull(patrimonio,0) != 0, isnull(pc_total,0)/patrimonio, 0)) as endeudamiento_corriente, /*** pasivo_corriente / patrimonio_neto  **/
   convert(decimal(12,2),iif(isnull(act_total,0) > 0, (isnull(ac_total,0)-isnull(pc_total,0))/act_total, 0)) as capital_corriente_sobre_activo, /** (activo_corriente - pasivo_corriente) / activo **/
   convert(decimal(12,2),iif( (isnull(res_compras,0)+isnull(res_gascom,0)+isnull(res_gasadm,0)+isnull(res_gasfin,0)) > 0, isnull(pc_total,0)*365/((isnull(res_compras,0)+isnull(res_gascom,0)+isnull(res_gasadm,0)+isnull(res_gasfin,0)) * 1.21) , 0 )) as rotacion_pasivo_corriente, /*** (pasivo_corriente * 365) / ((compras+gastos)*1.21) ***/
   convert(decimal(12,2),iif(isnull(act_total,0) > 0, isnull(res_vtanet,0)/act_total, 0)) as rotacion_activos,     /***    ventas / activo_total   ***/
   convert(decimal(12,2),iif(isnull(res_vtanet, 0) > 0, (isnull(pc_presta,0)+isnull(pnc_presta,0))*12/res_vtanet, 0)) as meses_deuda,    /**** (prestamos (o BCRA)) * 12 / ventas ***/ 
   convert(decimal(12,2),iif(isnull(res_vtanet, 0) > 0, (isnull(pc_presta,0)+isnull(pnc_presta,0))*365/res_vtanet, 0)) as dias_deuda,                /**** (prestamos (o BCRA)) * 365 / ventas ***/ 
   convert(decimal(12,2),iif (isnull(res_vtanet,0) !=0, (isnull(ganancia,0)+isnull(res_otrosegr,0)-isnull(res_otrosing,0)) /isnull(res_vtanet,0)*100 , 0)) as margen_operativo, 
   convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, isnull(ebitda,0)/res_vtanet, 0)) as ebitda_ventas,    /******* ebitda / ventas *****/
   convert(decimal(12,2),iif(isnull(res_gasfin,0) > 0, isnull(ebitda,0)/res_gasfin, 0)) as etitda_intereses,     /**** ebitda / res_gasfin *****/

/* iif((created < '1900-09-13' or modified <'1900-09-13'),convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, isnull(ebitda,0)/res_vtanet, 0)),0) as ebitda_ventas,    /******* ebitda / ventas *****/
iif((created < '1900-09-13' or modified <'1900-09-13'),convert(decimal(12,2),iif(isnull(res_gasfin,0) > 0, isnull(ebitda,0)/res_gasfin, 0)),0) as etitda_intereses,     /**** ebitda / res_gasfin *****/

*/

   convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, isnull(res_gasfin,0)/res_vtanet, 0)) as gastos_financieros_ventas,   /*** res_gasfin / ventas ***/
   convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, isnull(res_gascom,0)/res_vtanet, 0)) as gastos_comerciales_ventas,   /*** res_gascom / ventas ***/
   convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, isnull(res_gasadm,0)/res_vtanet, 0)) as gastos_administracion_ventas,   /*** res_gasadm / ventas ***/
   convert(decimal(12,2),iif(isnull(res_vtanet,0) > 0, (isnull(res_gasfin,0)+isnull(res_gascom,0)+isnull(res_gasadm,0))/res_vtanet, 0)) as gastos_totales_ventas,   /*** (res_gasfin + res_gascom + res_gasadm) / ventas ***/
   /*ind_invbu as inversiones_bienes_uso,*/  /*** revisar : patrimonio_neto / bienes_uso * 100 ***/
   convert(decimal(12,2),iif(isnull(anc_bieuso,0) > 0, isnull(patrimonio,0)/anc_bieuso, 0)) as inversiones_bienes_uso, 
   convert(decimal(12,2),iif(isnull(amortiza,0) > 0, isnull(anc_bieuso,0)/amortiza, 0)) as vida_restante_bienes_uso   /**  anc_bieuso / amortiza  **/,
   convert(bigint,(isnull(res_vtanet,0) - isnull(res_cosmer,0)) - isnull(amortiza,0) - isnull(res_gascom,0) - isnull(res_gasadm,0)) as ebit,
   iif(isnull(res_vtanet,0) != 0, (((isnull(res_vtanet,0) - isnull(res_cosmer,0)) - isnull(amortiza,0) - isnull(res_gascom,0) - isnull(res_gasadm,0)) / isnull(res_vtanet,0))*100,0) as ebit_ventas 
    
--select * from balances_contables where cuit='30686735342'
--update balances_contables set cuit = '9930502793175' where id_balance=371626

-- exec LN_balances_data '30686735342', null, null
-- exec LN_balances_data '30502793175', null, null
--30502793175
-- rentabilidad operativa -> margen operativo cambiar por ebit/ventas


 from balances_contables
 inner join monedas on balances_contables.moneda = monedas.moneda
 inner join dbo.DelimitedSplit8K(@ids, ',') balances on balances_contables.id_balance = balances.Item
    where isnull(balances_contables.visible,0) = 1
 and isnull(balances_contables.estado,'') = 'PUBLICADO'

 order by balances_contables.fecha_balance

 
END
GO

Used By

No items found