-- mejoras para envío mensajes SMS

This commit is contained in:
2024-10-11 22:38:56 -07:00
parent 151fa32521
commit 1dac30ebcb
5 changed files with 131 additions and 22 deletions

View File

@@ -11076,19 +11076,35 @@ Public Class ClsPaginas
Contenido.AppendFormat("Pedido: <a href='https://sms.adssistemas.mx/Ventas/Ventas.aspx?CveVenta={0}'>{1}</a><br/>", CveOS, Folio)
Case 6
Asunto = "Tu pedido ha sido entregado"
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 7
Asunto = $"Se te ha asignado una CX:{FechaCirugía.ToString("dd/MM/yyyy HH:mm")}"
Contenido.AppendFormat(" <p style='width:100%;text-align:center;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 8
Asunto = "Tu CX ha sido asignada"
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 9
Asunto = "Material Utilizado en tu CX"
Contenido.AppendFormat(" <p style='width:100%;text-align:center;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 10
Asunto = "Material por recolectar; Remisión: " & Remision
Contenido.AppendFormat(" <p style='width:100%;text-align:center;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 11
Asunto = "Sin material por recolectar ; Remisión " & Remision
Contenido.AppendFormat(" <p style='width:100%;text-align:center;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 12
Asunto = "Remisión por facturar:" & Folio
Contenido.AppendFormat("Remisión: <a href='https://sms.adssistemas.mx/Ventas/Ventas.aspx?CveVenta={0}'>{1}</a><br/>", CveOS, Folio)
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 13
Asunto = "Cirugía Cancelada"
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 14
Asunto = "Cirugía Cancelada; Remisión " & Remision
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
Case 15
Asunto = "Cirugía Cancelada; OS " & Folio
Contenido.AppendFormat(" <p style='width:100%;text-align:left;font-family:Segoe UI Semibold;font-size:12pt'>OS: <a href='https://sms.adssistemas.mx/OS/OrdenesServicios.aspx?CveOS={0}'>{1}</a><br/></p>", CveOS, Folio)
End Select
Contenido.AppendFormat("Fecha y hora de cx: {0}<br/>", FechaCirugía.ToString("dd/MM/yyyy HH:mm"))
@@ -11114,8 +11130,12 @@ Public Class ClsPaginas
End If
End If
Contenido.AppendFormat("<br/>CorreoDestino: {0}<br/>", CorreoDestino)
Contenido.Append(" </body>")
Contenido.Append("</html>")
CorreoDestino = "rene.molina@adssistemas.mx"
If ObjMail.SendMail(tEmpresa, CorreoDestino, Asunto, Contenido.ToString) Then
End If

View File

@@ -3698,6 +3698,26 @@ Namespace Extensiones
Public Function FirstDayOfMonth(ByVal Fecha As Date) As Date
Return New DateTime(Fecha.Year, Fecha.Month, 1)
End Function
<Runtime.CompilerServices.Extension()>
Public Function ListaBusquedaValor(TextoArreglo As String, ValorBuscado As String, Optional Delimitador As Char = ";"c) As String
Dim Retorno As String = ""
' Separar por ";" para obtener cada par clave:valor
Dim pairs() As String = TextoArreglo.Trim.Split(Delimitador)
For Each pair As String In pairs
' Verificar que el par no esté vacío
If Not String.IsNullOrWhiteSpace(pair) Then
' Separar por ":" para obtener clave y valor
Dim columns() As String = pair.Split(":"c)
If columns.Length = 2 Then
If columns(0) = ValorBuscado Then
Retorno = columns(1)
Exit For
End If
End If
End If
Next
Return Retorno
End Function
Private ReadOnly Property ObjClsPaginas As ClsPaginas
Get

View File

@@ -3983,7 +3983,6 @@ Partial Class Inventarios_EntregaAlmacen
ListMateriales.Add(New GenericaCantidadProducto With {.Cantidad = dRow("Cantidad").ToString.ToEntero, .Producto = dRow("PS").ToString})
Next
CorreoVendedor = "rene.molina@adssistemas.mx"
Dim tCveOS As Integer = -1
Dim FolioOS As String = "-"
Dim objOS As New ClsOS

View File

@@ -46,8 +46,6 @@ Partial Class OS_Asignaciones
CargaClientes()
CargaSubProyecto()
If UsuarioActual.TienePermisoProceso(171) Then
CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas()
@@ -235,7 +233,7 @@ Partial Class OS_Asignaciones
Dim TieneError As Boolean = False
Dim CveEstatusOS As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero
Dim time As DateTime
Dim tFechaHoraCita As DateTime
Dim contadorOrdenesAsignadas As Integer = 0
Dim ObjOS As New ClsOS
@@ -248,14 +246,14 @@ Partial Class OS_Asignaciones
Dim picker As MKB.TimePicker.TimeSelector = DirectCast(row.FindControl("TimeSelector"), MKB.TimePicker.TimeSelector)
If row.FCCheckBox("ChbxAsignar").Checked Then
time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", row.FCTextBox("FechaOS").Text, picker.Hour, picker.Minute, If(picker.Hour < 12, TimeSelector.AmPmSpec.AM, TimeSelector.AmPmSpec.PM)))
tFechaHoraCita = DateTime.Parse(String.Format("{0} {1}:{2} {3}", row.FCTextBox("FechaOS").Text, picker.Hour, picker.Minute, If(picker.Hour < 12, TimeSelector.AmPmSpec.AM, TimeSelector.AmPmSpec.PM)))
contadorOrdenesAsignadas += 1
If ObjOS.GetSubProyectosEstatusInicial(DdlTecnico.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then
Dim subProyectoDelTecnico As DataTable
subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", row.DataKey("CveSubProyecto")))
If subProyectoDelTecnico.Rows.Count > 0 Then
If Not ObjOS.UpdateOrdenesServiciosAsignadas(row.DataKey("CveOSDetalle").ToEntero, DdlTecnico.SelectedValue.ToEntero, row.FCTextBox("FechaOS").Text.ToDate, time, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
If Not ObjOS.UpdateOrdenesServiciosAsignadas(row.DataKey("CveOSDetalle").ToEntero, DdlTecnico.SelectedValue.ToEntero, row.FCTextBox("FechaOS").Text.ToDate, tFechaHoraCita, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
TieneError = True
End If
Else
@@ -274,10 +272,10 @@ Partial Class OS_Asignaciones
If Not TieneError Then
Dim RecurrenciaTipo As Integer = 0, Frecuencia As Integer = -1, DiasSemana As String = "-1", Dias As Integer = -1, Mes As Integer = -1, RecurrenciaFin As String = "-1"
Dim Fecha As DateTime = time
Dim Fecha As DateTime = tFechaHoraCita
OIDescripcion = $"<b><a href='/OS/OrdenesServicios.aspx?CveOS={row.DataKey("CveOS")}' target='_blank' class='Texto' >Orden de servicio {row.DataKey("Folio")} </a></b>"
If Not ObjEventos.AddEventoAgenda(2, DdlTecnico.SelectedItem.Text, $"{DdlTecnico.SelectedItem.Text} {OIDescripcion}", 2, time, time.AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
If Not ObjEventos.AddEventoAgenda(2, DdlTecnico.SelectedItem.Text, $"{DdlTecnico.SelectedItem.Text} {OIDescripcion}", 2, tFechaHoraCita, tFechaHoraCita.AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2,
Importe:=0, CveOS:=row.DataKey("CveOS").ToEntero, CveSubProyecto:=row.DataKey("CveSubProyecto").ToEntero) Then
TieneError = True
@@ -285,14 +283,15 @@ Partial Class OS_Asignaciones
End If
If Not TieneError Then
If Not AgendarCirugia(ObjEventos, row.DataKey("CveOS").ToEntero, time, DdlTecnico.SelectedValue.ToEntero(), row.DataKey("Medico"), row.DataKey("Procedimiento"), row.DataKey("Nombre"), OIDescripcion) Then
If Not AgendarCirugia(ObjEventos, row.DataKey("CveOS").ToEntero, tFechaHoraCita, DdlTecnico.SelectedValue.ToEntero(), row.DataKey("Medico"), row.DataKey("Procedimiento"), row.DataKey("Nombre"), OIDescripcion) Then
TieneError = True
End If
End If
Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnico.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo").ToString
If Not TieneError AndAlso CorreoAsignado <> "" Then
MandaCorreOS(row.DataKey("CveOS").ToEntero, CorreoAsignado, TrasaccionSql:=ObjOS.IniciaTransacSQL)
'MandaCorreOS(row.DataKey("CveOS").ToEntero, CorreoAsignado, TrasaccionSql:=ObjOS.IniciaTransacSQL)
MandaCorreOSSMS(row.DataKey("CveOS").ToEntero, CorreoAsignado, row.DataKey("Folio"), row.DataKey("Nombre"), row.DataKey("Procedimiento"), row.DataKey("Medico"), DdlTecnico.SelectedItem.Text, tFechaHoraCita, TransaccionSql:=ObjOS.IniciaTransacSQL)
End If
End If
End If
@@ -310,6 +309,7 @@ Partial Class OS_Asignaciones
Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion)
CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas()
Else
ObjOS.RollBack()
Alert("Ocurrió un error al asignar", TipoMensaje.MsgAdvertencia)
@@ -325,6 +325,7 @@ Partial Class OS_Asignaciones
UpOS.Update()
End Sub
Protected Function AgendarCirugia(ByRef ObjEventos As ClsOIEventos, CveOS As Integer, FechaCirugia As DateTime, CveUsuarioAgendar As Integer, Medico As String, Procedimiento As String, Hospital As String, OIDescripcion As String) As Boolean
Dim TieneError As Boolean = False
Try
@@ -363,8 +364,6 @@ Partial Class OS_Asignaciones
Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, ByRef TrasaccionSql As SqlClient.SqlTransaction)
Dim ObjOS As New ClsOS(TrasaccionSql)
Dim params As New List(Of ReportParameter)
Dim CveFolio As String = ""
@@ -501,6 +500,38 @@ Partial Class OS_Asignaciones
End Sub
Private Sub MandaCorreOSSMS(CveOS As Integer, CorreoUsuarioAsignado As String, Folio As String, NombreCliente As String, Procedimiento As String, Medico As String, Tecnico As String, FechaCirugia As DateTime, ByRef TransaccionSql As SqlClient.SqlTransaction)
Dim ObjOS As New ClsOS(TransaccionSql)
Dim FolioOS As String = ""
If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
If ObjOS.DtResultados.Rows.Count > 0 Then
Dim dtOS As DataTable = ObjOS.DtResultados
Dim dr As DataRow = dtOS.Rows(0)
Dim ListMateriales As List(Of GenericaCantidadProducto) = Nothing
If ObjOS.GetDetalleMateriales(-1, CveOS) Then
ListMateriales = New List(Of GenericaCantidadProducto)
For Each dRow As DataRow In ObjOS.DtResultados.Rows
ListMateriales.Add(New GenericaCantidadProducto With {.Cantidad = dRow("CantidadSolicitada").ToString.ToEntero, .Producto = dRow("PS").ToString})
Next
End If
Dim CorreoDestino As String = CorreoUsuarioAsignado
Dim Vendedor As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Vendedor", $"CveVendedor ={dr("CveVendedor")}")
'técnico
CorreoDestino = CorreoUsuarioAsignado
EnviaNotificacionSMS(7, UsuarioActual.Empresa, CveOS, Folio, FechaCirugia, NombreCliente, Medico, Procedimiento, Tecnico, Vendedor, "", ListMateriales, CorreoDestino)
'vendedor
CorreoDestino = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo", $"CveVendedor ={dr("CveVendedor")}")
EnviaNotificacionSMS(8, UsuarioActual.Empresa, CveOS, Folio, FechaCirugia, NombreCliente, Medico, Procedimiento, Tecnico, Vendedor, "", ListMateriales, CorreoDestino)
End If
End If
End Sub
Private Sub SendmailOS()

View File

@@ -5,6 +5,7 @@ Imports Extensiones
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports APP_Code_CSharp
Partial Class OS_OrdenesServicios
Inherits ClsPaginas
@@ -34,6 +35,15 @@ Partial Class OS_OrdenesServicios
ViewState("CveFolio") = value
End Set
End Property
Private Property CveVendedor As Integer
Get
Return ViewState("CveVendedor").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveVendedor") = value
End Set
End Property
Private Property CveSub As Integer
Get
Return ViewState("CveSub").ToString.ToEntero
@@ -710,6 +720,7 @@ Partial Class OS_OrdenesServicios
TxtPaciente.Text = ObjOS.Paciente
TxtIdentificadorCliente.Text = ObjOS.IdentificadorCliente
TxtFolioAdicional.Text = ObjOS.FolioAdicional
CveVendedor = ObjOS.DtResultados.FiltroPrimeroValor("CveVendedor").ToEntero
CargaEventoBitacora()
CargaHistorial()
@@ -3392,16 +3403,18 @@ Partial Class OS_OrdenesServicios
RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');")
CargaEventoBitacora()
Dim CorreoDestino As String = "rene.molina@adssistemas.mx"
'genera notificación
Dim CorreoDestino As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo", $"CveVendedor ={ CveVendedor }")
If ListMaterialesUtil.Count > 0 Then 'notif a almacen de mat utilizado
EnviaNotificacionSMS(9, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, "vendedor", TxtFolioRemisionModal.Text, ListMaterialesUtil, CorreoDestino)
End If
CorreoDestino = UsuarioActual.Empresa.Funcionalidad(199).ListaBusquedaValor("Almacén")
'genera notificación almacen
If AplicaDevolucion Then 'notif a almacen de devolución
EnviaNotificacionSMS(10, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, "vendedor", TxtFolioRemisionModal.Text, ListMaterialesDev, CorreoDestino)
Else
EnviaNotificacionSMS(11, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, "vendedor", TxtFolioRemisionModal.Text, ListMaterialesDev, CorreoDestino)
End If
If ListMaterialesUtil.Count > 0 Then 'notif a almacen de mat utilizado
EnviaNotificacionSMS(9, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, "vendedor", TxtFolioRemisionModal.Text, ListMaterialesUtil, CorreoDestino)
End If
CorreoDestino = UsuarioActual.Empresa.Funcionalidad(199).ListaBusquedaValor("Facturación")
If Respuesta IsNot Nothing Then 'notif de remisión generada
EnviaNotificacionSMS(12, UsuarioActual.Empresa, Respuesta.CveVenta, Respuesta.SerieFolio, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, "vendedor", TxtFolioRemisionModal.Text, ListMaterialesUtil, CorreoDestino)
End If
@@ -3414,7 +3427,6 @@ Partial Class OS_OrdenesServicios
End If
End Sub
Private Function GuardarArchivoConfirmacion(ByRef transaccion As SqlTransaction, CveOSActual As Integer, CveVentaRemisionGenerada As Integer) As Boolean
Dim respuesta As Boolean = False
@@ -3718,10 +3730,37 @@ Partial Class OS_OrdenesServicios
If resp.HuboError Then
Alert($"Se presento un error al cancelar la orden de servicio, {resp.Mensaje}".ToString(), TipoMensaje.MsgError)
Else
Alert($"la orden de servicio se cancelada correctamente, {resp.Mensaje}", resp.TipoMensaje, " location.reload(true); ")
Alert($"la orden de servicio se cancelada correctamente, {resp.Mensaje}", resp.TipoMensaje, " location.reload(true); ")
Dim objGeneral As New ClsGenerales
objGeneral.AddHistorialBitacora(256, -1, -1, -1, CveOS, -1, -1, -1, "Cancelada", DdlEstatusOS.SelectedItem.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0, "", "", "")
objGeneral.Dispose()
Dim ListMateriales As List(Of GenericaCantidadProducto) = Nothing
Dim ObjOS As New ClsOS
If ObjOS.GetDetalleMateriales(-1, CveOS) Then
ListMateriales = New List(Of GenericaCantidadProducto)
For Each dRow As DataRow In ObjOS.DtResultados.Rows
If dRow("Cantidad").ToString.ToEntero > 0 Then
ListMateriales.Add(New GenericaCantidadProducto With {.Cantidad = dRow("Cantidad").ToString.ToEntero, .Producto = dRow("PS").ToString})
End If
Next
End If
ObjOS.Dispose()
Dim Vendedor As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Vendedor", $"CveVendedor ={ CveVendedor }")
Dim CorreoVendedor As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo", $"CveVendedor ={ CveVendedor }")
'vendedor
EnviaNotificacionSMS(13, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, Vendedor, TxtFolioRemisionModal.Text, Nothing, CorreoVendedor)
Dim CorreoDestino As String = ""
'almacen
CorreoDestino = UsuarioActual.Empresa.Funcionalidad(199).ListaBusquedaValor("Almacén")
EnviaNotificacionSMS(14, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, Vendedor, TxtFolioRemisionModal.Text, Nothing, CorreoDestino)
If DdlTecnico.SelectedValue.ToEntero > 0 Then
'jefe de técnicos
CorreoDestino = UsuarioActual.Empresa.Funcionalidad(199).ListaBusquedaValor("JefeTécnicos")
EnviaNotificacionSMS(15, UsuarioActual.Empresa, CveOS, LblFolio.Text, TxtFechaCita.Text.ToDateTime, If(DdlSucursalCliente.Visible, DdlSucursalCliente.SelectedItem.Text, LblCliente.Text), DdlMedico.SelectedItem.Text, DdlProcedimiento.SelectedItem.Text, DdlTecnico.SelectedItem.Text, Vendedor, TxtFolioRemisionModal.Text, Nothing, CorreoDestino)
End If
End If
End If
Catch ex As Exception