Imports System.Data
Imports System.Linq.Expressions
Imports Extensiones
Partial Class Prospectos_RedesCallCenter
Inherits ClsPaginas
Private Property DTProspectosPreguntas As DataTable
Get
Return CType(ViewState("DTProspectosPreguntas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTProspectosPreguntas") = value
End Set
End Property
Private Property DTProspectosRespuestas As DataTable
Get
Return CType(ViewState("DTProspectosRespuestas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTProspectosRespuestas") = value
End Set
End Property
Private Property CveProspecto As Integer
Get
Return ViewState("CveProspecto").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveProspecto") = value
End Set
End Property
Private Property CveEncuesta As Integer
Get
Return ViewState("CveEncuesta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveEncuesta") = value
End Set
End Property
Private Property CveEncuestaRespuesta As Integer
Get
Return ViewState("CveEncuestaRespuesta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveEncuestaRespuesta") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
LblUsuarioActual.Text = UsuarioActual.Nombre
CveEncuesta = 17 ' Encuestas ya levantadas: 9
CargaDatos()
End If
End Sub
Private Sub CargaDatos()
Dim ObjProsEncuestas As New ClsProspectos
'cargo los datos del prospecto
TxtObservaciones.Text = ""
CveEncuestaRespuesta = ObjProsEncuestas.GetSiguienteaEncuestar(CveEncuesta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CveEncuestaRespuesta > 0 Then
'si encontró un prospecto disponible
CveProspecto = ObjProsEncuestas.CveProspecto
Dim ObjProsp As New ClsProspectos
If ObjProsp.GetProspectos(CveProspecto, "-1", "-1", -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
LblNombre.Text = String.Format("{0} {1} {2}", ObjProsp.ApellidoPaterno, ObjProsp.ApellidoMaterno, ObjProsp.Nombres)
LblCelular.Text = ObjProsp.Celular
LblTelefono.Text = ObjProsp.Telefono
LblTelefonoOtro.Text = String.Format("Otro: {0}", ObjProsp.TelefonoOtro)
If ObjProsEncuestas.GetPreguntas(CveEncuesta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Try
LtlNumEncuestas.Text = "Hoy: " & ObjProsEncuestas.DtResultados.Rows(0)("NumEncuestasHoy").ToString.FormatoNumero(0) & " - Total: " & ObjProsEncuestas.DtResultados.Rows(0)("NumEncuestas").ToString.FormatoNumero(0)
Catch ex As Exception
LtlNumEncuestas.Text = "Hoy: 0 - Total: 0"
End Try
GvPreguntas.DataSource = ObjProsEncuestas.DtResultados
DTProspectosPreguntas = ObjProsEncuestas.DtResultados
If ObjProsEncuestas.GetRespuestas(-1, CveEncuesta) Then
DTProspectosRespuestas = ObjProsEncuestas.DtResultados
End If
BtnEncuesta.Visible = True
BtnSaltarEncuesta.Visible = True
BtnSaltarNoContactado.Visible = True
Dim ObjEncuesta As New ClsProspectos
'JJMQ
'Pongo el SP que trae el encabezado de la encuesta, por si trae si le pusieron algo en Observaciones, que las ponga aquí, para si dice llamar a determinada hora que primero lean la Obs.
If ObjEncuesta.GetEncuestasProspecto(-1, CveProspecto, UsuarioActual.CveEmpresa) Then
If ObjEncuesta.DtResultados IsNot Nothing AndAlso ObjEncuesta.DtResultados.Rows.Count > 0 Then
TxtObservaciones.Text = ObjEncuesta.DtResultados.Rows(0)("Observaciones").ToString
End If
End If
End If
End If
ObjProsp.Dispose()
Else
Alert("No se encontraron encuestas disponibles", TipoMensaje.MsgInformacion)
End If
'If ObjProsEncuestas.GetRespuestasProspecto(CveEncuesta, CveProspecto, UsuarioActual.CveEmpresa) Then
' Gvv.DataSource = ObjProsEncuestas.DtResultados
' Gvv.DataBind()
'End If
ObjProsEncuestas.Dispose()
GvPreguntas.DataBind()
End Sub
Protected Sub GuardarRespuestas()
Dim Correcto As Boolean = True
Dim ObjEncuesta As New ClsProspectos
ObjEncuesta.IniciaTransacSQL()
If CveEncuestaRespuesta > 0 Then
For Each gvr As GridViewRow In GvPreguntas.Rows
Dim CveOpcion As Integer = -2
Dim Valor As String = gvr.FCTextBox("TxtValor").Text.Trim
Select Case gvr.DataKey("PreguntaTipo")
Case "1" 'Listado o DropDownList
CveOpcion = gvr.FCDropDownList("DdlRespuesta").SelectedValue.ToEntero
Case "2" 'Radio o RadioButtonList
CveOpcion = gvr.FCRadioButtonList("RbRespuesta").SelectedValue.ToEntero
Case "5" 'multiple textbox
Valor = String.Format("{0}
{1}
{2}", gvr.FCTextBox("TxtValor1").Text.Trim, gvr.FCTextBox("TxtValor2").Text.Trim, gvr.FCTextBox("TxtValor3").Text.Trim)
Valor = Valor.Replace("
", "") ' sino respondieron algun cuadro quito el fin de linea
End Select
If gvr.DataKey("CvePregunta").ToEntero > 0 Then
If Not ObjEncuesta.AddEncuestaRespuestaDetalle(CveEncuestaRespuesta, gvr.DataKey("CvePregunta").ToEntero, If(CveOpcion = 0, -2, CveOpcion), If(Valor = "", "-1", Valor), UsuarioActual.CveUsuario) Then
Correcto = False
Exit For
End If
'Else
' objProspectosValores.UpdateProspectosValores(CveProspecto, CveCaracteristica, CveOpcion, If(Valor = "", "-1", Valor), UsuarioActual.CveUsuario, CveValor)
End If
Next
Else
Correcto = False
End If
If Correcto Then
If ObjEncuesta.ActualizaEstatus(CveEncuestaRespuesta, 10, UsuarioActual.CveUsuario, TxtObservaciones.Text) Then
Correcto = True
ObjEncuesta.Commit()
Else
Correcto = False
End If
Alert("Encuenta Guardada", TipoMensaje.MsgInformacion)
Else
ObjEncuesta.RollBack()
End If
ObjEncuesta.Dispose()
If Correcto Then
CargaDatos()
End If
End Sub
Protected Sub GvPreguntas_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim EsOpcion As Integer = e.Row.DBCampo("PreguntaTipo").ToEntero
Dim CvePregunta As Integer = e.Row.DBCampo("CvePregunta").ToEntero
Select Case EsOpcion
Case 0, 4 'Texto, Multiline
With e.Row.FCTextBox("TxtValor")
.Visible = True
If EsOpcion = 4 Then
.Rows = 3
.TextMode = TextBoxMode.MultiLine
End If
End With
Case 1, 2 'DropDownList, Radios
Dim dt As DataTable = DTProspectosRespuestas.FiltraParametros(String.Format("CvePregunta = {0} AND Estatus = 'Activo'", CvePregunta))
If EsOpcion = 1 Then
With e.Row.FCDropDownList("DdlRespuesta")
.Visible = True
.DataSource = dt
.DataBind()
.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
End With
ElseIf EsOpcion = 2 Then
With e.Row.FCRadioButtonList("RbRespuesta")
.Visible = True
.DataSource = dt
.DataBind()
End With
End If
Case 3 'Fecha
With e.Row.FCTextBox("TxtValor")
.Visible = True
.Width = New Unit(80)
End With
e.Row.FCImageButton("ImgTxtValor").Visible = True
e.Row.FCMaskedEditExtender("MEETxtValor").Enabled = True
e.Row.FCCalendarExtender("CETxtValor").Enabled = True
Case 5 ' multiples textbox
e.Row.FCTextBox("TxtValor1").Visible = True : e.Row.FCTextBox("TxtValor2").Visible = True : e.Row.FCTextBox("TxtValor3").Visible = True
End Select
End If
End Sub
Protected Sub BtnEncuesta_Click(sender As Object, e As EventArgs) Handles BtnEncuesta.Click
GuardarRespuestas()
End Sub
Protected Sub BtnSaltarEncuesta_Click(sender As Object, e As EventArgs) Handles BtnSaltarEncuesta.Click
Dim ObjEncuesta As New ClsProspectos
If ObjEncuesta.ActualizaEstatus(CveEncuestaRespuesta, 2, UsuarioActual.CveUsuario, TxtObservaciones.Text) Then
Alert("Encuesta Saltada", TipoMensaje.MsgInformacion)
ObjEncuesta.GetSiguienteaEncuestar(CveEncuesta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
CargaDatos()
End If
ObjEncuesta.Dispose()
End Sub
Protected Sub BtnSaltarNoContactado_Click(sender As Object, e As EventArgs) Handles BtnSaltarNoContactado.Click
Dim ObjEncuesta As New ClsProspectos
If ObjEncuesta.ActualizaEstatus(CveEncuestaRespuesta, 3, UsuarioActual.CveUsuario, TxtObservaciones.Text) Then
Alert("Encuesta Saltada", TipoMensaje.MsgInformacion)
ObjEncuesta.GetSiguienteaEncuestar(CveEncuesta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
CargaDatos()
End If
ObjEncuesta.Dispose()
End Sub
End Class