Skip to content

Instantly share code, notes, and snippets.

@dafma
Last active May 3, 2017 18:19
Show Gist options
  • Save dafma/3f920a14f8801539034982b9de7ab7d6 to your computer and use it in GitHub Desktop.
Save dafma/3f920a14f8801539034982b9de7ab7d6 to your computer and use it in GitHub Desktop.
IF @Zona='METRO'
Begin
Select * From #Acertividad Where FechaInicioC Between @FechaD And @FechaA Order by AgenteNombre, Movimiento
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select * From #Acertividad Where FechaInicioC Between @FechaD And @FechaA Order by Agente, FechaInicioC
End
/****** Object: StoredProcedure [dbo].[spEmbudoVentasABC] Script Date: 04/25/2017 18:05:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec spEmbudoVentasABC 'LMAGVT','(Todos)','(Todos)','AGP','ZZZZZZ', '07/01/2014','07/31/2014','LMA',0,null
ALTER PROCEDURE [dbo].[spEmbudoVentasABC]
@Usuario Char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@FechaD Datetime,
@FechaA Datetime,
@Empresa char(5),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
AS BEGIN
Declare
@Categoria VarChar(50),
@Agente Char(10),
@ID int,
@IDRelacion Int,
@Moneda Char(10),
@TipoCambio Float
exec spValidaAgentesGABC --cambiado/agregado para nuevo filtro Diciembre 2014
@Usuario,
@Empresa ,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
--exec spEmbudoVentasABC 'GVT','(Todos)','(Todos)','AGP','ZZZZZZ', '01/07/2014','31/07/2014','LMA',0,''
--Set dateFormat dmy
-- IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
--Select @Sucursal=NullIF(@Sucursal, '')
CREATE TABLE #EmbudoVenta(
Orden int NULL,
ID Int NULL,
Mov Char(20) NULL,
MovID varchar(20) NULL,
Cliente char(10) NULL,
Grupo varchar(50) NULL,
Familia varchar(50) NULL,
Agente char(10) NULL,
NomAgente varchar(100) NULL,
FechaOriginal Datetime NULL,
Situacion varchar(50) NULL,
Seguimiento varchar(100) NULL,
Moneda Char(10) null,
TipoCambio Float null,
Importe money NULL,
ImporteP money NULL,
Contacto varchar(50) NULL,
Puesto varchar(50) NULL,
MovCrm Char(20) Null,
MovIdCrm VarChar(20) Null,
FechaSituacion Datetime NULL,
FechaActividad DateTime Null,
CantidadSituacion int NULL,
ImporteSituacion money NULL,
FechaSeguimiento Datetime null,
Objetivo Text null,
Compromiso Text null,
Porcentaje float null,
ImporteSituacionP money null)
INSERT #EmbudoVenta
(Orden, ID,Mov,Moneda,TipoCambio, MovID, Cliente, Grupo,Familia, Agente,NomAgente, FechaOriginal, Situacion, Seguimiento, Importe, ImporteP, Contacto, Puesto, FechaSituacion)
SELECT Distinct 1,v.ID, v.Mov,v.Moneda,v.Tipocambio, v.MovID, v.Cliente, ag.Grupo,ag.Familia, v.Agente, ag.Nombre, v.FechaEmision, v.Situacion, v.SituacionNota, v.Importe, 0, v.Atencion, ct.Cargo,v.FechaInicioC-- LEFT(CONVERT(varchar, v.FechaInicioC, 110),10)
FROM Venta v, CteCto ct, Cte c, Agente ag
WHERE v.Cliente = c.Cliente
AND c.Cliente = ct.Cliente
AND v.Atencion = ct.Nombre
AND v.Agente = ag.Agente
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND v.Agente BETWEEN @AgenteD AND @AgenteA
-- AND ((v.FechaInicioC is not Null And v.FechaInicioC BETWEEN @FechaD AND @FechaA) or (Isnull(v.FechaInicioC,'')=Isnull(v.FechaInicioC,'')))
-- Por Indicaciones de RGC y JSU se deshabilito el filtro de Fecha para que salgan todas las pendientes 18/10/2013.
AND v.Mov ='Cotización Cliente'
AND v.Estatus='PENDIENTE'
AND v.Empresa = Isnull(@Empresa,v.Empresa)
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
-- AND ag.Categoria = IsNull(@Categoria,ag.Categoria) --cambiado/agregado para nuevo filtro Diciembre 2014
And ag.Familia=Isnull(@Familia,ag.Familia)
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And Substring(v.Mov,5,1)<>'-' ---esto es para que no incluya las subctoizaciones
And v.Situacion in('PARA EVALUACION','NEGOCIACIÓN CLIENTE')
--exec spEmbudoVentasABC 'ALOPEZ2','(Todos)','(Todos)','AGP','ZZZZZZ', '01/01/2014','01/31/2014','LMA',0
---
DECLARE crAuxiliar CURSOR FOR
SELECT ID From #EmbudoVenta
OPEN crAuxiliar
FETCH NEXT FROM crAuxiliar INTO @ID
WHILE @@FETCH_STATUS <> -1 And @@Error=0
BEGIN
IF @@FETCH_STATUS <> -2
Begin
Select @IDRelacion=(Select Max(ID) From crmventas Where idventas=@ID)
Update #EmbudoVenta
Set FechaSeguimiento=c.FechaSeguimiento,
MovCrm =c.Mov,
MovIdCrm =c.Movid,
FechaActividad =c.FechaActividad,
Objetivo =c.Objetivo,
Compromiso =c.Compromisos,
ImporteP =IsNull(((a.Importe*IsNull(c.Cumplimiento,0))/100),0),
Porcentaje =IsNull(c.Cumplimiento,0)
From #EmbudoVenta a,crmVentas c
Where c.ID=@IdRelacion
And a.ID=@ID
--Where Current of crAuxiliar
End
FETCH NEXT FROM crAuxiliar INTO @ID
END
CLOSE crAuxiliar
DEALLOCATE crAuxiliar
---
SELECT * Into #EmbudoVenta2 FROM #EmbudoVenta --WHERE ORDEN=1
Where ((FechaSeguimiento is not Null And FechaSeguimiento BETWEEN @FechaD AND @FechaA) or (FechaSeguimiento is Null))
/****Se quita el Filtro por FechaSituacion y Se cambia por FechaSeguimiento, solicitado por JS 12-02-2008 USB
Where ((FechaSituacion is not Null And FechaSituacion BETWEEN @FechaD AND @FechaA) or (Fechasituacion is Null))
*****/
DECLARE crAuxiliar CURSOR FOR
SELECT Distinct Agente,Moneda From #EmbudoVenta2
OPEN crAuxiliar
FETCH NEXT FROM crAuxiliar INTO @Agente,@Moneda
WHILE @@FETCH_STATUS <> -1 And @@Error=0
BEGIN
IF @@FETCH_STATUS <> -2
Begin
SELECT DISTINCT Situacion, Mov,Moneda
INTO #ResumenSit
FROM #EmbudoVenta2
Where Agente=@Agente
ORDER BY Situacion
SELECT Situacion, Mov, CantidadSituacion = COUNT(Situacion)
INTO #ResumenSitCant
FROM #EmbudoVenta2
Where Agente=@Agente
GROUP BY Situacion, Mov
ORDER BY Situacion
SELECT Situacion, Mov, ImporteSituacion = SUM(Importe)
INTO #ResumenSitImp
FROM #EmbudoVenta2
Where Agente=@Agente
GROUP BY Situacion, Mov
ORDER BY Situacion
SELECT Situacion, Mov, ImporteSituacionP = SUM(ImporteP)
INTO #ResumenSitImpP
FROM #EmbudoVenta2
Where Agente=@Agente
GROUP BY Situacion, Mov
ORDER BY Situacion
Select @Grupo=(Select Grupo FRom Agente Where Agente=@Agente)
Select @Familia=(Select Familia FRom Agente Where Agente=@Agente)
INSERT #EmbudoVenta2
(Orden,Agente, Grupo,Familia,Moneda,Situacion, Mov, CantidadSituacion, ImporteSituacion, ImporteSituacionP)
SELECT 2, @Agente,@Grupo,@Familia,a.Moneda,a.Situacion, a.Mov, b.CantidadSituacion, c.ImporteSituacion, d.ImporteSituacionP
FROM #ResumenSit a, #ResumenSitCant b, #ResumenSitImp c, #ResumenSitImpP d
WHERE a.Situacion = b.Situacion AND a.Mov = b.Mov
AND a.Situacion = c.Situacion AND a.Mov = c.Mov
AND a.Situacion = d.Situacion AND a.Mov = d.Mov
ORDER BY a.Situacion, a.Mov
Drop Table #ResumenSit
Drop Table #ResumenSitCant
Drop Table #ResumenSitImp
Drop Table #ResumenSitImpP
End
FETCH NEXT FROM crAuxiliar INTO @Agente,@Moneda
END
CLOSE crAuxiliar
DEALLOCATE crAuxiliar
Update #EmbudoVenta2 Set ImporteP=0 Where ImporteP Is Null
IF @Zona='METRO'
Begin
SELECT * FROM #EmbudoVenta2 ORDER BY Grupo, NomAgente, Orden, FechaActividad, Situacion dESC
End
Else
IF @Zona<>'METRO'
Begin
SELECT * FROM #EmbudoVenta2 ORDER BY Grupo, Agente, Orden, FechaActividad, Situacion dESC
End
END
/****** Object: StoredProcedure [dbo].[sp_Ctes_Arranque] Script Date: 05/02/2017 11:28:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_Ctes_Arranque]
@Usuario Char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@FechaD Datetime,
@FechaA Datetime,
@Empresa char(5),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
Create Table #Venta(
Agente char(10) Null,
AgenteNom varchar(100) Null,
Cliente char(10) Null,
Nombre varchar(100) Null,
FechaArranque DateTime Null,
FechaResultados DateTime Null,
CMov char(20) Null,
CMovID varchar(20) Null,
CFechaEmision DateTime Null,
CImporte Money Null,
FMov char(20) Null,
FMovID varchar(20) Null,
FFechaEmision DateTime Null,
FImporte Money Null
)
/***Consulta para el Reporte***/
--sp_Ctes_Arranque '{Usuario}', '{Info.Gerencias}', '{Info.CoordinacionABC}', '{Info.AgenteD}', '{Info.AgenteA}','{Info.FechaD}', '{Info.FechaA}', '{Empresa}'
/***Forma Previa***/
--EspecificarAgentesFiltro
--sp_Ctes_Arranque 'GVT', '(Todos)', '(Todos)', 'AMO', 'RJM', '01-12-2007', '31-12-2007', 'LABC'
Declare
@Cliente char(10),
@Nombre varchar(100),
@FechaArranque DateTime,
@FechaResultados DateTime,
@Mov char(20),
@MovID varchar(20),
@FechaEmision Datetime,
@Importe Money,
@ID Int,
@Agente char(10),
@AgenteNom varchar(100),
@Categoria VarChar(50)
Execute spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
Set @ID=0
Select c.Agente, AgenteNom=ag.Nombre, c.Cliente, c.Nombre, FechaArranque, FechaResultados
Into #Ctes
From Cte c
Left Outer Join Agente ag On ag.Agente=c.Agente
Where c.FechaArranque Between @FechaD And @FechaA--c.FechaArranque >=@FechaD And c.FechaResultados <=@FechaA
And ag.Agente between @AgenteD And @AgenteA
--And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
Declare CrCtes Cursor For
Select Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados From #Ctes
Open CrCtes
Fetch Next From CrCtes Into
@Agente, @AgenteNom, @Cliente, @Nombre, @FechaArranque, @FechaResultados
While @@Fetch_Status <> -1 And @@Error =0
Begin
IF @@Fetch_Status <> -2
Begin
Insert Into #Venta(Agente, AgenteNom, Cliente, Nombre, CMovID, FechaArranque, FechaResultados, CFechaEmision, CImporte, FMov, FMovID, FFechaEmision, FImporte, CMov)
Values (@Agente, @AgenteNom, @Cliente, @Nombre, Null, @FechaArranque, @FechaResultados, Null, 0, 'Factura', '0', 0, 0, 'Cotización Cliente')
Declare CrVentas Cursor For
Select Mov, MovID, FechaEmision, ((Importe+Impuestos)*TipoCambio) From Venta
Where FechaEmision Between @FechaArranque And @FechaResultados And Cliente=@Cliente
And IsNull(Sucursal, '') = IsNull(IsNull(@Sucursal, Sucursal), '')
And Mov='Cotización Cliente' And Estatus In ('PENDIENTE', 'CONCLUIDO') And MovID Not Like'%-%'
Open CrVentas
Fetch Next From CrVentas Into
@Mov, @MovID, @FechaEmision, @Importe
While @@Fetch_Status <> -1 And @@Error =0
Begin
IF @@Fetch_Status <> -2
Begin
IF @Mov Is Not Null
Begin
Insert Into #Venta(Agente, AgenteNom, Cliente, Nombre, CMov, CMovID, FechaArranque, FechaResultados, CFechaEmision, CImporte, FMov, FMovID, FFechaEmision, FImporte)
Values
(@Agente, @AgenteNom, @Cliente, @Nombre, @Mov, @MovID, @FechaArranque, @FechaResultados, @FechaEmision, @Importe, 'Factura', '0', 0, 0)
End
End
Fetch Next From CrVentas Into
@Mov, @MovID, @FechaEmision, @Importe
End
Close CrVentas
Deallocate CrVentas
End
Fetch Next From CrCtes Into
@Agente, @AgenteNom, @Cliente, @Nombre, @FechaArranque, @FechaResultados
End
Close CrCtes
Deallocate CrCtes
Declare CrCtes Cursor For
Select Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados From #Ctes
Open CrCtes
Fetch Next From CrCtes Into
@Agente, @AgenteNom, @Cliente, @Nombre, @FechaArranque, @FechaResultados
While @@Fetch_Status <> -1 And @@Error =0
Begin
IF @@Fetch_Status <> -2
Begin
Declare CrVentas Cursor For
Select Mov, MovID, FechaEmision, ((Importe+Impuestos)*TipoCambio) From Venta
Where FechaEmision Between @FechaArranque And @FechaResultados And Cliente=@Cliente
And IsNull(Sucursal, '') = IsNull(IsNull(@Sucursal, Sucursal), '')
And Mov='Factura' And Estatus='CONCLUIDO'
Open CrVentas
Fetch Next From CrVentas Into
@Mov, @MovID, @FechaEmision, @Importe
While @@Fetch_Status <> -1 And @@Error =0
Begin
IF @@Fetch_Status <> -2
Begin
IF @Mov Is Not Null
Begin
Insert Into #Venta(Agente, AgenteNom, CMov, CMovID, CFechaEmision, CImporte, Cliente, Nombre, FMov, FMovID, FechaArranque, FechaResultados, FFechaEmision, FImporte)
Values
(@Agente, @AgenteNom, 'Cotización Cliente', '0', 0, 0, @Cliente, @Nombre, @Mov, @MovID, @FechaArranque, @FechaResultados, @FechaEmision, @Importe)
End
End
Fetch Next From CrVentas Into
@Mov, @MovID, @FechaEmision, @Importe
End
Close CrVentas
Deallocate CrVentas
End
Fetch Next From CrCtes Into
@Agente, @AgenteNom, @Cliente, @Nombre, @FechaArranque, @FechaResultados
End
Close CrCtes
Deallocate CrCtes
IF @Zona='METRO'
Begin
Select AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, CImporte=Sum(CImporte), FMov, FImporte=Sum(FImporte) From #Venta
Group By AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, FMov
Order By FImporte Desc
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, CImporte=Sum(CImporte), FMov, FImporte=Sum(FImporte) From #Venta
Group By Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, FMov
Order By FImporte Desc
End
End
--select * from cte where fechaarranque is not null
/*
Verion anterior 02/05/2017
--select * from #Venta
Select Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, CImporte=Sum(CImporte), FMov, FImporte=Sum(FImporte) From #Venta
Group By Agente, AgenteNom, Cliente, Nombre, FechaArranque, FechaResultados, CMov, FMov
Order By FImporte Desc
*/
/****** Object: StoredProcedure [dbo].[sp_EstatusGanadosyPerdidos] Script Date: 04/28/2017 14:16:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_EstatusGanadosyPerdidos]
@Usuario Char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@FechaD Datetime,
@FechaA Datetime,
@Empresa char(5),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
--select @Usuario='GVT'
Declare
@Categoria VarChar(50)
--Select @Sucursal=NullIF(@Sucursal, '')
exec spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
Create Table #Movs(
ID Int Null,
Agente char(10) Null,
AgenteNombre char(100) Null,
Movimiento varchar(40) Null,
Cliente char(10) Null,
CteNombre varchar(100) Null,
Estatus char(15) Null,
FechaEmision datetime Null,
FechaInicioO datetime Null,
FechaInicioC datetime Null,
Importe Money Null,
MovimientoD varchar(40) Null,
EstatusD char(15) Null,
FechaEmisionD datetime Null,
Porcentaje int Null,
GanadosenTiempo int Null,
TotalGanados Int Null,
TotalPerdidos Int Null,
ImporteGanados Money Null,
ImportePerdidos Money Null,
TotalOrdenes int Null)
Insert Into #Movs
Select v.ID, v.Agente, AgenteNombre=a.Nombre, Movimiento=(Ltrim(Rtrim(v.Mov))+' '+Ltrim(Rtrim(v.MovID))), v.Cliente,
CteNombre=c.Nombre,
v.Estatus,
v.FechaEmision,
FechaInicioO=v.FechaInicioC,
FechaInicioC=DateAdd(day, 10, v.FechaInicioC), v.Importe,
MovimientoD=(Ltrim(Rtrim(v1.Mov))+' '+Ltrim(Rtrim(v1.MovID))), EstatusD=v1.Estatus, FechaEmisionD=v1.FechaEmision,
Porcentaje=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision <=DateAdd(day, 10, v.FechaInicioC) And v1.Estatus='CONCLUIDO'
Then 100 Else 0 End,
GanadosenTiempo=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision <=DateAdd(day, 10, v.FechaInicioC) And v1.Estatus='CONCLUIDO' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalGanados=Case
When v1.Mov='Cotizacion Concluida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalPerdidos=Case
When v1.Mov='Venta Perdida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
ImporteGanados=Case
When v1.Mov='Cotizacion Concluida' --And v1.FechaEmision <=DateAdd(day, 10, v.FechaInicioC) And v1.Estatus='CONCLUIDO'
Then v.Importe Else 0 End,
ImportePerdidos=Case
When v1.Mov='Venta Perdida' And v1.Estatus='CONCLUIDO'
Then v.Importe Else 0 End,
TotalOrdenes=1
From Venta v
Join Venta v1 On v1.Origen=v.Mov And v1.OrigenID=v.MovID And v1.Empresa=Isnull(@Empresa,v1.Empresa) And v1.Mov in ('Cotizacion Concluida', 'Venta Perdida') And v1.Estatus ='CONCLUIDO'
And IsNull(v1.Sucursal, '') = IsNull(IsNull(@Sucursal, v1.Sucursal), '')
Left Outer Join Agente a On a.Agente=v.Agente
Join Cte c On c.Cliente=v.Cliente
Where v.Mov='Cotización Cliente' And v.Estatus In ('CONCLUIDO', 'PENDIENTE', 'SINAFECTAR') And v.MovID Not Like '%-%'
--And v1.Estatus In('CONCLUIDO', Null)
--And IsNull(a.Categoria, '') = IsNull(IsNull(@Categoria, a.Categoria), '')
And IsNull(a.Familia, '') = IsNull(IsNull(@Familia, a.Familia), '')
And IsNull(a.Grupo, '') = IsNull(IsNull(@Grupo, a.Grupo), '')
And a.Agente Between @AgenteD And @AgenteA
And a.Zona=Isnull(@Zona,a.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And v.Empresa=Isnull(@Empresa,v.Empresa) And v.FechaInicioC Between @FechaD And @FechaA
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
Order By v.Agente, v.FechaInicioC
--sp_EstatusGanadosyPerdidos 'GVT', '(Todos)', '(Todos)', 'MAC', 'MAC', '01-05-2008', '31-05-2008', 'LABC', 1
IF @Zona='METRO'
Begin
Select * From #Movs Order By AgenteNombre, FechaInicioC -- Where MovimientoD Is Not Null
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select * From #Movs-- Where MovimientoD Is Not Null
End
End
/****** Object: StoredProcedure [dbo].[sp_MontoCotvsCuoCot] Script Date: 04/27/2017 16:00:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_MontoCotvsCuoCot]
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Periodo int,
@Empresa char(5),
@Usuario Char(10),
@Familia Varchar(50),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
--sp_MontoCotvsCuoCot '(Todos)', 'AAM', 'ZZZZZZ', 2015, 1, 'LABC', 'GDA010', '(Todos)',1,'OCCIDENTE'
Declare
@Categoria VarChar(50),
@PrimerDiaMes Datetime,
@UltimoDiaMes Datetime,
@IniSemana1 Datetime,
@FinSemana1 Datetime,
@IniSemana2 Datetime,
@FinSemana2 Datetime,
@IniSemana3 Datetime,
@FinSemana3 Datetime,
@IniSemana4 Datetime,
@FinSemana4 Datetime,
@IniSemana5 Datetime,
@FinSemana5 Datetime,
@Dias1 int,
@Dias2 int,
@Dias3 int,
@Dias4 int,
@Dias5 int,
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@Cuota money,
@FechaX Datetime,
@CuotaDia money
IF Exists (Select * From SysObjects Where ID =Object_ID('dbo.FactCuotaC') And Type ='U')
Drop Table dbo.FactCuotaC
CREATE TABLE FactCuotaC (
Valor Int Null,
Grupo varchar(50) NULL,
Agente char(10) NULL,
AgenteNombre varchar(100) NULL,
Mov char(30) Null,
Cuota1 money NULL,
Importe1 money NULL,
FechaD1 Datetime NULL,
FechaA1 Datetime NULL,
Cuota2 money NULL,
Importe2 money NULL,
FechaD2 Datetime NULL,
FechaA2 Datetime NULL,
Cuota3 money NULL,
Importe3 money NULL,
FechaD3 Datetime NULL,
FechaA3 Datetime NULL,
Cuota4 money NULL,
Importe4 money NULL,
FechaD4 Datetime NULL,
FechaA4 Datetime NULL,
Cuota5 money NULL,
Importe5 money NULL,
FechaD5 Datetime NULL,
FechaA5 Datetime NULL)
exec spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
SELECT @PrimerDiaMes = CONVERT(Datetime, '01/'+CONVERT(char(2), @Periodo)+'/'+CONVERT(char(4), @Ejercicio), 103)
SELECT @UltimoDiaMes = DATEADD(m, 1, @PrimerDiaMes) - 1
SELECT @IniSemana1 = @PrimerDiaMes
SELECT @FinSemana1 = @IniSemana1 + 6
SELECT @Dias1 = DATEDIFF(d, @IniSemana1, @FinSemana1) + 1
SELECT @IniSemana2 = @FinSemana1 + 1
SELECT @FinSemana2 = @IniSemana2 + 6
SELECT @Dias2 = DATEDIFF(d, @IniSemana2, @FinSemana2) + 1
SELECT @IniSemana3 = @FinSemana2 + 1
SELECT @FinSemana3 = @IniSemana3 + 6
SELECT @Dias3 = DATEDIFF(d, @IniSemana3, @FinSemana3) + 1
SELECT @IniSemana4 = @FinSemana3 + 1
SELECT @FinSemana4 = @IniSemana4 + 6
SELECT @Dias4 = DATEDIFF(d, @IniSemana4, @FinSemana4) + 1
IF @FinSemana4 < @UltimoDiaMes
BEGIN
SELECT @IniSemana5 = @FinSemana4 + 1
SELECT @FinSemana5 = @UltimoDiaMes
SELECT @Dias5 = DATEDIFF(d, @IniSemana5, @FinSemana5) + 1
END
Select v.ID, v.Agente, AgenteNombre=a.Nombre, a.Grupo, MovO=v.Mov, MovIDO=v.MovID, v.Cliente, CteNombre=c.Nombre,
v.Estatus, v.FechaEmision, v.FechaInicioC, v.Importe,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo),
MovD=v1.Mov, MovIDD=v1.MovID, EstatusD=v1.Estatus, FechaEmisionD=v1.FechaEmision, ImporteD=v1.Importe,
Porcentaje=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then 100 Else 0 End,
GanadosenTiempo=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalGanados=Case
When v1.Mov='Cotizacion Concluida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalPerdidos=Case
When v1.Mov='Venta Perdida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
ImporteGanados=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then v.Importe Else 0 End,
TotalOrdenes=1
Into #Concentrado
From Venta v
Left Outer Join Venta v1 On v1.Origen=v.Mov And v1.OrigenID=v.MovID
Left Outer Join Agente a On a.Agente=v.Agente
Join Cte c On c.Cliente=v.Cliente
Where v.Mov='Cotización Cliente' And v.Estatus In ('CONCLUIDO', 'PENDIENTE', 'SINAFECTAR') And v.MovID Not Like '%-%'
--And v1.Estatus In('CONCLUIDO', Null)
And IsNull(a.Categoria, '') = IsNull(IsNull(@Categoria, a.Categoria), '')
And IsNull(a.Familia, '') = IsNull(IsNull(@Familia, a.Familia), '')
And IsNull(a.Grupo, '') = IsNull(IsNull(@Grupo, a.Grupo), '')
And a.Agente Between @AgenteD And @AgenteA
And a.Zona=Isnull(@Zona,a.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And v.Empresa=@Empresa And v.Periodo=@Periodo
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
Order By v.Agente, v.MovID
--SELECT * FROM #Concentrado---QUITAR QUITAR QUITAR
--sp_MontoCotvsCuoCot '(Todos)', 'AAM', 'ZZZZZZ', 2015, 1, 'LABC', 'GDA010', '(Todos)',1,'OCCIDENTE'
INSERT FactCuotaC (Valor, Agente, AgenteNombre, Grupo, Mov, Importe1, FechaD1, FechaA1, Importe2, FechaD2, FechaA2, Importe3, FechaD3, FechaA3, Importe4, FechaD4, FechaA4, Importe5, FechaD5, FechaA5)
-- SE INSERTA LA CUOTA TRIPLEPLICADA
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Cuota*3 / Day(@UltimoDiaMes)* @Dias1, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Cuota*3 / Day(@UltimoDiaMes)* @Dias2, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Cuota*3 / Day(@UltimoDiaMes)* @Dias3, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Cuota*3 / Day(@UltimoDiaMes)* @Dias4, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Cuota*3 / Day(@UltimoDiaMes)* @Dias5, @IniSemana5, @FinSemana5 From #Concentrado
Union
-- SE INSERTA LA CUOTA DE COTIZACIONES
Select 20, Agente, AgenteNombre, Grupo, MovO, Sum(Importe), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana1 AND @FinSemana1 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Sum(Importe), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana2 AND @FinSemana2 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(Importe), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana3 AND @FinSemana3 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(Importe), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana4 AND @FinSemana4 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(Importe), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana5 AND @FinSemana5 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
-- SE INSERTA LOS PORCENTAJES ALCANZADOS
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias1), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana1 AND @FinSemana1 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias2), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana2 AND @FinSemana2 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias3), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana3 AND @FinSemana3 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias4), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana4 AND @FinSemana4 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias5), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana5 AND @FinSemana5 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
-- SE INSERTA LA CUOTA SENCILLA
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Cuota / Day(@UltimoDiaMes)* @Dias1, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Cuota / Day(@UltimoDiaMes)* @Dias2, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Cuota / Day(@UltimoDiaMes)* @Dias3, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Cuota / Day(@UltimoDiaMes)* @Dias4, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Cuota / Day(@UltimoDiaMes)* @Dias5, @IniSemana5, @FinSemana5 From #Concentrado
-- SE INSERTA LA CUOTA COTIZACIONES CONCLUIDAS
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Sum(ImporteD), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Sum(ImporteD), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(ImporteD), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(ImporteD), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(ImporteD), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
-- SE INSERTA EL PORCENTAJE ALCANZADO ENTRE COTIZACIONES CONCLUIDAS Y CUOTA SENCILLA
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias1), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias2), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias3), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias4), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias5), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
-- SE INSERTA LA CUOTA DE VENTAS PERDIDAS
Select 50, Agente, AgenteNombre, Grupo, MovD, Sum(ImporteD), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Sum(ImporteD), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(ImporteD), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(ImporteD), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(ImporteD), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Update FactCuotaC Set Mov='MONTO REAL COTIZADO' Where Mov='Cotización Cliente'
Update FactCuotaC Set Mov='CUOTA SENC. POR CERRAR' Where Mov='CUOTA SENCILLA POR COTIZAR'
Update FactCuotaC Set Mov='COTIZACIONES CERRADAS' Where Mov='Cotizacion Concluida'
Update FactCuotaC Set Mov='% ALCANZADO' Where Mov='% ALCANZADO SENCILLO'
Update FactCuotaC Set Mov='MONTO VENTA PERDIDA' Where Mov='Venta Perdida'
IF @Zona='METRO'
Begin
Select Valor, Grupo, AgenteNombre, Mov,
Importe1=Sum(Importe1), FechaD1, FechaA1,
Importe2=Sum(Importe2), FechaD2, FechaA2,
Importe3=Sum(Importe3), FechaD3, FechaA3,
Importe4=Sum(Importe4), FechaD4, FechaA4,
Importe5=Sum(Importe5), FechaD5, FechaA5
From FactCuotaC
Group By Valor, Grupo, AgenteNombre, Mov,
FechaD1, FechaA1,
FechaD2, FechaA2,
FechaD3, FechaA3,
FechaD4, FechaA4,
FechaD5, FechaA5
Order By Grupo, AgenteNombre, Valor
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select Valor, Grupo, Agente, AgenteNombre, Mov,
Importe1=Sum(Importe1), FechaD1, FechaA1,
Importe2=Sum(Importe2), FechaD2, FechaA2,
Importe3=Sum(Importe3), FechaD3, FechaA3,
Importe4=Sum(Importe4), FechaD4, FechaA4,
Importe5=Sum(Importe5), FechaD5, FechaA5
From FactCuotaC
Group By Valor, Grupo, Agente, AgenteNombre, Mov,
FechaD1, FechaA1,
FechaD2, FechaA2,
FechaD3, FechaA3,
FechaD4, FechaA4,
FechaD5, FechaA5
Order By Grupo, Agente, Valor
End
End
/****** Object: StoredProcedure [dbo].[sp_MontoCotvsCuoCot] Script Date: 04/27/2017 19:07:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_MontoCotvsCuoCot]
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Periodo int,
@Empresa char(5),
@Usuario Char(10),
@Familia Varchar(50),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
IF @Familia IN ('NULL', '', '0', '(Todos)') SELECT @Familia = NULL
IF @Ejercicio = 0 SELECT @Ejercicio = YEAR(GETDATE())
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
--sp_MontoCotvsCuoCot '(Todos)', 'AAM', 'ZZZZZZ', 2015, 1, 'LABC', 'GDA010', '(Todos)',1,'OCCIDENTE'
Declare
@Categoria VarChar(50),
@PrimerDiaMes Datetime,
@UltimoDiaMes Datetime,
@IniSemana1 Datetime,
@FinSemana1 Datetime,
@IniSemana2 Datetime,
@FinSemana2 Datetime,
@IniSemana3 Datetime,
@FinSemana3 Datetime,
@IniSemana4 Datetime,
@FinSemana4 Datetime,
@IniSemana5 Datetime,
@FinSemana5 Datetime,
@Dias1 int,
@Dias2 int,
@Dias3 int,
@Dias4 int,
@Dias5 int,
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@Cuota money,
@FechaX Datetime,
@CuotaDia money
IF Exists (Select * From SysObjects Where ID =Object_ID('dbo.FactCuotaC') And Type ='U')
Drop Table dbo.FactCuotaC
CREATE TABLE FactCuotaC (
Valor Int Null,
Grupo varchar(50) NULL,
Agente char(10) NULL,
AgenteNombre varchar(100) NULL,
Mov char(30) Null,
Cuota1 money NULL,
Importe1 money NULL,
FechaD1 Datetime NULL,
FechaA1 Datetime NULL,
Cuota2 money NULL,
Importe2 money NULL,
FechaD2 Datetime NULL,
FechaA2 Datetime NULL,
Cuota3 money NULL,
Importe3 money NULL,
FechaD3 Datetime NULL,
FechaA3 Datetime NULL,
Cuota4 money NULL,
Importe4 money NULL,
FechaD4 Datetime NULL,
FechaA4 Datetime NULL,
Cuota5 money NULL,
Importe5 money NULL,
FechaD5 Datetime NULL,
FechaA5 Datetime NULL)
exec spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
SELECT @PrimerDiaMes = CONVERT(Datetime, '01/'+CONVERT(char(2), @Periodo)+'/'+CONVERT(char(4), @Ejercicio), 103)
SELECT @UltimoDiaMes = DATEADD(m, 1, @PrimerDiaMes) - 1
SELECT @IniSemana1 = @PrimerDiaMes
SELECT @FinSemana1 = @IniSemana1 + 6
SELECT @Dias1 = DATEDIFF(d, @IniSemana1, @FinSemana1) + 1
SELECT @IniSemana2 = @FinSemana1 + 1
SELECT @FinSemana2 = @IniSemana2 + 6
SELECT @Dias2 = DATEDIFF(d, @IniSemana2, @FinSemana2) + 1
SELECT @IniSemana3 = @FinSemana2 + 1
SELECT @FinSemana3 = @IniSemana3 + 6
SELECT @Dias3 = DATEDIFF(d, @IniSemana3, @FinSemana3) + 1
SELECT @IniSemana4 = @FinSemana3 + 1
SELECT @FinSemana4 = @IniSemana4 + 6
SELECT @Dias4 = DATEDIFF(d, @IniSemana4, @FinSemana4) + 1
IF @FinSemana4 < @UltimoDiaMes
BEGIN
SELECT @IniSemana5 = @FinSemana4 + 1
SELECT @FinSemana5 = @UltimoDiaMes
SELECT @Dias5 = DATEDIFF(d, @IniSemana5, @FinSemana5) + 1
END
Select v.ID, v.Agente, AgenteNombre=a.Nombre, a.Grupo, MovO=v.Mov, MovIDO=v.MovID, v.Cliente, CteNombre=c.Nombre,
v.Estatus, v.FechaEmision, v.FechaInicioC, v.Importe,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo),
MovD=v1.Mov, MovIDD=v1.MovID, EstatusD=v1.Estatus, FechaEmisionD=v1.FechaEmision, ImporteD=v1.Importe,
Porcentaje=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then 100 Else 0 End,
GanadosenTiempo=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalGanados=Case
When v1.Mov='Cotizacion Concluida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
TotalPerdidos=Case
When v1.Mov='Venta Perdida' And v1.Estatus='CONCLUIDO'
Then 1 Else 0 End,
ImporteGanados=Case
When v1.Mov='Cotizacion Concluida' And v1.FechaEmision Between @IniSemana1 And @UltimoDiaMes And v1.Estatus='CONCLUIDO'
Then v.Importe Else 0 End,
TotalOrdenes=1
Into #Concentrado
From Venta v
Left Outer Join Venta v1 On v1.Origen=v.Mov And v1.OrigenID=v.MovID
Left Outer Join Agente a On a.Agente=v.Agente
Join Cte c On c.Cliente=v.Cliente
Where v.Mov='Cotización Cliente' And v.Estatus In ('CONCLUIDO', 'PENDIENTE', 'SINAFECTAR') And v.MovID Not Like '%-%'
--And v1.Estatus In('CONCLUIDO', Null)
And IsNull(a.Categoria, '') = IsNull(IsNull(@Categoria, a.Categoria), '')
And IsNull(a.Familia, '') = IsNull(IsNull(@Familia, a.Familia), '')
And IsNull(a.Grupo, '') = IsNull(IsNull(@Grupo, a.Grupo), '')
And a.Agente Between @AgenteD And @AgenteA
And a.Zona=Isnull(@Zona,a.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And v.Empresa=@Empresa And v.Periodo=@Periodo
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
Order By v.Agente, v.MovID
--SELECT * FROM #Concentrado---QUITAR QUITAR QUITAR
--sp_MontoCotvsCuoCot '(Todos)', 'AAM', 'ZZZZZZ', 2015, 1, 'LABC', 'GDA010', '(Todos)',1,'OCCIDENTE'
INSERT FactCuotaC (Valor, Agente, AgenteNombre, Grupo, Mov, Importe1, FechaD1, FechaA1, Importe2, FechaD2, FechaA2, Importe3, FechaD3, FechaA3, Importe4, FechaD4, FechaA4, Importe5, FechaD5, FechaA5)
-- SE INSERTA LA CUOTA TRIPLEPLICADA
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Cuota*3 / Day(@UltimoDiaMes)* @Dias1, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Cuota*3 / Day(@UltimoDiaMes)* @Dias2, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Cuota*3 / Day(@UltimoDiaMes)* @Dias3, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Cuota*3 / Day(@UltimoDiaMes)* @Dias4, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 10, Agente, AgenteNombre, Grupo, 'CUOTA TRIPLE POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Cuota*3 / Day(@UltimoDiaMes)* @Dias5, @IniSemana5, @FinSemana5 From #Concentrado
Union
-- SE INSERTA LA CUOTA DE COTIZACIONES
Select 20, Agente, AgenteNombre, Grupo, MovO, Sum(Importe), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana1 AND @FinSemana1 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Sum(Importe), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana2 AND @FinSemana2 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(Importe), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana3 AND @FinSemana3 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(Importe), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana4 AND @FinSemana4 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
Select 20, Agente, AgenteNombre, Grupo, MovO, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(Importe), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana5 AND @FinSemana5 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, MovO
Union
-- SE INSERTA LOS PORCENTAJES ALCANZADOS
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias1), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana1 AND @FinSemana1 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias2), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana2 AND @FinSemana2 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias3), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana3 AND @FinSemana3 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias4), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana4 AND @FinSemana4 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 25, Agente, AgenteNombre, Grupo, '% ALCANZADO TRIPLE', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, (Sum(Importe) * 100) / (Cuota * 3 / Day(@UltimoDiaMes)* @Dias5), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmision Between @IniSemana5 AND @FinSemana5 And MovO='Cotización Cliente'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
-- SE INSERTA LA CUOTA SENCILLA
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Cuota / Day(@UltimoDiaMes)* @Dias1, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Cuota / Day(@UltimoDiaMes)* @Dias2, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Cuota / Day(@UltimoDiaMes)* @Dias3, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Cuota / Day(@UltimoDiaMes)* @Dias4, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado
Union
Select 30, Agente, AgenteNombre, Grupo, 'CUOTA SENCILLA POR COTIZAR', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Cuota / Day(@UltimoDiaMes)* @Dias5, @IniSemana5, @FinSemana5 From #Concentrado
-- SE INSERTA LA CUOTA COTIZACIONES CONCLUIDAS
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Sum(ImporteD), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Sum(ImporteD), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(ImporteD), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(ImporteD), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 40, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(ImporteD), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
-- SE INSERTA EL PORCENTAJE ALCANZADO ENTRE COTIZACIONES CONCLUIDAS Y CUOTA SENCILLA
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias1), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias2), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias3), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias4), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
Select 45, Agente, AgenteNombre, Grupo, '% ALCANZADO SENCILLO', Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, (Sum(ImporteD) * 100) / (Cuota / Day(@UltimoDiaMes)* @Dias5), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Cotizacion Concluida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, Cuota
Union
-- SE INSERTA LA CUOTA DE VENTAS PERDIDAS
Select 50, Agente, AgenteNombre, Grupo, MovD, Sum(ImporteD), @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana1 AND @FinSemana1 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Sum(ImporteD), @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana2 AND @FinSemana2 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Sum(ImporteD), @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana3 AND @FinSemana3 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Sum(ImporteD), @IniSemana4, @FinSemana4, Null, @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana4 AND @FinSemana4 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Union
Select 50, Agente, AgenteNombre, Grupo, MovD, Null, @IniSemana1, @FinSemana1, Null, @IniSemana2, @FinSemana2, Null, @IniSemana3, @FinSemana3, Null, @IniSemana4, @FinSemana4, Sum(ImporteD), @IniSemana5, @FinSemana5 From #Concentrado Where FechaEmisionD Between @IniSemana5 AND @FinSemana5 And MovD='Venta Perdida' And EstatusD='CONCLUIDO'
Group By Agente, AgenteNombre, Grupo, MovD
Update FactCuotaC Set Mov='MONTO REAL COTIZADO' Where Mov='Cotización Cliente'
Update FactCuotaC Set Mov='CUOTA SENC. POR CERRAR' Where Mov='CUOTA SENCILLA POR COTIZAR'
Update FactCuotaC Set Mov='COTIZACIONES CERRADAS' Where Mov='Cotizacion Concluida'
Update FactCuotaC Set Mov='% ALCANZADO' Where Mov='% ALCANZADO SENCILLO'
Update FactCuotaC Set Mov='MONTO VENTA PERDIDA' Where Mov='Venta Perdida'
IF @Zona='METRO'
Begin
Select Valor, Grupo, AgenteNombre, Mov,
Importe1=Sum(Importe1), FechaD1, FechaA1,
Importe2=Sum(Importe2), FechaD2, FechaA2,
Importe3=Sum(Importe3), FechaD3, FechaA3,
Importe4=Sum(Importe4), FechaD4, FechaA4,
Importe5=Sum(Importe5), FechaD5, FechaA5
From FactCuotaC
Group By Valor, Grupo, AgenteNombre, Mov,
FechaD1, FechaA1,
FechaD2, FechaA2,
FechaD3, FechaA3,
FechaD4, FechaA4,
FechaD5, FechaA5
Order By Grupo, AgenteNombre, Valor
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select Valor, Grupo, Agente, AgenteNombre, Mov,
Importe1=Sum(Importe1), FechaD1, FechaA1,
Importe2=Sum(Importe2), FechaD2, FechaA2,
Importe3=Sum(Importe3), FechaD3, FechaA3,
Importe4=Sum(Importe4), FechaD4, FechaA4,
Importe5=Sum(Importe5), FechaD5, FechaA5
From FactCuotaC
Group By Valor, Grupo, Agente, AgenteNombre, Mov,
FechaD1, FechaA1,
FechaD2, FechaA2,
FechaD3, FechaA3,
FechaD4, FechaA4,
FechaD5, FechaA5
Order By Grupo, Agente, Valor
End
End
/* ANTERIOR MODIFICADOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO */
/****** Object: StoredProcedure [dbo].[sp_Retrasos_Ordenes] Script Date: 05/03/2017 12:38:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--sp_Retrasos_Ordenes 'LABC', 'GVT', '01-08-2007', '31-08-2007', 'AMO', 'RJM', '(Todos)', '(Todos)', ''
ALTER Procedure [dbo].[sp_Retrasos_Ordenes]
@Empresa char(5),
@Usuario char(10),
@FechaD DateTime,
@FechaA DateTime,
@AgenteD char(10),
@AgenteA char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
Create Table #Ordenes_Conc(
Agente char(10) Null,
AgenteNombre varchar(100) Null,
Mov char(20) Null,
MovID varchar(20) Null,
Estatus char(15) Null,
FechaEmision DateTime Null,
FechaComenzo DateTime Null,
Nombre varchar(100) Null,
EnTiempo Money Null,
D5A7Dias Money Null,
D8A10Dias Money Null,
D11A15Dias Money Null,
D16A30Dias Money Null,
D31A60Dias Money Null,
Mas60Dias Money Null,
TotalXAgente Int Null,
TotalEnTiempo Int Null,
Situacion Varchar(50) null)
Declare
@Hoy DateTime,
@ID Int,
@FechaI DateTime,
@FechaF DateTime,
@FechaComenzo DateTime,
@Situacion varchar(50),
@Mov char(20),
@MovID varchar(20),
@FechaEmision DateTime,
@Nombre varchar(100),
@Dias Int,
@ImporteTotal Money,
@Agente char(10),
@AgenteNombre varchar(100),
@Estatus char(15),
@Categoria VarChar(50)
Execute spValidaAgentesGABC @Usuario, @Empresa, @Categoria OUTPUT, @Familia OUTPUT, @Grupo OUTPUT, @AgenteD OUTPUT, @AgenteA OUTPUT,@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
--Select @Sucursal=NullIF(@Sucursal, '')
Select @Hoy=GetDate()
Select v.ID, v.Empresa, v.Mov, v.MovID, v.Cliente, Cte.Nombre, v.Agente, AgenteNom=Agente.Nombre, v.Situacion, v.Estatus,
v.FechaEmision,FechaComenzo=@Hoy, Dias=0, Hoy=@Hoy, ImporteTotal=(v.Importe + v.Impuestos)*v.TipoCambio
Into #Orden
From Venta v
Join Cte On Cte.Cliente=v.Cliente
Left Outer Join Agente On Agente.Agente=v.Agente
Where v.Mov='Orden Facturacion' And v.Estatus In ('SINAFECTAR', 'PENDIENTE')
--And FechaEmision Between @FechaD And @FechaA
And Empresa=Isnull(@Empresa,Empresa)
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
--And IsNull(Agente.Categoria, '') = IsNull(IsNull(@Categoria, Agente.Categoria), '')
And IsNull(Agente.Familia, '') = IsNull(IsNull(@Familia, Agente.Familia), '')
And IsNull(Agente.Grupo, '') = IsNull(IsNull(@Grupo, Agente.Grupo), '')
AND v.Agente Between @AgenteD AND @AgenteA
And Agente.Zona=Isnull(@Zona,Agente.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And (v.Situacion Not In ('ACEPTADO POR RyF','BAJA DE ORDEN', 'FACTURACION DIFERENTE','NO COBRADAS','MAQUILA','MAQUILA FERMI','MAQUILA ABC') Or v.Situacion IS Null)
Order by v.Situacion
Declare CrOrden Cursor For
Select ID, FechaEmision, FechaComenzo, Situacion From #Orden
Open CrOrden
Fetch Next From CrOrden Into
@ID, @FechaI, @FechaF, @Situacion
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
-- IF @Situacion Is Not Null
-- Begin
-- Select @FechaComenzo=(Select Top 1 FechaComenzo From MovTiempo Where Modulo='VTAS' And ID=@ID Order By IDOrden Desc)
-- Update #Orden Set FechaComenzo=@FechaComenzo Where ID=@ID
-- Update #Orden Set Dias=DateDiff(day, @FechaI, @FechaComenzo) Where ID=@ID
-- End
-- IF @Situacion Is Null
-- Begin
Update #Orden Set Dias=DateDiff(day, @FechaI, @FechaF) Where ID=@ID
-- End
End
Fetch Next From CrOrden Into
@ID, @FechaI, @FechaF, @Situacion
End
Close CrOrden
Deallocate CrOrden
/*
Select v.ID, v.Empresa, v.Mov, v.MovID, v.Cliente, Cte.Nombre, v.Agente, AgenteNom=Agente.Nombre, v.Situacion, v.Estatus,
v.FechaEmision,FechaComenzo=@Hoy, Dias=0, Hoy=@Hoy, ImporteTotal=(v.Importe + v.Impuestos)*v.TipoCambio, Valor=1
Into #OrdenConcluido
From Venta v
Join Cte On Cte.Cliente=v.Cliente
Left Outer Join Agente On Agente.Agente=v.Agente
Where v.Mov='Orden Facturacion' And v.Estatus <> 'CANCELADO'
And FechaEmision Between @FechaD And @FechaA And Empresa=@Empresa
And IsNull(Agente.Categoria, '') = IsNull(IsNull(@Categoria, Agente.Categoria), '')
And IsNull(Agente.Familia, '') = IsNull(IsNull(@Familia, Agente.Familia), '')
And IsNull(Agente.Grupo, '') = IsNull(IsNull(@Grupo, Agente.Grupo), '')
AND v.Agente Between @AgenteD AND @AgenteA
Order by v.Situacion
Declare CrOrden2 Cursor For
Select ID, FechaEmision, FechaComenzo, Agente From #OrdenConcluido
Open CrOrden2
Fetch Next From CrOrden2 Into
@ID, @FechaI, @FechaF, @Agente
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
Select @FechaComenzo=(Select Top 1 FechaComenzo From MovTiempo Where Modulo='VTAS'
And ID=@ID And Situacion In('PENDIENTE CONFIRMACIÓN CLIENTE', 'CLIENTE FRECUENTE CON DESC. FIJO', 'CONFIRMO CLIENTE',
'RECHAZA RF', 'ACEPTADO POR RyF', 'ALCANCE OK', 'CAMBIO ALCANCE')
Order By IDOrden Desc)
IF @FechaComenzo Is Null
Begin
Select @FechaComenzo = @Hoy
End
Update #OrdenConcluido Set FechaComenzo=@FechaComenzo Where ID=@ID
Update #OrdenConcluido Set Dias=DateDiff(day, @FechaI, @FechaComenzo) Where ID=@ID
End
Fetch Next From CrOrden2 Into
@ID, @FechaI, @FechaF, @Agente
End
Close CrOrden2
Deallocate CrOrden2
*/
Declare CrConc Cursor For
Select Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, Agente, AgenteNom, Dias, ImporteTotal,Situacion From #Orden
Open CrConc
Fetch Next From CrConc Into
@Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @Agente, @AgenteNombre, @Dias, @ImporteTotal,@Situacion
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
IF @Dias between 0 And 4
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, EnTiempo,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 5 And 7
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D5A7Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 8 And 10
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D8A10Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 11 And 15
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D11A15Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 16 And 30
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D16A30Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 31 And 60
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D31A60Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias > 60
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, Mas60Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
End
Fetch Next From CrConc Into
@Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @Agente, @AgenteNombre, @Dias, @ImporteTotal,@Situacion
End
Close CrConc
Deallocate CrConc
--Update #Ordenes_Conc Set TotalXAgente=(Select Sum(Valor) From #OrdenConcluido)
--Update #Ordenes_Conc Set TotalEnTiempo=(Select Sum(Valor) From #OrdenConcluido Where Dias <=4)
Select * From #Ordenes_Conc Order By Agente, Nombre
End
/* ANTERIOR MODIFICADOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO */
/* ACTUALIZADO MODIFICADOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MARCO 03/05/2017 */
/****** Object: StoredProcedure [dbo].[sp_Retrasos_Ordenes] Script Date: 05/03/2017 12:38:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--sp_Retrasos_Ordenes 'LABC', 'GVT', '01-08-2007', '31-08-2007', 'AMO', 'RJM', '(Todos)', '(Todos)', ''
ALTER Procedure [dbo].[sp_Retrasos_Ordenes]
@Empresa char(5),
@Usuario char(10),
@FechaD DateTime,
@FechaA DateTime,
@AgenteD char(10),
@AgenteA char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
Create Table #Ordenes_Conc(
Agente char(10) Null,
AgenteNombre varchar(100) Null,
Mov char(20) Null,
MovID varchar(20) Null,
Estatus char(15) Null,
FechaEmision DateTime Null,
FechaComenzo DateTime Null,
Nombre varchar(100) Null,
EnTiempo Money Null,
D5A7Dias Money Null,
D8A10Dias Money Null,
D11A15Dias Money Null,
D16A30Dias Money Null,
D31A60Dias Money Null,
Mas60Dias Money Null,
TotalXAgente Int Null,
TotalEnTiempo Int Null,
Situacion Varchar(50) null)
Declare
@Hoy DateTime,
@ID Int,
@FechaI DateTime,
@FechaF DateTime,
@FechaComenzo DateTime,
@Situacion varchar(50),
@Mov char(20),
@MovID varchar(20),
@FechaEmision DateTime,
@Nombre varchar(100),
@Dias Int,
@ImporteTotal Money,
@Agente char(10),
@AgenteNombre varchar(100),
@Estatus char(15),
@Categoria VarChar(50)
Execute spValidaAgentesGABC @Usuario, @Empresa, @Categoria OUTPUT, @Familia OUTPUT, @Grupo OUTPUT, @AgenteD OUTPUT, @AgenteA OUTPUT,@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
--Select @Sucursal=NullIF(@Sucursal, '')
Select @Hoy=GetDate()
Select v.ID, v.Empresa, v.Mov, v.MovID, v.Cliente, Cte.Nombre, v.Agente, AgenteNom=Agente.Nombre, v.Situacion, v.Estatus,
v.FechaEmision,FechaComenzo=@Hoy, Dias=0, Hoy=@Hoy, ImporteTotal=(v.Importe + v.Impuestos)*v.TipoCambio
Into #Orden
From Venta v
Join Cte On Cte.Cliente=v.Cliente
Left Outer Join Agente On Agente.Agente=v.Agente
Where v.Mov='Orden Facturacion' And v.Estatus In ('SINAFECTAR', 'PENDIENTE')
--And FechaEmision Between @FechaD And @FechaA
And Empresa=Isnull(@Empresa,Empresa)
And IsNull(v.Sucursal, '') = IsNull(IsNull(@Sucursal, v.Sucursal), '')
--And IsNull(Agente.Categoria, '') = IsNull(IsNull(@Categoria, Agente.Categoria), '')
And IsNull(Agente.Familia, '') = IsNull(IsNull(@Familia, Agente.Familia), '')
And IsNull(Agente.Grupo, '') = IsNull(IsNull(@Grupo, Agente.Grupo), '')
AND v.Agente Between @AgenteD AND @AgenteA
And Agente.Zona=Isnull(@Zona,Agente.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And (v.Situacion Not In ('ACEPTADO POR RyF','BAJA DE ORDEN', 'FACTURACION DIFERENTE','NO COBRADAS','MAQUILA','MAQUILA FERMI','MAQUILA ABC') Or v.Situacion IS Null)
Order by v.Situacion
Declare CrOrden Cursor For
Select ID, FechaEmision, FechaComenzo, Situacion From #Orden
Open CrOrden
Fetch Next From CrOrden Into
@ID, @FechaI, @FechaF, @Situacion
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
-- IF @Situacion Is Not Null
-- Begin
-- Select @FechaComenzo=(Select Top 1 FechaComenzo From MovTiempo Where Modulo='VTAS' And ID=@ID Order By IDOrden Desc)
-- Update #Orden Set FechaComenzo=@FechaComenzo Where ID=@ID
-- Update #Orden Set Dias=DateDiff(day, @FechaI, @FechaComenzo) Where ID=@ID
-- End
-- IF @Situacion Is Null
-- Begin
Update #Orden Set Dias=DateDiff(day, @FechaI, @FechaF) Where ID=@ID
-- End
End
Fetch Next From CrOrden Into
@ID, @FechaI, @FechaF, @Situacion
End
Close CrOrden
Deallocate CrOrden
/*
Select v.ID, v.Empresa, v.Mov, v.MovID, v.Cliente, Cte.Nombre, v.Agente, AgenteNom=Agente.Nombre, v.Situacion, v.Estatus,
v.FechaEmision,FechaComenzo=@Hoy, Dias=0, Hoy=@Hoy, ImporteTotal=(v.Importe + v.Impuestos)*v.TipoCambio, Valor=1
Into #OrdenConcluido
From Venta v
Join Cte On Cte.Cliente=v.Cliente
Left Outer Join Agente On Agente.Agente=v.Agente
Where v.Mov='Orden Facturacion' And v.Estatus <> 'CANCELADO'
And FechaEmision Between @FechaD And @FechaA And Empresa=@Empresa
And IsNull(Agente.Categoria, '') = IsNull(IsNull(@Categoria, Agente.Categoria), '')
And IsNull(Agente.Familia, '') = IsNull(IsNull(@Familia, Agente.Familia), '')
And IsNull(Agente.Grupo, '') = IsNull(IsNull(@Grupo, Agente.Grupo), '')
AND v.Agente Between @AgenteD AND @AgenteA
Order by v.Situacion
Declare CrOrden2 Cursor For
Select ID, FechaEmision, FechaComenzo, Agente From #OrdenConcluido
Open CrOrden2
Fetch Next From CrOrden2 Into
@ID, @FechaI, @FechaF, @Agente
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
Select @FechaComenzo=(Select Top 1 FechaComenzo From MovTiempo Where Modulo='VTAS'
And ID=@ID And Situacion In('PENDIENTE CONFIRMACIÓN CLIENTE', 'CLIENTE FRECUENTE CON DESC. FIJO', 'CONFIRMO CLIENTE',
'RECHAZA RF', 'ACEPTADO POR RyF', 'ALCANCE OK', 'CAMBIO ALCANCE')
Order By IDOrden Desc)
IF @FechaComenzo Is Null
Begin
Select @FechaComenzo = @Hoy
End
Update #OrdenConcluido Set FechaComenzo=@FechaComenzo Where ID=@ID
Update #OrdenConcluido Set Dias=DateDiff(day, @FechaI, @FechaComenzo) Where ID=@ID
End
Fetch Next From CrOrden2 Into
@ID, @FechaI, @FechaF, @Agente
End
Close CrOrden2
Deallocate CrOrden2
*/
Declare CrConc Cursor For
Select Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, Agente, AgenteNom, Dias, ImporteTotal,Situacion From #Orden
Open CrConc
Fetch Next From CrConc Into
@Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @Agente, @AgenteNombre, @Dias, @ImporteTotal,@Situacion
While @@Fetch_Status <> - 1 And @@Error=0
Begin
IF @@Fetch_Status <> - 2
Begin
IF @Dias between 0 And 4
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, EnTiempo,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 5 And 7
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D5A7Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 8 And 10
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D8A10Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 11 And 15
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D11A15Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 16 And 30
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D16A30Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias between 31 And 60
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, D31A60Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
IF @Dias > 60
Begin
Insert Into #Ordenes_Conc (Agente, AgenteNombre, Mov, MovID, Estatus, FechaEmision, FechaComenzo, Nombre, Mas60Dias,Situacion)
Values (@Agente, @AgenteNombre, @Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @ImporteTotal,@Situacion)
End
End
Fetch Next From CrConc Into
@Mov, @MovID, @Estatus, @FechaEmision, @FechaComenzo, @Nombre, @Agente, @AgenteNombre, @Dias, @ImporteTotal,@Situacion
End
Close CrConc
Deallocate CrConc
--Update #Ordenes_Conc Set TotalXAgente=(Select Sum(Valor) From #OrdenConcluido)
--Update #Ordenes_Conc Set TotalEnTiempo=(Select Sum(Valor) From #OrdenConcluido Where Dias <=4)
IF @Zona='METRO'
Begin
Select * From #Ordenes_Conc Order By AgenteNombre, Nombre
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select * From #Ordenes_Conc Order By Agente, Nombre
End
End
/****** Object: StoredProcedure [dbo].[sp_VentasxCliente] Script Date: 04/28/2017 11:54:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[sp_VentasxCliente]
@Empresa char(5),
@Ejercicio Int,
@Periodo1 Int,
@Periodo2 Int,
@Periodo3 Int,
@Usuario Char(10),
@Familia Varchar(50),
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
As
Begin
--sp_VentasxCliente 'LABC', 2008, 01, 01, 01, 'GVT', '(Todos)', '(Todos)', 'AMO', 'RJM', 0
Create Table #Ventas(
Agente char(10) Null,
NomAgente varchar(100) Null,
Cliente char(10) Null,
Nombre varchar(100) Null,
EnviarA int Null,
SucursalNom varchar(100) Null,
Ejercicio Int Null,
Periodo1 Money Null,
Periodo2 Money Null,
Periodo3 Money Null,
Presupuesto1 Money Null,
Presupuesto2 Money Null,
Presupuesto3 Money Null,
Periodo4 Money Null,
Periodo5 Money Null,
Periodo6 Money Null)
Declare
@Ejercicio2 Int,
@Categoria VarChar(50),
@Cliente char(10),
@EnviarA Int,
@Ejer Int,
@Presupuesto Money
--Select @Sucursal=NullIF(@Sucursal, '')
Select @Ejercicio2 = @Ejercicio-1
exec spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 1
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo2)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo2)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo2)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo2)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 2
----
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo3)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo3)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo3)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo3)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 3
/***** Se Calcula el Ejercicio Anterior *****/
-----------------
-----------------
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo4)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo4)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo1
AND a.Empresa = ISnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo4)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo4)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo1
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 1
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo5)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo5)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo2
AND a.Empresa = ISnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo5)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo5)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo2
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 2
----
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo6)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
----Agregado para las Notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo1)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum((a.Importe*a.TipoCambio))
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
---- fin del agregado para notas de Cargo
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo6)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.EnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo3
AND a.Empresa = ISnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.EnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo6)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(-(a.Importe*a.TipoCambio))
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
Insert Into #Ventas(Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, Ejercicio, Periodo6)
SELECT a.Agente,ag.Nombre,a.Cliente,c.Nombre,a.ClienteEnviarA,null,a.Ejercicio,Sum(a.Importe*a.TipoCambio)
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
AND a.Ejercicio = @Ejercicio2
AND a.Periodo = @Periodo3
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group By a.Agente, ag.Nombre, a.Cliente, c.Nombre, a.ClienteEnviarA, a.Ejercicio
----fin del periodo 3
Declare CrPres Cursor For
Select Cliente, EnviarA From #Ventas
Open CrPres
Fetch Next From CrPres into
@Cliente, @EnviarA
While @@Fetch_Status <> - 1 And @@Error = 0
Begin
IF @@Fetch_Status <> - 2
Begin
/***** Validacion para Clientes q no tienen Sucursal*****/
IF @EnviarA Is Null
Begin
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo1
And Cte=@Cliente And CteEnviarA Is Null)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo1
And Cte=@Cliente And CteEnviarA Is Null
Update #Ventas Set Presupuesto1=@Presupuesto Where Cliente=@Cliente And EnviarA Is Null
End
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo2
And Cte=@Cliente And CteEnviarA Is Null)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo2
And Cte=@Cliente And CteEnviarA Is Null
Update #Ventas Set Presupuesto2=@Presupuesto Where Cliente=@Cliente And EnviarA Is Null
End
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo3
And Cte=@Cliente And CteEnviarA Is Null)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo3
And Cte=@Cliente And CteEnviarA Is Null
Update #Ventas Set Presupuesto3=@Presupuesto Where Cliente=@Cliente And EnviarA Is Null
End
End
/***** Validacion para Clientes q si tienen Sucursal*****/
IF @EnviarA Is Not Null
Begin
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo1
And Cte=@Cliente And CteEnviarA=@EnviarA)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo1
And Cte=@Cliente And CteEnviarA=@EnviarA
Update #Ventas Set Presupuesto1=@Presupuesto Where Cliente=@Cliente And EnviarA=@EnviarA
End
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo2
And Cte=@Cliente And CteEnviarA=@EnviarA)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo2
And Cte=@Cliente And CteEnviarA=@EnviarA
Update #Ventas Set Presupuesto2=@Presupuesto Where Cliente=@Cliente And EnviarA=@EnviarA
End
IF Exists (Select Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo3
And Cte=@Cliente And CteEnviarA=@EnviarA)
Begin
Select @Presupuesto=Importe From PresupuestoCtesABC Where Ejercicio=@Ejercicio And Periodo=@Periodo3
And Cte=@Cliente And CteEnviarA=@EnviarA
Update #Ventas Set Presupuesto3=@Presupuesto Where Cliente=@Cliente And EnviarA=@EnviarA
End
End
End
Fetch Next From CrPres into
@Cliente, @EnviarA
End
Close CrPres
Deallocate CrPres
IF @Zona='METRO'
Begin
Select NomAgente, Cliente, Nombre, EnviarA, SucursalNom, --Ejercicio,
Periodo1=Sum(Periodo1),
Periodo4=Sum(Periodo4),
Presupuesto1,
Periodo2=Sum(Periodo2),
Periodo5=Sum(Periodo5),
Presupuesto2,
Periodo3=Sum(Periodo3),
Periodo6=Sum(Periodo6),
Presupuesto3
From #Ventas
Group By NomAgente, Cliente, Nombre, EnviarA, SucursalNom, /*Ejercicio,*/ Presupuesto1, Presupuesto2, Presupuesto3
Order By Nombre, EnviarA
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
Select Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, --Ejercicio,
Periodo1=Sum(Periodo1),
Periodo4=Sum(Periodo4),
Presupuesto1,
Periodo2=Sum(Periodo2),
Periodo5=Sum(Periodo5),
Presupuesto2,
Periodo3=Sum(Periodo3),
Periodo6=Sum(Periodo6),
Presupuesto3
From #Ventas
Group By Agente, NomAgente, Cliente, Nombre, EnviarA, SucursalNom, /*Ejercicio,*/ Presupuesto1, Presupuesto2, Presupuesto3
Order By Agente, Nombre, EnviarA
End
End
no existia zona
/****** Object: StoredProcedure [dbo].[spFacturacionMensualABC] Script Date: 04/26/2017 13:46:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spFacturacionMensualABC]
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Empresa char(5),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
AS BEGIN
DECLARE
@EjercicioAnt1 int,
@EjercicioAnt2 int,
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@CuotaX money,
@FechaX Datetime,
@Eje2 int,
@EjeX int,
@GruY varchar(50),
@AgeY char(10),
@ImpY money,
@EjeY int,
@PerY int,
@GruZ varchar(50),
@AgeZ char(10),
@EjeZ int,
@Mov char(20)
IF Exists (Select * From SysObjects Where ID = object_id('dbo.FactCuotaM') and type = 'U')
Drop Table dbo.FactCuotaM
CREATE TABLE FactCuotaM (
Grupo varchar(50) NULL,
Agente char(10) NULL,
NomAgente varchar(100) NULL,
Ejercicio int NULL,
Cuota1 money NULL,
Importe1 money NULL,
Cuota2 money NULL,
Importe2 money NULL,
Cuota3 money NULL,
Importe3 money NULL,
Cuota4 money NULL,
Importe4 money NULL,
Cuota5 money NULL,
Importe5 money NULL,
Cuota6 money NULL,
Importe6 money NULL,
Cuota7 money NULL,
Importe7 money NULL,
Cuota8 money NULL,
Importe8 money NULL,
Cuota9 money NULL,
Importe9 money NULL,
Cuota10 money NULL,
Importe10 money NULL,
Cuota11 money NULL,
Importe11 money NULL,
Cuota12 money NULL,
Importe12 money NULL,
Prom money NULL,
DesvEst money NULL,
CV float NULL,
VMin money NULL,
VMax money NULL)
IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
IF @Ejercicio = 0 SELECT @Ejercicio = YEAR(GETDATE())
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
SELECT @EjercicioAnt1 = @Ejercicio - 1
SELECT @EjercicioAnt2 = @Ejercicio - 2
SELECT ag.Grupo, a.Agente, Importe= Sum(((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))),
a.Ejercicio, a.Periodo
INTO #FactMensual
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal, ag.SucursalEmpresa)
AND a.Cliente = c.Cliente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio BETWEEN @EjercicioAnt2 AND @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
GROUP BY a.Mov, ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
-- ORDER BY ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
Union
SELECT ag.Grupo, a.Agente, Importe = SUM(-a.Importe*a.TipoCambio), a.Ejercicio, a.Periodo
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal, ag.SucursalEmpresa)
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio BETWEEN @EjercicioAnt2 AND @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
GROUP BY ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
Union
SELECT ag.Grupo, a.Agente, Sum(-a.Importe*a.TipoCambio), a.Ejercicio, a.Periodo
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal, ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio BETWEEN @EjercicioAnt2 AND @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica In ('Factura Anticipo','Factura Anticipo CFD')
GROUP BY ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
Union
SELECT ag.Grupo, a.Agente, Importe = SUM(a.Importe*a.TipoCambio), a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave = 'CXC.FA'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal, ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio BETWEEN @EjercicioAnt2 AND @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
GROUP BY ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
Union
SELECT ag.Grupo, a.Agente, Importe = SUM(a.Importe*a.TipoCambio), a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave = 'CXC.CA'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal, ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio BETWEEN @EjercicioAnt2 AND @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
GROUP BY ag.Grupo, a.Agente, a.Ejercicio, a.Periodo
--SELECT * FROM #FactMensual
DECLARE CrFac CURSOR FOR
SELECT DISTINCT Grupo, Agente, @EjercicioAnt2
FROM #FactMensual
OPEN CrFac
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @Eje2
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
SELECT @EjeX = @Eje2
WHILE @EjeX <= @Ejercicio
BEGIN
INSERT FactCuotaM(Grupo, Agente, Ejercicio)
VALUES(@GruX, @AgeX, @EjeX)
SELECT @EjeX = @EjeX + 1
END
END
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @Eje2
END
CLOSE CrFac
DEALLOCATE CrFac
DECLARE CrFac1 CURSOR FOR
SELECT Grupo, Agente, Sum(IsNull(Importe,0)), Ejercicio, Periodo
FROM #FactMensual Group By Grupo, Agente, Ejercicio, Periodo
OPEN CrFac1
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @ImpY, @EjeY, @PerY
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
UPDATE FactCuotaM SET Importe1 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 1
UPDATE FactCuotaM SET Importe2 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 2
UPDATE FactCuotaM SET Importe3 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 3
UPDATE FactCuotaM SET Importe4 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 4
UPDATE FactCuotaM SET Importe5 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 5
UPDATE FactCuotaM SET Importe6 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 6
UPDATE FactCuotaM SET Importe7 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 7
UPDATE FactCuotaM SET Importe8 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 8
UPDATE FactCuotaM SET Importe9 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 9
UPDATE FactCuotaM SET Importe10 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 10
UPDATE FactCuotaM SET Importe11 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 11
UPDATE FactCuotaM SET Importe12 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Ejercicio = @EjeY AND @PerY = 12
END
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @ImpY, @EjeY, @PerY
END
CLOSE CrFac1
DEALLOCATE CrFac1
DECLARE CrFac2 CURSOR FOR
SELECT Grupo, Agente, Ejercicio
FROM FactCuotaM
WHERE Ejercicio = @Ejercicio
OPEN CrFac2
FETCH NEXT FROM CrFac2 INTO @GruZ, @AgeZ, @EjeZ
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
UPDATE FactCuotaM SET Cuota1 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 1) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota2 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 2) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota3 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 3) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota4 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 4) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota5 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 5) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota6 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 6) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota7 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 7) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota8 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 8) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota9 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 9) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota10 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 10) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota11 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 11) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
UPDATE FactCuotaM SET Cuota12 = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = @AgeZ AND Ejercicio = @EjeZ AND Periodo = 12) WHERE Grupo = @GruZ AND Agente = @AgeZ AND Ejercicio = @EjeZ
END
FETCH NEXT FROM CrFac2 INTO @GruZ, @AgeZ, @EjeZ
END
CLOSE CrFac2
DEALLOCATE CrFac2
SELECT Grupo, Agente, Prom=Sum(Importe), Valor=1
INTO #Prom1
FROM #FactMensual --Where Importe >0
GROUP BY Grupo, Agente, Ejercicio, Periodo
ORDER BY Grupo, Agente
SELECT Grupo, Agente, Prom=Sum(Prom)/Sum(Valor)
INTO #Prom
FROM #Prom1 Where Prom >0
GROUP BY Grupo, Agente
ORDER BY Grupo, Agente
SELECT Grupo, Agente, DesvEst = STDEV(Prom)
INTO #DesvEst
FROM #Prom1 Where Prom >0
GROUP BY Grupo, Agente
ORDER BY Grupo, Agente
--spFacturacionMensualABC '(Todos)', 'EPC', 'EPC', 2008, 'LABC'
SELECT Grupo, Agente, VMin = MIN(Prom)
INTO #VMin
FROM #Prom1 Where Prom >0
GROUP BY Grupo, Agente
ORDER BY Grupo, Agente
SELECT Grupo, Agente, VMax = MAX(Prom)
INTO #VMax
FROM #Prom1 Where Prom >0
GROUP BY Grupo, Agente
ORDER BY Grupo, Agente
UPDATE FactCuotaM SET Prom = b.Prom FROM FactCuotaM a, #Prom b WHERE a.Grupo = b.Grupo AND a.Agente = b.Agente --AND a.Ejercicio = b.Ejercicio
UPDATE FactCuotaM SET DesvEst = b.DesvEst FROM FactCuotaM a, #DesvEst b WHERE a.Grupo = b.Grupo AND a.Agente = b.Agente --AND a.Ejercicio = b.Ejercicio
UPDATE FactCuotaM SET CV = (ISNULL(DesvEst, 0)/Prom) * 100
UPDATE FactCuotaM SET VMin = b.VMin FROM FactCuotaM a, #VMin b WHERE a.Grupo = b.Grupo AND a.Agente = b.Agente --AND a.Ejercicio = b.Ejercicio
UPDATE FactCuotaM SET VMax = b.VMax FROM FactCuotaM a, #VMax b WHERE a.Grupo = b.Grupo AND a.Agente = b.Agente --AND a.Ejercicio = b.Ejercicio
/*
Update FactCuotaM Set Cuota1=0 Where Importe1 Is Null
Update FactCuotaM Set Cuota2=0 Where Importe2 Is Null
Update FactCuotaM Set Cuota3=0 Where Importe3 Is Null
Update FactCuotaM Set Cuota4=0 Where Importe4 Is Null
Update FactCuotaM Set Cuota5=0 Where Importe5 Is Null
*/
UPDATE FactCuotaM set NomAgente = (Select Nombre FROM Agente WHERE Agente=FactCuotaM.Agente)
IF @Zona='METRO'
Begin
SELECT * FROM FactCuotaM Where Agente <> 'MOS' ORDER BY Grupo,NomAgente
End
Else
IF @Zona<>'METRO'
Begin
SELECT * FROM FactCuotaM Where Agente <> 'MOS' ORDER BY Grupo, Agente
End
END
02/05/2017
------ANTES INICIO
/****** Object: StoredProcedure [dbo].[spFacturacionSectorABC] Script Date: 05/02/2017 13:04:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spFacturacionSectorABC]
@Grupo varchar(50),
@Categoria varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Empresa char(5),
@Sucursal int
AS BEGIN
DECLARE
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@CuotaX money,
@FechaX Datetime,
@Eje2 int,
@CatX varchar(50),
@GruY varchar(50),
@AgeY char(10),
@ImpY money,
@CatY varchar(50),
@NumY int,
@PerY int,
@GruZ varchar(50),
@AgeZ char(10),
@EjeZ int,
@Cliente char(10)
--drop table #FactCuotaM
CREATE TABLE #FactSector (
Grupo varchar(50) NULL,
Agente char(10) NULL,
Categoria varchar(50) NULL,
Cant1 money NULL,
Importe1 money NULL,
Cant2 money NULL,
Importe2 money NULL,
Cant3 money NULL,
Importe3 money NULL,
Cant4 money NULL,
Importe4 money NULL,
Cant5 money NULL,
Importe5 money NULL,
Cant6 money NULL,
Importe6 money NULL,
Cant7 money NULL,
Importe7 money NULL,
Cant8 money NULL,
Importe8 money NULL,
Cant9 money NULL,
Importe9 money NULL,
Cant10 money NULL,
Importe10 money NULL,
Cant11 money NULL,
Importe11 money NULL,
Cant12 money NULL,
Importe12 money NULL,
Cliente bigint NULL)
IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
IF @Categoria IN ('NULL', '', '0', '(Todos)') SELECT @Categoria = NULL
Create Table #FactMensual(
Grupo varchar(50) Null,
Agente char(10) Null,
Importe money Null,
Cliente int Null,
Categoria varchar(50) Null,
Ejercicio int Null,
Periodo int Null)
Insert Into #FactMensual
SELECT ag.Grupo, a.Agente, Importe=Sum(((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=Sum((a.Importe*a.TipoCambio)),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((-a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((-a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica = 'Factura Anticipo'
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
--AND CxcD.Aplica = 'Factura Anticipo'
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Update #FactMensual Set Grupo='S/G' Where Grupo Is Null
Update #FactMensual Set Categoria='S/C' Where Categoria Is Null
--Select * From #FactMensual
/*
SELECT ag.Grupo, a.Agente, Importe = SUM(a.Importe), Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
INTO #FactMensual
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
GROUP BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
ORDER BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
*/
DECLARE CrFac CURSOR FOR
SELECT Distinct Grupo, Agente, Categoria
FROM #FactMensual
OPEN CrFac
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @CatX
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
INSERT #FactSector(Grupo, Agente, Categoria)
VALUES(@GruX, @AgeX, @CatX)
END
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @CatX
END
CLOSE CrFac
DEALLOCATE CrFac
--Select * From #FactSector
--spFacturacionSectorABC'(Todos)','(Todos)','AGP','VHG',2008,'LABC'
DECLARE CrFac1 CURSOR FOR
SELECT Grupo, Agente, Categoria, Sum(IsNull(Importe,0)), Sum(IsNull(Cliente,0)), Periodo
FROM #FactMensual
Group By Grupo, Agente, Categoria, Periodo
OPEN CrFac1
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @CatY, @ImpY, @NumY, @PerY
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
IF @ImpY Is Null Select @ImpY=0
UPDATE #FactSector SET Importe1 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 1
UPDATE #FactSector SET Cant1 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 1
UPDATE #FactSector SET Importe2 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 2
UPDATE #FactSector SET Cant2 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 2
UPDATE #FactSector SET Importe3 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 3
UPDATE #FactSector SET Cant3 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 3
UPDATE #FactSector SET Importe4 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 4
UPDATE #FactSector SET Cant4 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 4
UPDATE #FactSector SET Importe5 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 5
UPDATE #FactSector SET Cant5 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 5
UPDATE #FactSector SET Importe6 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 6
UPDATE #FactSector SET Cant6 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 6
UPDATE #FactSector SET Importe7 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 7
UPDATE #FactSector SET Cant7 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 7
UPDATE #FactSector SET Importe8 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 8
UPDATE #FactSector SET Cant8 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 8
UPDATE #FactSector SET Importe9 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 9
UPDATE #FactSector SET Cant9 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 9
UPDATE #FactSector SET Importe10 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 10
UPDATE #FactSector SET Cant10 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 10
UPDATE #FactSector SET Importe11 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 11
UPDATE #FactSector SET Cant11 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 11
UPDATE #FactSector SET Importe12 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 12
UPDATE #FactSector SET Cant12 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 12
END
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @CatY, @ImpY, @NumY, @PerY
END
CLOSE CrFac1
DEALLOCATE CrFac1
SELECT * FROM #FactSector ORDER BY Grupo, Agente, Categoria, Cliente
END
------ANTES FIN-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------- ACTUALIZADO MARCO
/****** Object: StoredProcedure [dbo].[spFacturacionSectorABC] Script Date: 05/02/2017 13:04:45 ******/
/****** Object: StoredProcedure [dbo].[spFacturacionSectorABC] Script Date: 05/02/2017 13:04:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spFacturacionSectorABC]
@Grupo varchar(50),
@Categoria varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Empresa char(5),
@Sucursal int,
@Zona varchar(30) --add 02/05/17
AS BEGIN
DECLARE
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@CuotaX money,
@FechaX Datetime,
@Eje2 int,
@CatX varchar(50),
@GruY varchar(50),
@AgeY char(10),
@ImpY money,
@CatY varchar(50),
@NumY int,
@PerY int,
@GruZ varchar(50),
@AgeZ char(10),
@EjeZ int,
@Cliente char(10)
--drop table #FactCuotaM
CREATE TABLE #FactSector (
Grupo varchar(50) NULL,
Agente char(10) NULL,
NomAgente varchar(100) NULL, --add 02/05/17
Categoria varchar(50) NULL,
Cant1 money NULL,
Importe1 money NULL,
Cant2 money NULL,
Importe2 money NULL,
Cant3 money NULL,
Importe3 money NULL,
Cant4 money NULL,
Importe4 money NULL,
Cant5 money NULL,
Importe5 money NULL,
Cant6 money NULL,
Importe6 money NULL,
Cant7 money NULL,
Importe7 money NULL,
Cant8 money NULL,
Importe8 money NULL,
Cant9 money NULL,
Importe9 money NULL,
Cant10 money NULL,
Importe10 money NULL,
Cant11 money NULL,
Importe11 money NULL,
Cant12 money NULL,
Importe12 money NULL,
Cliente bigint NULL)
IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
IF @Categoria IN ('NULL', '', '0', '(Todos)') SELECT @Categoria = NULL
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL') --add 02/05/17
Begin
Select @Zona=null
End
Create Table #FactMensual(
Grupo varchar(50) Null,
Agente char(10) Null,
Importe money Null,
Cliente int Null,
Categoria varchar(50) Null,
Ejercicio int Null,
Periodo int Null)
Insert Into #FactMensual
SELECT ag.Grupo, a.Agente, Importe=Sum(((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona) --add 02/05/17
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=Sum((a.Importe*a.TipoCambio)),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona) --add 02/05/17
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((-a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona) --add 02/05/17
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((-a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona) --add 02/05/17
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica = 'Factura Anticipo'
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Union All
SELECT ag.Grupo, a.Agente, Importe=IsNull(Sum((a.Importe*a.TipoCambio)),0),
Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
And ag.Zona=Isnull(@Zona,ag.Zona) --add 02/05/17
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
--AND CxcD.Aplica = 'Factura Anticipo'
Group BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
Update #FactMensual Set Grupo='S/G' Where Grupo Is Null
Update #FactMensual Set Categoria='S/C' Where Categoria Is Null
--Select * From #FactMensual
/*
SELECT ag.Grupo, a.Agente, Importe = SUM(a.Importe), Cliente = COUNT(a.Cliente), c.Categoria, a.Ejercicio, a.Periodo
INTO #FactMensual
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
AND a.Estatus = 'CONCLUIDO'
AND ISNULL(ag.Grupo, '') = ISNULL(ISNULL(@Grupo, ag.Grupo), '')
AND ISNULL(c.Categoria, '') = ISNULL(ISNULL(@Categoria, c.Categoria), '')
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Empresa = @Empresa
GROUP BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
ORDER BY ag.Grupo, a.Agente, c.Categoria, a.Ejercicio, a.Periodo
*/
DECLARE CrFac CURSOR FOR
SELECT Distinct Grupo, Agente, Categoria
FROM #FactMensual
OPEN CrFac
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @CatX
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
INSERT #FactSector(Grupo, Agente, Categoria)
VALUES(@GruX, @AgeX, @CatX)
END
FETCH NEXT FROM CrFac INTO @GruX, @AgeX, @CatX
END
CLOSE CrFac
DEALLOCATE CrFac
--Select * From #FactSector
--spFacturacionSectorABC'(Todos)','(Todos)','AGP','VHG',2008,'LABC'
DECLARE CrFac1 CURSOR FOR
SELECT Grupo, Agente, Categoria, Sum(IsNull(Importe,0)), Sum(IsNull(Cliente,0)), Periodo
FROM #FactMensual
Group By Grupo, Agente, Categoria, Periodo
OPEN CrFac1
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @CatY, @ImpY, @NumY, @PerY
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
IF @ImpY Is Null Select @ImpY=0
UPDATE #FactSector SET Importe1 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 1
UPDATE #FactSector SET Cant1 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 1
UPDATE #FactSector SET Importe2 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 2
UPDATE #FactSector SET Cant2 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 2
UPDATE #FactSector SET Importe3 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 3
UPDATE #FactSector SET Cant3 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 3
UPDATE #FactSector SET Importe4 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 4
UPDATE #FactSector SET Cant4 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 4
UPDATE #FactSector SET Importe5 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 5
UPDATE #FactSector SET Cant5 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 5
UPDATE #FactSector SET Importe6 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 6
UPDATE #FactSector SET Cant6 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 6
UPDATE #FactSector SET Importe7 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 7
UPDATE #FactSector SET Cant7 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 7
UPDATE #FactSector SET Importe8 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 8
UPDATE #FactSector SET Cant8 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 8
UPDATE #FactSector SET Importe9 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 9
UPDATE #FactSector SET Cant9 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 9
UPDATE #FactSector SET Importe10 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 10
UPDATE #FactSector SET Cant10 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 10
UPDATE #FactSector SET Importe11 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 11
UPDATE #FactSector SET Cant11 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 11
UPDATE #FactSector SET Importe12 = @ImpY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 12
UPDATE #FactSector SET Cant12 = @NumY WHERE Grupo = @GruY AND Agente = @AgeY AND Categoria = @CatY AND @PerY = 12
END
FETCH NEXT FROM CrFac1 INTO @GruY, @AgeY, @CatY, @ImpY, @NumY, @PerY
END
CLOSE CrFac1
DEALLOCATE CrFac1
Update #FactSector Set NomAgente=(Select Nombre From Agente Where Agente=#FactSector.Agente)
IF @Zona='METRO' --add 02/05/17
Begin
SELECT * FROM #FactSector ORDER BY Grupo, NomAgente, Categoria, Cliente
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
SELECT * FROM #FactSector ORDER BY Grupo, Agente, Categoria, Cliente
End
END
/****** Object: StoredProcedure [dbo].[spFacturacionSemanalABC] Script Date: 04/27/2017 13:16:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spFacturacionSemanalABC]
@Grupo varchar(50),
@AgenteD char(10),
@AgenteA char(10),
@Ejercicio int,
@Periodo int,
@Empresa VArchar(10),
@Usuario Char(10),
@Familia Varchar(50),
@Sucursal int,
@Zona Varchar(30) --cambiado/agregado para nuevo filtro Diciembre 2014
AS BEGIN
DECLARE
@PrimerDiaMes Datetime,
@UltimoDiaMes Datetime,
@IniSemana1 Datetime,
@FinSemana1 Datetime,
@IniSemana2 Datetime,
@FinSemana2 Datetime,
@IniSemana3 Datetime,
@FinSemana3 Datetime,
@IniSemana4 Datetime,
@FinSemana4 Datetime,
@IniSemana5 Datetime,
@FinSemana5 Datetime,
@Dias1 int,
@Dias2 int,
@Dias3 int,
@Dias4 int,
@Dias5 int,
@GruX varchar(50),
@AgeX char(10),
@ImpX money,
@CuotaX money,
@FechaX Datetime,
@CuotaDia money,
@Categoria VarChar(50),
@Mov char(20),
@TFacturacion money,
@TDevolucion money,
@TAnticipo money,
@EmpresaT char(10)
Exec spValidaAgentesGABC
@Usuario,
@Empresa,
@Categoria OUTPUT,
@Familia OUTPUT,
@Grupo OUTPUT,
@AgenteD OUTPUT,
@AgenteA OUTPUT,
@Zona OUTPUT --cambiado/agregado para nuevo filtro Diciembre 2014
--drop table FactCuota
----Validacion Agentes para que no puedan ver movimientos de otros agentes
IF @Categoria='EJECUTIVO DE VENTAS'
Begin
Select @Empresa=Nivelacceso,@Sucursal=SucursalEmpresa From Agente Where Agente=@AgenteD
Select @Empresa=Case @Empresa When '(LABC)' Then 'LABC'
When '(FASIQ)' Then 'FASIQ'
When '(LMA)' Then 'LMA'
When '(GMTK)' Then 'GMTK'
When '(FERMI)' Then 'FERMI'
End
End
----
IF Exists (Select * From SysObjects Where ID=object_ID('dbo.FactCuota') And Type='U')
Drop Table dbo.FactCuota
CREATE TABLE FactCuota (
Orden Int NULL,
Grupo varchar(50) NULL,
Mov char(20) NULL,
Agente char(10) NULL,
NomAgente varchar(100) NULL,
Cuota1 money NULL,
Importe1 money NULL,
FechaD1 Datetime NULL,
FechaA1 Datetime NULL,
Cuota2 money NULL,
Importe2 money NULL,
FechaD2 Datetime NULL,
FechaA2 Datetime NULL,
Cuota3 money NULL,
Importe3 money NULL,
FechaD3 Datetime NULL,
FechaA3 Datetime NULL,
Cuota4 money NULL,
Importe4 money NULL,
FechaD4 Datetime NULL,
FechaA4 Datetime NULL,
Cuota5 money NULL,
Importe5 money NULL,
FechaD5 Datetime NULL,
FechaA5 Datetime NULL)
Create Table #FactSem(
Orden int Null,
Grupo varchar(50) Null,
Mov char(20) Null,
MovId Varchar(20) null,
Agente char(10) Collate Modern_Spanish_CI_AS Null,
Importe Money Null,
Cuota Money Null,
FechaEmision DateTime Null)
IF @Grupo IN ('NULL', '', '0', '(Todos)') SELECT @Grupo = NULL
IF @Ejercicio = 0 SELECT @Ejercicio = YEAR(GETDATE())
IF @Periodo = 0 SELECT @Periodo = MONTH(GETDATE())
IF @Empresa not in(Select Empresa From Empresa) or @Empresa in('','null','NULL')
Begin
Select @Empresa=null
End
IF @Zona not in(Select Distinct Zona From Agente) or @Zona in('','null','NULL')
Begin
Select @Zona=null
End
--exec spFacturacionSemanalABC '(Todos)','ACC','ZZZZZZ',2014,11,'NULL','GVT','(Todos)',NULL,'NULL'
Insert Into #FactSem(Orden, Grupo, Mov,MovId, Agente, Importe, Cuota, FechaEmision)
SELECT 1, ag.Grupo, a.Mov,a.movid, a.Agente, ((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio)),
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), a.FechaEmision
-- INTO #FactSem
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal,ag.SucursalEmpresa)
AND a.Estatus = 'CONCLUIDO'
/***** Lineas Para el Filtro de Agentes *****/
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
ORDER BY ag.Grupo, a.Agente
-----
-----------
-----------Inserta Las facturas canceladas en meses posteriores al de emision
Insert Into #FactSem(Orden, Grupo, Mov,MovId, Agente, Importe, Cuota, FechaEmision)
SELECT 1, ag.Grupo, a.Mov,a.movid, a.Agente,
Importe=Case When (a.Mov in('Factura','Factura CFD') And a.estatus='CANCELADO' AND a.Ejercicio=@Ejercicio AND a.Periodo=@Periodo And MONTH(a.FechaCancelacion)>Month(a.FechaEmision) And MONTH(a.FechaCancelacion)<>@Periodo)
Then ((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))
Else ((a.Importe*a.TipoCambio)-((IsNull(a.AnticiposFacturados,0)-IsNull(AnticiposImpuestos,0))*a.TipoCambio))*-1 End,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo),Case When Month(a.FechaCancelacion)<>@Periodo Then a.FechaEmision Else a.FechaCancelacion End --Cast(a.FechaCancelacion as Date) End
-- INTO #FactSem
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.F'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
And (a.Estatus='CANCELADO' AND MONTH(a.FechaCancelacion)>Month(a.FechaEmision))
/***** Lineas Para el Filtro de Agentes *****/
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND (a.Periodo=@Periodo Or MONTH(a.FechaCancelacion)=@Periodo)
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
ORDER BY ag.Grupo, a.Agente
-----------
/*
---notas de cargo
Insert Into #FactSem(Orden, Grupo, Mov,movid, Agente, Importe, Cuota, FechaEmision)
SELECT 1, ag.Grupo, 'Factura',a.movid, a.Agente, (a.Importe*a.TipoCambio),
(SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), a.FechaEmision
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
--AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.CA')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal,ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
/***** Lineas Para el Filtro de Agentes *****/
And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo
AND a.Empresa = @Empresa
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
--AND CxcD.Aplica = 'Factura Anticipo'
ORDER BY ag.Grupo, a.Agente
--fin notas de cargo
*/
-----insertado para que salgan los agentes aunque no tengan movimientos 23-Abril-2010
--IF @Sucursal is not null And @Sucursal<>0 and @Categoria is null --los gerentes son los unicos que lo pdoran ver y su categoria es null
-- Begin
IF @Categoria<>'EJECUTIVO DE VENTAS'
Begin
Select @EmpresaT=Case @Empresa When 'LABC' Then '(LABC)' --agregado para impedir que agregue aegentes de otra empresaa si trae filtro de empresa
When 'FASIQ' Then '(FASIQ)'
When 'LMA' Then '(LMA)'
When 'GMTK' Then '(GMTK)'
When 'FERMI' Then '(FERMI)'
End
Insert Into #FactSem(Orden, Grupo, Mov, Agente, Importe, Cuota, FechaEmision)
Select 1,Grupo,'Factura',Agente,0,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = Agente.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), GetDate()
From Agente
Where Estatus='ALTA' And Categoria='EJECUTIVO DE VENTAS' And Zona=Isnull(@Zona,Zona)
And Not Exists(Select f.* From #FactSem f Where f.Agente=Agente.Agente)
AND NivelAcceso=Isnull(@EmpresaT,NivelAcceso)
And SucursalEmpresa=IsNull(@Sucursal,SucursalEmpresa)
End
-- End
/*
IF @Sucursal is null and @Categoria is null
Begin
Insert Into #FactSem(Orden, Grupo, Mov, Agente, Importe, Cuota, FechaEmision)
Select 1,Grupo,'Factura',Agente,0,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = Agente.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), GetDate()
From Agente
Where Estatus='ALTA' And Categoria='EJECUTIVO DE VENTAS'
And Not Exists(Select f.* From #FactSem f Where f.Agente=Agente.Agente)
End
IF @Sucursal=0 And @Empresa='FERMI' and @Categoria is null
Begin
Insert Into #FactSem(Orden, Grupo, Mov, Agente, Importe, Cuota, FechaEmision)
Select 1,Grupo,'Factura',Agente,0,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = Agente.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), GetDate()
From Agente
Where Estatus='ALTA' And Categoria='EJECUTIVO DE VENTAS' And SucursalEmpresa=0 And Familia='Gerencia de Ventas Fermi Mexico'
And Not Exists(Select f.* From #FactSem f Where f.Agente=Agente.Agente)
End
IF @Sucursal=0 And @Empresa='LABC' and @Categoria is null
Begin
Insert Into #FactSem(Orden, Grupo, Mov, Agente, Importe, Cuota, FechaEmision)
Select 1,Grupo,'Factura',Agente,0,
Cuota = (SELECT Importe FROM TablaAnualD WHERE TablaAnual = Agente.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), GetDate()
From Agente
Where Estatus='ALTA' And Categoria='EJECUTIVO DE VENTAS' And SucursalEmpresa=0 And Familia<>'Gerencia de Ventas Fermi Mexico'
And Not Exists(Select f.* From #FactSem f Where f.Agente=Agente.Agente)
End
*/
---
---
Insert Into #FactSem(Orden, Grupo, Mov,movid, Agente, Importe, Cuota, FechaEmision)
SELECT 2, ag.Grupo, a.Mov,a.movid, a.Agente, -(a.Importe*a.TipoCambio), (SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), a.FechaEmision
FROM Venta a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'VTAS'
AND mt.Clave = 'VTAS.D'
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal,ag.SucursalEmpresa)
AND a.Estatus = 'CONCLUIDO'
/***** Lineas Para el Filtro de Agentes *****/
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
ORDER BY ag.Grupo, a.Agente
Insert Into #FactSem(Orden, Grupo, Mov,movid, Agente, Importe, Cuota, FechaEmision)
SELECT 2, ag.Grupo, 'Devolucion Venta',a.movid, a.Agente, -(a.Importe*a.TipoCambio),
(SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), a.FechaEmision
FROM Cxc a, CxcD, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND a.ID=CxcD.ID
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal,ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
/***** Lineas Para el Filtro de Agentes *****/
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
AND CxcD.Aplica in('Factura Anticipo','Factura Anticipo CFD') ----Modificado para nueva revision 18-agodto 2011
ORDER BY ag.Grupo, a.Agente
Insert Into #FactSem(Orden, Grupo, Mov,movid, Agente, Importe, Cuota, FechaEmision)
SELECT 3, ag.Grupo, a.Mov,a.movid, a.Agente, (a.Importe*a.TipoCambio),
(SELECT Importe FROM TablaAnualD WHERE TablaAnual = a.Agente AND Ejercicio = @Ejercicio AND Periodo = @Periodo), a.FechaEmision
FROM Cxc a, MovTipo mt, Cte c, Agente ag
WHERE a.Mov = mt.Mov
AND mt.Modulo = 'CXC'
AND mt.Clave In ('CXC.FA')--, 'CXC.NC')
AND a.Cliente = c.Cliente
AND a.Agente = ag.Agente
--And ag.SucursalEmpresa=IsNull(@Sucursal,ag.SucursalEmpresa)
AND a.Estatus In ('CONCLUIDO', 'PENDIENTE')
/***** Lineas Para el Filtro de Agentes *****/
-- And IsNull(Ag.Categoria, '') = IsNull(IsNull(@Categoria, Ag.Categoria), '')
And IsNull(Ag.Familia, '') = IsNull(IsNull(@Familia, Ag.Familia), '')
And IsNull(Ag.Grupo, '') = IsNull(IsNull(@Grupo, Ag.Grupo), '')
And ag.Zona=Isnull(@Zona,ag.Zona)--cambiado/agregado para nuevo filtro Diciembre 2014
/***** Lineas Para el Filtro de Agentes *****/
AND a.Agente BETWEEN @AgenteD AND @AgenteA
AND a.Ejercicio = @Ejercicio
AND a.Periodo = @Periodo
AND a.Empresa = Isnull(@Empresa,a.Empresa)
And IsNull(a.Sucursal, '') = IsNull(IsNull(@Sucursal, a.Sucursal), '')
ORDER BY ag.Grupo, a.Agente
--Select * From #FactSem order by agente,mov,movid
--spFacturacionSemanalABC '(Todos)', 'AGP', 'WWW', 2011, 4, 'LABC', 'GVT', '(Todos)',0
SELECT @PrimerDiaMes = CONVERT(Datetime, '01/'+CONVERT(char(2), @Periodo)+'/'+CONVERT(char(4), @Ejercicio), 103)
SELECT @UltimoDiaMes = DATEADD(m, 1, @PrimerDiaMes) - 1
SELECT @IniSemana1 = @PrimerDiaMes
SELECT @FinSemana1 = @IniSemana1 + 6
SELECT @Dias1 = DATEDIFF(d, @IniSemana1, @FinSemana1) + 1
SELECT @IniSemana2 = @FinSemana1 + 1
SELECT @FinSemana2 = @IniSemana2 + 6
SELECT @Dias2 = DATEDIFF(d, @IniSemana2, @FinSemana2) + 1
SELECT @IniSemana3 = @FinSemana2 + 1
SELECT @FinSemana3 = @IniSemana3 + 6
SELECT @Dias3 = DATEDIFF(d, @IniSemana3, @FinSemana3) + 1
SELECT @IniSemana4 = @FinSemana3 + 1
SELECT @FinSemana4 = @IniSemana4 + 6
SELECT @Dias4 = DATEDIFF(d, @IniSemana4, @FinSemana4) + 1
IF @FinSemana4 < @UltimoDiaMes
BEGIN
SELECT @IniSemana5 = @FinSemana4 + 1
SELECT @FinSemana5 = @UltimoDiaMes
SELECT @Dias5 = DATEDIFF(d, @IniSemana5, @FinSemana5) + 1
END
INSERT FactCuota (Orden, Grupo, Mov, Agente, Cuota1, Importe1, FechaD1, FechaA1, Cuota2, Importe2, FechaD2, FechaA2, Cuota3, Importe3, FechaD3, FechaA3, Cuota4, Importe4, FechaD4, FechaA4, Cuota5, Importe5, FechaD5, FechaA5)
SELECT DISTINCT Orden, Grupo, Mov, Agente, 0.0, 0.0, @IniSemana1, @FinSemana1, 0.0, 0.0, @IniSemana2, @FinSemana2, 0.0, 0.0, @IniSemana3, @FinSemana3, 0.0, 0.0, @IniSemana4, @FinSemana4, 0.0, 0.0, @IniSemana5, @FinSemana5
FROM #FactSem
DECLARE CrFac CURSOR FOR
SELECT Grupo, Mov, Agente, Importe, Cuota, FechaEmision
FROM #FactSem
OPEN CrFac
FETCH NEXT FROM CrFac INTO @GruX, @Mov, @AgeX, @ImpX, @CuotaX, @FechaX
WHILE @@FETCH_STATUS <> -1
BEGIN
IF @@FETCH_STATUS <> -2
BEGIN
SELECT @CuotaDia = @CuotaX / DAY(@UltimoDiaMes)
UPDATE FactCuota SET Cuota1 = @CuotaDia * @Dias1, Cuota2 = @CuotaDia * @Dias2, Cuota3 = @CuotaDia * @Dias3, Cuota4 = @CuotaDia * @Dias4, Cuota5 = @CuotaDia * @Dias5 WHERE Agente = @AgeX AND Grupo = @GruX
IF @FechaX BETWEEN @IniSemana1 AND @FinSemana1 UPDATE FactCuota SET Importe1 = Importe1 + @ImpX WHERE Agente = @AgeX AND Grupo = @GruX And Mov=@Mov ELSE
IF @FechaX BETWEEN @IniSemana2 AND @FinSemana2 UPDATE FactCuota SET Importe2 = Importe2 + @ImpX WHERE Agente = @AgeX AND Grupo = @GruX And Mov=@Mov ELSE
IF @FechaX BETWEEN @IniSemana3 AND @FinSemana3 UPDATE FactCuota SET Importe3 = Importe3 + @ImpX WHERE Agente = @AgeX AND Grupo = @GruX And Mov=@Mov ELSE
IF @FechaX BETWEEN @IniSemana4 AND @FinSemana4 UPDATE FactCuota SET Importe4 = Importe4 + @ImpX WHERE Agente = @AgeX AND Grupo = @GruX And Mov=@Mov ELSE
IF @FechaX BETWEEN @IniSemana5 AND @FinSemana5 UPDATE FactCuota SET Importe5 = Importe5 + @ImpX WHERE Agente = @AgeX AND Grupo = @GruX And Mov=@Mov
END
FETCH NEXT FROM CrFac INTO @GruX, @Mov, @AgeX, @ImpX, @CuotaX, @FechaX
END
CLOSE CrFac
DEALLOCATE CrFac
--Update FactCuota Set Cuota1=0, Cuota2=0, Cuota3=0, Cuota4=0, Cuota5=0 Where Mov<>'Factura'
--spFacturacionSemanalABC '(Todos)', 'AGP', 'VCL', 2009, 4, 'LABC', 'GVT', '(Todos)',1
UPDATE FactCuota set NomAgente = (Select Nombre FROM Agente WHERE Agente=FactCuota.Agente)
IF @Zona='METRO'
Begin
SELECT * FROM FactCuota Where Agente <> 'MOS' ORDER BY Grupo,NomAgente , Orden
End
Else
IF @Zona<>'METRO' or @Zona IS NULL
Begin
SELECT * FROM FactCuota Where Agente <> 'MOS' ORDER BY Grupo, Agente ,Orden
End
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment