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
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