You are on page 1of 7

USE [Vsliver31_01_2012] GO /****** Object: StoredProcedure [dbo].

[PRODUCCION_REPORTES_CARGA] e: 03/23/2012 09:18:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[PRODUCCION_REPORTES_CARGA] @InventoryIDpro varchar(50), @DomainID varchar(50), @LineID varchar(50), @ProcessID varchar(50), @TipoReporte varchar(50), ---Parametros segun tipo de reporte @initial_date varchar(50), @final_date varchar(50), ----------------------@GroupsID varchar(50), @ProductID Varchar(50), @Turn Varchar(50), @UserID varchar(50), @StockOrg Varchar(50), @StockDst Varchar(50), @Unit Varchar(50) AS begin try BEGIN TRAN declare @initiald Datetime; declare @finald Datetime; DECLARE @PivotColumnHeaders VARCHAR(MAX); DECLARE @PivotColumnHeaderse VARCHAR(MAX); DECLARE @TotalPivotColumnHeaders VARCHAR(MAX); DECLARE @SQL VARCHAR (MAX); DECLARE @SQLTONELADAS VARCHAR (MAX); -- print(@PivotColumnHeaderse) DECLARE @PivotTableSQL NVARCHAR(MAX); DECLARE @PRODUCCION VARCHAR(MAX); set @PRODUCCION='PRODUCCION';

Script Dat

-------REPORTES IF(@TipoReporte='CargaNotaIngreso') BEGIN SET @PivotTableSQL= 'select d.NumTransaction,(select Stock f rom prdi_stock where StockID=dd.NroWagonsID) as Vagons, p.Code as NameProduct,d d.Quantity, convert (char(10),d.Date,103)as Dates, (u.Name+ + u.LastName) as userName, Convert(Char(8),d.StartTime, 108) As StartTime, Convert(Char(8),d.EndTime, 108) As EndTime, d.Turn,p.Unit, (SELECT Domain FROM grli_domain WHERE DomainID='+@DomainID+' )A S Domain,(SELECT Line FROM prdi_line WHERE LineID='''+@LineID+''')AS Line, d.Gro upsID,g.[Group],d.Note, so.Stock AS Origen, sd.Stock AS Destino from prdd_production d,prddd_production dd,grli_product p,prdi_l ine l,prdi_process pr, prdd_group g,grl_user u,grli_domain dom,prdi_stock so,prd

i_stock sd where d.ProductionID=dd.ProductionID and d.Module=''PRODUCCION'' and p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.ProcessID=d.ProcessID and d.InOut=1 and d.Annulled=0 and d.Processed=1 and d.DomainID='+@DomainID+' and d.LineID='' '+@LineID+''' and d.ProcessID='''+@ProcessID+''' and d.GroupsID=g.GroupsID and dd.StockOrg=so.StockID and dd.StockDst=sd.StockID and d.DomainID=dom.DomainID and d.UserID=u.UserID and d.ProductionID='''+@InventoryIDpro+''''; --print(@PivotTableSQL); EXECUTE(@PivotTableSQL) END; ------------REPORTES por producto-----IF(@TipoReporte='CargaProducto') BEGIN --cuando no se especifica la fecha inicial IF(@Unit = 'TON') BEGIN SET @SQLTONELADAS=' SUM(ISNULL(((dd.Quantity*dd.Weight)/1000),0)) as Quanti ty'; END ELSE BEGIN SET @SQLTONELADAS=' SUM(ISNULL(dd.Quantity,0)) AS Quantity'; END SET @SQL= 'select d.ProductionID,d.DomainID, d.LineID, d.ProcessI D,CONVERT(DATE,d.Date,102) AS Date, isnull(d.GarbagePice,0) as GarbagePice, Convert (Char(8),d.StartTime, 108) As StartTime, Convert(Char(8),d.EndTime, 108) As End Time, d.GroupsID,g.[Group], (u.Name+ + u.LastName) as userName, d.Turn, d.DryingShekelc, d.Note,d.NumTransaction,dd.NroStand,dd.NroWagon s, dd.NroWagons,dd.ProductID, '+@SQLTONELADAS+' ,d d.Weight,p.Name,P.Code,p.Unit, l.Line, pr.Process,dom.Domain,so.Stock as StockOrgName, sd.Stock as StockDstName,ROW_NUMBER() OVER (ORDER BY CONVERT(DATE,d.Date,102) a sc) as row from prdd_production d,prddd_production dd,grli _product p,prdi_line l,prdi_process pr, prdd_group g,grl_user u,grli_domain dom, prdi_stock so,prdi_stock sd where d.ProductionID=dd.ProductionID and d.Modu le=''PRODUCCION'' and p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.Proc essID=d.ProcessID and d.InOut=1 and d.Processed=1 and d.Annulled=0 and d.Domain ID='+CAST(@DomainID AS VARCHAR)+' and d.GroupsID=g.GroupsID and d.DomainID=dom.DomainID and d.UserID=u.UserID and dd.StockOrg=so.StockID

and dd.StockDst=sd.StockID and d.LineID='''+@LineID+''' and d.ProcessID='''+@ProcessID+''''; IF(@initial_date!='' and @final_date!='') BEGIN SET @SQL=@SQL+' and CONVERT(DATE,d.Date,102)>='''+C AST(CONVERT(DATE, @initial_date, 102) AS VARCHAR)+''' and CONVERT(DATE,d.Date,10 2)<='''+CAST(CONVERT(DATE, @final_date, 102) AS VARCHAR)+''''; END IF(@initial_date='' and @final_date!='' or @initial_dat e is null) BEGIN SET @SQL=@SQL+' AND CONVERT(DATE,d.Date,102)<='''+C AST(CONVERT(DATE, @final_date, 102) AS VARCHAR)+''''; END IF(@ProductID <> '') BEGIN SET @SQL=@SQL+' and dd.ProductID='''+@ProductID+''' '; END SET @SQL=@SQL+' GROUP BY CONVERT(DATE,d.Date,102),d .ProductionID,d.DomainID, d.LineID, d.ProcessID, d.GarbagePice,d.StartTime,d.EndTime ,d.GroupsID,g.[Group],u.Name,u.LastName,d.Turn, d.DryingShekelc, d.Note,d.NumTransaction,dd.NroStand ,dd.NroWagons,dd.NroWagons,dd.ProductID, dd.Weight,p.Name,P.Code,p.Unit, l.L ine, pr.Process,dom.Domain,so.Stock,sd.Stock'; SET @SQL=@SQL+' ORDER BY dd.ProductID, g.[Group] as c,CONVERT(DATE,d.Date,102)';

--print(@SQL); EXECUTE(@SQL);

END; ------------REPORTES por producto-----IF(@TipoReporte='MaquinasProduccionGrupo') BEGIN --cuando no se especifica la fecha inicial if(@initial_date='' and @final_date!='' or @initial_date is n ull) begin select d.DomainID, d.LineID, d.ProcessID, d.Turn,sum(d d.NroStand) as NroStand, dd.ProductID,SUM(dd.Quantity)as Quantity,p.Name ,P.Code,p.Unit, l.Line,d.GroupsID,g.[Group], pr.Process,dom.Domain,ROW_NUMBER() OVER (ORDER BY p.Name asc) as row from prdd_production d,prddd_production dd,grli _product p,prdi_line l,prdi_process pr, prdd_group g,grl_user u,grli_domain dom,

prdi_stock so,prdi_stock sd where d.ProductionID=dd.ProductionID and d.Modu le='PRODUCCION' and p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.Proces sID=d.ProcessID and d.InOut=1 and d.Processed=1 and d.Annulled=0 and d.Domain ID=@DomainID and d.LineID=@LineID and d.ProcessID=@ProcessID and d.GroupsID=g.GroupsID and d.DomainID=dom.DomainID and d.UserID=u.UserID and d.GroupsID=@GroupsID and dd.StockOrg=so.StockID and dd.StockDst=sd.StockID and convert (char(10),d.Date,103)<=@final_date group by d.DomainID, d.LineID, d.ProcessID, d.Tu rn, dd.ProductID,dd.Weight,p.Name,p.Code,p.Unit, l. Line, pr.Process,dom.Domain,d.GroupsID,g.[Group] end --cuando la fecha existe if(@initial_date!='' and @final_date!='') begin select d.DomainID, d.LineID, d.ProcessID, d.Turn,sum(d d.NroStand) as NroStand, dd.ProductID,SUM(dd.Quantity)as Quantity,p.Name, P.Code,p.Unit, l.Line,d.GroupsID,g.[Group], pr.Process,dom.Domain,ROW_NUMBER() OVER (ORDER BY p.Name asc) as row from prdd_production d,prddd_production dd,grli _product p,prdi_line l,prdi_process pr, prdd_group g,grl_user u,grli_domain dom, prdi_stock so,prdi_stock sd where d.ProductionID=dd.ProductionID and d.Modu le='PRODUCCION' and p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.Proces sID=d.ProcessID and d.InOut=1 and d.Processed=1 and d.Annulled=0 and d.Domain ID=@DomainID and d.LineID=@LineID and d.ProcessID=@ProcessID and d.GroupsID=g.GroupsID and d.DomainID=dom.DomainID and d.UserID=u.UserID and d.GroupsID=@GroupsID and dd.StockOrg=so.StockID and dd.StockDst=sd.StockID and convert (char(10),d.Date,103)>=@initial_dat e and convert (char(10),d.Date,103)<=@final_date group by d.DomainID, d.LineID, d.ProcessID, d.T urn, dd.ProductID,dd.Weight,p.Name,p.Code,p.Unit, l. Line, pr.Process,dom.Domain,d.GroupsID,g.[Group] end END; ------------------------REPORTES POR TURNO agrupado por producto IF(@TipoReporte='CargaTurno') BEGIN SET @SQL='SELECT d.DomainID, d.LineID, d.ProcessID, d.Turn,RIGH T(CONVERT(DATETIME,d.StartTime,108),8) AS StartTime,RIGHT(CONVERT(DATETIME,d.End

Time,108),8) AS EndTime,sum(dd.NroStand) as NroStand,sum(isnull(d.GarbagePice,0) ) as GarbagePice, dd.ProductID,SUM(dd.Quantity)as Quantity,p.Na me,P.Code,p.Unit, l.Line,CONVERT(DATE,d.Date,102) AS Date,d.GroupsID,g.[Group], (u.Name+ + u.LastName) as userName, pr.Process,ROW_NUMBER() OVER (ORDER BY p.Name asc) as row,(g.[Group]+''-''+(u.Name+ + u.LastName)) AS GrupoJefe from prdd_production d,prddd_production dd,gr li_product p,prdi_line l,prdi_process pr, prdd_group g,grl_user u,grli_domain do m,prdi_stock so,prdi_stock sd where d.ProductionID=dd.ProductionID and d.Mo dule=''PRODUCCION'' and p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.Pr ocessID=d.ProcessID and d.InOut=1 and d.Processed=1 and d.Annulled=0 and d.Doma inID='+CAST(@DomainID AS VARCHAR)+' and d.GroupsID=g.GroupsID and d.DomainID=dom.DomainID and d.UserID=u.UserID and dd.StockOrg=so.StockID and dd.StockDst=sd.StockID and d.LineID='''+@LineID+''' and d.ProcessID='''+@ProcessID+''''; IF(@initial_date!='' and @final_date!='') BEGIN SET @SQL=@SQL+' and CONVERT(DATE,d.Date,102)>='''+C AST(CONVERT(date, @initial_date, 102) AS VARCHAR)+''' and CONVERT(DATE,d.Date,10 2)<='''+CAST(CONVERT(date, @final_date, 102) AS VARCHAR)+''''; END IF(@initial_date='' and @final_date!='' or @initial_dat e is null) BEGIN SET @SQL=@SQL+' AND CONVERT(DATE,d.Date,102)<='''+C AST(CONVERT(date, @final_date, 102) AS VARCHAR)+''''; END IF(@Turn <> '') BEGIN SET @SQL=@SQL+' and d.Turn='''+@Turn+''''; END IF(@GroupsID <> '') BEGIN SET @SQL=@SQL+' and d.GroupsID='''+@GroupsID+''''; END IF(@UserID <> '') BEGIN SET @SQL=@SQL+' and d.UserID='''+@UserID+''''; END SET @SQL=@SQL+' GROUP BY d.Turn,g.[Group],CONVERT( DATE,d.Date,102),d.ProductionID,d.DomainID, d.LineID, d.ProcessID, d.GarbagePice,d.StartTime,d.EndTime ,d.GroupsID,g.[Group],u.Name,u.LastName,dd.NroStand,dd.ProductID, p.Name,P.Code,p.Unit, l.Line, pr.Pr

ocess' SET @SQL=@SQL+' ORDER BY d.Turn,g.[Group] asc,CONVE RT(DATE,d.Date,102),dd.ProductID';

--print(@SQL); EXECUTE(@SQL); END; -----------------IF(@TipoReporte='InformeDiarioCarga') BEGIN select d.NumTransaction,(select Stock from prdi_stock where Sto ckID=dd.NroWagonsID) as Vagons, p.Code as NameProduct,dd.Quantity,dd.[Weight], c onvert (char(10),d.Date,103)as Dates, (u.Name+ + u.LastName) as userName, Convert(Char(8),d.StartTime, 108) As StartTime, Convert(Char(8),d.EndTime, 108) As EndTime, d.Turn,p.Unit, (SELECT Domain FROM grli_domain WHERE DomainID=@DomainID) AS Dom ain,(SELECT Line FROM prdi_line WHERE LineID=@LineID)AS Line, d.GroupsID,g.[Grou p],d.Note, so.Stock AS Origen, sd.Stock AS Destino into #temp from prdd_production d,prddd_production dd,grli_product p,prdi_l ine l,prdi_process pr, prdd_group g,grl_user u,grli_domain dom,prdi_stock so,prd i_stock sd where d.ProductionID=dd.ProductionID and d.Module='PRODUCCION' a nd p.ProductID=dd.ProductID and l.LineID=d.LineID and pr.ProcessID=d.ProcessID and d.InOut=1 and d.Annulled=0 and d.Processed=1 and d.DomainID=@DomainID and d.LineID=@LineID and d.ProcessID=@ProcessID and d.GroupsID=g.GroupsID and dd.StockOrg=so.StockID and dd.StockDst=sd.StockID and d.DomainID=dom.DomainID and d.UserID=u.UserID and d.ProductionID=@InventoryIDpro select t.NumTransaction, count(t.Vagons) as Vagons, t.NameProduc t,sum(t.Quantity) as Quantity,ROUND(((sum(t.Quantity)*t.[Weight])/1000),2) as To neladas,t.Dates,t.userName,t.StartTime,t.EndTime,t.Turn,t.Unit,t.Domain,t.Line,t .GroupsID, t.[Group], t.Note, t.Origen,t.Destino from #temp t group by t.NumTransaction, t.NameProduct,t.Dates,t.userName,t.St artTime,t.EndTime,t.Turn,t.Unit,t.Domain,t.Line,t.GroupsID, t.[Group], t.Note, t .Origen,t.Destino, t.[Weight] drop table #temp END ---------- FIn COMMIT end try begin catch rollback print ERROR_MESSAGE()

end catch

You might also like