Utilizamos cookies para intentar brindarle una mejor experiencia en Freshdesk.
Si desea saber más sobre el tipo de cookies que utilizamos y sobre la forma y motivos por los que las usamos, lea nuestra Política de privacidad. Si no le gustan las cookies o está a dieta, también puede desactivarlas por completo. Solo tenga en cuenta que en Freshdesk nos encantan las cookies (sobre todo las que tienen virutas de chocolate), y que algunos apartados de Freshdesk podrían no funcionar correctamente si las desactiva.
También daremos por hecho que acepta y está de acuerdo con la manera en que usamos las cookies, tal como se describe en nuestra Política de privacidad, a menos que decida desactivarlas por completo a través de su navegador.
0 Votos
1 Comentarios
Flexygo Team publicado más de 1 año hace
Hola Freshtrategy IT,
A continuación describimos el protocolo a seguir para lanzar un push via SignalR hacia usuario/s que están conectados a la aplicación, con el fin de realizar cualquier operación (Actualizar el wc de notificaciones de la campanita, o de la bandeja de entrada del mail, lanzar un proceso de actualización en un módulo o cualquier tipo de proceso).
Public Shared Function refreshCajas(ByVal Entity As EntityObject, ByVal IdCliente As String, ByVal IdSesion As Integer, ByVal IdLinea As Integer, ByVal Cajas As Integer, ByVal user As String, ByRef Ret As ProcessHelper) As Boolean
Dim UserCnn As UserConnection = Ret.ConfToken.UserSecurity.ConnectionStrings("DataConnectionString")
Dim DataManager As New DataManager(UserCnn)
Try
Dim aParams As New BaseCollection
Dim result As New DataTable
aParams.Add("IdCliente", IdCliente)
aParams.Add("idSesion", IdSesion)
aParams.Add("idLinea", IdLinea)
aParams.Add("cajas", Cajas)
If DataManager.ExecuteStoredResult("pPers_FGO_VentasFresco_setCajas", aParams, result) Then
Dim dv As New DataView(result)
For Each usuario As OnlineUser In FLEXYGO.SignalR.genericHub.ConnectedUsers.Values 'Recoge todos los usuarios conectados
dv.RowFilter = "IdEmpleado=" & usuario.Reference
If dv.Count > 0 Then
'Crea un diccionario para pasarle datos al evento
Dim sender As New Dictionary(Of String, Object) From {
{"IdCliente", IdCliente},
{"IdLinea", IdLinea},
{"Usuario", usuario.Username},
{"Data", FLEXYGO.Utilities.SQL.SQLUtilities.DataTableToList(dv.ToTable, Ret.ConfToken)}
}
'Genera un evento de clase push y tipo updated'
Dim evento As EventHelper = New EventHelper(eEventClass.Push, eEventType.Updated) With {.sender = sender}
evento.masterIdentity = "Prueba"
FireGenericAllUserEvent()
FireGenericUserIDEvent()
FireGenericUserEvent(evento, usuario.Username)
End If
Next
Ret.Success = True
ElseIf Not IsBlank(DataManager.LastException) And DataManager.LastException.InnerException.Message.Contains("Se está reservando una cantidad mayor a la disponible") Then
Ret.WarningMessage = "Se está reservando una cantidad mayor a la disponible"
Ret.Success = True
Else
Ret.LastException = DataManager.LastException
Ret.Success = False
End If
Return Ret.Success
Catch ex As Exception
Ret.Success = False
Ret.LastException = ex
Return False
Finally
DataManager.Close()
End Try
End Function
function JAPO_VF_inistSesionesClientes(e) {
if (e.sender.moduleName == "JAPO_Ventas_Clientes") {
flexygo.events.off(e.context, 'module', 'loaded');
JAPO_VF_activarClienteFirst();
let modList = $($('flx-module[modulename="JAPO_Ventas_Articulos"]'));
/*Se registra al evento*/
flexygo.events.off(modList, 'push', 'updated');
flexygo.events.on(modList, 'push', 'updated', JAPO_VF_StockPush);
/**JAPO_VF_Generar_Pedido y JAPO_VF_setObservacionesLinea**/
flexygo.events.on(modList, 'process', 'executed', JAPO_VF_CallbacksPantallaParametros);
}
}
/**Función que recibe el evento Push que se envía desde la función JAPO_VF_setCajas y desde el cron JAPO_VF_resetCajas
para actualizar el stock y las cajas de aquellas líneas que haya cambiado el stock o el stock disponible **/
function JAPO_VF_StockPush(e) {
var error = e.sender.Error;
if (error) {
var IdCliente = e.sender.IdCliente;
var IdLinea = e.sender.IdLinea;
var Id = '.cli' + IdCliente + 'li' + IdLinea;
$(Id).find('.cajas').find('input').removeClass('cajasEditado').addClass('cajasSuperado').addClass('font-bold');
} else {
//Stored y dll modificada para enviar a cada usuario su UnidadesStockDisponibles
$(e.sender.Data).each(function (index) {
var IdDoc = e.sender.Data[index].IdDoc;
var stock = e.sender.Data[index].UnidadesStockDisponibles;
var IdArticulo = e.sender.Data[index].Producto;
var IdFormato = e.sender.Data[index].IdFormato;
var EstadoLinea = e.sender.Data[index].EstadoLinea;
var Id = '#' + IdDoc;
if (e.sender.Data[index].UnidadesStock != undefined) {
var cajas = e.sender.Data[index].UnidadesStock;
$(Id).find('.cajas').find('input').val(cajas);
}
$(Id).find('.stock').html(stock);
$(Id).find('.sintratar').removeClass('sintratar').addClass(EstadoLinea);
$(Id).find('.reservada').removeClass('reservada').addClass(EstadoLinea);
$(Id).find('.ofertada').removeClass('ofertada').addClass(EstadoLinea);
$(Id).find('.pedida').removeClass('pedida').addClass(EstadoLinea);
});
}
$('#mod-JAPO_VF_Sesion_Clientes_ResumenReserva')[0].refresh();
$('#mod-JAPO_VF_Sesion_Lineas_ResumenReserva')[0].refresh();
}
Un saludo,
Jose Vicente Bernad
0 Votos
Iniciar sesión o Registrarse para publicar un comentario