-- 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) Contenido.AppendFormat("Pedido: <a href='https://sms.adssistemas.mx/Ventas/Ventas.aspx?CveVenta={0}'>{1}</a><br/>", CveOS, Folio)
Case 6 Case 6
Asunto = "Tu pedido ha sido entregado" 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) 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 Case 9
Asunto = "Material Utilizado en tu CX" 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 Case 10
Asunto = "Material por recolectar; Remisión: " & Remision 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 Case 11
Asunto = "Sin material por recolectar ; Remisión " & Remision 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 Case 12
Asunto = "Remisión por facturar:" & Folio 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("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 End Select
Contenido.AppendFormat("Fecha y hora de cx: {0}<br/>", FechaCirugía.ToString("dd/MM/yyyy HH:mm")) 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
End If End If
Contenido.AppendFormat("<br/>CorreoDestino: {0}<br/>", CorreoDestino)
Contenido.Append(" </body>") Contenido.Append(" </body>")
Contenido.Append("</html>") Contenido.Append("</html>")
CorreoDestino = "rene.molina@adssistemas.mx"
If ObjMail.SendMail(tEmpresa, CorreoDestino, Asunto, Contenido.ToString) Then If ObjMail.SendMail(tEmpresa, CorreoDestino, Asunto, Contenido.ToString) Then
End If End If

View File

@@ -3698,6 +3698,26 @@ Namespace Extensiones
Public Function FirstDayOfMonth(ByVal Fecha As Date) As Date Public Function FirstDayOfMonth(ByVal Fecha As Date) As Date
Return New DateTime(Fecha.Year, Fecha.Month, 1) Return New DateTime(Fecha.Year, Fecha.Month, 1)
End Function 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 Private ReadOnly Property ObjClsPaginas As ClsPaginas
Get 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}) ListMateriales.Add(New GenericaCantidadProducto With {.Cantidad = dRow("Cantidad").ToString.ToEntero, .Producto = dRow("PS").ToString})
Next Next
CorreoVendedor = "rene.molina@adssistemas.mx"
Dim tCveOS As Integer = -1 Dim tCveOS As Integer = -1
Dim FolioOS As String = "-" Dim FolioOS As String = "-"
Dim objOS As New ClsOS Dim objOS As New ClsOS

View File

@@ -46,8 +46,6 @@ Partial Class OS_Asignaciones
CargaClientes() CargaClientes()
CargaSubProyecto() CargaSubProyecto()
If UsuarioActual.TienePermisoProceso(171) Then If UsuarioActual.TienePermisoProceso(171) Then
CargaOrdenesServiciosAsignadasXPersona() CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas() CargaOrdenesServiciosNoAsignadas()
@@ -235,7 +233,7 @@ Partial Class OS_Asignaciones
Dim TieneError As Boolean = False Dim TieneError As Boolean = False
Dim CveEstatusOS As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero 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 contadorOrdenesAsignadas As Integer = 0
Dim ObjOS As New ClsOS 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) Dim picker As MKB.TimePicker.TimeSelector = DirectCast(row.FindControl("TimeSelector"), MKB.TimePicker.TimeSelector)
If row.FCCheckBox("ChbxAsignar").Checked Then 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 contadorOrdenesAsignadas += 1
If ObjOS.GetSubProyectosEstatusInicial(DdlTecnico.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then If ObjOS.GetSubProyectosEstatusInicial(DdlTecnico.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then
Dim subProyectoDelTecnico As DataTable Dim subProyectoDelTecnico As DataTable
subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", row.DataKey("CveSubProyecto"))) subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", row.DataKey("CveSubProyecto")))
If subProyectoDelTecnico.Rows.Count > 0 Then 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 TieneError = True
End If End If
Else Else
@@ -274,10 +272,10 @@ Partial Class OS_Asignaciones
If Not TieneError Then 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 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>" 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, 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 Importe:=0, CveOS:=row.DataKey("CveOS").ToEntero, CveSubProyecto:=row.DataKey("CveSubProyecto").ToEntero) Then
TieneError = True TieneError = True
@@ -285,14 +283,15 @@ Partial Class OS_Asignaciones
End If End If
If Not TieneError Then 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 TieneError = True
End If End If
End If End If
Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnico.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo").ToString Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnico.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo").ToString
If Not TieneError AndAlso CorreoAsignado <> "" Then 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 End If
End If End If
@@ -310,6 +309,7 @@ Partial Class OS_Asignaciones
Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion) Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion)
CargaOrdenesServiciosAsignadasXPersona() CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas() CargaOrdenesServiciosNoAsignadas()
Else Else
ObjOS.RollBack() ObjOS.RollBack()
Alert("Ocurrió un error al asignar", TipoMensaje.MsgAdvertencia) Alert("Ocurrió un error al asignar", TipoMensaje.MsgAdvertencia)
@@ -325,6 +325,7 @@ Partial Class OS_Asignaciones
UpOS.Update() UpOS.Update()
End Sub 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 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 Dim TieneError As Boolean = False
Try Try
@@ -363,8 +364,6 @@ Partial Class OS_Asignaciones
Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, ByRef TrasaccionSql As SqlClient.SqlTransaction) Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, ByRef TrasaccionSql As SqlClient.SqlTransaction)
Dim ObjOS As New ClsOS(TrasaccionSql) Dim ObjOS As New ClsOS(TrasaccionSql)
Dim params As New List(Of ReportParameter) Dim params As New List(Of ReportParameter)
Dim CveFolio As String = "" 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 End Sub
Private Sub SendmailOS() Private Sub SendmailOS()

View File

@@ -5,6 +5,7 @@ Imports Extensiones
Imports System.IO Imports System.IO
Imports System.Data Imports System.Data
Imports System.Data.SqlClient Imports System.Data.SqlClient
Imports APP_Code_CSharp
Partial Class OS_OrdenesServicios Partial Class OS_OrdenesServicios
Inherits ClsPaginas Inherits ClsPaginas
@@ -34,6 +35,15 @@ Partial Class OS_OrdenesServicios
ViewState("CveFolio") = value ViewState("CveFolio") = value
End Set End Set
End Property 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 Private Property CveSub As Integer
Get Get
Return ViewState("CveSub").ToString.ToEntero Return ViewState("CveSub").ToString.ToEntero
@@ -710,6 +720,7 @@ Partial Class OS_OrdenesServicios
TxtPaciente.Text = ObjOS.Paciente TxtPaciente.Text = ObjOS.Paciente
TxtIdentificadorCliente.Text = ObjOS.IdentificadorCliente TxtIdentificadorCliente.Text = ObjOS.IdentificadorCliente
TxtFolioAdicional.Text = ObjOS.FolioAdicional TxtFolioAdicional.Text = ObjOS.FolioAdicional
CveVendedor = ObjOS.DtResultados.FiltroPrimeroValor("CveVendedor").ToEntero
CargaEventoBitacora() CargaEventoBitacora()
CargaHistorial() CargaHistorial()
@@ -3392,16 +3403,18 @@ Partial Class OS_OrdenesServicios
RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');") RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');")
CargaEventoBitacora() CargaEventoBitacora()
Dim CorreoDestino As String = "rene.molina@adssistemas.mx" Dim CorreoDestino As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo", $"CveVendedor ={ CveVendedor }")
'genera notificación 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 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) 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 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) 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 End If
If ListMaterialesUtil.Count > 0 Then 'notif a almacen de mat utilizado CorreoDestino = UsuarioActual.Empresa.Funcionalidad(199).ListaBusquedaValor("Facturación")
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
If Respuesta IsNot Nothing Then 'notif de remisión generada 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) 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 End If
@@ -3414,7 +3427,6 @@ Partial Class OS_OrdenesServicios
End If End If
End Sub End Sub
Private Function GuardarArchivoConfirmacion(ByRef transaccion As SqlTransaction, CveOSActual As Integer, CveVentaRemisionGenerada As Integer) As Boolean Private Function GuardarArchivoConfirmacion(ByRef transaccion As SqlTransaction, CveOSActual As Integer, CveVentaRemisionGenerada As Integer) As Boolean
Dim respuesta As Boolean = False Dim respuesta As Boolean = False
@@ -3718,10 +3730,37 @@ Partial Class OS_OrdenesServicios
If resp.HuboError Then If resp.HuboError Then
Alert($"Se presento un error al cancelar la orden de servicio, {resp.Mensaje}".ToString(), TipoMensaje.MsgError) Alert($"Se presento un error al cancelar la orden de servicio, {resp.Mensaje}".ToString(), TipoMensaje.MsgError)
Else 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 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.AddHistorialBitacora(256, -1, -1, -1, CveOS, -1, -1, -1, "Cancelada", DdlEstatusOS.SelectedItem.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0, "", "", "")
objGeneral.Dispose() 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
End If End If
Catch ex As Exception Catch ex As Exception