home *** CD-ROM | disk | FTP | other *** search
/ 66.142.0.142 / 66.142.0.142.tar / 66.142.0.142 / tblScheduleadd.aspx.vb < prev    next >
Text File  |  2014-12-14  |  76KB  |  1,548 lines

  1. Imports System.Data
  2. Imports System.Data.Common
  3. Imports System.Xml
  4. Imports System.IO
  5. Imports System.Data.OleDb
  6. Imports Microsoft.Exchange.WebServices.Data
  7. Imports Microsoft.Exchange.WebServices.Autodiscover
  8. Imports System.Net
  9. Imports System.Net.Security
  10. Imports System.Security.Cryptography.X509Certificates
  11.  
  12. '
  13. ' ASP.NET code-behind class (Page)
  14. '
  15.  
  16. Partial Class tblScheduleadd
  17.     Inherits AspNetMaker7_tfpssnet
  18.  
  19.     ' Page object
  20.     Public tblSchedule_add As ctblSchedule_add
  21.  
  22.     '
  23.     ' Page Class
  24.     '
  25.     Class ctblSchedule_add
  26.         Inherits AspNetMakerPage
  27.         Implements IDisposable        
  28.  
  29.         ' Used by system generated functions
  30.         Private RsWrk As Object, sSqlWrk As String, sWhereWrk As String
  31.  
  32.         Private arwrk As Object
  33.  
  34.         Private armultiwrk() As String        
  35.  
  36.         ' Page URL
  37.         Public ReadOnly Property PageUrl() As String
  38.             Get
  39.                 Dim Url As String = ew_CurrentPage() & "?"
  40.                 If tblSchedule.UseTokenInUrl Then Url = Url & "t=" & tblSchedule.TableVar & "&" ' Add page token
  41.                 Return Url    
  42.             End Get
  43.         End Property
  44.  
  45.         ' Validate page request
  46.         Public Function IsPageRequest() As Boolean
  47.             Dim Result As Boolean
  48.             If tblSchedule.UseTokenInUrl Then
  49.                 Result = False
  50.                 If ObjForm IsNot Nothing Then
  51.                     Result = (tblSchedule.TableVar = ObjForm.GetValue("t"))
  52.                 End If
  53.                 If ew_Get("t") <> "" Then
  54.                     Result = (tblSchedule.TableVar = ew_Get("t"))
  55.                 End If
  56.                 Return Result
  57.             End If
  58.             Return True            
  59.         End Function    
  60.  
  61.         ' tblSchedule
  62.         Public Property tblSchedule() As ctblSchedule
  63.             Get                
  64.                 Return ParentPage.tblSchedule
  65.             End Get
  66.             Set(ByVal v As ctblSchedule)
  67.                 ParentPage.tblSchedule = v    
  68.             End Set    
  69.         End Property
  70.  
  71.         ' tblSchedule
  72.         Public Property tblEmployees() As ctblEmployees
  73.             Get                
  74.                 Return ParentPage.tblEmployees
  75.             End Get
  76.             Set(ByVal v As ctblEmployees)
  77.                 ParentPage.tblEmployees = v    
  78.             End Set    
  79.         End Property
  80.  
  81.         '
  82.         '  Constructor
  83.         '  - init objects
  84.         '  - open connection
  85.         '
  86.         Public Sub New(ByRef APage As AspNetMaker7_tfpssnet)                
  87.             m_ParentPage = APage
  88.             m_Page = Me    
  89.             m_PageID = "add"
  90.             m_PageObjName = "tblSchedule_add"
  91.             m_PageObjTypeName = "ctblSchedule_add"
  92.  
  93.             ' Table Name
  94.             m_TableName = "tblSchedule"
  95.  
  96.             ' Initialize table object
  97.             tblSchedule = New ctblSchedule(Me)
  98.             tblEmployees = New ctblEmployees(Me)
  99.  
  100.             ' Connect to database
  101.             Conn = New cConnection()
  102.         End Sub
  103.  
  104.         '
  105.         '  Subroutine Page_Init
  106.         '  - called before page main
  107.         '  - check Security
  108.         '  - set up response header
  109.         '  - call page load events
  110.         '
  111.         Public Sub Page_Init()
  112.             Security = New cAdvancedSecurity(Me)
  113.             If Not Security.IsLoggedIn() Then Security.AutoLogin()
  114.             If Not Security.IsLoggedIn() Then
  115.                 Security.SaveLastUrl()
  116.                 Page_Terminate("login.aspx")
  117.             End If
  118.  
  119.             ' Table Permission loading event
  120.             Security.TablePermission_Loading()
  121.             Security.LoadCurrentUserLevel(TableName)
  122.  
  123.             ' Table Permission loaded event
  124.             Security.TablePermission_Loaded()
  125.             If Not Security.CanAdd Then
  126.                 Security.SaveLastUrl()
  127.                 Page_Terminate("tblSchedulelist.aspx")
  128.             End If
  129.  
  130.             ' User ID loading event
  131.             Security.UserID_Loading()
  132.             If Security.IsLoggedIn() Then Call Security.LoadUserID()
  133.  
  134.             ' User ID loaded event
  135.             Security.UserID_Loaded()
  136.             If Security.IsLoggedIn() And ew_Empty(Security.CurrentUserID) Then
  137.                 Message = "You do not have the right permission to view the page"
  138.                 Page_Terminate("tblSchedulelist.aspx")
  139.             End If
  140.  
  141.             ' Global page loading event (in ewglobal*.vb)
  142.             ParentPage.Page_Loading()
  143.  
  144.             ' Page load event, used in current page
  145.             Page_Load()
  146.         End Sub
  147.  
  148.         '
  149.         '  Class terminate
  150.         '  - clean up page object
  151.         '
  152.         Public Sub Dispose() Implements IDisposable.Dispose
  153.             Page_Terminate("")
  154.         End Sub
  155.  
  156.         '
  157.         '  Sub Page_Terminate
  158.         '  - called when exit page
  159.         '  - clean up connection and objects
  160.         '  - if URL specified, redirect to URL
  161.         '
  162.         Sub Page_Terminate(url As String)
  163.  
  164.             ' Page unload event, used in current page
  165.             Page_Unload()
  166.  
  167.             ' Global page unloaded event (in ewglobal*.vb)
  168.             ParentPage.Page_Unloaded()
  169.  
  170.             ' Close connection
  171.             Conn.Dispose()
  172.             Security = Nothing
  173.             tblSchedule.Dispose()
  174.             tblEmployees.Dispose()
  175.  
  176.             ' Go to URL if specified
  177.             If url <> "" Then
  178.                 HttpContext.Current.Response.Clear()
  179.                 HttpContext.Current.Response.Redirect(url)
  180.             End If
  181.         End Sub
  182.  
  183.     Public x_ewPriv As Integer
  184.  
  185.     '
  186.     ' Page main processing
  187.     '
  188.         Public PSSSendEmailConfirmation As Boolean
  189.  
  190.         Public PSSSyncExchangeCalendar As Boolean
  191.  
  192.         Sub Page_Main()
  193.             Dim tlcsub As New AspNetMaker7_tfpssnet
  194.             PSSSendEmailConfirmation = tlcsub.tlcGetPSSEmailConfirmation()
  195.             PSSSyncExchangeCalendar = tlcsub.tlcGetPSSUpdateExchangeCalendar()
  196.  
  197.             ' Load key values from QueryString
  198.             Dim bCopy As Boolean = True
  199.             If ew_Get("schSchID") <> "" Then
  200.                 tblSchedule.schSchID.QueryStringValue = ew_Get("schSchID")
  201.             Else
  202.                 bCopy = False
  203.             End If
  204.  
  205.             ' Create form object
  206.             ObjForm = New cFormObj
  207.  
  208.             ' Process form if post back
  209.             If ObjForm.GetValue("a_add") <> "" Then
  210.                 tblSchedule.CurrentAction = ObjForm.GetValue("a_add") ' Get form action
  211.                 LoadFormValues() ' Load form values
  212.  
  213.                 ' Validate Form
  214.                 If Not ValidateForm() Then
  215.                     tblSchedule.CurrentAction = "I" ' Form error, reset action
  216.                     Message = ParentPage.gsFormError
  217.                 End If
  218.  
  219.                 ' Not post back
  220.             Else
  221.                 If bCopy Then
  222.                     tblSchedule.CurrentAction = "C" ' Copy Record
  223.                 Else
  224.                     tblSchedule.CurrentAction = "I" ' Display Blank Record
  225.                     If ew_Get("reload") = "Y" Then
  226.                         tlcLoadFormValues()
  227.                     Else
  228.                         LoadDefaultValues() ' Load default values
  229.                     End If
  230.                 End If
  231.             End If
  232.  
  233.             ' Perform action based on action code
  234.             Select Case tblSchedule.CurrentAction
  235.                 Case "I" ' Blank record, no action required
  236.                 Case "C" ' Copy an existing record
  237.                     If Not LoadRow() Then ' Load record based on key
  238.                         Message = "No records found" ' No record found
  239.                         Page_Terminate("tblSchedulelist.aspx") ' No matching record, return to list
  240.                     End If
  241.                     ew_Session("CopyRecord") = "True"
  242.                 Case "A" ' Add new record
  243.                     tblSchedule.SendEmail = False ' Send email on add success
  244.                     If AddRow() Then ' Add successful
  245.                         Message = "Add succeeded" ' Set up success message
  246.                         UpdateCalendarEntry()
  247.                         Dim sReturnUrl As String = tblSchedule.ReturnUrl
  248.                         'Page_Terminate(sReturnUrl) ' Clean up and return
  249.                         tlcSaveItems()
  250.                         If ew_Session("CopyRecord") = "True" Then
  251.                             ew_Session("CopyRecord") = ""
  252.                             Page_Terminate(sReturnUrl) ' Clean up and return
  253.                         Else
  254.                             Page_Terminate("tblScheduleAdd.aspx?reload=Y")
  255.                         End If
  256.                     Else
  257.                         RestoreFormValues() ' Add failed, restore form values
  258.                     End If
  259.             End Select
  260.  
  261.             ' Render row based on row type
  262.             tblSchedule.RowType = EW_ROWTYPE_ADD ' Render add type
  263.  
  264.             ' Render row
  265.             RenderRow()
  266.         End Sub
  267.  
  268.         Sub UpdateCalendarEntry()
  269.             'Dim service As New ExchangeService(requestedServerVersion:=ExchangeVersion.Exchange2010)
  270.             Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP1)
  271.             Dim tmpSchDate As Date, tmpEvtDescription As String, tmpPrtDescription As String, tmpCallTime As Date
  272.             Dim tmpStartTime As Date, tmpEndTime As Date, tmpOutTime As Date, tmpLocDescription As String, tmpPosDescription As String, tmpStDescription As String
  273.             Dim tmpTypDescription As String, tmpEmpName As String, tmpEmail As String, tmpBody As String, tmpAction As String = "", tmpStatus As String, tmpType As String, tmpNotes As String
  274.             Dim intResult As Integer, tmpMessage As String, tmpNewStatus As String, smtpStatus As Boolean, smtpMessage As String
  275.             Dim tlcsub As New AspNetMaker7_tfpssnet
  276.             intResult = tlcsub.tlcGetEventInfo(tblSchedule.schSchID.CurrentValue, tmpSchDate, tmpEvtDescription, tmpPrtDescription, tmpCallTime, tmpStartTime, tmpEndTime, tmpOutTime, tmpLocDescription, tmpPosDescription, tmpStDescription, tmpTypDescription, tmpEmpName, tmpEmail, tmpStatus, tmpNotes)
  277.             Select Case tmpStatus
  278.                 Case "Confirmed"
  279.                     tmpAction = "A"
  280.                     tmpStatus = "BUSY"
  281.                     tmpType = "C"
  282.                     tmpNewStatus = "Confirmed"
  283.                     tmpStDescription = "Confirmed"
  284.                 Case "Unconfirmed"
  285.                     tmpAction = "D"
  286.                     tmpType = "U"
  287.                     tmpNewStatus = "Unconfirmed"
  288.                     tmpStDescription = "Unconfirmed"
  289.                 Case "Cannot Work"
  290.                     tmpAction = "D"
  291.                     tmpType = "X"
  292.                     tmpNewStatus = "Cannot Work"
  293.                     tmpStDescription = "Cannot Work"
  294.                 Case "Tentative"
  295.                     tmpAction = "A"
  296.                     tmpStatus = "TENTATIVE"
  297.                     tmpType = "T"
  298.                     tmpNewStatus = "Tentative"
  299.                     tmpStDescription = "Tentative"
  300.             End Select
  301.  
  302.             If PSSSendEmailConfirmation = True Or PSSSyncExchangeCalendar = True Then
  303.  
  304.                 'Add a valid EWS service end point here or user Autodiscover
  305.                 'service.Url = New Uri("https://server14/ews/exchange.asmx")
  306.                 service.Url = New Uri("https://outlook.office365.com/EWS/Exchange.asmx")
  307.  
  308.                 'Add a valid user credentials
  309.                 'service.Credentials = New WebCredentials("prodservices", "production88", "Business")
  310.                 service.Credentials = New WebCredentials("productionservices@tfc.org", "production88")
  311.                 service.AutodiscoverUrl("productionservices@tfc.org", AddressOf RedirectionUrlValaditionCallBack)
  312.                 'To address the SSL challenge
  313.                 ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateCertificate)
  314.             End If
  315.  
  316.             'If tlcsub.tlcGetPSSEmailConfirmation() = True Then
  317.             '    tmpMessage = " for the following event:<br><br>"
  318.             '    tmpMessage = tmpMessage & "<b>Employee:</b> " & tmpEmpName & "<br> "
  319.             '    tmpMessage = tmpMessage & "<b>Date:</b> " & ew_FormatDateTime(tmpSchDate, 2) & "<br> "
  320.             '    tmpMessage = tmpMessage & "<b>Event:</b> " & tmpEvtDescription & "<br> "
  321.             '    tmpMessage = tmpMessage & "<b>Part:</b> " & tmpPrtDescription & "<br>"
  322.             '    tmpMessage = tmpMessage & "<b>Call Time:</b> " & ew_FormatDateTime(tmpCallTime, 14) & "<br>"
  323.             '    tmpMessage = tmpMessage & "<b>Start Time:</b> " & ew_FormatDateTime(tmpStartTime, 14) & "<br>"
  324.             '    'tmpMessage = tmpMessage & "<b>End Time:</b> " & ew_FormatDateTime(tmpEndTime, 14) & "<br>"
  325.             '    'tmpMessage = tmpMessage & "<b>Out Time:</b> " & ew_FormatDateTime(tmpOutTime, 14) & "<br>"
  326.             '    tmpMessage = tmpMessage & "<b>Location:</b> " & tmpLocDescription & "<br>"
  327.             '    tmpMessage = tmpMessage & "<b>Position:</b> " & tmpPosDescription & "<br>"
  328.             '    tmpMessage = tmpMessage & "<b>Status:</b> " & tmpNewStatus & "<br>"
  329.             '    tmpMessage = tmpMessage & "<b>Type:</b> " & tmpTypDescription & "<br>"
  330.             '    tmpMessage = tmpMessage & "<b>Notes:</b> " & tmpNotes & "<br><br>"
  331.             '    tmpMessage = tmpMessage & "sent from PSS tblScheduleadd."
  332.             '    'ew_SendEmail("prodservices@tfchurch.org", "kirkmanton@tfchurch.org", "", "", "PSS Event status change for " & ew_Session("tfpssnet_Status_UserName"), tmpMessage, "html")
  333.             '    Try
  334.             '        'Create new message object and set properties required to send a mail
  335.             '        Dim msg As EmailMessage = New EmailMessage(service)
  336.             '        msg.Subject = "PSS Event status change by " & ew_Session("tfpssnet_Status_UserName")
  337.             '        msg.Body = tmpMessage
  338.             '        'msg.ToRecipients.Add("tony.clayton@suddenlink.net")
  339.             '        'msg.ToRecipients.Add("tonyc@tfchurch.org")
  340.             '        msg.ToRecipients.Add("kirkmanton@tfchurch.org")
  341.             '        msg.From = "prodservices@tfchurch.org"
  342.             '        msg.SendAndSaveCopy()
  343.             '        '                                            Message = "Email sent."
  344.             '    Catch ex As Exception
  345.             '        Message = ex.Message
  346.             '    End Try
  347.             'End If
  348.             If PSSSendEmailConfirmation = True Or PSSSyncExchangeCalendar = True Then
  349.                 service.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, tmpEmail)
  350.             End If
  351.             Try
  352.                 If InStr(tmpEmail, "@tfc.org") > 0 And PSSSyncExchangeCalendar = True Then
  353.                     'Create appointment object and set properties as required
  354.                     Dim appt As Appointment = New Appointment(service)
  355.                     appt.Subject = tmpEvtDescription & " - " & tmpPrtDescription
  356.                     'tmpBody = "Event: " & tmpEvtDescription & ", Part: " & tmpPrtDescription & ", Call Time: " & tmpCallTime & _
  357.                     '            ", Start Time: " & tmpStartTime & ", End Time: " & tmpEndTime & ", Out Time: " & tmpOutTime & ", Location: " & tmpLocDescription & _
  358.                     '            ", Position: " & tmpPosDescription & ", Type: " & tmpTypDescription & ", Status: " & tmpStDescription & ", Notes: " & tmpNotes
  359.                     tmpBody = "Position: " & tmpPosDescription & vbCrLf & "Notes: " & tmpNotes
  360.                     appt.Body = tmpBody
  361.                     appt.Location = tmpLocDescription
  362.                     appt.Start = tmpSchDate & " " & tmpCallTime
  363.                     If tmpOutTime = Nothing Then
  364.                         appt.End = tmpSchDate & " " & tmpStartTime.AddHours(1)
  365.                     Else
  366.                         appt.End = tmpSchDate & " " & tmpOutTime
  367.                     End If
  368.                     appt.IsReminderSet = False
  369.                     'find and delete entry
  370.                     Dim findResults As FindItemsResults(Of Appointment) = service.FindAppointments(WellKnownFolderName.Calendar, New CalendarView(tmpSchDate, tmpSchDate.AddHours(24)))
  371.                     Dim items As New List(Of Item)()
  372.                     For Each appointment As Appointment In findResults
  373.                         items.Add(appointment)
  374.                     Next
  375.                     If items.Count <> 0 Then
  376.                         service.LoadPropertiesForItems(items, PropertySet.FirstClassProperties)
  377.                         For Each Appointment As Appointment In items
  378.                             If Not Appointment.IsCancelled Then
  379.                                 If Appointment.Subject = tmpEvtDescription & " - " & tmpPrtDescription Or Appointment.Subject = tmpEvtDescription Then
  380.                                     Appointment.Delete(DeleteMode.HardDelete)
  381.                                     Message = "Old EWS Appointment deleted from Outlook calendar."
  382.                                 End If
  383.                             End If
  384.                         Next
  385.                     End If
  386.                 End If
  387.             Catch ex As Exception
  388.                 Message = ex.Message
  389.             End Try
  390.  
  391.             'add new entry
  392.  
  393.             If tmpNewStatus = "Confirmed" Or tmpNewStatus = "Tentative" Then
  394.                 Try
  395.                     If InStr(tmpEmail, "@tfc.org") > 0 And PSSSyncExchangeCalendar = True Then
  396.                         'Create appointment object and set properties as required
  397.                         Dim appt As Appointment = New Appointment(service)
  398.                         appt.Subject = tmpEvtDescription & " - " & tmpPrtDescription
  399.                         'tmpBody = "Event: " & tmpEvtDescription & ", Part: " & tmpPrtDescription & ", Call Time: " & tmpCallTime & _
  400.                         '            ", Start Time: " & tmpStartTime & ", End Time: " & tmpEndTime & ", Out Time: " & tmpOutTime & ", Location: " & tmpLocDescription & _
  401.                         '            ", Position: " & tmpPosDescription & ", Type: " & tmpTypDescription & ", Status: " & tmpStDescription & ", Notes: " & tmpNotes
  402.                         tmpBody = "Position: " & tmpPosDescription & vbCrLf & "Notes: " & tmpNotes
  403.                         appt.Body = tmpBody
  404.                         appt.Location = tmpLocDescription
  405.                         appt.Start = tmpSchDate & " " & tmpCallTime
  406.                         If tmpOutTime = Nothing Then
  407.                             appt.End = tmpSchDate & " " & tmpStartTime.AddHours(1)
  408.                         Else
  409.                             appt.End = tmpSchDate & " " & tmpOutTime
  410.                         End If
  411.                         appt.IsReminderSet = False
  412.                         'find and delete entry
  413.                         Dim findResults As FindItemsResults(Of Appointment) = service.FindAppointments(WellKnownFolderName.Calendar, New CalendarView(tmpSchDate, tmpSchDate.AddHours(24)))
  414.                         Dim items As New List(Of Item)()
  415.                         For Each appointment As Appointment In findResults
  416.                             items.Add(appointment)
  417.                         Next
  418.                         'If items.Count <> 0 Then
  419.                         '    service.LoadPropertiesForItems(items, PropertySet.FirstClassProperties)
  420.                         '    For Each Appointment As Appointment In items
  421.                         '        If Not Appointment.IsCancelled Then
  422.                         '            If Appointment.Subject = tmpEvtDescription & " - " & tmpPrtDescription or Appointment.Subject = tmpEvtDescription Then
  423.                         '                Appointment.Delete(DeleteMode.HardDelete)
  424.                         '                Message = "Old EWS Appointment deleted from Outlook calendar."
  425.                         '            End If
  426.                         '        End If
  427.                         '    Next
  428.                         'End If
  429.                         If tmpNewStatus = "Tentative" Then
  430.                             appt.LegacyFreeBusyStatus = LegacyFreeBusyStatus.Tentative
  431.                         End If
  432.                         appt.Save(WellKnownFolderName.Calendar, SendInvitationsMode.SendToNone)
  433.                         Message = "New EWS Appointment added to Outlook calendar."
  434.                     End If
  435.                 Catch ex As Exception
  436.                     Message = ex.Message
  437.                 End Try
  438.             End If
  439.         End Sub
  440.  
  441.         Private Function ValidateCertificate(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
  442.             'Return True to force the certificate to be accepted.
  443.             Return True
  444.         End Function
  445.  
  446.         Private Shared Function RedirectionUrlValaditionCallBack(ByVal redirectionURL As String) As Boolean
  447.             Dim result As Boolean = False
  448.             Dim redirectionuri As New Uri(redirectionURL)
  449.             If redirectionuri.Scheme = "https" Then
  450.                 result = True
  451.             End If
  452.             Return result
  453.         End Function
  454.         '
  455.         ' Get upload file
  456.         '
  457.         Sub GetUploadFiles()
  458.  
  459.             ' Get upload data
  460.         End Sub
  461.  
  462.         '
  463.         ' Load default values
  464.         '
  465.         Sub LoadDefaultValues()
  466.             tblSchedule.schStatus.CurrentValue = 2
  467.             tblSchedule.schDoubleBooked.CurrentValue = 0
  468.         End Sub
  469.  
  470.         '
  471.         ' Load form values
  472.         '
  473.         Sub LoadFormValues()
  474.             tblSchedule.schDate.FormValue = ObjForm.GetValue("x_schDate")
  475.             tblSchedule.schDate.CurrentValue = ew_UnFormatDateTime(tblSchedule.schDate.CurrentValue, 6)
  476.             tblSchedule.schDate.OldValue = ObjForm.GetValue("o_schDate")
  477.             tblSchedule.schEvtID.FormValue = ObjForm.GetValue("x_schEvtID")
  478.             tblSchedule.schEvtID.OldValue = ObjForm.GetValue("o_schEvtID")
  479.             tblSchedule.schPartsID.FormValue = ObjForm.GetValue("x_schPartsID")
  480.             tblSchedule.schPartsID.OldValue = ObjForm.GetValue("o_schPartsID")
  481.             tblSchedule.schCallTime.FormValue = ObjForm.GetValue("x_schCallTime")
  482.             tblSchedule.schCallTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schCallTime.CurrentValue, 4)
  483.             tblSchedule.schCallTime.OldValue = ObjForm.GetValue("o_schCallTime")
  484.             tblSchedule.schStartTime.FormValue = ObjForm.GetValue("x_schStartTime")
  485.             tblSchedule.schStartTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schStartTime.CurrentValue, 4)
  486.             tblSchedule.schStartTime.OldValue = ObjForm.GetValue("o_schStartTime")
  487.             tblSchedule.schEndTime.FormValue = ObjForm.GetValue("x_schEndTime")
  488.             tblSchedule.schEndTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schEndTime.CurrentValue, 4)
  489.             tblSchedule.schEndTime.OldValue = ObjForm.GetValue("o_schEndTime")
  490.             tblSchedule.schOutTime.FormValue = ObjForm.GetValue("x_schOutTime")
  491.             tblSchedule.schOutTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schOutTime.CurrentValue, 4)
  492.             tblSchedule.schOutTime.OldValue = ObjForm.GetValue("o_schOutTime")
  493.             tblSchedule.schLocID.FormValue = ObjForm.GetValue("x_schLocID")
  494.             tblSchedule.schLocID.OldValue = ObjForm.GetValue("o_schLocID")
  495.             tblSchedule.schEmpID.FormValue = ObjForm.GetValue("x_schEmpID")
  496.             tblSchedule.schEmpID.OldValue = ObjForm.GetValue("o_schEmpID")
  497.             tblSchedule.schPosID.FormValue = ObjForm.GetValue("x_schPosID")
  498.             tblSchedule.schPosID.OldValue = ObjForm.GetValue("o_schPosID")
  499.             tblSchedule.schTypID.FormValue = ObjForm.GetValue("x_schTypID")
  500.             tblSchedule.schTypID.OldValue = ObjForm.GetValue("o_schTypID")
  501.             tblSchedule.schDepID.FormValue = ObjForm.GetValue("x_schDepID")
  502.             tblSchedule.schDepID.OldValue = ObjForm.GetValue("o_schDepID")
  503.             tblSchedule.schNotes.FormValue = ObjForm.GetValue("x_schNotes")
  504.             tblSchedule.schNotes.OldValue = ObjForm.GetValue("o_schNotes")
  505.             tblSchedule.schRate.FormValue = ObjForm.GetValue("x_schRate")
  506.             tblSchedule.schRate.OldValue = ObjForm.GetValue("o_schRate")
  507.             tblSchedule.schActualStart.FormValue = ObjForm.GetValue("x_schActualStart")
  508.             tblSchedule.schActualStart.CurrentValue = ew_UnFormatDateTime(tblSchedule.schActualStart.CurrentValue, 4)
  509.             tblSchedule.schActualStart.OldValue = ObjForm.GetValue("o_schActualStart")
  510.             tblSchedule.schActualEnd.FormValue = ObjForm.GetValue("x_schActualEnd")
  511.             tblSchedule.schActualEnd.CurrentValue = ew_UnFormatDateTime(tblSchedule.schActualEnd.CurrentValue, 4)
  512.             tblSchedule.schActualEnd.OldValue = ObjForm.GetValue("o_schActualEnd")
  513.             tblSchedule.schDateCreated.FormValue = ObjForm.GetValue("x_schDateCreated")
  514.             tblSchedule.schDateCreated.CurrentValue = ew_UnFormatDateTime(tblSchedule.schDateCreated.CurrentValue, 4)
  515.             tblSchedule.schDateCreated.OldValue = ObjForm.GetValue("o_schDateCreated")
  516.             tblSchedule.schDoubleBooked.FormValue = ObjForm.GetValue("x_schDoubleBooked")
  517.             tblSchedule.schDoubleBooked.OldValue = ObjForm.GetValue("o_schDoubleBooked")
  518.             tblSchedule.schStatus.FormValue = ObjForm.GetValue("x_schStatus")
  519.             tblSchedule.schStatus.OldValue = ObjForm.GetValue("o_schStatus")
  520.             tblSchedule.schDayOfWeek.FormValue = ObjForm.GetValue("x_schDayOfWeek")
  521.             tblSchedule.schDayOfWeek.OldValue = ObjForm.GetValue("o_schDayOfWeek")
  522.             tblSchedule.schSchID.FormValue = ObjForm.GetValue("x_schSchID")
  523.         End Sub
  524.  
  525.         Sub tlcLoadFormValues()
  526.             tblSchedule.schDate.FormValue = ew_Session("x_schDate")
  527.             tblSchedule.schEvtID.FormValue = ew_Session("x_schEvtID")
  528.             tblSchedule.schPartsID.FormValue = ew_Session("x_schPartsID")
  529.             tblSchedule.schCallTime.FormValue = ew_Session("x_schCallTime")
  530.             tblSchedule.schStartTime.FormValue = ew_Session("x_schStartTime")
  531.             tblSchedule.schEndTime.FormValue = ew_Session("x_schEndTime")
  532.             tblSchedule.schOutTime.FormValue = ew_Session("x_schOutTime")
  533.             tblSchedule.schActualStart.FormValue = ew_Session("x_schActualStart")
  534.             tblSchedule.schActualEnd.FormValue = ew_Session("x_schActualEnd")
  535.             tblSchedule.schLocID.FormValue = ew_Session("x_schLocID")
  536.             tblSchedule.schEmpID.FormValue = ew_Session("x_schEmpID")
  537.             tblSchedule.schPosID.FormValue = ew_Session("x_schPosID")
  538.             tblSchedule.schTypID.FormValue = ew_Session("x_schTypID")
  539.             tblSchedule.schDepID.FormValue = ew_Session("x_schDepID")
  540.             tblSchedule.schNotes.FormValue = ew_Session("x_schNotes")
  541.             tblSchedule.schStatus.FormValue = ew_Session("x_schStatus")
  542.             tblSchedule.schDayOfWeek.FormValue = ew_Session("x_schDayOfWeek")
  543.         End Sub
  544.  
  545.         '
  546.         ' Restore form values
  547.         '
  548.         Sub RestoreFormValues()
  549.             tblSchedule.schDate.CurrentValue = tblSchedule.schDate.FormValue
  550.             tblSchedule.schDate.CurrentValue = ew_UnFormatDateTime(tblSchedule.schDate.CurrentValue, 6)
  551.             tblSchedule.schEvtID.CurrentValue = tblSchedule.schEvtID.FormValue
  552.             tblSchedule.schPartsID.CurrentValue = tblSchedule.schPartsID.FormValue
  553.             tblSchedule.schCallTime.CurrentValue = tblSchedule.schCallTime.FormValue
  554.             tblSchedule.schCallTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schCallTime.CurrentValue, 4)
  555.             tblSchedule.schStartTime.CurrentValue = tblSchedule.schStartTime.FormValue
  556.             tblSchedule.schStartTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schStartTime.CurrentValue, 4)
  557.             tblSchedule.schEndTime.CurrentValue = tblSchedule.schEndTime.FormValue
  558.             tblSchedule.schEndTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schEndTime.CurrentValue, 4)
  559.             tblSchedule.schOutTime.CurrentValue = tblSchedule.schOutTime.FormValue
  560.             tblSchedule.schOutTime.CurrentValue = ew_UnFormatDateTime(tblSchedule.schOutTime.CurrentValue, 4)
  561.             tblSchedule.schLocID.CurrentValue = tblSchedule.schLocID.FormValue
  562.             tblSchedule.schEmpID.CurrentValue = tblSchedule.schEmpID.FormValue
  563.             tblSchedule.schPosID.CurrentValue = tblSchedule.schPosID.FormValue
  564.             tblSchedule.schTypID.CurrentValue = tblSchedule.schTypID.FormValue
  565.             tblSchedule.schDepID.CurrentValue = tblSchedule.schDepID.FormValue
  566.             tblSchedule.schNotes.CurrentValue = tblSchedule.schNotes.FormValue
  567.             tblSchedule.schRate.CurrentValue = tblSchedule.schRate.FormValue
  568.             tblSchedule.schActualStart.CurrentValue = tblSchedule.schActualStart.FormValue
  569.             tblSchedule.schActualStart.CurrentValue = ew_UnFormatDateTime(tblSchedule.schActualStart.CurrentValue, 4)
  570.             tblSchedule.schActualEnd.CurrentValue = tblSchedule.schActualEnd.FormValue
  571.             tblSchedule.schActualEnd.CurrentValue = ew_UnFormatDateTime(tblSchedule.schActualEnd.CurrentValue, 4)
  572.             tblSchedule.schDateCreated.CurrentValue = tblSchedule.schDateCreated.FormValue
  573.             tblSchedule.schDateCreated.CurrentValue = ew_UnFormatDateTime(tblSchedule.schDateCreated.CurrentValue, 4)
  574.             tblSchedule.schDoubleBooked.CurrentValue = tblSchedule.schDoubleBooked.FormValue
  575.             tblSchedule.schStatus.CurrentValue = tblSchedule.schStatus.FormValue
  576.             tblSchedule.schDayOfWeek.CurrentValue = tblSchedule.schDayOfWeek.FormValue
  577.             tblSchedule.schSchID.CurrentValue = tblSchedule.schSchID.FormValue
  578.         End Sub
  579.  
  580.         '
  581.         ' Load row based on key values
  582.         '
  583.         Function LoadRow() As Boolean
  584.             Dim RsRow As OleDbDataReader
  585.             Dim sFilter As String = tblSchedule.KeyFilter
  586.  
  587.             ' Row Selecting event
  588.             tblSchedule.Row_Selecting(sFilter)
  589.  
  590.             ' Load SQL based on filter
  591.             tblSchedule.CurrentFilter = sFilter
  592.             Dim sSql As String = tblSchedule.SQL
  593.  
  594.             ' Write SQL for debug
  595.             If EW_DEBUG_ENABLED Then ew_Write(sSql)
  596.             Try
  597.                 RsRow = Conn.GetTempDataReader(sSql)
  598.                 If Not RsRow.Read() Then
  599.                     Return False
  600.                 Else
  601.                     LoadRowValues(RsRow) ' Load row values
  602.  
  603.                     ' Row Selected event
  604.                     tblSchedule.Row_Selected(RsRow)
  605.                     Return True
  606.                 End If
  607.             Catch
  608.                 If EW_DEBUG_ENABLED Then Throw
  609.                 Return False
  610.             Finally
  611.                 Conn.CloseTempDataReader()
  612.             End Try
  613.         End Function
  614.  
  615.         '
  616.         ' Load row values from recordset
  617.         '
  618.         Sub LoadRowValues(ByRef RsRow As OleDbDataReader)
  619.             tblSchedule.schSchID.DbValue = RsRow("schSchID")
  620.             tblSchedule.schDate.DbValue = RsRow("schDate")
  621.             tblSchedule.schEvtID.DbValue = RsRow("schEvtID")
  622.             tblSchedule.schPartsID.DbValue = RsRow("schPartsID")
  623.             tblSchedule.schCallTime.DbValue = RsRow("schCallTime")
  624.             tblSchedule.schStartTime.DbValue = RsRow("schStartTime")
  625.             tblSchedule.schEndTime.DbValue = RsRow("schEndTime")
  626.             tblSchedule.schOutTime.DbValue = RsRow("schOutTime")
  627.             tblSchedule.schLocID.DbValue = RsRow("schLocID")
  628.             tblSchedule.schEmpID.DbValue = RsRow("schEmpID")
  629.             tblSchedule.schPosID.DbValue = RsRow("schPosID")
  630.             tblSchedule.schTypID.DbValue = RsRow("schTypID")
  631.             tblSchedule.schDepID.DbValue = RsRow("schDepID")
  632.             tblSchedule.schNotes.DbValue = RsRow("schNotes")
  633.             tblSchedule.schRate.DbValue = RsRow("schRate")
  634.             tblSchedule.schActualStart.DbValue = RsRow("schActualStart")
  635.             tblSchedule.schActualEnd.DbValue = RsRow("schActualEnd")
  636.             tblSchedule.schDateCreated.DbValue = RsRow("schDateCreated")
  637.             tblSchedule.schDoubleBooked.DbValue = IIf(ew_ConvertToBool(RsRow("schDoubleBooked")), "1", "0")
  638.             tblSchedule.schStatus.DbValue = RsRow("schStatus")
  639.             tblSchedule.schDayOfWeek.DbValue = RsRow("schDayOfWeek")
  640.         End Sub
  641.  
  642.         '
  643.         ' Render row values based on field settings
  644.         '
  645.         Sub RenderRow()
  646.  
  647.             ' Row Rendering event
  648.             tblSchedule.Row_Rendering()
  649.  
  650.             '
  651.             '  Common render codes for all row types
  652.             '
  653.             ' schDate
  654.  
  655.             tblSchedule.schDate.CellCssStyle = ""
  656.             tblSchedule.schDate.CellCssClass = ""
  657.  
  658.             ' schEvtID
  659.             tblSchedule.schEvtID.CellCssStyle = ""
  660.             tblSchedule.schEvtID.CellCssClass = ""
  661.  
  662.             ' schPartsID
  663.             tblSchedule.schPartsID.CellCssStyle = ""
  664.             tblSchedule.schPartsID.CellCssClass = ""
  665.  
  666.             ' schCallTime
  667.             tblSchedule.schCallTime.CellCssStyle = ""
  668.             tblSchedule.schCallTime.CellCssClass = ""
  669.  
  670.             ' schStartTime
  671.             tblSchedule.schStartTime.CellCssStyle = ""
  672.             tblSchedule.schStartTime.CellCssClass = ""
  673.  
  674.             ' schEndTime
  675.             tblSchedule.schEndTime.CellCssStyle = ""
  676.             tblSchedule.schEndTime.CellCssClass = ""
  677.  
  678.             ' schOutTime
  679.             tblSchedule.schOutTime.CellCssStyle = ""
  680.             tblSchedule.schOutTime.CellCssClass = ""
  681.  
  682.             ' schLocID
  683.             tblSchedule.schLocID.CellCssStyle = ""
  684.             tblSchedule.schLocID.CellCssClass = ""
  685.  
  686.             ' schEmpID
  687.             tblSchedule.schEmpID.CellCssStyle = ""
  688.             tblSchedule.schEmpID.CellCssClass = ""
  689.  
  690.             ' schPosID
  691.             tblSchedule.schPosID.CellCssStyle = ""
  692.             tblSchedule.schPosID.CellCssClass = ""
  693.  
  694.             ' schTypID
  695.             tblSchedule.schTypID.CellCssStyle = ""
  696.             tblSchedule.schTypID.CellCssClass = ""
  697.  
  698.             ' schDepID
  699.             tblSchedule.schDepID.CellCssStyle = ""
  700.             tblSchedule.schDepID.CellCssClass = ""
  701.  
  702.             ' schNotes
  703.             tblSchedule.schNotes.CellCssStyle = ""
  704.             tblSchedule.schNotes.CellCssClass = ""
  705.  
  706.             ' schRate
  707.             tblSchedule.schRate.CellCssStyle = ""
  708.             tblSchedule.schRate.CellCssClass = ""
  709.  
  710.             ' schActualStart
  711.             tblSchedule.schActualStart.CellCssStyle = ""
  712.             tblSchedule.schActualStart.CellCssClass = ""
  713.  
  714.             ' schActualEnd
  715.             tblSchedule.schActualEnd.CellCssStyle = ""
  716.             tblSchedule.schActualEnd.CellCssClass = ""
  717.  
  718.             ' schDateCreated
  719.             tblSchedule.schDateCreated.CellCssStyle = ""
  720.             tblSchedule.schDateCreated.CellCssClass = ""
  721.  
  722.             ' schDoubleBooked
  723.             tblSchedule.schDoubleBooked.CellCssStyle = ""
  724.             tblSchedule.schDoubleBooked.CellCssClass = ""
  725.  
  726.             ' schStatus
  727.             tblSchedule.schStatus.CellCssStyle = ""
  728.             tblSchedule.schStatus.CellCssClass = ""
  729.  
  730.             ' schDayOfWeek
  731.             tblSchedule.schDayOfWeek.CellCssStyle = ""
  732.             tblSchedule.schDayOfWeek.CellCssClass = ""
  733.  
  734.             '
  735.             '  View  Row
  736.             '
  737.  
  738.             If tblSchedule.RowType = EW_ROWTYPE_VIEW Then ' View row
  739.  
  740.                 ' schDate
  741.                 tblSchedule.schDate.ViewValue = tblSchedule.schDate.CurrentValue
  742.                 tblSchedule.schDate.ViewValue = ew_FormatDateTime(tblSchedule.schDate.ViewValue, 6)
  743.                 tblSchedule.schDate.CssStyle = ""
  744.                 tblSchedule.schDate.CssClass = ""
  745.                 tblSchedule.schDate.ViewCustomAttributes = ""
  746.  
  747.                 ' schEvtID
  748.                 If ew_NotEmpty(tblSchedule.schEvtID.CurrentValue) Then
  749.                     sSqlWrk = "SELECT [evtDescription] FROM [tblEvents] WHERE [evtID] = " & ew_AdjustSql(tblSchedule.schEvtID.CurrentValue) & " AND [evtIsActive]=True"
  750.                     sSqlWrk = sSqlWrk & " ORDER BY [evtDescription] "
  751.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  752.                     If RsWrk.Read() Then
  753.                         tblSchedule.schEvtID.ViewValue = RsWrk("evtDescription")
  754.                     Else
  755.                         tblSchedule.schEvtID.ViewValue = tblSchedule.schEvtID.CurrentValue
  756.                     End If
  757.                     Conn.CloseTempDataReader()
  758.                 Else
  759.                     tblSchedule.schEvtID.ViewValue = System.DBNull.Value
  760.                 End If
  761.                 tblSchedule.schEvtID.CssStyle = ""
  762.                 tblSchedule.schEvtID.CssClass = ""
  763.                 tblSchedule.schEvtID.ViewCustomAttributes = ""
  764.  
  765.                 ' schPartsID
  766.                 If ew_NotEmpty(tblSchedule.schPartsID.CurrentValue) Then
  767.                     sSqlWrk = "SELECT [prtDescription] FROM [tblParts] WHERE [prtID] = " & ew_AdjustSql(tblSchedule.schPartsID.CurrentValue) & " AND [prtIsActive]=True"
  768.                     sSqlWrk = sSqlWrk & " ORDER BY [prtDescription] "
  769.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  770.                     If RsWrk.Read() Then
  771.                         tblSchedule.schPartsID.ViewValue = RsWrk("prtDescription")
  772.                     Else
  773.                         tblSchedule.schPartsID.ViewValue = tblSchedule.schPartsID.CurrentValue
  774.                     End If
  775.                     Conn.CloseTempDataReader()
  776.                 Else
  777.                     tblSchedule.schPartsID.ViewValue = System.DBNull.Value
  778.                 End If
  779.                 tblSchedule.schPartsID.CssStyle = ""
  780.                 tblSchedule.schPartsID.CssClass = ""
  781.                 tblSchedule.schPartsID.ViewCustomAttributes = ""
  782.  
  783.                 ' schCallTime
  784.                 tblSchedule.schCallTime.ViewValue = tblSchedule.schCallTime.CurrentValue
  785.                 tblSchedule.schCallTime.ViewValue = ew_FormatDateTime(tblSchedule.schCallTime.ViewValue, 14)
  786.                 tblSchedule.schCallTime.CssStyle = ""
  787.                 tblSchedule.schCallTime.CssClass = ""
  788.                 tblSchedule.schCallTime.ViewCustomAttributes = ""
  789.  
  790.                 ' schStartTime
  791.                 tblSchedule.schStartTime.ViewValue = tblSchedule.schStartTime.CurrentValue
  792.                 tblSchedule.schStartTime.ViewValue = ew_FormatDateTime(tblSchedule.schStartTime.ViewValue, 14)
  793.                 tblSchedule.schStartTime.CssStyle = ""
  794.                 tblSchedule.schStartTime.CssClass = ""
  795.                 tblSchedule.schStartTime.ViewCustomAttributes = ""
  796.  
  797.                 ' schEndTime
  798.                 tblSchedule.schEndTime.ViewValue = tblSchedule.schEndTime.CurrentValue
  799.                 tblSchedule.schEndTime.ViewValue = ew_FormatDateTime(tblSchedule.schEndTime.ViewValue, 14)
  800.                 tblSchedule.schEndTime.CssStyle = ""
  801.                 tblSchedule.schEndTime.CssClass = ""
  802.                 tblSchedule.schEndTime.ViewCustomAttributes = ""
  803.  
  804.                 ' schOutTime
  805.                 tblSchedule.schOutTime.ViewValue = tblSchedule.schOutTime.CurrentValue
  806.                 tblSchedule.schOutTime.ViewValue = ew_FormatDateTime(tblSchedule.schOutTime.ViewValue, 14)
  807.                 tblSchedule.schOutTime.CssStyle = ""
  808.                 tblSchedule.schOutTime.CssClass = ""
  809.                 tblSchedule.schOutTime.ViewCustomAttributes = ""
  810.  
  811.                 ' schLocID
  812.                 If ew_NotEmpty(tblSchedule.schLocID.CurrentValue) Then
  813.                     sSqlWrk = "SELECT [locDescription] FROM [tblLocations] WHERE [locID] = " & ew_AdjustSql(tblSchedule.schLocID.CurrentValue) & " AND [locIsActive]=True"
  814.                     sSqlWrk = sSqlWrk & " ORDER BY [locDescription] "
  815.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  816.                     If RsWrk.Read() Then
  817.                         tblSchedule.schLocID.ViewValue = RsWrk("locDescription")
  818.                     Else
  819.                         tblSchedule.schLocID.ViewValue = tblSchedule.schLocID.CurrentValue
  820.                     End If
  821.                     Conn.CloseTempDataReader()
  822.                 Else
  823.                     tblSchedule.schLocID.ViewValue = System.DBNull.Value
  824.                 End If
  825.                 tblSchedule.schLocID.CssStyle = ""
  826.                 tblSchedule.schLocID.CssClass = ""
  827.                 tblSchedule.schLocID.ViewCustomAttributes = ""
  828.  
  829.                 ' schEmpID
  830.                 If ew_NotEmpty(tblSchedule.schEmpID.CurrentValue) Then
  831.                     sSqlWrk = "SELECT [empName] FROM [tblEmployees] WHERE [empID] = " & ew_AdjustSql(tblSchedule.schEmpID.CurrentValue) & " AND [empIsActive]=True"
  832.                     sSqlWrk = sSqlWrk & " ORDER BY [empFirstName] "
  833.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  834.                     If RsWrk.Read() Then
  835.                         tblSchedule.schEmpID.ViewValue = RsWrk("empName")
  836.                     Else
  837.                         tblSchedule.schEmpID.ViewValue = tblSchedule.schEmpID.CurrentValue
  838.                     End If
  839.                     Conn.CloseTempDataReader()
  840.                 Else
  841.                     tblSchedule.schEmpID.ViewValue = System.DBNull.Value
  842.                 End If
  843.                 tblSchedule.schEmpID.CssStyle = ""
  844.                 tblSchedule.schEmpID.CssClass = ""
  845.                 tblSchedule.schEmpID.ViewCustomAttributes = ""
  846.  
  847.                 ' schPosID
  848.                 If ew_NotEmpty(tblSchedule.schPosID.CurrentValue) Then
  849.                     sSqlWrk = "SELECT [posDescription] FROM [tblPositions] WHERE [posID] = " & ew_AdjustSql(tblSchedule.schPosID.CurrentValue) & " AND [posIsActive]=True"
  850.                     sSqlWrk = sSqlWrk & " ORDER BY [posDescription] "
  851.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  852.                     If RsWrk.Read() Then
  853.                         tblSchedule.schPosID.ViewValue = RsWrk("posDescription")
  854.                     Else
  855.                         tblSchedule.schPosID.ViewValue = tblSchedule.schPosID.CurrentValue
  856.                     End If
  857.                     Conn.CloseTempDataReader()
  858.                 Else
  859.                     tblSchedule.schPosID.ViewValue = System.DBNull.Value
  860.                 End If
  861.                 tblSchedule.schPosID.CssStyle = ""
  862.                 tblSchedule.schPosID.CssClass = ""
  863.                 tblSchedule.schPosID.ViewCustomAttributes = ""
  864.  
  865.                 ' schTypID
  866.                 If ew_NotEmpty(tblSchedule.schTypID.CurrentValue) Then
  867.                     sSqlWrk = "SELECT [typDescription] FROM [tblTypes] WHERE [typID] = " & ew_AdjustSql(tblSchedule.schTypID.CurrentValue) & " AND [typIsActive]=True"
  868.                     sSqlWrk = sSqlWrk & " ORDER BY [typDescription] "
  869.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  870.                     If RsWrk.Read() Then
  871.                         tblSchedule.schTypID.ViewValue = RsWrk("typDescription")
  872.                     Else
  873.                         tblSchedule.schTypID.ViewValue = tblSchedule.schTypID.CurrentValue
  874.                     End If
  875.                     Conn.CloseTempDataReader()
  876.                 Else
  877.                     tblSchedule.schTypID.ViewValue = System.DBNull.Value
  878.                 End If
  879.                 tblSchedule.schTypID.CssStyle = ""
  880.                 tblSchedule.schTypID.CssClass = ""
  881.                 tblSchedule.schTypID.ViewCustomAttributes = ""
  882.  
  883.                 ' schDepID
  884.                 If ew_NotEmpty(tblSchedule.schDepID.CurrentValue) Then
  885.                     sSqlWrk = "SELECT [depAcctCode], [depDescription] FROM [tblDepartments] WHERE [depID] = " & ew_AdjustSql(tblSchedule.schDepID.CurrentValue) & " AND [depIsActive]=True"
  886.                     sSqlWrk = sSqlWrk & " ORDER BY [depDescription] "
  887.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  888.                     If RsWrk.Read() Then
  889.                         tblSchedule.schDepID.ViewValue = RsWrk("depAcctCode")
  890.                         tblSchedule.schDepID.ViewValue = tblSchedule.schDepID.ViewValue & ew_ValueSeparator(0) & RsWrk("depDescription")
  891.                     Else
  892.                         tblSchedule.schDepID.ViewValue = tblSchedule.schDepID.CurrentValue
  893.                     End If
  894.                     Conn.CloseTempDataReader()
  895.                 Else
  896.                     tblSchedule.schDepID.ViewValue = System.DBNull.Value
  897.                 End If
  898.                 tblSchedule.schDepID.CssStyle = ""
  899.                 tblSchedule.schDepID.CssClass = ""
  900.                 tblSchedule.schDepID.ViewCustomAttributes = ""
  901.  
  902.                 ' schNotes
  903.                 tblSchedule.schNotes.ViewValue = tblSchedule.schNotes.CurrentValue
  904.                 tblSchedule.schNotes.CssStyle = ""
  905.                 tblSchedule.schNotes.CssClass = ""
  906.                 tblSchedule.schNotes.ViewCustomAttributes = ""
  907.  
  908.                 ' schRate
  909.                 tblSchedule.schRate.ViewValue = tblSchedule.schRate.CurrentValue
  910.                 tblSchedule.schRate.CssStyle = ""
  911.                 tblSchedule.schRate.CssClass = ""
  912.                 tblSchedule.schRate.ViewCustomAttributes = ""
  913.  
  914.                 ' schActualStart
  915.                 tblSchedule.schActualStart.ViewValue = tblSchedule.schActualStart.CurrentValue
  916.                 tblSchedule.schActualStart.ViewValue = ew_FormatDateTime(tblSchedule.schActualStart.ViewValue, 14)
  917.                 tblSchedule.schActualStart.CssStyle = ""
  918.                 tblSchedule.schActualStart.CssClass = ""
  919.                 tblSchedule.schActualStart.ViewCustomAttributes = ""
  920.  
  921.                 ' schActualEnd
  922.                 tblSchedule.schActualEnd.ViewValue = tblSchedule.schActualEnd.CurrentValue
  923.                 tblSchedule.schActualEnd.ViewValue = ew_FormatDateTime(tblSchedule.schActualEnd.ViewValue, 14)
  924.                 tblSchedule.schActualEnd.CssStyle = ""
  925.                 tblSchedule.schActualEnd.CssClass = ""
  926.                 tblSchedule.schActualEnd.ViewCustomAttributes = ""
  927.  
  928.                 ' schDateCreated
  929.                 tblSchedule.schDateCreated.ViewValue = tblSchedule.schDateCreated.CurrentValue
  930.                 tblSchedule.schDateCreated.ViewValue = ew_FormatDateTime(tblSchedule.schDateCreated.ViewValue, 4)
  931.                 tblSchedule.schDateCreated.CssStyle = ""
  932.                 tblSchedule.schDateCreated.CssClass = ""
  933.                 tblSchedule.schDateCreated.ViewCustomAttributes = ""
  934.  
  935.                 ' schDoubleBooked
  936.                 If Convert.ToString(tblSchedule.schDoubleBooked.CurrentValue) = "1" Then
  937.                     tblSchedule.schDoubleBooked.ViewValue = "Yes"
  938.                 Else
  939.                     tblSchedule.schDoubleBooked.ViewValue = "No"
  940.                 End If
  941.                 tblSchedule.schDoubleBooked.CssStyle = ""
  942.                 tblSchedule.schDoubleBooked.CssClass = ""
  943.                 tblSchedule.schDoubleBooked.ViewCustomAttributes = ""
  944.  
  945.                 ' schStatus
  946.                 If ew_NotEmpty(tblSchedule.schStatus.CurrentValue) Then
  947.                     sSqlWrk = "SELECT [stDescription] FROM [tblScheduleStatus] WHERE [stID] = " & ew_AdjustSql(tblSchedule.schStatus.CurrentValue) & " AND [stIsActive]=True"
  948.                     sSqlWrk = sSqlWrk & " ORDER BY [stDescription] "
  949.                     RsWrk = Conn.GetTempDataReader(sSqlWrk)
  950.                     If RsWrk.Read() Then
  951.                         tblSchedule.schStatus.ViewValue = RsWrk("stDescription")
  952.                     Else
  953.                         tblSchedule.schStatus.ViewValue = tblSchedule.schStatus.CurrentValue
  954.                     End If
  955.                     Conn.CloseTempDataReader()
  956.                 Else
  957.                     tblSchedule.schStatus.ViewValue = System.DBNull.Value
  958.                 End If
  959.                 tblSchedule.schStatus.CssStyle = ""
  960.                 tblSchedule.schStatus.CssClass = ""
  961.                 tblSchedule.schStatus.ViewCustomAttributes = ""
  962.  
  963.                 ' schDayOfWeek
  964.                 If ew_NotEmpty(tblSchedule.schDayOfWeek.CurrentValue) Then
  965.                     Select Case tblSchedule.schDayOfWeek.CurrentValue
  966.                         Case "1"
  967.                             tblSchedule.schDayOfWeek.ViewValue = "Sun"
  968.                         Case "2"
  969.                             tblSchedule.schDayOfWeek.ViewValue = "Mon"
  970.                         Case "3"
  971.                             tblSchedule.schDayOfWeek.ViewValue = "Tue"
  972.                         Case "4"
  973.                             tblSchedule.schDayOfWeek.ViewValue = "Wed"
  974.                         Case "5"
  975.                             tblSchedule.schDayOfWeek.ViewValue = "Thu"
  976.                         Case "6"
  977.                             tblSchedule.schDayOfWeek.ViewValue = "Fri"
  978.                         Case "7"
  979.                             tblSchedule.schDayOfWeek.ViewValue = "Sat"
  980.                     End Select
  981.                 Else
  982.                     tblSchedule.schDayOfWeek.ViewValue = System.DBNull.Value
  983.                 End If
  984.                 tblSchedule.schDayOfWeek.CssStyle = ""
  985.                 tblSchedule.schDayOfWeek.CssClass = ""
  986.                 tblSchedule.schDayOfWeek.ViewCustomAttributes = ""
  987.  
  988.                 ' View refer script
  989.                 ' schDate
  990.  
  991.                 tblSchedule.schDate.HrefValue = ""
  992.  
  993.                 ' schEvtID
  994.                 tblSchedule.schEvtID.HrefValue = ""
  995.  
  996.                 ' schPartsID
  997.                 tblSchedule.schPartsID.HrefValue = ""
  998.  
  999.                 ' schCallTime
  1000.                 tblSchedule.schCallTime.HrefValue = ""
  1001.  
  1002.                 ' schStartTime
  1003.                 tblSchedule.schStartTime.HrefValue = ""
  1004.  
  1005.                 ' schEndTime
  1006.                 tblSchedule.schEndTime.HrefValue = ""
  1007.  
  1008.                 ' schOutTime
  1009.                 tblSchedule.schOutTime.HrefValue = ""
  1010.  
  1011.                 ' schLocID
  1012.                 tblSchedule.schLocID.HrefValue = ""
  1013.  
  1014.                 ' schEmpID
  1015.                 tblSchedule.schEmpID.HrefValue = ""
  1016.  
  1017.                 ' schPosID
  1018.                 tblSchedule.schPosID.HrefValue = ""
  1019.  
  1020.                 ' schTypID
  1021.                 tblSchedule.schTypID.HrefValue = ""
  1022.  
  1023.                 ' schDepID
  1024.                 tblSchedule.schDepID.HrefValue = ""
  1025.  
  1026.                 ' schNotes
  1027.                 tblSchedule.schNotes.HrefValue = ""
  1028.  
  1029.                 ' schRate
  1030.                 tblSchedule.schRate.HrefValue = ""
  1031.  
  1032.                 ' schActualStart
  1033.                 tblSchedule.schActualStart.HrefValue = ""
  1034.  
  1035.                 ' schActualEnd
  1036.                 tblSchedule.schActualEnd.HrefValue = ""
  1037.  
  1038.                 ' schDateCreated
  1039.                 tblSchedule.schDateCreated.HrefValue = ""
  1040.  
  1041.                 ' schDoubleBooked
  1042.                 tblSchedule.schDoubleBooked.HrefValue = ""
  1043.  
  1044.                 ' schStatus
  1045.                 tblSchedule.schStatus.HrefValue = ""
  1046.  
  1047.                 ' schDayOfWeek
  1048.                 tblSchedule.schDayOfWeek.HrefValue = ""
  1049.  
  1050.                 '
  1051.                 '  Add Row
  1052.                 '
  1053.  
  1054.             ElseIf tblSchedule.RowType = EW_ROWTYPE_ADD Then ' Add row
  1055.  
  1056.                 ' schDate
  1057.                 tblSchedule.schDate.EditCustomAttributes = ""
  1058.                 tblSchedule.schDate.EditValue = ew_FormatDateTime(tblSchedule.schDate.CurrentValue, 6)
  1059.  
  1060.                 ' schEvtID
  1061.                 tblSchedule.schEvtID.EditCustomAttributes = ""
  1062.                 sSqlWrk = "SELECT [evtID], [evtDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblEvents]"
  1063.                 sWhereWrk = "[evtIsActive]=True"
  1064.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1065.                 sSqlWrk = sSqlWrk & " ORDER BY [evtDescription] "
  1066.                 arwrk = Conn.GetRows(sSqlWrk)
  1067.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1068.                 tblSchedule.schEvtID.EditValue = arwrk
  1069.  
  1070.                 ' schPartsID
  1071.                 tblSchedule.schPartsID.EditCustomAttributes = ""
  1072.                 sSqlWrk = "SELECT [prtID], [prtDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblParts]"
  1073.                 sWhereWrk = "[prtIsActive]=True"
  1074.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1075.                 sSqlWrk = sSqlWrk & " ORDER BY [prtDescription] "
  1076.                 arwrk = Conn.GetRows(sSqlWrk)
  1077.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1078.                 tblSchedule.schPartsID.EditValue = arwrk
  1079.  
  1080.                 ' schCallTime
  1081.                 tblSchedule.schCallTime.EditCustomAttributes = ""
  1082.                 tblSchedule.schCallTime.EditValue = ew_FormatDateTime(tblSchedule.schCallTime.CurrentValue, 14)
  1083.  
  1084.                 ' schStartTime
  1085.                 tblSchedule.schStartTime.EditCustomAttributes = ""
  1086.                 tblSchedule.schStartTime.EditValue = ew_FormatDateTime(tblSchedule.schStartTime.CurrentValue, 14)
  1087.  
  1088.                 ' schEndTime
  1089.                 tblSchedule.schEndTime.EditCustomAttributes = ""
  1090.                 tblSchedule.schEndTime.EditValue = ew_FormatDateTime(tblSchedule.schEndTime.CurrentValue, 14)
  1091.  
  1092.                 ' schOutTime
  1093.                 tblSchedule.schOutTime.EditCustomAttributes = ""
  1094.                 tblSchedule.schOutTime.EditValue = ew_FormatDateTime(tblSchedule.schOutTime.CurrentValue, 14)
  1095.  
  1096.                 ' schLocID
  1097.                 tblSchedule.schLocID.EditCustomAttributes = ""
  1098.                 sSqlWrk = "SELECT [locID], [locDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblLocations]"
  1099.                 sWhereWrk = "[locIsActive]=True"
  1100.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1101.                 sSqlWrk = sSqlWrk & " ORDER BY [locDescription] "
  1102.                 arwrk = Conn.GetRows(sSqlWrk)
  1103.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1104.                 tblSchedule.schLocID.EditValue = arwrk
  1105.  
  1106.                 ' schEmpID
  1107.                 tblSchedule.schEmpID.EditCustomAttributes = ""
  1108.                 If Not Security.IsAdmin And Security.IsLoggedIn() Then ' Non system admin
  1109.                     tblSchedule.schEmpID.CurrentValue = Security.CurrentUserID
  1110.                     If ew_NotEmpty(tblSchedule.schEmpID.CurrentValue) Then
  1111.                         sSqlWrk = "SELECT [empName] FROM [tblEmployees] WHERE [empID] = " & ew_AdjustSql(tblSchedule.schEmpID.CurrentValue) & " AND [empIsActive]=True"
  1112.                         sSqlWrk = sSqlWrk & " ORDER BY [empFirstName] "
  1113.                         RsWrk = Conn.GetTempDataReader(sSqlWrk)
  1114.                         If RsWrk.Read() Then
  1115.                             tblSchedule.schEmpID.EditValue = RsWrk("empName")
  1116.                         Else
  1117.                             tblSchedule.schEmpID.EditValue = tblSchedule.schEmpID.CurrentValue
  1118.                         End If
  1119.                         Conn.CloseTempDataReader()
  1120.                     Else
  1121.                         tblSchedule.schEmpID.EditValue = System.DBNull.Value
  1122.                     End If
  1123.                     tblSchedule.schEmpID.CssStyle = ""
  1124.                     tblSchedule.schEmpID.CssClass = ""
  1125.                     tblSchedule.schEmpID.ViewCustomAttributes = ""
  1126.                 Else
  1127.                     sSqlWrk = "SELECT [empID], [empName], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblEmployees]"
  1128.                     sWhereWrk = "[empIsActive]=True"
  1129.                     sWhereWrk = tblEmployees.AddUserIDFilter(sWhereWrk)
  1130.                     If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1131.                     sSqlWrk = sSqlWrk & " ORDER BY [empFirstName] "
  1132.                     arwrk = Conn.GetRows(sSqlWrk)
  1133.                     arwrk.Insert(0, New Object() {"", "Please Select"})
  1134.                     tblSchedule.schEmpID.EditValue = arwrk
  1135.                 End If
  1136.  
  1137.                 ' schPosID
  1138.                 tblSchedule.schPosID.EditCustomAttributes = ""
  1139.                 sSqlWrk = "SELECT [posID], [posDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblPositions]"
  1140.                 sWhereWrk = "[posIsActive]=True"
  1141.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1142.                 sSqlWrk = sSqlWrk & " ORDER BY [posDescription] "
  1143.                 arwrk = Conn.GetRows(sSqlWrk)
  1144.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1145.                 tblSchedule.schPosID.EditValue = arwrk
  1146.  
  1147.                 ' schTypID
  1148.                 tblSchedule.schTypID.EditCustomAttributes = ""
  1149.                 sSqlWrk = "SELECT [typID], [typDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblTypes]"
  1150.                 sWhereWrk = "[typIsActive]=True"
  1151.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1152.                 sSqlWrk = sSqlWrk & " ORDER BY [typDescription] "
  1153.                 arwrk = Conn.GetRows(sSqlWrk)
  1154.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1155.                 tblSchedule.schTypID.EditValue = arwrk
  1156.  
  1157.                 ' schDepID
  1158.                 tblSchedule.schDepID.EditCustomAttributes = ""
  1159.                 sSqlWrk = "SELECT [depID], [depAcctCode], [depDescription], '' AS SelectFilterFld FROM [tblDepartments]"
  1160.                 sWhereWrk = "[depIsActive]=True"
  1161.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1162.                 sSqlWrk = sSqlWrk & " ORDER BY [depDescription] "
  1163.                 arwrk = Conn.GetRows(sSqlWrk)
  1164.                 arwrk.Insert(0, New Object() {"", "Please Select", ""})
  1165.                 tblSchedule.schDepID.EditValue = arwrk
  1166.  
  1167.                 ' schNotes
  1168.                 tblSchedule.schNotes.EditCustomAttributes = ""
  1169.                 tblSchedule.schNotes.EditValue = ew_HtmlEncode(tblSchedule.schNotes.CurrentValue)
  1170.  
  1171.                 ' schRate
  1172.                 tblSchedule.schRate.EditCustomAttributes = ""
  1173.                 tblSchedule.schRate.EditValue = ew_HtmlEncode(tblSchedule.schRate.CurrentValue)
  1174.  
  1175.                 ' schActualStart
  1176.                 tblSchedule.schActualStart.EditCustomAttributes = ""
  1177.                 tblSchedule.schActualStart.EditValue = ew_FormatDateTime(tblSchedule.schActualStart.CurrentValue, 14)
  1178.  
  1179.                 ' schActualEnd
  1180.                 tblSchedule.schActualEnd.EditCustomAttributes = ""
  1181.                 tblSchedule.schActualEnd.EditValue = ew_FormatDateTime(tblSchedule.schActualEnd.CurrentValue, 14)
  1182.  
  1183.                 ' schDateCreated
  1184.                 ' schDoubleBooked
  1185.  
  1186.                 tblSchedule.schDoubleBooked.EditCustomAttributes = ""
  1187.  
  1188.                 ' schStatus
  1189.                 tblSchedule.schStatus.EditCustomAttributes = ""
  1190.                 sSqlWrk = "SELECT [stID], [stDescription], '' AS Disp2Fld, '' AS SelectFilterFld FROM [tblScheduleStatus]"
  1191.                 sWhereWrk = "[stIsActive]=True"
  1192.                 If sWhereWrk <> "" Then sSqlWrk = sSqlWrk & " WHERE " & sWhereWrk
  1193.                 sSqlWrk = sSqlWrk & " ORDER BY [stDescription] "
  1194.                 arwrk = Conn.GetRows(sSqlWrk)
  1195.                 arwrk.Insert(0, New Object() {"", "Please Select"})
  1196.                 tblSchedule.schStatus.EditValue = arwrk
  1197.  
  1198.                 ' schDayOfWeek
  1199.                 tblSchedule.schDayOfWeek.EditCustomAttributes = ""
  1200.                 arwrk = New ArrayList
  1201.                 arwrk.Add(New String() {"1", "Sun"})
  1202.                 arwrk.Add(New String() {"2", "Mon"})
  1203.                 arwrk.Add(New String() {"3", "Tue"})
  1204.                 arwrk.Add(New String() {"4", "Wed"})
  1205.                 arwrk.Add(New String() {"5", "Thu"})
  1206.                 arwrk.Add(New String() {"6", "Fri"})
  1207.                 arwrk.Add(New String() {"7", "Sat"})
  1208.                 arwrk.Insert(0, New String() {"", "Please Select"})
  1209.                 tblSchedule.schDayOfWeek.EditValue = arwrk
  1210.  
  1211.             End If
  1212.  
  1213.             ' Row Rendered event
  1214.             tblSchedule.Row_Rendered()
  1215.         End Sub
  1216.  
  1217.         '
  1218.         ' Validate form
  1219.         '
  1220.         Function ValidateForm() As Boolean
  1221.  
  1222.             ' Initialize
  1223.             ParentPage.gsFormError = ""
  1224.  
  1225.             ' Check if validation required
  1226.             '        If Not EW_SERVER_VALIDATE Then Return (ParentPage.gsFormError = "")
  1227.             'If ew_Empty(tblSchedule.schDate.FormValue) Then
  1228.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1229.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Date"
  1230.             'End If
  1231.             'If Not ew_CheckUSDate(tblSchedule.schDate.FormValue) Then
  1232.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1233.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect date, format = mm/dd/yyyy - Date"
  1234.             'End If
  1235.             'If ew_Empty(tblSchedule.schEvtID.FormValue) Then
  1236.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1237.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Event"
  1238.             'End If
  1239.             'If ew_Empty(tblSchedule.schPartsID.FormValue) Then
  1240.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1241.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Part"
  1242.             'End If
  1243.  
  1244.             Dim tlc As New AspNetMaker7_tfpssnet
  1245.             tlc.tlcCheckTime(tblSchedule.schCallTime.FormValue)
  1246.             tlc.tlcCheckTime(tblSchedule.schStartTime.FormValue)
  1247.             tlc.tlcCheckTime(tblSchedule.schEndTime.FormValue)
  1248.             tlc.tlcCheckTime(tblSchedule.schOutTime.FormValue)
  1249.             tlc.tlcCheckTime(tblSchedule.schActualStart.FormValue)
  1250.             tlc.tlcCheckTime(tblSchedule.schActualEnd.FormValue)
  1251.  
  1252.             'If Not ew_CheckTime(tblSchedule.schCallTime.FormValue) Then
  1253.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1254.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm) - Call Time"
  1255.             'End If
  1256.             'If Not ew_CheckTime(tblSchedule.schStartTime.FormValue) Then
  1257.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1258.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm) - Start Time"
  1259.             'End If
  1260.             'If Not ew_CheckTime(tblSchedule.schEndTime.FormValue) Then
  1261.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1262.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm) - End Time"
  1263.             'End If
  1264.             'If Not ew_CheckTime(tblSchedule.schOutTime.FormValue) Then
  1265.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1266.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm) - Out Time"
  1267.             'End If
  1268.             'If ew_Empty(tblSchedule.schLocID.FormValue) Then
  1269.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1270.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Location"
  1271.             'End If
  1272.             'If ew_Empty(tblSchedule.schEmpID.FormValue) Then
  1273.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1274.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Employee"
  1275.             'End If
  1276.             'If ew_Empty(tblSchedule.schPosID.FormValue) Then
  1277.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1278.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Position"
  1279.             'End If
  1280.             'If ew_Empty(tblSchedule.schTypID.FormValue) Then
  1281.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1282.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Type"
  1283.             'End If
  1284.             'If ew_Empty(tblSchedule.schDepID.FormValue) Then
  1285.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1286.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Department"
  1287.             'End If
  1288.             'If Not ew_CheckNumber(tblSchedule.schRate.FormValue) Then
  1289.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1290.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect floating point number - Rate"
  1291.             'End If
  1292.             'If Not ew_CheckTime(tblSchedule.schActualStart.FormValue) Then
  1293.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1294.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm:ss) - Actual Start"
  1295.             'End If
  1296.             'If Not ew_CheckTime(tblSchedule.schActualEnd.FormValue) Then
  1297.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1298.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Incorrect time (hh:mm:ss) - Actual End"
  1299.             'End If
  1300.             'If ew_Empty(tblSchedule.schStatus.FormValue) Then
  1301.             '    If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1302.             '    ParentPage.gsFormError = ParentPage.gsFormError & "Please enter required field - Status"
  1303.             'End If
  1304.  
  1305.             ' Return validate result
  1306.             Dim Valid As Boolean = (ParentPage.gsFormError = "")
  1307.  
  1308.             ' Form_CustomValidate event
  1309.             Dim sFormCustomError As String = ""
  1310.             Valid = Valid And Form_CustomValidate(sFormCustomError)
  1311.             If sFormCustomError <> "" Then
  1312.                 If ParentPage.gsFormError <> "" Then ParentPage.gsFormError = ParentPage.gsFormError & "<br />"
  1313.                 ParentPage.gsFormError = ParentPage.gsFormError & sFormCustomError
  1314.             End If
  1315.             Return Valid
  1316.         End Function
  1317.  
  1318.         '
  1319.         ' Add record
  1320.         '
  1321.         Function AddRow() As Boolean
  1322.             Dim Rs As New OrderedDictionary
  1323.             Dim sSql As String, sFilter As String
  1324.             Dim bInsertRow As Boolean
  1325.             Dim RsChk As OleDbDataReader
  1326.             Dim sIdxErrMsg As String
  1327.             Dim LastInsertId As Object
  1328.  
  1329.             ' Check if valid user ID
  1330.             Dim bValidUser As Boolean = False, sUserIdMsg As String
  1331.             If ew_NotEmpty(Security.CurrentUserID) AndAlso Not Security.IsAdmin() Then ' Non system admin
  1332.                 bValidUser = Security.IsValidUserID(tblSchedule.schEmpID.CurrentValue)
  1333.                 If Not bValidUser Then
  1334.                     sUserIdMsg = "The current user (%c) is not authorized to assign the user ID (%u).".Replace("%c", Security.CurrentUserID)
  1335.                     sUserIdMsg = sUserIdMsg.Replace("%u", tblSchedule.schEmpID.CurrentValue)
  1336.                     Message = sUserIdMsg
  1337.                     Return False
  1338.                 End If
  1339.             End If
  1340.  
  1341.             ' schDate
  1342.             tblSchedule.schDate.SetDbValue(ew_UnFormatDateTime(tblSchedule.schDate.CurrentValue, 6), System.DBNull.Value)
  1343.             Rs("schDate") = tblSchedule.schDate.DbValue
  1344.  
  1345.             ' schEvtID
  1346.             tblSchedule.schEvtID.SetDbValue(tblSchedule.schEvtID.CurrentValue, System.DBNull.Value)
  1347.             Rs("schEvtID") = tblSchedule.schEvtID.DbValue
  1348.  
  1349.             ' schPartsID
  1350.             tblSchedule.schPartsID.SetDbValue(tblSchedule.schPartsID.CurrentValue, System.DBNull.Value)
  1351.             Rs("schPartsID") = tblSchedule.schPartsID.DbValue
  1352.  
  1353.             ' schCallTime
  1354.             tblSchedule.schCallTime.SetDbValue(ew_UnFormatDateTime(tblSchedule.schCallTime.CurrentValue, 4), System.DBNull.Value)
  1355.             Rs("schCallTime") = tblSchedule.schCallTime.DbValue
  1356.  
  1357.             ' schStartTime
  1358.             tblSchedule.schStartTime.SetDbValue(ew_UnFormatDateTime(tblSchedule.schStartTime.CurrentValue, 4), System.DBNull.Value)
  1359.             Rs("schStartTime") = tblSchedule.schStartTime.DbValue
  1360.  
  1361.             ' schEndTime
  1362.             tblSchedule.schEndTime.SetDbValue(ew_UnFormatDateTime(tblSchedule.schEndTime.CurrentValue, 4), System.DBNull.Value)
  1363.             Rs("schEndTime") = tblSchedule.schEndTime.DbValue
  1364.  
  1365.             ' schOutTime
  1366.             tblSchedule.schOutTime.SetDbValue(ew_UnFormatDateTime(tblSchedule.schOutTime.CurrentValue, 4), System.DBNull.Value)
  1367.             Rs("schOutTime") = tblSchedule.schOutTime.DbValue
  1368.  
  1369.             ' schLocID
  1370.             tblSchedule.schLocID.SetDbValue(tblSchedule.schLocID.CurrentValue, System.DBNull.Value)
  1371.             Rs("schLocID") = tblSchedule.schLocID.DbValue
  1372.  
  1373.             ' schEmpID
  1374.             tblSchedule.schEmpID.SetDbValue(tblSchedule.schEmpID.CurrentValue, System.DBNull.Value)
  1375.             Rs("schEmpID") = tblSchedule.schEmpID.DbValue
  1376.  
  1377.             ' schPosID
  1378.             tblSchedule.schPosID.SetDbValue(tblSchedule.schPosID.CurrentValue, System.DBNull.Value)
  1379.             Rs("schPosID") = tblSchedule.schPosID.DbValue
  1380.  
  1381.             ' schTypID
  1382.             tblSchedule.schTypID.SetDbValue(tblSchedule.schTypID.CurrentValue, System.DBNull.Value)
  1383.             Rs("schTypID") = tblSchedule.schTypID.DbValue
  1384.  
  1385.             ' schDepID
  1386.             tblSchedule.schDepID.SetDbValue(tblSchedule.schDepID.CurrentValue, System.DBNull.Value)
  1387.             Rs("schDepID") = tblSchedule.schDepID.DbValue
  1388.  
  1389.             ' schNotes
  1390.             tblSchedule.schNotes.SetDbValue(tblSchedule.schNotes.CurrentValue, System.DBNull.Value)
  1391.             Rs("schNotes") = tblSchedule.schNotes.DbValue
  1392.  
  1393.             ' schRate
  1394.             tblSchedule.schRate.SetDbValue(tblSchedule.schRate.CurrentValue, System.DBNull.Value)
  1395.             '            Rs("schRate") = tblSchedule.schRate.DbValue
  1396.             Dim tlcsub As New AspNetMaker7_tfpssnet
  1397.             Rs("schRate") = tlcsub.tlcGetEmployeeRate(tblSchedule.schEmpID.CurrentValue)
  1398.  
  1399.             ' schActualStart
  1400.             tblSchedule.schActualStart.SetDbValue(ew_UnFormatDateTime(tblSchedule.schActualStart.CurrentValue, 4), System.DBNull.Value)
  1401.             Rs("schActualStart") = tblSchedule.schActualStart.DbValue
  1402.  
  1403.             ' schActualEnd
  1404.             tblSchedule.schActualEnd.SetDbValue(ew_UnFormatDateTime(tblSchedule.schActualEnd.CurrentValue, 4), System.DBNull.Value)
  1405.             Rs("schActualEnd") = tblSchedule.schActualEnd.DbValue
  1406.  
  1407.             ' schDateCreated
  1408.             tblSchedule.schDateCreated.DbValue = ew_CurrentDateTime()
  1409.             Rs("schDateCreated") = tblSchedule.schDateCreated.DbValue
  1410.  
  1411.             ' schDoubleBooked
  1412.             tblSchedule.schDoubleBooked.SetDbValue((tblSchedule.schDoubleBooked.CurrentValue <> "" And Not IsDBNull(tblSchedule.schDoubleBooked.CurrentValue)), System.DBNull.Value)
  1413.             Rs("schDoubleBooked") = tblSchedule.schDoubleBooked.DbValue
  1414.  
  1415.             ' schStatus
  1416.             tblSchedule.schStatus.SetDbValue(tblSchedule.schStatus.CurrentValue, System.DBNull.Value)
  1417.             Rs("schStatus") = tblSchedule.schStatus.DbValue
  1418.  
  1419.             ' schDayOfWeek
  1420.             tblSchedule.schDayOfWeek.SetDbValue(tblSchedule.schDayOfWeek.CurrentValue, System.DBNull.Value)
  1421.             'Rs("schDayOfWeek") = tblSchedule.schDayOfWeek.DbValue
  1422.             Rs("schDayOfWeek") = Weekday(tblSchedule.schDate.DbValue)
  1423.  
  1424.             ' Row Inserting event
  1425.             bInsertRow = tblSchedule.Row_Inserting(Rs)
  1426.             If bInsertRow Then
  1427.                 Try
  1428.                     tblSchedule.Insert(Rs)
  1429.                     AddRow = True
  1430.                 Catch e As Exception
  1431.                     If EW_DEBUG_ENABLED Then Throw
  1432.                     Message = e.Message
  1433.                     AddRow = False
  1434.                 End Try
  1435.             Else
  1436.                 If tblSchedule.CancelMessage <> "" Then
  1437.                     Message = tblSchedule.CancelMessage
  1438.                     tblSchedule.CancelMessage = ""
  1439.                 Else
  1440.                     Message = "Insert cancelled"
  1441.                 End If
  1442.                 AddRow = False
  1443.             End If
  1444.             If AddRow Then
  1445.                 LastInsertId = Conn.GetLastInsertId()
  1446.                 tblSchedule.schSchID.DbValue = LastInsertId
  1447.                 Rs("schSchID") = tblSchedule.schSchID.DbValue
  1448.  
  1449.                 ' Row Inserted event
  1450.                 tblSchedule.Row_Inserted(Rs)
  1451.                 If tblSchedule.SendEmail Then SendEmailOnAdd(Rs)
  1452.             End If
  1453.         End Function
  1454.  
  1455.         Sub tlcSaveItems()
  1456.             ew_Session("x_schDate") = tblSchedule.schDate.DbValue
  1457.             ew_Session("x_schEvtID") = tblSchedule.schEvtID.DbValue
  1458.             ew_Session("x_schPartsID") = tblSchedule.schPartsID.DbValue
  1459.             ew_Session("x_schCallTime") = tblSchedule.schCallTime.DbValue
  1460.             ew_Session("x_schStartTime") = tblSchedule.schStartTime.DbValue
  1461.             ew_Session("x_schEndTime") = tblSchedule.schEndTime.DbValue
  1462.             ew_Session("x_schOutTime") = tblSchedule.schOutTime.DbValue
  1463.             ew_Session("x_schActualStart") = tblSchedule.schActualStart.DbValue
  1464.             ew_Session("x_schActualEnd") = tblSchedule.schActualEnd.DbValue
  1465.             ew_Session("x_schLocID") = tblSchedule.schLocID.DbValue
  1466.             ew_Session("x_schEmpID") = tblSchedule.schEmpID.DbValue
  1467.             ew_Session("x_schPosID") = tblSchedule.schPosID.DbValue
  1468.             ew_Session("x_schTypID") = tblSchedule.schTypID.DbValue
  1469.             ew_Session("x_schDepID") = tblSchedule.schDepID.DbValue
  1470.             ew_Session("x_schNotes") = tblSchedule.schNotes.DbValue
  1471.             ew_Session("x_schStatus") = tblSchedule.schStatus.DbValue
  1472.             ew_Session("x_schDayOfWeek") = tblSchedule.schDayOfWeek.DbValue
  1473.         End Sub
  1474.  
  1475.         ' Send email after add success
  1476.         Sub SendEmailOnAdd(RsSrc As OrderedDictionary)
  1477.             Dim sFn As String, sSubject As String, sTable As String, sKey As String, sAction As String
  1478.             sFn = HttpContext.Current.Server.MapPath("txt/notify.txt")
  1479.             sTable = "tblSchedule"
  1480.             sSubject = sTable & " " & "record(s) inserted"
  1481.             sAction = "Inserted"
  1482.  
  1483.             ' Get key value
  1484.             sKey = ""
  1485.             If sKey <> "" Then sKey = sKey & EW_COMPOSITE_KEY_SEPARATOR
  1486.             sKey = sKey & RsSrc("schSchID")
  1487.             Dim Email As New cEmail
  1488.             Email.Load(sFn)
  1489.             Email.ReplaceSender(EW_SENDER_EMAIL) ' Replace Sender
  1490.             Email.ReplaceRecipient(EW_RECIPIENT_EMAIL) ' Replace Recipient
  1491.             Email.ReplaceSubject(sSubject) ' Replace Subject
  1492.             Email.ReplaceContent("<!--table-->", sTable)
  1493.             Email.ReplaceContent("<!--key-->", sKey)
  1494.             Email.ReplaceContent("<!--action-->", sAction)
  1495.             Dim EventArgs As New Hashtable
  1496.             EventArgs.Add("Rs", RsSrc)
  1497.             If tblSchedule.Email_Sending(Email, EventArgs) Then
  1498.                 Email.Send()
  1499.             End If
  1500.         End Sub
  1501.  
  1502.         ' Page Load event
  1503.         Public Sub Page_Load()
  1504.  
  1505.             'HttpContext.Current.Response.Write("Page Load")
  1506.         End Sub
  1507.  
  1508.         ' Page Unload event
  1509.         Public Sub Page_Unload()
  1510.  
  1511.             'HttpContext.Current.Response.Write("Page Unload")
  1512.         End Sub
  1513.  
  1514.         ' Form Custom Validate event
  1515.         Public Function Form_CustomValidate(ByRef CustomError As String) As Boolean
  1516.  
  1517.             'Return error message in CustomError
  1518.             Return True
  1519.         End Function
  1520.     End Class
  1521.  
  1522.     '
  1523.     ' ASP.NET Page_Load event
  1524.     '
  1525.  
  1526.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  1527.         Response.Buffer = EW_RESPONSE_BUFFER
  1528.         Response.Cache.SetCacheability(HttpCacheability.NoCache)
  1529.  
  1530.         ' Page init
  1531.         tblSchedule_add = New ctblSchedule_add(Me)        
  1532.         tblSchedule_add.Page_Init()
  1533.  
  1534.         ' Page main processing
  1535.         tblSchedule_add.Page_Main()
  1536.     End Sub
  1537.  
  1538.     '
  1539.     ' ASP.NET Page_Unload event
  1540.     '
  1541.  
  1542.     Protected Sub Page_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Unload
  1543.  
  1544.         ' Dispose page object
  1545.         If tblSchedule_add IsNot Nothing Then tblSchedule_add.Dispose()
  1546.     End Sub
  1547. End Class
  1548.