
/*  
 execute glopa_reportedefinidos_1_camp_work '001', '02','select ''H315'' union all select ''H316'' union all select ''H317''','0'
*/  
/*
ALTER procedure [dbo].[glopa_reportedefinidos_1_camp_work] (@ccod_rpt char(3), @ccod_mon char(2), @vcadena_sql varchar(1000) , @cfactor char(1) )  
as  
*/

declare @ccod_rpt char(3), @ccod_mon char(2)  
declare @nid int, @nord_rpt int, @ccod_campo char(5), @nmonto numeric(12,2) = 0  
, @vcadena_sql varchar(1000) , @cfactor char(1) 
 

select @ccod_rpt = '001', @ccod_mon = '02'  , @cfactor = '0'
if OBJECT_ID('tempdb..#rpt0')IS NOT NULL drop table #rpt0  
if OBJECT_ID('tempdb..#tmprpt')IS NOT NULL drop table #tmprpt  
if OBJECT_ID('tempdb..#reporte')IS NOT NULL drop table #reporte
if OBJECT_ID('tempdb..#reporte1')IS NOT NULL drop table #reporte1
if OBJECT_ID('tempdb..#rpt1')IS NOT NULL drop table #rpt1  
if OBJECT_ID('tempdb..#rpt2')IS NOT NULL drop table #rpt2  
if OBJECT_ID('tempdb..#rpt3')IS NOT NULL drop table #rpt3  
if OBJECT_ID('tempdb..#rpt4')IS NOT NULL drop table #rpt4  
if OBJECT_ID('tempdb..#rpt5')IS NOT NULL drop table #rpt5  
if OBJECT_ID('tempdb..#rptpro1')IS NOT NULL drop table #rptpro1  
if OBJECT_ID('tempdb..#rptpro2')IS NOT NULL drop table #rptpro2  
if OBJECT_ID('tempdb..#rptpexporta')IS NOT NULL drop table #rptpexporta  
if OBJECT_ID('tempdb..#rptprocesado')IS NOT NULL drop table #rptprocesado  
if OBJECT_ID('tempdb..#rptdescarte')IS NOT NULL drop table #rptdescarte  
if OBJECT_ID('tempdb..#rptprocesadoreal')IS NOT NULL drop table #rptprocesadoreal  
  
select top 0 ccod_campo, id = identity(int,1,1)  into #rpt0 from I20_PROYCAMPPERIODO_TL
  
select top 0 ccod_campo ,   id = identity(int,1,1)  into #tmprpt from I20_PROYCAMPPERIODO_TL


select @vcadena_sql = 'select ''H315'' union all select ''H316'' union all select ''H317'''

/*
0-Producción  
1-Exportación  
2-Ninguno  
*/
 
  
insert into #rpt0 (ccod_campo)  
execute  ( @vcadena_sql )  
print @vcadena_sql   
--select * from #rpt0  
--return  
  
--- select * from #tmprpt  
  
select top 0  @nid id_frpt_td, a.ccod_rpt, a.nord_rpt, b.ctipo_proc , b.cvalor, b.coperador  into #rpt5  from I20_FRPT_TC a   
    left join I20_FRPT_TD b on a.nord_rpt = b.nord_rpt and a.ccod_rpt = b.ccod_rpt  
  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per, cinformacion, vcampoReferencia into #rpt1 from I20_PROYCAMPPERIODO_TL where   
ccod_campo COLLATE Modern_Spanish_CI_AS in (select distinct ccod_campo  from #rpt0)   
  
  
  
insert into #tmprpt (ccod_campo)  
select distinct ccod_campo  from #rpt1  
  
/*  
alter table #tmprpt add ccod_campo char(15)  
  
  
update #tmprpt set ccod_campo = a.ccod_campoo from (  
select a.*,  ccod_campoo= (select top 1 ccod_campo from I20_CAMPAOPERATIVA_TL where ccod_proyecto = a.ccod_proyecto )  
from #tmprpt a)  
a where #tmprpt.id  = a.id   
  
*/  
  
/*  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per into #rpt1 from I20_PROYCAMPPERIODO_TL where   
ccod_proyecto COLLATE Modern_Spanish_CI_AS in (select distinct ccod_proyecto from #tmprpt)  and   
ccod_campo COLLATE Modern_Spanish_CI_AS in (select distinct ccod_campo  from #tmprpt)    
*/  
  
-- select * from #rpt1  
  
declare @ccol varchar(10)  
select a.* into #reporte from(   
    
 select 0 id_frpt_tc, @ccod_rpt ccod_rpt, ccod_grupo, cdsc_rpt, nord_rpt, ctipo_fo,cestado, cclase, cnegrita,  ccolsigno ccod_mon,'2' cfactor, '0' cmostrar  from  glovi_RubrosFijoCampania  
 union all  
    
 select  a.id_frpt_tc, a.ccod_rpt, a.ccod_grupo,  
 case when a.ctipo_fo in ('G','C') then b.cdsc_grupo else a.cdsc  end cdsc_rpt,  
 a.nord_rpt , a.ctipo_fo,    
        a.cestado, b.ctipo cclase, a.cnegrita, ccod_mon = @ccol, a.cfactor, a.cmostrar   from I20_FRPT_TC a   
        left join I20_GRUPOS_TL b on a.ccod_grupo = b.ccod_grupo left join I20_DEFRPT_TL c on a.ccod_rpt = c.ccod_rpt     
        where a.ccod_rpt = @ccod_rpt and a.cestado = 'A'  
        union all  
        select 0 id_frpt_tc, @ccod_rpt ccod_rpt, ccod_grupo, cdsc_rpt, nord_rpt, ctipo_fo,cestado, cclase, cnegrita, ccolsigno, '2' cfactor,  '0' cmostrar  from  glovi_RubrosFijoProduccion  
        )a  
        order by  a.nord_rpt   
  
update #reporte set ccod_mon = case when @ccod_mon='02' then '$' else 'S/' end  where isnull(ccod_mon,'') =''  
  
-- select distinct ccod_proyecto  from #tmprpt  
  
declare @ncampo_proye varchar(20), @cadena_sql varchar(500)  
set @ncampo_proye = 'nimp_proy_'  
declare @nfila int , @nf int = 1, @ntotalproyectos int= 0  
set @nfila = ( select count(1) from (select distinct ccod_campo  from #tmprpt)a )  
print 'fila'  
print @nfila  
--select * from #tmprpt  
  
/*  
select distinct ccod_proyecto  from #tmprpt  
select * from #tmprpt  
*/  
/*
while 1=1  
begin  
   
 set @ncampo_proye = (select ccod_campo from #tmprpt where id =@nf )  
 set @cadena_sql = 'alter table #reporte add '+rtrim(@ncampo_proye)+' numeric(10,2) not null default 0 '  
 execute ( @cadena_sql )  
 set @cadena_sql = 'alter table #rpt5 add '+rtrim(@ncampo_proye)+' numeric(10,2) not null default 0 '  
 execute ( @cadena_sql )  
 if (@nf =@nfila)  
 begin  
  break   
 end  
 set @nf = @nf  + 1  
end  
*/

set @ntotalproyectos = @nf  
alter table #reporte add nsaldo numeric(15,2) not null default 0;

select b.ccod_campo,  a.* into #reporte1 from #reporte a 
left join #tmprpt b on 1=1
order by b.ccod_campo, a.nord_rpt


--- CONTABILIDAD  
select    t2.ccod_campo, t3.ccod_grupo, t2.ccod_eje, t2.ccod_per,   
sum(case when @ccod_mon='01' then t1.ndebe_mn -t1.nhaber_mn else t1.ndebe_me -t1.nhaber_me end ) nsaldo into #rpt2 from I20_COMPRO_TD t1  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('1','0') ) t2 on   
t1.ccod_proyecto = t2.ccod_proyecto and t1.ccod_per = t2.ccod_per and t1.ccod_eje = t2.ccod_eje   
left join (  
select ccod_grupo, ccod_ctalo  from I20_GRUPOCTA_TL where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='C'  ) ) t3 on t1.ccod_ctalo = t3.ccod_ctalo  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t2.ccod_campo   
where t1.ccod_ctalo in (select ccod_ctalo from I20_GRUPOCTA_TL where ccod_grupo in ( select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='C'  ) ) and t1.cestado = 'A'  
group by   t2.ccod_campo, t3.ccod_grupo ,  t2.ccod_eje, t2.ccod_per

/*
select    t2.ccod_campo, t3.ccod_grupo,   
sum(case when @ccod_mon='01' then t1.ndebe_mn -t1.nhaber_mn else t1.ndebe_me -t1.nhaber_me end ) nsaldo into #rpt2 from I20_COMPRO_TD t1  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('1','0') ) t2 on   
t1.ccod_proyecto = t2.ccod_proyecto and t1.ccod_per = t2.ccod_per and t1.ccod_eje = t2.ccod_eje   
left join (  
select ccod_grupo, ccod_ctalo  from I20_GRUPOCTA_TL where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='C'  ) ) t3 on t1.ccod_ctalo = t3.ccod_ctalo  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t2.ccod_campo   
where t1.ccod_ctalo in (select ccod_ctalo from I20_GRUPOCTA_TL where ccod_grupo in ( select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='C'  ) ) and t1.cestado = 'A'  
group by   t2.ccod_campo, t3.ccod_grupo  
*/




--- ACTIVIDADES
select t2.ccod_campo, t3.ccod_grupo,  t2.ccod_eje, t2.ccod_per,
sum(case when @ccod_mon='01' then t1.ndebe_mn -t1.nhaber_mn else t1.ndebe_me -t1.nhaber_me end ) nsaldo into #rpt3 from I20_COMPRO_TD t1  
inner join (
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('1','0') ) t2 on   
t1.ccod_proyecto = t2.ccod_proyecto and t1.ccod_per = t2.ccod_per and t1.ccod_eje = t2.ccod_eje   
left join (  
select distinct ccod_grupo, ccod_actividad, ccod_ctalo   from I20_GRUPOACTIVIDAD_TL  where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='A'  ) ) t3 on   
t1.ccod_actividad = t3.ccod_actividad and t1.ccod_ctalo = t3.ccod_ctalo  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t2.ccod_campo   
where t1.ccod_ctalo+t1.ccod_actividad in (select ccod_ctalo+ccod_actividad from I20_GRUPOACTIVIDAD_TL where ccod_grupo in ( select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='A'  ) ) and t1.cestado = 'A'  
group by   t2.ccod_campo, t3.ccod_grupo, t2.ccod_eje, t2.ccod_per  




/*
select    t2.ccod_campo, t3.ccod_grupo,   
sum(case when @ccod_mon='01' then t1.ndebe_mn -t1.nhaber_mn else t1.ndebe_me -t1.nhaber_me end ) nsaldo into #rpt3 from I20_COMPRO_TD t1  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('1','0') ) t2 on   
t1.ccod_proyecto = t2.ccod_proyecto and t1.ccod_per = t2.ccod_per and t1.ccod_eje = t2.ccod_eje   
left join (  
select distinct ccod_grupo, ccod_actividad, ccod_ctalo   from I20_GRUPOACTIVIDAD_TL  where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='A'  ) ) t3 on   
t1.ccod_actividad = t3.ccod_actividad and t1.ccod_ctalo = t3.ccod_ctalo  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t2.ccod_campo   
where t1.ccod_ctalo+t1.ccod_actividad in (select ccod_ctalo+ccod_actividad from I20_GRUPOACTIVIDAD_TL where ccod_grupo in ( select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='A'  ) ) and t1.cestado = 'A'  
group by   t2.ccod_campo, t3.ccod_grupo  
*/
--select * from  #rpt1
--- INVENTARIOS

select  a.ccod_campo, a.ccod_grupo, a.ccod_eje, a.ccod_per, sum(a.nsaldo) nsaldo into #rpt4 from  (
select   t21.ccod_campo, t3.ccod_grupo, t21.ccod_eje, t21.ccod_per, 
sum(case when @ccod_mon='01' then t1.ncos_t_mn else t1.ncos_t_me end ) nsaldo   from I03_MOVALM_TD  t1  
left join I03_MOVALM_TC  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('2','0') and vcampoReferencia ='AM' ) t21 on   
t11.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t1.ccod_eje = t21.ccod_eje   
left join I03_ARTIC_TL t22 on t1.ccod_artic  = t22.ccod_artic   
left join I03_SLINEAS_TD t33 on t22.ccod_lin= t33.ccod_lin and t22.ccod_slin = t33.ccod_slin  
  
inner join (
select distinct ccod_grupo, ccod_alma , ccod_lin, ccod_slin, CampoReferencia    from I20_GRUPOALINEASLINEA_TL    
where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) and  CampoReferencia='PR' ) t3 on   
t33.ccod_lin = t3.ccod_lin and t33.ccod_slin = t3.ccod_slin and t11.CampoReferencia = t3.CampoReferencia and t11.ccod_alma = t3.ccod_alma   
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t3.ccod_grupo  in (select distinct ccod_grupo from I20_GRUPOALINEASLINEA_TL where ccod_grupo in   
(select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) )   
and t11.CampoReferencia  in  
(select distinct CampoReferencia from I20_GRUPOALINEASLINEA_TL where ISNULL(CampoReferencia,'')='PR' and  ccod_grupo in 
(   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )  )   
and t11.ccod_o_log = 'REQ'  and t11.cestado = 'A'  
group by   t21.ccod_campo, t3.ccod_grupo , t21.ccod_eje, t21.ccod_per
union all
-- solo los PL o PR segun campo de referencia 
select   t21.ccod_campo, t3.ccod_grupo, t21.ccod_eje, t21.ccod_per, 
sum(case when @ccod_mon='01' then t1.ncos_t_mn else t1.ncos_t_me end ) nsaldo  from I03_MOVALM_TD  t1  
left join I03_MOVALM_TC  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('0','2') and vcampoReferencia ='PR' ) t21 on   
t11.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t1.ccod_eje = t21.ccod_eje
left join I03_ARTIC_TL t22 on t1.ccod_artic  = t22.ccod_artic   
left join I03_SLINEAS_TD t33 on t22.ccod_lin= t33.ccod_lin and t22.ccod_slin = t33.ccod_slin  
  
inner join (
select distinct ccod_grupo, ccod_alma , ccod_lin, ccod_slin, CampoReferencia    from I20_GRUPOALINEASLINEA_TL    
where  CampoReferencia in (select distinct vcampoReferencia from #rpt1 ) and 
ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) and CampoReferencia='PR' ) t3 on   
t33.ccod_lin = t3.ccod_lin and t33.ccod_slin = t3.ccod_slin and t11.CampoReferencia = t3.CampoReferencia   and t11.ccod_alma = t3.ccod_alma   
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t3.ccod_grupo  in (select distinct ccod_grupo from I20_GRUPOALINEASLINEA_TL where ccod_grupo in   
(select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )   )   
and t11.CampoReferencia  in  
(select distinct CampoReferencia from I20_GRUPOALINEASLINEA_TL where ISNULL(CampoReferencia,'')='PR' and  ccod_grupo in 
(   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )  )   
and t11.ccod_o_log = 'REQ'  and t11.cestado = 'A'  
group by   t21.ccod_campo, t3.ccod_grupo,  t21.ccod_eje, t21.ccod_per
------- solo PL otra tabla
union all


select   t21.ccod_campo, t3.ccod_grupo, t21.ccod_eje, t21.ccod_per, 
sum(case when @ccod_mon='01' then t1.MontoLocal else t1.MontoDolares end ) nsaldo   from I03_MATERIAL_DISTRIB  t1  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('2','0') and vcampoReferencia ='AM' ) t21 on   
--select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1   ) t21 on   
t1.proyecto = t21.ccod_proyecto and t1.period = t21.ccod_per 
left join I03_ARTIC_TL t22 on t1.item  = t22.ccod_artic   
left join I03_SLINEAS_TD t33 on t22.ccod_lin= t33.ccod_lin and t22.ccod_slin = t33.ccod_slin  

inner join (
--select distinct ccod_grupo, ccod_alma , ccod_lin, ccod_slin, CampoReferencia    from I20_GRUPOALINEASLINEA_TL    
select distinct a.ccod_grupo, b.ccod_alma_mig ccod_alma , a.ccod_lin, a.ccod_slin, a.CampoReferencia    from I20_GRUPOALINEASLINEA_TL  a
left join I03_ALMAC_TL b on a.ccod_alma = b.ccod_alma 
where ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) and  CampoReferencia='PL' ) t3 on   
t33.ccod_lin = t3.ccod_lin and t33.ccod_slin = t3.ccod_slin and t1.CampoReferencia = t3.CampoReferencia and t1.almacencodigo = t3.ccod_alma   
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t3.ccod_grupo  in (select distinct ccod_grupo from I20_GRUPOALINEASLINEA_TL where ccod_grupo in   
(select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) )   
and t1.CampoReferencia  in  
(select distinct CampoReferencia from I20_GRUPOALINEASLINEA_TL where ISNULL(CampoReferencia,'')='PL' and  ccod_grupo in 
(   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )  )   
group by   t21.ccod_campo, t3.ccod_grupo , t21.ccod_eje, t21.ccod_per

union all

select   t21.ccod_campo, t3.ccod_grupo, t21.ccod_eje, t21.ccod_per, 
sum(case when @ccod_mon='01' then t1.MontoLocal else t1.MontoDolares end ) nsaldo   from I03_MATERIAL_DISTRIB  t1  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('0','2') and vcampoReferencia ='PL' ) t21 on   
t1.proyecto = t21.ccod_proyecto and t1.period = t21.ccod_per 
left join I03_ARTIC_TL t22 on t1.item  = t22.ccod_artic   
left join I03_SLINEAS_TD t33 on t22.ccod_lin= t33.ccod_lin and t22.ccod_slin = t33.ccod_slin  
  
inner join (
select distinct a.ccod_grupo, b.ccod_alma_mig ccod_alma , a.ccod_lin, a.ccod_slin, a.CampoReferencia    from I20_GRUPOALINEASLINEA_TL  a
left join I03_ALMAC_TL b on a.ccod_alma = b.ccod_alma   
where  CampoReferencia in (select distinct vcampoReferencia from #rpt1 ) and 
ccod_grupo in (   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  ) and CampoReferencia='PL' ) t3 on   
t33.ccod_lin = t3.ccod_lin and t33.ccod_slin = t3.ccod_slin and t1.CampoReferencia = t3.CampoReferencia   and t1.almacencodigo = t3.ccod_alma   
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t3.ccod_grupo  in (select distinct ccod_grupo from I20_GRUPOALINEASLINEA_TL where ccod_grupo in   
(select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )   )   
and t1.CampoReferencia  in  
(select distinct CampoReferencia from I20_GRUPOALINEASLINEA_TL where ISNULL(CampoReferencia,'')='PL' and  ccod_grupo in 
(   select ccod_grupo from #reporte where ctipo_fo in ('G','C') and cclase='I'  )  )   

group by   t21.ccod_campo, t3.ccod_grupo, t21.ccod_eje, t21.ccod_per


)a
group by   a.ccod_campo, a.ccod_grupo, a.ccod_eje, a.ccod_per


  
select a.ccod_campo, a.ccod_eje, a.ccod_per , sum(a.prook) nPesoProcesado, 0 npalets  into #rptpexporta   from (

select   t21.ccod_campo,  t21.ccod_eje, t21.ccod_per, 
t1.ccod_artic, t1.nund, t22.PesoReal, t22.PesoNominal,  
prook = (case when ta.ctipoalmacen = 'E' then t1.nund else 0 end ) *  isnull(t22.PesoNominal,0)  
from I03_MOVALM_TD  t1  
left join I03_MOVALM_TC  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
inner join (
select a.ccod_campo, a.ccod_proyecto, a.ccod_eje, a.ccod_per  from #rpt1 a 
left join I20_PROYECTOS_TL b on a.ccod_proyecto = b.ccod_proyecto 
where b.ctag='E' and a.cinformacion in ('2','0') and a.vcampoReferencia in ('AM','PL') 
) t21 on
t11.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t1.ccod_eje = t21.ccod_eje   
left join I03_ALMAC_TL ta on t11.ccod_alma = ta.ccod_alma   
left join I03_ARTIC_TL t22 on t1.ccod_artic  = t22.ccod_artic   
  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t1.ccod_artic  in ( 
select a.ccod_artic from I22_ASIGNACIONITEM_TD  a 
left join I22_VARIEDADES_TL b on a.ccod_variedad = b.ccod_variedad and a.ccod_fruta = b.ccod_fruta 
where b.ccod_artic = '000779'
  ) and  t11.ccod_o_log = 'PRI'  and t11.cestado = 'A'  
union all
select   t21.ccod_campo, t21.ccod_eje, t21.ccod_per,  
t1.ccod_artic, t1.nund, t22.PesoReal, t22.PesoNominal,  
prook = (case when ta.ctipoalmacen = 'E' then t1.nund else 0 end ) *  isnull(t22.PesoNominal,0)  
from I03_MOVALM_TD  t1  
left join I03_MOVALM_TC  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
inner join (
select a.ccod_campo, a.ccod_proyecto, a.ccod_eje, a.ccod_per  from #rpt1 a 
left join I20_PROYECTOS_TL b on a.ccod_proyecto = b.ccod_proyecto 
where b.ctag<>'E' and a.cinformacion in ('2','0') and a.vcampoReferencia in ('AM','PL') 
) t21 on
t11.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t1.ccod_eje = t21.ccod_eje   
left join I03_ALMAC_TL ta on t11.ccod_alma = ta.ccod_alma   
left join I03_ARTIC_TL t22 on t1.ccod_artic  = t22.ccod_artic   
  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t1.ccod_artic not in ( 
select a.ccod_artic from I22_ASIGNACIONITEM_TD  a 
left join I22_VARIEDADES_TL b on a.ccod_variedad = b.ccod_variedad and a.ccod_fruta = b.ccod_fruta 
where b.ccod_artic = '000779'
  ) and  t11.ccod_o_log = 'PRI'  and t11.cestado = 'A'  



)a
group by a.ccod_campo, a.ccod_eje, a.ccod_per  
  


-----------------
-----------------
  
select a.ccod_campo, a.ccod_eje, a.ccod_per, a.nund -  isnull(b.nund,0) nund  into #rptdescarte from (  
select t1.ccod_campo, t1.ccod_eje, t1.ccod_per, sum(t1.nund)nund  from (  
select t1.*, t21.ccod_campo, t11.nund from I03_MOVALM_TC t1  
left join I03_MOVALM_Td  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
  
inner join (  
--select ccod_campo, ccod_proyecto, ccod_eje, ccod_per   from #rpt1 ) t21 on   
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('2','0') and vcampoReferencia in ('AM','PL')) t21 on
t1.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t21.ccod_eje = t21.ccod_eje   
where t11.ccod_artic in ('000779','002813') and t1.cestado = 'A' and t1.ccod_o_log = 'TRA'  
)t1  
left join I03_ALMAC_TL t3 on t1.ccod_alma = t3.ccod_alma   
left join I03_ALMAC_TL t4 on t1.ccod_alma_t  = t4.ccod_alma   
where t3.ctipoalmacen = 'P'   
group by t1.ccod_campo, t1.ccod_eje, t1.ccod_per)a  
left join (  
  
select t1.ccod_campo, t1.ccod_eje, t1.ccod_per, sum(t1.nund)nund  from (  
select  t1.*, t21.ccod_campo, t11.nund from I03_MOVALM_TC t1  
left join I03_MOVALM_Td  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
  
inner join (  
--select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 ) t21 on   
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('2','0') and vcampoReferencia in ('AM','PL')) t21 on
t1.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t21.ccod_eje = t21.ccod_eje   
where t11.ccod_artic in ('000779','002813') and   
t1.cestado = 'A' and t1.ccod_o_log = 'TRA'  
)t1  
left join I03_ALMAC_TL t3 on t1.ccod_alma = t3.ccod_alma   
where t3.ctipoalmacen = 'D'   
group by t1.ccod_campo,  t1.ccod_eje, t1.ccod_per 
)b on a.ccod_campo = b.ccod_campo and a.ccod_per = b.ccod_per  and a.ccod_eje = b.ccod_eje
  
----  
  
select t1.ccod_campo, t1.ccod_eje, t1.ccod_per, SUM(t1.PesoProcesado)  PesoProcesado  into #rptprocesadoreal from (  
select distinct t1.*, isnull(t2.PesoProcesado,0)PesoProcesado  from (  
select t1.ccod_campo, t1.ccod_eje, t1.ccod_per, t1.ccod_proyecto ,  substring(t1.creferencia,1,3) SerieNumero, substring(t1.creferencia,5,10) GuiaNumero   from (  
select distinct t1.*, t21.ccod_campo from I03_MOVALM_TC t1  
left join I03_MOVALM_Td  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
  
inner join (  
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 ) t21 on   
t1.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t21.ccod_eje = t21.ccod_eje   
where t11.ccod_artic in ('000779','002813') and t1.cestado = 'A' and t1.ccod_doc_ref = 'GR'  
)t1  
)t1  
left join I03_consumopro_td t2 on t2.GuiaNumero = t1.GuiaNumero and t2.SerieNumero = t1.SerieNumero and t2.CompaniaSocio='00000800'   
)t1
group by t1.ccod_campo, t1.ccod_eje, t1.ccod_per  





select a.*, b.nPesoProcesado pesoexporta, @nmonto PesoDescarte, isnull(d.PesoProcesado,0) PesoProcesador, c.nund npesoproceDesc into #rptprocesado from (  
select a.ccod_campo, sum(a.prook) pesoproduccion, 0 npalets, a.ccod_eje, a.ccod_per  from (

select   t21.ccod_campo, t1.ccod_artic, t1.nund, t22.PesoReal, t22.PesoNominal,  
prook = (case when ta.ctipoalmacen = 'P' then t1.nund else 0 end ), t21.ccod_eje, t21.ccod_per  
from I03_MOVALM_TD  t1  
left join I03_MOVALM_TC  t11 on t1.cdoc_nro   = t11.cdoc_nro and  t1.cdoc_serie   = t11.cdoc_serie and t1.ccod_o_log   = t11.ccod_o_log and  
t1.ccod_per   = t11.ccod_per and t1.ccod_eje   = t11.ccod_eje   
inner join (
--select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 ) t21 on   
 
select ccod_campo, ccod_proyecto, ccod_eje, ccod_per  from #rpt1 where cinformacion in ('2','0') and vcampoReferencia in ('AM','PL')
 

) t21 on   
t11.ccod_proyecto = t21.ccod_proyecto and t1.ccod_per = t21.ccod_per and t1.ccod_eje = t21.ccod_eje   
left join I03_ALMAC_TL ta on t11.ccod_alma = ta.ccod_alma   
left join I03_ARTIC_TL t22 on t1.ccod_artic  = t22.ccod_artic 
  
left join I20_CAMPAOPERATIVA_TL  t4 on t4.ccod_campo = t21.ccod_campo   
where t1.ccod_artic in ('000779','002813') and  t11.ccod_o_log = 'PRI'  and t11.cestado = 'A'  

)a group by a.ccod_campo, a.ccod_eje, a.ccod_per 
)a   
left join #rptpexporta b on a.ccod_campo = b.ccod_campo and a.ccod_per = b.ccod_per
left join #rptdescarte c on a.ccod_campo = c.ccod_campo  and a.ccod_per = c.ccod_per
left join #rptprocesadoreal d on a.ccod_campo = d.ccod_campo  and a.ccod_per = d.ccod_per
  

--  select * from #rptprocesadoreal


select *, @nmonto nsobrepeso  into #rptpro1 from  #rptprocesado  

update #rptpro1 set PesoDescarte = pesoproduccion-npesoproceDesc  

update #rptpro1 set nsobrepeso = pesoproduccion-pesoexporta-PesoDescarte  


  
select t1.*,   
prendimiento = case when t1.pesoproduccion <>0 then t1.pesoexporta/t1.pesoproduccion else 0 end *100 ,  
pdescarte = case when t1.pesoproduccion <>0 then t1.PesoDescarte/t1.pesoproduccion else 0 end *100,  
psobrepeso= case when t1.pesoexporta <>0 then t1.nsobrepeso/t1.pesoexporta else 0 end *100   
into #rptpro2  from #rptpro1 t1  

--select * from #rptpro1

  
declare @id_frpt_tc int , @ccod_grupo char(5), @cclase char(1), @cnombrecampo varchar(30)  
--select id_frpt_tc, ccod_grupo, cclase from #reporte where cclase in  ('C','A','I')  
 declare reporte_cursor cursor for  
 select id_frpt_tc, ccod_grupo, cclase from #reporte where ctipo_fo in ('G','C')  
    open reporte_cursor    
    fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase  
    WHILE (@@FETCH_STATUS = 0 )  
    begin  
	  set @nf = 1  
	  while @nf<=@nfila  
	  begin  
	   set @cadena_sql = ''  
	   set @ncampo_proye = (select ccod_campo from #tmprpt where id =@nf )  
	   set @ccod_campo = (select ccod_campo  from #tmprpt where id =@nf )  
	   if @cclase = 'C'  
	   begin  
		set @cadena_sql = 'update #reporte1 set  nsaldo  =isnull((select sum(nsaldo) from #rpt2 where ccod_grupo='+char(39)+@ccod_grupo+char(39)+' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0) where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
	   end  
	   else  
	   if @cclase = 'A'  
	   begin  
		set @cadena_sql = 'update #reporte1 set nsaldo =isnull((select sum(nsaldo) from #rpt3 where ccod_grupo='+char(39)+@ccod_grupo+char(39)+' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0) where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
	
	   end  
	   else  
	   if @cclase = 'I'  
	   begin  
		set @cadena_sql = 'update #reporte1 set nsaldo =isnull((select sum(nsaldo) from #rpt4 where ccod_grupo='+char(39)+@ccod_grupo+char(39)+' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0) where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))   +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
	
	   end  
	   else  
	   if @cclase = 'P'  
	   begin
	   
		set @cnombrecampo =   
		case when @ccod_grupo='P0001' then 'pesoproduccion' else  
		case when @ccod_grupo='P0002' then 'pesoexporta' else  
		case when @ccod_grupo='P0003' then 'pesodescarte' else  
		case when @ccod_grupo='P0004' then 'nsobrepeso' else  
		case when @ccod_grupo='P0005' then 'prendimiento' else  
		case when @ccod_grupo='P0006' then 'pdescarte' else  
		case when @ccod_grupo='P0007' then 'psobrepeso' else '' end end end end end end end  
		if @ccod_grupo<>'P0000'  
		begin  
		 set @cadena_sql = 'update #reporte1 set nsaldo=isnull((select sum('+@cnombrecampo+  
		 ') from #rptpro2 where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)  
		end  
		else  
		if @ccod_grupo='P0000'  
		begin  
		 set @cadena_sql = 'update #reporte1 set nsaldo=isnull((select top 1 narea from I20_CAMPAOPERATIVA_TL where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' and ccod_campo= '+char(39)+rtrim(@ccod_campo)+char(39)+'  ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)    +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
		end  
	   end  
	   else  
	   if @cclase = 'T'  
	   begin  
		if @ccod_grupo='A0004'  
		begin  
		 set @cnombrecampo = 'npalets'  
		 set @cadena_sql = 'update #reporte1 set nsaldo=isnull((select sum('+@cnombrecampo+  
		 ') from #rptpro2 where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)    +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
		end  
		else  
		if @ccod_grupo='A0001'  
		begin  
		 set @cnombrecampo = 'cestado'  
		 set @cadena_sql = 'update #reporte set nsaldo=isnull((select top 1  cestado  from I20_CAMPAOPERATIVA_TL where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' and ccod_campo= '+char(39)+rtrim(@ccod_campo)+char(39)+' ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)    +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
		end  
      
		else  
		if @ccod_grupo='A0002'  
		begin  
		 set @cadena_sql = 'update #reporte1 set nsaldo=isnull((select top 1  SUM(DATEDIFF(month, dfch_ini, DATEADD (month , 1 , dfch_fin )))  from I20_CAMPAOPERATIVA_TL where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' and ccod_campo= '+char(39)+rtrim(@ccod_campo)+char(39)+' ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)    +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
		end  
		else  
		if @ccod_grupo='A0003'  
		begin  
		 set @cadena_sql = 'update #reporte1 set nsaldo=isnull((select top 1  nejercicio  from I20_CAMPAOPERATIVA_TL where ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' and ccod_campo= '+char(39)+rtrim(@ccod_campo)+char(39)+' ),0)   
		 where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10)) + ' and ccod_grupo ='+char(39)+@ccod_grupo+char(39)    +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
		end  
      
	   end  
     
     
	   if @cadena_sql<>''  
	   execute ( @cadena_sql )  
     
     
	   print @cadena_sql  
     
	   set @nf = @nf  + 1  
	  end  
	  print @id_frpt_tc  
	  fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase  
  end  
      
    close reporte_cursor  
    deallocate reporte_cursor  
 declare @cfactoor char(1)  





 if @cfactor = '1'  
 begin  
  --select * into reporte_tmp1 from #reporte  
  declare reporte_cursor cursor for  
  select id_frpt_tc, ccod_grupo, cclase, cfactor from #reporte where ctipo_fo in ('G','C')  
  open reporte_cursor    
  fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase, @cfactoor  
  WHILE (@@FETCH_STATUS = 0 )  
  begin  
   set @nf = 1  
   while @nf<=@nfila  
   begin  
    set @cadena_sql = ''  
    set @ncampo_proye = (select ccod_campo from #tmprpt where id =@nf )  
    if @cclase in  ('C','A','I')  
    begin  
     if @cfactoor = '1'  
     begin  
      print '..'        
      set @cadena_sql = 'update #reporte1 set nsaldo=nsaldo/ case when isnull((select sum(nsaldo) from #reporte1 where ccod_grupo='+char(39)+'P0002'+char(39)+' ),0)=0 then 1 else isnull((select '+rtrim(@ncampo_proye)+' from #reporte1 where ccod_grupo='+char(39)+'P0002'+char(39)+' ),0) end  where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''  
     end  
     else  
     if @cfactoor = '0'  
     begin  
      set @cadena_sql = 'update #reporte1 set nsaldo=nsaldo/ case when isnull((select sum(nsaldo) from #reporte1 where ccod_grupo='+char(39)+'P0001'+char(39)+' ),0)=0 then 1 else isnull((select '+rtrim(@ncampo_proye)+' from #reporte1 where ccod_grupo='+char(39)+'P0001'+char(39)+' ),0) end where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''  
     end  
    end  
  
    if @cadena_sql<>''  
    execute ( @cadena_sql )  
      
    
    print @cadena_sql  
      
    set @nf = @nf  + 1  
   end  
   print @id_frpt_tc  
   fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase, @cfactoor  
  end  
       
  close reporte_cursor  
  deallocate reporte_cursor       
 end  
 else  
 if @cfactor = '2'  
 begin  
  declare reporte_cursor cursor for  
  select id_frpt_tc, ccod_grupo, cclase, cfactor from #reporte where ctipo_fo in ('G','C')  
  open reporte_cursor    
  fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase, @cfactoor  
  WHILE (@@FETCH_STATUS = 0 )  
  begin  
   set @nf = 1  
   while @nf<=@nfila  
   begin  
    set @cadena_sql = ''  
    set @ncampo_proye = (select ccod_campo from #tmprpt where id =@nf )  
    if @cclase in  ('C','A','I')  
    begin  
     set @cadena_sql = 'update #reporte1 set nsaldo='+rtrim(@ncampo_proye)+'/isnull((select '+rtrim(@ncampo_proye)+' from #reporte where ccod_grupo='+char(39)+'P0000'+char(39)+'  ),1) where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
   
    end  
    else  
    if @cclase in  ('P')  
    begin  
     if @ccod_grupo in ('P0001','P0002','P0003','P0004')  
     begin  
      set @cadena_sql = 'update #reporte1 nsaldo='+rtrim(@ncampo_proye)+  
      '/isnull((select '+rtrim(@ncampo_proye)+' from #reporte where ccod_grupo='+char(39)+'P0000'+char(39)+'  ),1) where ccod_grupo= ' + char(39)+  
      @ccod_grupo + +char(39)   +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+''
     end  
       
    end  
      
    --   
    if @cadena_sql<>''  
    execute ( @cadena_sql )  
      
      
    --print @cadena_sql  
      
    set @nf = @nf  + 1  
   end  
   print @id_frpt_tc  
   fetch next from reporte_cursor into @id_frpt_tc, @ccod_grupo, @cclase, @cfactoor  
  end  
       
  close reporte_cursor  
  deallocate reporte_cursor   
 end  
  
  
    

    declare reporte_cursor cursor for  
 select id_frpt_tc, ccod_rpt, nord_rpt from #reporte where ctipo_fo = 'D' order by nord_rpt  
    open reporte_cursor    
    fetch next from reporte_cursor into @id_frpt_tc, @ccod_rpt, @nord_rpt  
  
    WHILE (@@FETCH_STATUS = 0 )  
    begin  
	  delete from  #rpt5  
	  insert into #rpt5 (id_frpt_td, ccod_rpt, nord_rpt, ctipo_proc , cvalor, coperador)  
	  select b.id_frpt_td, a.ccod_rpt, a.nord_rpt, b.ctipo_proc , b.cvalor, b.coperador from #reporte a   
	  left join I20_FRPT_TD b on a.nord_rpt = b.nord_rpt and a.ccod_rpt = b.ccod_rpt  
	  where   a.id_frpt_tc = @id_frpt_tc order by b.id_frpt_td   
    
     --select SUM(proyecto001_1) from #reporte where nord_rpt in (select cast(cvalor as int ) from #rpt5 )  
       
     set @nf = 1  
	  while @nf<=@nfila  
	  begin  
       --select * from #reporte1
	   set @ncampo_proye = (select ccod_campo from #tmprpt where id =@nf )     
	   set @cadena_sql = ' update #reporte1 set nsaldo=isnull((select sum(nsaldo) from #reporte1 where nord_rpt in( select cast(cvalor as int ) from #rpt5 )  and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+' ),0) where id_frpt_tc= ' + cast(@id_frpt_tc as varchar(10))  +' and ccod_campo ='+char(39)+rtrim(@ncampo_proye)+char(39)+'' 
	   --print @cadena_sql  
	   execute ( @cadena_sql )  
	   
	   set @nf = @nf  + 1  
	  end  
       
  fetch next from reporte_cursor into @id_frpt_tc, @ccod_rpt, @nord_rpt  
    end  
    close reporte_cursor  
    deallocate reporte_cursor  

	 
    if @cfactor<>'2'      
    begin  
  select  * from #reporte1 where ctipo_fo <>'C'  
    end  
    else  
  select  * from #reporte1 where ctipo_fo <>'C' and isnull(cmostrar,'')<>'1'  
  
  -- select  * from #reporte1 where ccod_campo='H317'; 
  select * from #rptpro2 where ccod_campo='H317'; 
 
  RETURN;
     
if OBJECT_ID('tempdb..#tmprpt')IS NOT NULL drop table #tmprpt  
if OBJECT_ID('tempdb..#reporte')IS NOT NULL drop table #reporte  
if OBJECT_ID('tempdb..#reporte1')IS NOT NULL drop table #reporte1  
if OBJECT_ID('tempdb..#rpt0')IS NOT NULL drop table #rpt0  
if OBJECT_ID('tempdb..#rpt1')IS NOT NULL drop table #rpt1  
if OBJECT_ID('tempdb..#rpt2')IS NOT NULL drop table #rpt2  
if OBJECT_ID('tempdb..#rpt3')IS NOT NULL drop table #rpt3  
if OBJECT_ID('tempdb..#rpt4')IS NOT NULL drop table #rpt4  
if OBJECT_ID('tempdb..#rpt5')IS NOT NULL drop table #rpt5  
if OBJECT_ID('tempdb..#rptpro1')IS NOT NULL drop table #rptpro1  
if OBJECT_ID('tempdb..#rptpro2')IS NOT NULL drop table #rptpro2  
if OBJECT_ID('tempdb..#rptprocesado')IS NOT NULL drop table #rptprocesado  
  
    --463537.69  
  