Posted 02 Jun 2014
in reply to
Hristo Valyavicharski
Link to this post
Hi Hristo,
I populate the scheduler using a view from my database. I use the client event OnClientAppointmentMoveEnd to update the appointments date. I attached the code that i used to move the appointments. When the problem happens, i get no errors, even debugging with chrome browser.
Regards
/Javascript Function
function OnClientAppointmentMoveEnd(sender, eventArgs) {
var apt = eventArgs.get_appointment();
var originalStartTime = apt.get_start();
var startTime = eventArgs.get_targetSlot().get_startTime();
var endTime = eventArgs.get_targetSlot().get_endTime();
var dataAtual = apt.get_attributes().getAttribute("DataAtual");
var dataAnomalia = apt.get_attributes().getAttribute("DataRegistro");
var diaAnl = dataAnomalia.substring(2, 0);
var mesAnl = dataAnomalia.substring(5, 3);
var anoHoraAnl = dataAnomalia.substring(19, 6);
var diaAtl = dataAtual.substring(2, 0);
var mesAtl = dataAtual.substring(5, 3);
var anoHoraAtl = dataAtual.substring(19, 6);
var dataAnl = mesAnl + '/' + diaAnl + '/' + anoHoraAnl;
var dataAtl = mesAtl + '/' + diaAtl + '/' + anoHoraAtl;
var editSeries = eventArgs.get_editingRecurringSeries();
var canc = false;
if ((apt.get_id().indexOf("CE") != -1 || apt.get_id().indexOf("AN") != -1) && Date.parse(startTime) > Date.parse(dataAtl)) {
eventArgs.set_cancel(true);
canc = true;
}
if ((apt.get_id().indexOf("C") != -1) && Date.parse(startTime) < Date.parse(dataAnl)) {
eventArgs.set_cancel(true);
canc = true;
}
if (!canc) {
PageMethods.Move(apt.get_id(), originalStartTime, startTime, endTime, OnMovingSuccess, OnError);
}
return false;
}
//Code Behind Function
<System.Web.Services.WebMethod()> _
Public Shared Sub Move(ByVal codigo As String, ByVal dataHoraInicioOriginal As DateTime, ByVal dataHoraInicio As DateTime, ByVal dataHoraFim As DateTime)
Dim tipo As String = codigo.Split(New String() {"_"}, StringSplitOptions.None)(0)
codigo = codigo.Split(New String() {"_"}, StringSplitOptions.None)(1)
Try
DbUtils.StartTransaction()
Dim inicio As DateTime = dataHoraInicioOriginal.Add(TimeSpan.Parse(timeSpanHours))
Dim novoInicio As DateTime = dataHoraInicio.Add(TimeSpan.Parse(timeSpanHours))
service.AplicacaoService.Instance().alterarDataPrevistaTarefas(codigo, inicio, novoInicio)
DbUtils.CommitTransaction()
Catch ex As Exception
DbUtils.RollBackTransaction()
Finally
DbUtils.EndTransaction()
End Try
End Sub
Public Sub alterarDataPrevistaTarefas(ByVal aplicacaoPlanoAtividadeID As String, ByVal dataPrevistaOriginal As DateTime, ByVal dataPrevista As DateTime)
Dim dataHoraOriginal As String = dataPrevistaOriginal.ToShortDateString() & " " & dataPrevistaOriginal.ToShortTimeString()
Dim dataHora As String = dataPrevista.ToShortDateString() & " " & dataPrevista.ToShortTimeString()
Dim tarefasAplicacao() As TarefasRecord = TarefasTable.GetRecords(" AplicacaoPlanoAtividade = " & aplicacaoPlanoAtividadeID & " And DataPrevista = '" & dataHoraOriginal & "'")
If dataPrevista.ToShortTimeString() = "0:00" Then
dataHora = dataPrevista.ToShortDateString() & " " & dataPrevistaOriginal.ToShortTimeString()
End If
For Each tarefa As TarefasRecord In tarefasAplicacao
tarefa = CType(tarefa.GetWritableRecord(), TarefasRecord)
tarefa.Parse(dataHora, TarefasTable.DataPrevista)
tarefa.Save()
Next
End Sub