-- mejoras para envío mensajes SMS
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user