kevin2458

UTH_MOVIL_Impl

Sep 4th, 2017
117
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. USE [UTH_MOVIL]
  3.  
  4.  
  5. -- ===================================================================================================================================================
  6. -- Functions
  7. -- ===================================================================================================================================================
  8.  
  9.  
  10. -- Constants -----------------------------------------------------------------------------------------------------------------------------------------
  11.  
  12.  
  13. GO
  14.  
  15. CREATE FUNCTION [dbo].[ufn_Const_Boolean_False]
  16. ()
  17. RETURNS bit
  18. AS
  19. BEGIN
  20.     RETURN 0
  21. END
  22.  
  23. GO
  24.  
  25.  
  26. ------------------------------------------------------------------------------------------------------------------------------------------------------
  27.  
  28.  
  29. GO
  30.  
  31. CREATE FUNCTION [dbo].[ufn_Const_Boolean_True]
  32. ()
  33. RETURNS bit
  34. AS
  35. BEGIN
  36.     RETURN 1
  37. END
  38.  
  39. GO
  40.  
  41.  
  42. ------------------------------------------------------------------------------------------------------------------------------------------------------
  43.  
  44.  
  45. GO
  46.  
  47. CREATE FUNCTION [dbo].[ufn_Const_Boolean_False_String]
  48. ()
  49. RETURNS varchar(5)
  50. AS
  51. BEGIN
  52.     RETURN 'false'
  53. END
  54.  
  55. GO
  56.  
  57.  
  58. ------------------------------------------------------------------------------------------------------------------------------------------------------
  59.  
  60.  
  61. GO
  62.  
  63. CREATE FUNCTION [dbo].[ufn_Const_Boolean_True_String]
  64. ()
  65. RETURNS varchar(4)
  66. AS
  67. BEGIN
  68.     RETURN 'true'
  69. END
  70.  
  71. GO
  72.  
  73.  
  74. ------------------------------------------------------------------------------------------------------------------------------------------------------
  75.  
  76.  
  77. GO
  78.  
  79. CREATE FUNCTION [dbo].[ufn_Const_SessionTypeID_Professor]
  80. ()
  81. RETURNS int
  82. AS
  83. BEGIN
  84.     RETURN 1
  85. END
  86.  
  87. GO
  88.  
  89.  
  90. ------------------------------------------------------------------------------------------------------------------------------------------------------
  91.  
  92.  
  93. GO
  94.  
  95. CREATE FUNCTION [dbo].[ufn_Const_SessionTypeID_Student]
  96. ()
  97. RETURNS int
  98. AS
  99. BEGIN
  100.     RETURN 2
  101. END
  102.  
  103. GO
  104.  
  105.  
  106. ------------------------------------------------------------------------------------------------------------------------------------------------------
  107.  
  108.  
  109. GO
  110.  
  111. CREATE FUNCTION [dbo].[ufn_Const_CampusID_Virtual]
  112. ()
  113. RETURNS varchar(3)
  114. AS
  115. BEGIN
  116.     RETURN '010'
  117. END
  118.  
  119. GO
  120.  
  121.  
  122. ------------------------------------------------------------------------------------------------------------------------------------------------------
  123.  
  124.  
  125. GO
  126.  
  127. CREATE FUNCTION [dbo].[ufn_Const_PeriodTypeID]
  128. ()
  129. RETURNS varchar(50)
  130. AS
  131. BEGIN
  132.     RETURN 'Cuatrimestral'
  133. END
  134.  
  135. GO
  136.  
  137.  
  138. ------------------------------------------------------------------------------------------------------------------------------------------------------
  139.  
  140.  
  141. GO
  142.  
  143. CREATE FUNCTION [dbo].[ufn_Const_ClientType_Android]
  144. ()
  145. RETURNS varchar(16)
  146. AS
  147. BEGIN
  148.     RETURN 'Android'
  149. END
  150.  
  151. GO
  152.  
  153.  
  154. ------------------------------------------------------------------------------------------------------------------------------------------------------
  155.  
  156.  
  157. GO
  158.  
  159. CREATE FUNCTION [dbo].[ufn_Const_Message_Student_Enrollment_Class_Add]
  160. ()
  161. RETURNS varchar(512)
  162. AS
  163. BEGIN
  164.     RETURN 'Asignatura inscrita correctamente. AVISO: '
  165.                + 'Las asignaturas inscritas serán confirmadas automáticamente a la media noche, '
  166.                + 'por lo que si desea realizar cambios en su horario, debe realizarlos antes de dicha hora.'
  167. END
  168.  
  169. GO
  170.  
  171.  
  172. ------------------------------------------------------------------------------------------------------------------------------------------------------
  173.  
  174.  
  175. GO
  176.  
  177. CREATE FUNCTION [dbo].[ufn_Const_Message_Student_Enrollment_Class_Remove]
  178. ()
  179. RETURNS varchar(512)
  180. AS
  181. BEGIN
  182.     RETURN 'Inscripción de asignatura cancelada.'
  183. END
  184.  
  185. GO
  186.  
  187.  
  188. -- Utils ---------------------------------------------------------------------------------------------------------------------------------------------
  189.  
  190.  
  191. GO
  192.  
  193. CREATE FUNCTION [dbo].[ufn_Util_String_IsValid]
  194. (
  195.     @Val varchar(MAX)
  196. )
  197. RETURNS bit
  198. AS
  199. BEGIN
  200.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  201.  
  202.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  203.  
  204.     RETURN IIF (@Val IS NULL OR DATALENGTH(@Val) = 0, @False, @True)
  205. END
  206.  
  207. GO
  208.  
  209.  
  210. ------------------------------------------------------------------------------------------------------------------------------------------------------
  211.  
  212.  
  213. GO
  214.  
  215. CREATE FUNCTION [dbo].[ufn_Util_String_Capitalize]
  216. (
  217.     @Text varchar(MAX)
  218. )
  219. RETURNS varchar(MAX)
  220. AS
  221. BEGIN
  222.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  223.  
  224.     IF [dbo].[ufn_Util_String_IsValid] (@Text) = @False
  225.         RETURN NULL
  226.  
  227.     RETURN UPPER(LEFT(@Text, 1)) + LOWER(RIGHT(@Text, LEN(@Text) - 1))
  228. END
  229.  
  230. GO
  231.  
  232.  
  233. ------------------------------------------------------------------------------------------------------------------------------------------------------
  234.  
  235.  
  236. GO
  237.  
  238. CREATE FUNCTION [dbo].[ufn_Util_String_FormatClassroom]
  239. (
  240.     @Classroom varchar(10)
  241. )
  242. RETURNS varchar(10)
  243. AS
  244. BEGIN
  245.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  246.  
  247.  
  248.     IF [dbo].[ufn_Util_String_IsValid] (@Classroom) = @False
  249.         RETURN NULL
  250.  
  251.  
  252.     IF @Classroom <> 'GRL' AND @Classroom NOT LIKE '% 4X4 %'
  253.         SET @Classroom = UPPER(SUBSTRING(@Classroom, 3, LEN(@Classroom)))
  254.  
  255.  
  256.     RETURN @Classroom
  257. END
  258.  
  259. GO
  260.  
  261.  
  262. ------------------------------------------------------------------------------------------------------------------------------------------------------
  263.  
  264.  
  265. GO
  266.  
  267. CREATE FUNCTION [dbo].[ufn_Util_String_FormatDays]
  268. (
  269.     @Days varchar(50)
  270. )
  271. RETURNS varchar(50)
  272. AS
  273. BEGIN
  274.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  275.  
  276.  
  277.     IF [dbo].[ufn_Util_String_IsValid] (@Days) = @False
  278.         RETURN NULL
  279.  
  280.  
  281.     SET @Days = REPLACE(@Days, 'D', 'DO')
  282.  
  283.     SET @Days = REPLACE(@Days, 'L', 'LU')
  284.  
  285.     SET @Days = REPLACE(@Days, 'K', 'MA')
  286.  
  287.     SET @Days = REPLACE(@Days, 'M', 'MI')
  288.  
  289.     SET @Days = REPLACE(@Days, 'J', 'JU')
  290.  
  291.     SET @Days = REPLACE(@Days, 'V', 'VI')
  292.  
  293.     SET @Days = REPLACE(@Days, 'S', 'SA')
  294.  
  295.     SET @Days = REPLACE(@Days, 'MIA', 'MA')
  296.  
  297.  
  298.     SET @Days = [dbo].[ufn_Util_String_SplitRemoveDuplicates] (@Days, '-')
  299.  
  300.  
  301.     RETURN @Days
  302. END
  303.  
  304. GO
  305.  
  306.  
  307. ------------------------------------------------------------------------------------------------------------------------------------------------------
  308.  
  309.  
  310. GO
  311.  
  312. CREATE FUNCTION [dbo].[ufn_Util_String_FormatName]
  313. (
  314.     @Name     varchar(100) ,
  315.     @LastName varchar(50)
  316. )
  317. RETURNS varchar(100)
  318. AS
  319. BEGIN
  320.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  321.  
  322.  
  323.     IF [dbo].[ufn_Util_String_IsValid]        (@Name)     = @False
  324.            OR [dbo].[ufn_Util_String_IsValid] (@LastName) = @False
  325.         RETURN NULL
  326.  
  327.  
  328.     DECLARE @FirstName varchar(50) = LEFT(@Name, CHARINDEX(SPACE(1), @Name) - 1)
  329.  
  330.  
  331.     SET @FirstName = [dbo].[ufn_Util_String_Capitalize] (@FirstName)
  332.  
  333.     SET @LastName  = [dbo].[ufn_Util_String_Capitalize] (@LastName)
  334.  
  335.  
  336.     RETURN CONCAT(@FirstName, SPACE(1), @LastName)
  337. END
  338.  
  339. GO
  340.  
  341.  
  342. ------------------------------------------------------------------------------------------------------------------------------------------------------
  343.  
  344.  
  345. GO
  346.  
  347. CREATE FUNCTION [dbo].[ufn_Util_String_PasswordHash]
  348. (
  349.     @Password varchar(100)
  350. )
  351. RETURNS varchar(40)
  352. AS
  353. BEGIN
  354.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  355.  
  356.     IF [dbo].[ufn_Util_String_IsValid] (@Password) = @False
  357.         RETURN NULL
  358.  
  359.     RETURN SUBSTRING([master].[dbo].[fn_varbintohexstr] (HASHBYTES('SHA1', @Password)), 3, 64)
  360. END
  361.  
  362. GO
  363.  
  364.  
  365. ------------------------------------------------------------------------------------------------------------------------------------------------------
  366.  
  367.  
  368. GO
  369.  
  370. CREATE FUNCTION [dbo].[ufn_Util_String_SplitRemoveDuplicates]
  371. (
  372.     @Text      varchar(MAX) ,
  373.     @Separator varchar(1)
  374. )
  375. RETURNS varchar(MAX)
  376. AS
  377. BEGIN
  378.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  379.  
  380.  
  381.     IF [dbo].[ufn_Util_String_IsValid]        (@Text)      = @False
  382.            OR [dbo].[ufn_Util_String_IsValid] (@Separator) = @False
  383.         RETURN NULL
  384.  
  385.  
  386.     DECLARE
  387.         @T
  388.     TABLE
  389.         (
  390.             [Value] varchar(MAX)
  391.         )
  392.  
  393.     DECLARE @XML XML = N'<root><r>' + REPLACE(@Text, @Separator, '</r><r>') + '</r></root>'
  394.  
  395.  
  396.     INSERT
  397.         @T
  398.     SELECT
  399.         [r].value('.', 'varchar(MAX)')
  400.     FROM
  401.         @XML.nodes('//root/r') AS [Records] ([r])
  402.  
  403.     ;WITH [CTE]
  404.      AS
  405.      (
  406.          SELECT
  407.              ROW_NUMBER() OVER (PARTITION BY [Value] ORDER BY [Value] DESC) AS [RN]
  408.          FROM
  409.              @T
  410.      )
  411.  
  412.     DELETE FROM [CTE] WHERE [RN] > 1
  413.  
  414.  
  415.     SET @Text = (
  416.                     SELECT
  417.                         [Value] + @Separator
  418.                     FROM
  419.                         @T
  420.                     WHERE
  421.                         [Value] <> ''
  422.                     FOR
  423.                         XML PATH ('')
  424.                 )
  425.  
  426.     SET @Text = LEFT(@Text, DATALENGTH(@Text) - 1)
  427.  
  428.  
  429.     RETURN @Text
  430. END
  431.  
  432. GO
  433.  
  434.  
  435. ------------------------------------------------------------------------------------------------------------------------------------------------------
  436.  
  437.  
  438. GO
  439.  
  440. CREATE FUNCTION [dbo].[ufn_Util_Date_Format]
  441. (
  442.     @Date datetime
  443. )
  444. RETURNS varchar(10)
  445. AS
  446. BEGIN
  447.     RETURN FORMAT(@Date, 'dd/MM/yyyy')
  448. END
  449.  
  450. GO
  451.  
  452.  
  453. ------------------------------------------------------------------------------------------------------------------------------------------------------
  454.  
  455.  
  456. GO
  457.  
  458. CREATE FUNCTION [dbo].[ufn_Util_Time_Round]
  459. (
  460.     @Time   time ,
  461.     @Minute int
  462. )
  463. RETURNS time
  464. AS
  465. BEGIN
  466.     DECLARE @MinuteInterval int      = 1440 / @Minute
  467.  
  468.     DECLARE @TimeInterval   float    = ROUND(CONVERT(float, CONVERT(datetime, @Time)) * @MinuteInterval, 0)
  469.  
  470.     DECLARE @Date           datetime = CONVERT(datetime, @TimeInterval / @MinuteInterval)
  471.  
  472.  
  473.     SET @Time = CONVERT(time, CONVERT(smalldatetime, CONVERT(time, @Date)))
  474.  
  475.  
  476.     RETURN @Time
  477. END
  478.  
  479. GO
  480.  
  481.  
  482. ------------------------------------------------------------------------------------------------------------------------------------------------------
  483.  
  484.  
  485. GO
  486.  
  487. CREATE FUNCTION [dbo].[ufn_Util_Time_Format]
  488. (
  489.     @Time time
  490. )
  491. RETURNS varchar(8)
  492. AS
  493. BEGIN
  494.     SET @Time = [dbo].[ufn_Util_Time_Round] (@Time, 10)
  495.  
  496.  
  497.     DECLARE @FormatTime varchar(5) = FORMAT(CONVERT(datetime, @Time), N'hh:mm')
  498.  
  499.     DECLARE @PeriodTime varchar(2) = SUBSTRING(CONVERT(varchar, CONVERT(datetime, @Time)), 18, LEN(CONVERT(varchar, @Time)))
  500.  
  501.  
  502.     IF LEFT(@FormatTime, 1) = '0'
  503.         SET @FormatTime = RIGHT(@FormatTime, DATALENGTH(@FormatTime) - 1)
  504.  
  505.  
  506.     RETURN CONCAT(@FormatTime, SPACE(1), @PeriodTime)
  507. END
  508.  
  509. GO
  510.  
  511.  
  512. -- Helpers -------------------------------------------------------------------------------------------------------------------------------------------
  513.  
  514.  
  515. GO
  516.  
  517. CREATE FUNCTION [dbo].[ufn_Helper_CurrentYear]
  518. ()
  519. RETURNS varchar(4)
  520. AS
  521. BEGIN
  522.     DECLARE @PeriodoTipoID varchar(50) = [dbo].[ufn_Const_PeriodTypeID] ()
  523.  
  524.     RETURN (
  525.                SELECT
  526.                    [CalificadorAnio]
  527.                FROM
  528.                    [UTH].[dbo].[PeriodoTipoAsignacion]
  529.                WHERE
  530.                    [PeriodoTipoID] = @PeriodoTipoID
  531.            )
  532. END
  533.  
  534. GO
  535.  
  536.  
  537. ------------------------------------------------------------------------------------------------------------------------------------------------------
  538.  
  539.  
  540. GO
  541.  
  542. CREATE FUNCTION [dbo].[ufn_Helper_CurrentPeriod]
  543. ()
  544. RETURNS varchar(1)
  545. AS
  546. BEGIN
  547.     DECLARE @PeriodoTipoID varchar(50) = [dbo].[ufn_Const_PeriodTypeID] ()
  548.  
  549.     RETURN (
  550.                SELECT
  551.                    [CalificadorPeriodo]
  552.                FROM
  553.                    [UTH].[dbo].[PeriodoTipoAsignacion]
  554.                WHERE
  555.                    [PeriodoTipoID] = @PeriodoTipoID
  556.            )
  557. END
  558.  
  559. GO
  560.  
  561.  
  562. ------------------------------------------------------------------------------------------------------------------------------------------------------
  563.  
  564.  
  565. GO
  566.  
  567. CREATE FUNCTION [dbo].[ufn_Helper_EnrollmentYear]
  568. ()
  569. RETURNS varchar(4)
  570. AS
  571. BEGIN
  572.     DECLARE @PeriodoTipoID varchar(50) = [dbo].[ufn_Const_PeriodTypeID] ()
  573.  
  574.     RETURN (
  575.                SELECT
  576.                    [MatriculaAnio]
  577.                FROM
  578.                    [UTH].[dbo].[PeriodoTipoAsignacion]
  579.                WHERE
  580.                    [PeriodoTipoID] = @PeriodoTipoID
  581.            )
  582. END
  583.  
  584. GO
  585.  
  586.  
  587. ------------------------------------------------------------------------------------------------------------------------------------------------------
  588.  
  589.  
  590. GO
  591.  
  592. CREATE FUNCTION [dbo].[ufn_Helper_EnrollmentPeriod]
  593. ()
  594. RETURNS varchar(1)
  595. AS
  596. BEGIN
  597.     DECLARE @PeriodoTipoID varchar(50) = [dbo].[ufn_Const_PeriodTypeID] ()
  598.  
  599.     RETURN (
  600.                SELECT
  601.                    [MatriculaPeriodo]
  602.                FROM
  603.                    [UTH].[dbo].[PeriodoTipoAsignacion]
  604.                WHERE
  605.                    [PeriodoTipoID] = @PeriodoTipoID
  606.            )
  607. END
  608.  
  609. GO
  610.  
  611.  
  612. ------------------------------------------------------------------------------------------------------------------------------------------------------
  613.  
  614.  
  615. GO
  616.  
  617. CREATE FUNCTION [dbo].[ufn_Helper_Account_IsProfessor]
  618. (
  619.     @Account varchar(50)
  620. )
  621. RETURNS bit
  622. AS
  623. BEGIN
  624.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  625.  
  626.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  627.  
  628.  
  629.     DECLARE @CatedraticoID varchar(50) = @Account
  630.  
  631.  
  632.     RETURN (
  633.                SELECT
  634.                    IIF (COUNT(0) = 0, @False, @True)
  635.                FROM
  636.                    [UTH].[dbo].[Catedratico]
  637.                WHERE
  638.                    [CatedraticoID] = @CatedraticoID
  639.            )
  640. END
  641.  
  642. GO
  643.  
  644.  
  645. ------------------------------------------------------------------------------------------------------------------------------------------------------
  646.  
  647.  
  648. GO
  649.  
  650. CREATE FUNCTION [dbo].[ufn_Helper_Account_IsStudent]
  651. (
  652.     @Account varchar(50)
  653. )
  654. RETURNS bit
  655. AS
  656. BEGIN
  657.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  658.  
  659.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  660.  
  661.  
  662.     DECLARE @Cuenta varchar(50) = @Account
  663.  
  664.  
  665.     RETURN (
  666.                SELECT
  667.                    IIF (COUNT(0) = 0, @False, @True)
  668.                FROM
  669.                    [UTH].[dbo].[Estudiante]
  670.                WHERE
  671.                    [Cuenta] = @Cuenta
  672.            )
  673. END
  674.  
  675. GO
  676.  
  677.  
  678. ------------------------------------------------------------------------------------------------------------------------------------------------------
  679.  
  680.  
  681. GO
  682.  
  683. CREATE FUNCTION [dbo].[ufn_Helper_Session_IsValidAuthentication]
  684. (
  685.     @Account       varchar(50)  ,
  686.     @Password      varchar(100) ,
  687.     @SessionTypeID int
  688. )
  689. RETURNS bit
  690. AS
  691. BEGIN
  692.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  693.  
  694.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  695.  
  696.  
  697.     DECLARE @SessionTypeID_Professor int = [dbo].[ufn_Const_SessionTypeID_Professor] ()
  698.  
  699.     DECLARE @SessionTypeID_Student   int = [dbo].[ufn_Const_SessionTypeID_Student]   ()
  700.  
  701.  
  702.     IF @SessionTypeID = @SessionTypeID_Professor
  703.         BEGIN
  704.             DECLARE @CatedraticoID varchar(50) = @Account
  705.  
  706.             RETURN (
  707.                        SELECT
  708.                            IIF (COUNT(0) = 0, @False, @True)
  709.                        FROM
  710.                            [UTH].[dbo].[Catedratico]
  711.                        WHERE
  712.                            [CatedraticoID]    = @CatedraticoID
  713.                                AND [Password] = [dbo].[ufn_Util_String_PasswordHash] (@Password)
  714.                    )
  715.         END
  716.  
  717.     IF @SessionTypeID = @SessionTypeID_Student
  718.         BEGIN
  719.             DECLARE @Cuenta varchar(50) = @Account
  720.  
  721.             RETURN (
  722.                        SELECT
  723.                            IIF (COUNT(0) = 0, @False, @True)
  724.                        FROM
  725.                            [UTH].[dbo].[Estudiante]
  726.                        WHERE
  727.                            [Cuenta]           = @Cuenta
  728.                                AND [Password] = [dbo].[ufn_Util_String_PasswordHash] (@Password)
  729.                    )
  730.         END
  731.  
  732.  
  733.     RETURN @False
  734. END
  735.  
  736. GO
  737.  
  738.  
  739. ------------------------------------------------------------------------------------------------------------------------------------------------------
  740.  
  741.  
  742. GO
  743.  
  744. CREATE FUNCTION [dbo].[ufn_Helper_Student_CareerID]
  745. (
  746.     @Account varchar(50)
  747. )
  748. RETURNS int
  749. AS
  750. BEGIN
  751.     DECLARE @Cuenta varchar(50) = @Account
  752.  
  753.     RETURN (
  754.                SELECT
  755.                    [CarreraID]
  756.                FROM
  757.                    [UTH].[dbo].[Estudiante]
  758.                WHERE
  759.                    [Cuenta] = @Cuenta
  760.            )
  761. END
  762.  
  763. GO
  764.  
  765.  
  766. ------------------------------------------------------------------------------------------------------------------------------------------------------
  767.  
  768.  
  769. GO
  770.  
  771. CREATE FUNCTION [dbo].[ufn_Helper_Student_CareerName]
  772. (
  773.     @Account varchar(50)
  774. )
  775. RETURNS varchar(200)
  776. AS
  777. BEGIN
  778.     DECLARE @CarreraID varchar(200) = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  779.  
  780.     RETURN (
  781.                SELECT
  782.                    [Nombre]
  783.                FROM
  784.                    [UTH].[dbo].[Carrera]
  785.                WHERE
  786.                    [CarreraID] = @CarreraID
  787.            )
  788. END
  789.  
  790. GO
  791.  
  792.  
  793. ------------------------------------------------------------------------------------------------------------------------------------------------------
  794.  
  795.  
  796. GO
  797.  
  798. CREATE FUNCTION [dbo].[ufn_Helper_Student_HasPaymentFees]
  799. (
  800.     @Account varchar(50)
  801. )
  802. RETURNS bit
  803. AS
  804. BEGIN
  805.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  806.  
  807.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  808.  
  809.  
  810.     DECLARE @Cuenta varchar(50) = @Account
  811.  
  812.     DECLARE @Estado varchar(1)  = 'A'
  813.  
  814.  
  815.     RETURN (
  816.                SELECT
  817.                    IIF (COUNT(0) = 0, @False, @True)
  818.                FROM
  819.                    [UTH].[dbo].[DeudaCab] AS [dc]
  820.                INNER JOIN
  821.                    [UTH].[dbo].[DeudaDet] AS [dd]
  822.                        ON [dc].[DeudaID] = [dd].[DeudaID]
  823.                WHERE
  824.                    [dc].[Cuenta]              = @Cuenta
  825.                        AND [dc].[Estado]      = @Estado
  826.                        AND [dd].[MontoPagado] < [dd].[MontoTotal]
  827.            )
  828. END
  829.  
  830. GO
  831.  
  832.  
  833. ------------------------------------------------------------------------------------------------------------------------------------------------------
  834.  
  835.  
  836. GO
  837.  
  838. CREATE FUNCTION [dbo].[ufn_Helper_Student_HasOutstandingPayments]
  839. (
  840.     @Account varchar(50)
  841. )
  842. RETURNS bit
  843. AS
  844. BEGIN
  845.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  846.  
  847.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  848.  
  849.  
  850.     DECLARE @Cuenta varchar(50) = @Account
  851.  
  852.     DECLARE @Estado varchar(1)  = 'A'
  853.  
  854.  
  855.     RETURN (
  856.                SELECT
  857.                    IIF (COUNT(0) = 0, @False, @True)
  858.                FROM
  859.                    [UTH].[dbo].[DeudaCab] AS [dc]
  860.                INNER JOIN
  861.                    [UTH].[dbo].[DeudaDet] AS [dd]
  862.                        ON [dc].[DeudaID] = [dd].[DeudaID]
  863.                WHERE
  864.                    [dc].[Cuenta]                   = @Cuenta
  865.                        AND [dc].[Estado]           = @Estado
  866.                        AND [dd].[MontoPagado]      < [dd].[MontoTotal]
  867.                        AND [dd].[FechaVencimiento] < GETDATE()
  868.            )
  869. END
  870.  
  871. GO
  872.  
  873.  
  874. ------------------------------------------------------------------------------------------------------------------------------------------------------
  875.  
  876.  
  877. GO
  878.  
  879. CREATE FUNCTION [dbo].[ufn_Helper_Student_HasEnrollment]
  880. (
  881.     @Account varchar(50)
  882. )
  883. RETURNS bit
  884. AS
  885. BEGIN
  886.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  887.  
  888.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  889.  
  890.  
  891.     DECLARE @Cuenta     varchar(50) = @Account
  892.  
  893.     DECLARE @Anio       varchar(4)  = [dbo].[ufn_Helper_CurrentYear]   ()
  894.  
  895.     DECLARE @Periodo    varchar(1)  = [dbo].[ufn_Helper_CurrentPeriod] ()
  896.  
  897.     DECLARE @Confirmada varchar(1)  = @True
  898.  
  899.  
  900.     RETURN (
  901.                SELECT
  902.                    IIF (COUNT(0) = 0, @False, @True)
  903.                FROM
  904.                    [UTH].[dbo].[Historial]
  905.                WHERE
  906.                    [Cuenta]             = @Cuenta
  907.                        AND [Anio]       = @Anio
  908.                        AND [Periodo]    = @Periodo
  909.                        AND [Confirmada] = @Confirmada
  910.            )
  911. END
  912.  
  913. GO
  914.  
  915.  
  916. -- Response ------------------------------------------------------------------------------------------------------------------------------------------
  917.  
  918.  
  919. GO
  920.  
  921. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result]
  922. (
  923.     @Code int
  924. )
  925. RETURNS
  926. @Result TABLE
  927. (
  928.     [result] int
  929. )
  930. AS
  931. BEGIN
  932.     INSERT @Result VALUES (@Code)
  933.  
  934.     RETURN
  935. END
  936.  
  937. GO
  938.  
  939.  
  940. ------------------------------------------------------------------------------------------------------------------------------------------------------
  941.  
  942.  
  943. GO
  944.  
  945. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionSuccesfully]
  946. ()
  947. RETURNS
  948. @Result TABLE
  949. (
  950.     [result] int
  951. )
  952. AS
  953. BEGIN
  954.     DECLARE @Code int = 0
  955.  
  956.  
  957.     INSERT @Result
  958.  
  959.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  960.  
  961.  
  962.     RETURN
  963. END
  964.  
  965. GO
  966.  
  967.  
  968. ------------------------------------------------------------------------------------------------------------------------------------------------------
  969.  
  970.  
  971. GO
  972.  
  973. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed]
  974. ()
  975. RETURNS
  976. @Result TABLE
  977. (
  978.     [result] int
  979. )
  980. AS
  981. BEGIN
  982.     DECLARE @Code int = 1
  983.  
  984.  
  985.     INSERT @Result
  986.  
  987.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  988.  
  989.  
  990.     RETURN
  991. END
  992.  
  993. GO
  994.  
  995.  
  996. ------------------------------------------------------------------------------------------------------------------------------------------------------
  997.  
  998.  
  999. GO
  1000.  
  1001. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed]
  1002. ()
  1003. RETURNS
  1004. @Result TABLE
  1005. (
  1006.     [result] int
  1007. )
  1008. AS
  1009. BEGIN
  1010.     DECLARE @Code int = 2
  1011.  
  1012.  
  1013.     INSERT @Result
  1014.  
  1015.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  1016.  
  1017.  
  1018.     RETURN
  1019. END
  1020.  
  1021. GO
  1022.  
  1023.  
  1024. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1025.  
  1026.  
  1027. GO
  1028.  
  1029. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments]
  1030. ()
  1031. RETURNS
  1032. @Result TABLE
  1033. (
  1034.     [result] int
  1035. )
  1036. AS
  1037. BEGIN
  1038.     DECLARE @Code int = 3
  1039.  
  1040.  
  1041.     INSERT @Result
  1042.  
  1043.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  1044.  
  1045.  
  1046.     RETURN
  1047. END
  1048.  
  1049. GO
  1050.  
  1051.  
  1052. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1053.  
  1054.  
  1055. GO
  1056.  
  1057. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoEnrollment]
  1058. ()
  1059. RETURNS
  1060. @Result TABLE
  1061. (
  1062.     [result] int
  1063. )
  1064. AS
  1065. BEGIN
  1066.     DECLARE @Code int = 4
  1067.  
  1068.  
  1069.     INSERT @Result
  1070.  
  1071.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  1072.  
  1073.  
  1074.     RETURN
  1075. END
  1076.  
  1077. GO
  1078.  
  1079.  
  1080. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1081.  
  1082.  
  1083. GO
  1084.  
  1085. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoAcademicOffer]
  1086. ()
  1087. RETURNS
  1088. @Result TABLE
  1089. (
  1090.     [result] int
  1091. )
  1092. AS
  1093. BEGIN
  1094.     DECLARE @Code int = 5
  1095.  
  1096.  
  1097.     INSERT @Result
  1098.  
  1099.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (@Code)
  1100.  
  1101.  
  1102.     RETURN
  1103. END
  1104.  
  1105. GO
  1106.  
  1107.  
  1108. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1109.  
  1110.  
  1111. GO
  1112.  
  1113. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Authentication]
  1114. (
  1115.     @Result        int ,
  1116.     @SessionTypeID int
  1117. )
  1118. RETURNS
  1119. @Authentication TABLE
  1120. (
  1121.     [result]        int ,
  1122.     [customer_type] int
  1123. )
  1124. AS
  1125. BEGIN
  1126.     INSERT @Authentication VALUES (@Result, @SessionTypeID)
  1127.  
  1128.     RETURN
  1129. END
  1130.  
  1131. GO
  1132.  
  1133.  
  1134. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1135.  
  1136.  
  1137. GO
  1138.  
  1139. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_CurrentPeriod]
  1140. ()
  1141. RETURNS
  1142. @CurrentPeriod TABLE
  1143. (
  1144.     [period]       int         ,
  1145.     [year]         int         ,
  1146.     [current_date] varchar(10)
  1147. )
  1148. AS
  1149. BEGIN
  1150.     DECLARE @Period      int         = [dbo].[ufn_Helper_CurrentPeriod] ()
  1151.  
  1152.     DECLARE @Year        int         = [dbo].[ufn_Helper_CurrentYear]   ()
  1153.  
  1154.     DECLARE @CurrentDate varchar(10) = [dbo].[ufn_Util_Date_Format]     (GETDATE())
  1155.  
  1156.  
  1157.     INSERT @CurrentPeriod VALUES (@Period, @Year, @CurrentDate)
  1158.  
  1159.     RETURN
  1160. END
  1161.  
  1162. GO
  1163.  
  1164.  
  1165. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1166.  
  1167.  
  1168. GO
  1169.  
  1170. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Schedule]
  1171. (
  1172.     @Account       varchar(50) ,
  1173.     @SessionTypeID int
  1174. )
  1175. RETURNS
  1176. @Schedule TABLE
  1177. (
  1178.     [campus_id]  varchar(3)   ,
  1179.     [campus]     varchar(100) ,
  1180.     [code]       varchar(10)  ,
  1181.     [name]       varchar(200) ,
  1182.     [group]      int          ,
  1183.     [days]       varchar(50)  ,
  1184.     [classroom]  varchar(10)  ,
  1185.     [start_time] varchar(8)   ,
  1186.     [end_time]   varchar(8)
  1187. )
  1188. AS
  1189. BEGIN
  1190.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1191.  
  1192.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1193.  
  1194.  
  1195.     DECLARE @Cuenta     varchar(50) = @Account
  1196.  
  1197.     DECLARE @Anio       varchar(4)  = [dbo].[ufn_Helper_CurrentYear]      ()
  1198.  
  1199.     DECLARE @Periodo    varchar(1)  = [dbo].[ufn_Helper_CurrentPeriod]    ()
  1200.  
  1201.     DECLARE @CarreraID  int         = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  1202.  
  1203.     DECLARE @Confirmada varchar(1)  = @True
  1204.  
  1205.  
  1206.     INSERT
  1207.         @Schedule
  1208.     SELECT
  1209.         [h].[CampusID]     ,
  1210.         [c].[Descripcion]  ,
  1211.         [h].[AsignaturaID] ,
  1212.         [a].[Nombre]       ,
  1213.         [h].[Seccion]      ,
  1214.         [h].[Dias]         ,
  1215.         [h].[AulaID]       ,
  1216.         [h].[HoraInicio]   ,
  1217.         [h].[HoraFin]
  1218.     FROM
  1219.         [UTH].[dbo].[Historial]                 AS [h]
  1220.             INNER JOIN [UTH].[dbo].[Campus]     AS [c]
  1221.                 ON [c].[CampusID]          = [h].[CampusID]
  1222.             INNER JOIN [UTH].[dbo].[Asignatura] AS [a]
  1223.                 ON [a].[CarreraID]         = [h].[CarreraID]
  1224.                     AND [a].[AsignaturaID] = [h].[AsignaturaID]
  1225.     WHERE
  1226.         [h].[Cuenta]             = @Cuenta
  1227.             AND [h].[Anio]       = @Anio
  1228.             AND [h].[Periodo]    = @Periodo
  1229.             AND [h].[CarreraID]  = @CarreraID
  1230.             AND [h].[Confirmada] = @Confirmada
  1231.  
  1232.  
  1233.     UPDATE
  1234.         @Schedule
  1235.     SET
  1236.         [campus]     = UPPER([campus])                                        ,
  1237.         [days]       = [dbo].[ufn_Util_String_FormatDays]      ([days])       ,
  1238.         [classroom]  = [dbo].[ufn_Util_String_FormatClassroom] ([classroom])  ,
  1239.         [start_time] = [dbo].[ufn_Util_Time_Format]            ([start_time]) ,
  1240.         [end_time]   = [dbo].[ufn_Util_Time_Format]            ([end_time])
  1241.  
  1242.     UPDATE
  1243.         @Schedule
  1244.     SET
  1245.         [classroom]  = [campus] ,
  1246.         [start_time] = [campus] ,
  1247.         [end_time]   = [campus]
  1248.     WHERE
  1249.         [campus_id] = [dbo].[ufn_Const_CampusID_Virtual] ()
  1250.  
  1251.  
  1252.     RETURN
  1253. END
  1254.  
  1255. GO
  1256.  
  1257.  
  1258. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1259.  
  1260.  
  1261. GO
  1262.  
  1263. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees]
  1264. (
  1265.     @Account varchar(50)
  1266. )
  1267. RETURNS
  1268. @Fees TABLE
  1269. (
  1270.     [id_fee]            varchar(13) ,
  1271.     [number]            int         ,
  1272.     [date_deadline]     varchar(10) ,
  1273.     [date_paid]         varchar(10) ,
  1274.     [due]               int         ,
  1275.     [status]            varchar(1)  ,
  1276.     [selected]          varchar(5)  ,
  1277.     [check_available]   varchar(5)  ,
  1278.     [uncheck_available] varchar(5)  ,
  1279.     [total_pay]         int
  1280. )
  1281. AS
  1282. BEGIN
  1283.     DECLARE @Cuenta  varchar(50) = @Account
  1284.  
  1285.     DECLARE @Anio    varchar(4)  = [dbo].[ufn_Helper_EnrollmentYear]   ()
  1286.  
  1287.     DECLARE @Periodo varchar(1)  = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  1288.  
  1289.     DECLARE @Estado  varchar(1)  = 'N'
  1290.  
  1291.     DECLARE @Tipo    varchar(1)  = 'Cuota'
  1292.  
  1293.  
  1294.     DECLARE @FalseString varchar(5) = [dbo].[ufn_Const_Boolean_False_String] ()
  1295.  
  1296.  
  1297.     INSERT
  1298.         @Fees
  1299.     SELECT
  1300.         [dc].[CXCACC]                          ,
  1301.         [dd].[Cuota]                           ,
  1302.         [dd].[FechaVencimiento]                ,
  1303.         [fc].[Fecha]                           ,
  1304.         [dd].[MontoTotal] - [dd].[MontoPagado] ,
  1305.         [dc].[Estado]                          ,
  1306.         @FalseString                           ,
  1307.         @FalseString                           ,
  1308.         @FalseString                           ,
  1309.         [dd].[MontoPagado]
  1310.     FROM
  1311.         [UTH].[dbo].[DeudaCab]   AS [dc]
  1312.     INNER JOIN
  1313.         [UTH].[dbo].[DeudaDet]   AS [dd]
  1314.             ON [dc].[DeudaID]      = [dd].[DeudaID]
  1315.     INNER JOIN
  1316.         [UTH].[dbo].[FacturaCab] AS [fc]
  1317.             ON [dc].[Cuenta]       = [fc].[EstudianteCuenta]
  1318.     INNER JOIN
  1319.         [UTH].[dbo].[FacturaDet] AS [fd]
  1320.             ON [fc].[FacturaID]    = [fd].[FacturaID]
  1321.                 AND [dc].[Anio]    = [fd].[Anio]
  1322.                 AND [dc].[Periodo] = [fd].[Periodo]
  1323.     WHERE
  1324.         [dc].[Cuenta]          = @Cuenta
  1325.             AND [dc].[Anio]    = @Anio
  1326.             AND [dc].[Periodo] = @Periodo
  1327.             AND [fc].[Estado]  = @Estado
  1328.             AND [fd].[Tipo]    = @Tipo
  1329.  
  1330.  
  1331.     UPDATE
  1332.         @Fees
  1333.     SET
  1334.         [date_deadline] = [dbo].[ufn_Util_Date_Format] ([date_deadline]) ,
  1335.         [date_paid]     = [dbo].[ufn_Util_Date_Format] ([date_paid])
  1336.  
  1337.     UPDATE
  1338.         @Fees
  1339.     SET
  1340.         [status] = 'C'
  1341.     WHERE
  1342.         [status] = 'P'
  1343.  
  1344.  
  1345.     RETURN
  1346. END
  1347.  
  1348. GO
  1349.  
  1350.  
  1351. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1352.  
  1353.  
  1354. GO
  1355.  
  1356. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees_Financing]
  1357. (
  1358.     @Account varchar(50)
  1359. )
  1360. RETURNS
  1361. @Fees TABLE
  1362. (
  1363.     [number]     int            ,
  1364.     [due]        float          ,
  1365.     [status]     varchar(1)     ,
  1366.     [total_pay]  decimal(12, 4) ,
  1367.     [enrollment] decimal(12, 4)
  1368. )
  1369. AS
  1370. BEGIN
  1371.     DECLARE @Cuenta    varchar(50) = @Account
  1372.  
  1373.     DECLARE @Anio      varchar(4)  = [dbo].[ufn_Helper_EnrollmentYear]   ()
  1374.  
  1375.     DECLARE @Periodo   varchar(1)  = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  1376.  
  1377.     DECLARE @CarreraID int         = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  1378.  
  1379.  
  1380.     DECLARE
  1381.         @FinanciamientoBloqueAsignatura
  1382.     TABLE
  1383.         (
  1384.             [Tipo]  varchar(20)    ,
  1385.             [Total] decimal(12, 4)
  1386.         )
  1387.  
  1388.  
  1389.     INSERT
  1390.         @FinanciamientoBloqueAsignatura
  1391.     SELECT
  1392.         [Tipo], [Total]
  1393.     FROM
  1394.         [UTH].[dbo].[FNT_consultaFinanciamientoBloqueAsignatura]
  1395.             (@Cuenta, @Anio, @Periodo, @CarreraID)
  1396.  
  1397.  
  1398.     DECLARE @Number     int            = 1
  1399.  
  1400.     DECLARE @Due        decimal(12, 4) = (
  1401.                                              SELECT
  1402.                                                  [Total]
  1403.                                              FROM
  1404.                                                  @FinanciamientoBloqueAsignatura
  1405.                                              WHERE
  1406.                                                  [Tipo] = 'ValorCuota'
  1407.                                          )
  1408.  
  1409.     DECLARE @TotalPay   decimal(12, 4) = (
  1410.                                              SELECT
  1411.                                                  [Total]
  1412.                                              FROM
  1413.                                                  @FinanciamientoBloqueAsignatura
  1414.                                              WHERE
  1415.                                                  [Tipo] = 'Total'
  1416.                                          )
  1417.  
  1418.     DECLARE @Status     varchar(1)     = 'N'
  1419.  
  1420.     DECLARE @Enrollment decimal(12, 4) = 0
  1421.  
  1422.  
  1423.     DECLARE @Numbers int = (
  1424.                                SELECT
  1425.                                    [Total]
  1426.                                FROM
  1427.                                    @FinanciamientoBloqueAsignatura
  1428.                                WHERE
  1429.                                    [Tipo] = 'NumeroCuotas'
  1430.                            )
  1431.  
  1432.  
  1433.     WHILE @Number <= @Numbers
  1434.         BEGIN
  1435.             INSERT
  1436.                 @Fees
  1437.             SELECT
  1438.                 @Number, @Due, @Status, @TotalPay, @Enrollment
  1439.  
  1440.  
  1441.             SET @Number = @Number + 1
  1442.         END
  1443.  
  1444.  
  1445.     RETURN
  1446. END
  1447.  
  1448. GO
  1449.  
  1450.  
  1451. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1452.  
  1453.  
  1454. GO
  1455.  
  1456. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Financing_Detail]
  1457. (
  1458.     @Account varchar(50)
  1459. )
  1460. RETURNS
  1461. @Detail TABLE
  1462. (
  1463.     [description] varchar(512) ,
  1464.     [value]       float
  1465. )
  1466. AS
  1467. BEGIN
  1468.     DECLARE @Cuenta    varchar(50) = @Account
  1469.  
  1470.     DECLARE @Anio      varchar(4)  = [dbo].[ufn_Helper_EnrollmentYear]   ()
  1471.  
  1472.     DECLARE @Periodo   varchar(1)  = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  1473.  
  1474.     DECLARE @CarreraID int         = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  1475.    
  1476.    
  1477.     INSERT
  1478.         @Detail
  1479.     SELECT
  1480.         CASE
  1481.             WHEN [Tipo] IN ('Asignatura', 'Anexo') THEN
  1482.                 [Tipo]
  1483.                     + IIF ([Tipo] = 'Asignatura', ':', SPACE(1) + '-')
  1484.                     + SPACE(1)
  1485.                     + [AsignaturaNombre]
  1486.                     + SPACE(1)
  1487.                     + '('
  1488.                     + [AsignaturaID]
  1489.                     + ')'
  1490.                     + SPACE(1)
  1491.                     + IIF ([Confirmada] IS NULL OR [Confirmada] = '0', '[No confirmada]', SPACE(0))
  1492.             ELSE
  1493.                 [AsignaturaNombre]
  1494.         END                               ,
  1495.         IIF ([Total] IS NULL, 0, [Total])
  1496.     FROM
  1497.         [UTH].[dbo].[FNT_consultaFinanciamientoBloqueAsignatura]
  1498.             (@Cuenta, @Anio, @Periodo, @CarreraID)
  1499.     WHERE
  1500.         [Tipo] NOT IN ('NumeroCuotas', 'ValorCuota')
  1501.     ORDER BY
  1502.         [Orden], [AsignaturaID], [ArancelID]
  1503.  
  1504.  
  1505.     RETURN
  1506. END
  1507.  
  1508. GO
  1509.  
  1510.  
  1511. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1512.  
  1513.  
  1514. GO
  1515.  
  1516. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Grades]
  1517. (
  1518.     @Account varchar(50)
  1519. )
  1520. RETURNS
  1521. @Grades TABLE
  1522. (
  1523.     [name]      varchar(200) ,
  1524.     [partial_1] int          ,
  1525.     [partial_2] int          ,
  1526.     [partial_3] int          ,
  1527.     [total]     int
  1528. )
  1529. AS
  1530. BEGIN
  1531.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1532.  
  1533.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1534.  
  1535.  
  1536.     DECLARE @Cuenta     varchar(50) = @Account
  1537.  
  1538.     DECLARE @Anio       varchar(4)  = [dbo].[ufn_Helper_CurrentYear]      ()
  1539.  
  1540.     DECLARE @Periodo    varchar(1)  = [dbo].[ufn_Helper_CurrentPeriod]    ()
  1541.  
  1542.     DECLARE @CarreraID  int         = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  1543.  
  1544.     DECLARE @Confirmada varchar(1)  = @True
  1545.  
  1546.  
  1547.     INSERT
  1548.         @Grades
  1549.     VALUES
  1550.         (null, 20, 35, 45, 100)
  1551.  
  1552.     INSERT
  1553.         @Grades
  1554.     SELECT
  1555.         [a].[Nombre]               ,
  1556.         [h].[CalificacionParcial1] ,
  1557.         [h].[CalificacionParcial2] ,
  1558.         [h].[CalificacionParcial3] ,
  1559.         [h].[CalificacionTotal]
  1560.     FROM
  1561.         [UTH].[dbo].[Historial]                 AS [h]
  1562.             INNER JOIN [UTH].[dbo].[Asignatura] AS [a]
  1563.                 ON [a].[CarreraID]         = [h].[CarreraID]
  1564.                     AND [a].[AsignaturaID] = [h].[AsignaturaID]
  1565.     WHERE
  1566.         [h].[Cuenta]             = @Cuenta
  1567.             AND [h].[Anio]       = @Anio
  1568.             AND [h].[Periodo]    = @Periodo
  1569.             AND [h].[CarreraID]  = @CarreraID
  1570.             AND [h].[Confirmada] = @Confirmada
  1571.  
  1572.  
  1573.     RETURN
  1574. END
  1575.  
  1576. GO
  1577.  
  1578.  
  1579. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1580.  
  1581.  
  1582. GO
  1583.  
  1584. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Careers]
  1585. (
  1586.     @Account varchar(50)
  1587. )
  1588. RETURNS
  1589. @CareerIDs TABLE
  1590. (
  1591.     [name]    varchar(200) ,
  1592.     [program] int          ,
  1593.     [level]   int          ,
  1594.     [career]  int
  1595. )
  1596. AS
  1597. BEGIN
  1598.     DECLARE @Name varchar(200) = [dbo].[ufn_Helper_Student_CareerName] (@Account)
  1599.  
  1600.  
  1601.     DECLARE @CareerID int = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  1602.  
  1603.     DECLARE @Program  int = @CareerID
  1604.  
  1605.     DECLARE @Level    int = @CareerID
  1606.  
  1607.  
  1608.     INSERT @CareerIDs VALUES (@Name, @Program, @Level, @CareerID)
  1609.  
  1610.     RETURN
  1611. END
  1612.  
  1613. GO
  1614.  
  1615.  
  1616. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1617.  
  1618.  
  1619. GO
  1620.  
  1621. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Periods]
  1622. ()
  1623. RETURNS
  1624. @Periods TABLE
  1625. (
  1626.     [year]        int         ,
  1627.     [period]      int         ,
  1628.     [period_kind] varchar(50)
  1629. )
  1630. AS
  1631. BEGIN
  1632.     DECLARE @Year       varchar(4)  = [dbo].[ufn_Helper_EnrollmentYear]   ()
  1633.  
  1634.     DECLARE @Period     varchar(1)  = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  1635.  
  1636.     DECLARE @PeriodKind varchar(50) = [dbo].[ufn_Const_PeriodTypeID]      ()
  1637.  
  1638.  
  1639.     INSERT @Periods VALUES (@Year, @Period, @PeriodKind)
  1640.  
  1641.     RETURN
  1642. END
  1643.  
  1644. GO
  1645.  
  1646.  
  1647. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1648.  
  1649.  
  1650. GO
  1651.  
  1652. CREATE FUNCTION [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Campus]
  1653. ()
  1654. RETURNS
  1655. @Campus TABLE
  1656. (
  1657.     [code] varchar(3)   ,
  1658.     [name] varchar(100)
  1659. )
  1660. AS
  1661. BEGIN
  1662.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1663.  
  1664.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1665.  
  1666.  
  1667.     DECLARE @Activo bit = @True
  1668.  
  1669.  
  1670.     INSERT
  1671.         @Campus
  1672.     SELECT
  1673.         [CampusID]    ,
  1674.         [Descripcion]
  1675.     FROM
  1676.         [UTH].[dbo].[Campus]
  1677.     WHERE
  1678.         [Activo] = @Activo
  1679.  
  1680.  
  1681.     UPDATE
  1682.         @Campus
  1683.     SET
  1684.         [name] = UPPER([name])
  1685.  
  1686.  
  1687.     RETURN
  1688. END
  1689.  
  1690. GO
  1691.  
  1692.  
  1693. -- ===================================================================================================================================================
  1694. -- Stored Procedures
  1695. -- ===================================================================================================================================================
  1696.  
  1697.  
  1698. -- Android UTH v1 ------------------------------------------------------------------------------------------------------------------------------------
  1699.  
  1700.  
  1701. GO
  1702.  
  1703. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Authentication]
  1704.     @Account  varchar(50)  ,
  1705.     @Password varchar(100)
  1706. AS
  1707. BEGIN
  1708.     SET NOCOUNT ON
  1709.  
  1710.  
  1711.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1712.  
  1713.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1714.  
  1715.  
  1716.     DECLARE @SessionTypeID_Professor int = [dbo].[ufn_Const_SessionTypeID_Professor] ()
  1717.  
  1718.     DECLARE @SessionTypeID_Student   int = [dbo].[ufn_Const_SessionTypeID_Student]   ()
  1719.  
  1720.  
  1721.     DECLARE @Result_Unauthorized       int = 0
  1722.  
  1723.     DECLARE @Result_Authorized         int = 1
  1724.  
  1725.     DECLARE @Result_WrongPassword      int = 2
  1726.  
  1727.     DECLARE @Result_WrongAccountNumber int = 3
  1728.  
  1729.  
  1730.     DECLARE @Result        int
  1731.  
  1732.     DECLARE @SessionTypeID int
  1733.  
  1734.  
  1735.     IF [dbo].[ufn_Util_String_IsValid]        (@Account)  = @False
  1736.            OR [dbo].[ufn_Util_String_IsValid] (@Password) = @False
  1737.         BEGIN
  1738.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  1739.  
  1740.             RETURN
  1741.         END
  1742.  
  1743.     IF [dbo].[ufn_Helper_Account_IsProfessor] (@Account) = @True
  1744.         BEGIN
  1745.             SET @SessionTypeID = @SessionTypeID_Professor
  1746.  
  1747.  
  1748.             SET @Result = IIF ([dbo].[ufn_Helper_Session_IsValidAuthentication]
  1749.                                    (@Account, @Password, @SessionTypeID) = @True, @Result_Authorized, @Result_WrongPassword)
  1750.  
  1751.             SET @Result = @Result_Unauthorized
  1752.         END
  1753.     ELSE
  1754.         IF [dbo].[ufn_Helper_Account_IsStudent] (@Account) = @True
  1755.             BEGIN
  1756.                 SET @SessionTypeID = @SessionTypeID_Student
  1757.  
  1758.  
  1759.                 SET @Result = IIF ([dbo].[ufn_Helper_Session_IsValidAuthentication]
  1760.                                        (@Account, @Password, @SessionTypeID) = @True, @Result_Authorized, @Result_WrongPassword)
  1761.             END
  1762.         ELSE
  1763.             SET @Result = @Result_WrongAccountNumber
  1764.  
  1765.  
  1766.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Authentication] (@Result, @SessionTypeID)
  1767. END
  1768.  
  1769. GO
  1770.  
  1771.  
  1772. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1773.  
  1774.  
  1775. GO
  1776.  
  1777. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_CurrentPeriod]
  1778.     @Account  varchar(50)  ,
  1779.     @Password varchar(100)
  1780. AS
  1781. BEGIN
  1782.     SET NOCOUNT ON
  1783.  
  1784.  
  1785.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1786.  
  1787.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1788.  
  1789.  
  1790.     DECLARE @SessionTypeID_Professor int = [dbo].[ufn_Const_SessionTypeID_Professor] ()
  1791.  
  1792.     DECLARE @SessionTypeID_Student   int = [dbo].[ufn_Const_SessionTypeID_Student]   ()
  1793.  
  1794.  
  1795.     DECLARE @SessionTypeID int
  1796.  
  1797.  
  1798.     IF [dbo].[ufn_Util_String_IsValid]        (@Account)  = @False
  1799.            OR [dbo].[ufn_Util_String_IsValid] (@Password) = @False
  1800.         BEGIN
  1801.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  1802.  
  1803.             RETURN
  1804.         END
  1805.  
  1806.     IF [dbo].[ufn_Helper_Account_IsProfessor] (@Account) = @True
  1807.         BEGIN
  1808.             SET @SessionTypeID = @SessionTypeID_Professor
  1809.  
  1810.             IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  1811.                 BEGIN
  1812.                     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  1813.  
  1814.                     RETURN
  1815.                 END
  1816.         END
  1817.     ELSE
  1818.         IF [dbo].[ufn_Helper_Account_IsStudent] (@Account) = @True
  1819.             BEGIN
  1820.                 SET @SessionTypeID = @SessionTypeID_Student
  1821.  
  1822.                 IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  1823.                     BEGIN
  1824.                         SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  1825.  
  1826.                         RETURN
  1827.                     END
  1828.             END
  1829.         ELSE
  1830.             BEGIN
  1831.                 SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  1832.  
  1833.                 RETURN
  1834.             END
  1835.  
  1836.  
  1837.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_CurrentPeriod] ()
  1838. END
  1839.  
  1840. GO
  1841.  
  1842.  
  1843. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1844.  
  1845.  
  1846. GO
  1847.  
  1848. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Schedule]
  1849.     @Account  varchar(50)  ,
  1850.     @Password varchar(100)
  1851. AS
  1852. BEGIN
  1853.     SET NOCOUNT ON
  1854.  
  1855.  
  1856.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1857.  
  1858.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1859.  
  1860.  
  1861.     DECLARE @SessionTypeID_Professor int = [dbo].[ufn_Const_SessionTypeID_Professor] ()
  1862.  
  1863.     DECLARE @SessionTypeID_Student   int = [dbo].[ufn_Const_SessionTypeID_Student]   ()
  1864.  
  1865.  
  1866.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  1867.  
  1868.  
  1869.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  1870.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  1871.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  1872.         BEGIN
  1873.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  1874.  
  1875.             RETURN
  1876.         END
  1877.  
  1878.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  1879.         BEGIN
  1880.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  1881.  
  1882.             RETURN
  1883.         END
  1884.  
  1885.     IF @SessionTypeID = @SessionTypeID_Student
  1886.            AND [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  1887.         BEGIN
  1888.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  1889.  
  1890.             RETURN
  1891.         END
  1892.  
  1893.     IF @SessionTypeID = @SessionTypeID_Student
  1894.            AND [dbo].[ufn_Helper_Student_HasEnrollment] (@Account) = @False
  1895.         BEGIN
  1896.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoEnrollment] ()
  1897.  
  1898.             RETURN
  1899.         END
  1900.  
  1901.  
  1902.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Schedule] (@Account, @SessionTypeID) ORDER BY [name]
  1903. END
  1904.  
  1905. GO
  1906.  
  1907.  
  1908. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1909.  
  1910.  
  1911. GO
  1912.  
  1913. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Billing_Fees]
  1914.     @Account  varchar(50)  ,
  1915.     @Password varchar(100)
  1916. AS
  1917. BEGIN
  1918.     SET NOCOUNT ON
  1919.  
  1920.  
  1921.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  1922.  
  1923.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  1924.  
  1925.  
  1926.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  1927.  
  1928.  
  1929.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  1930.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  1931.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  1932.         BEGIN
  1933.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  1934.  
  1935.             RETURN
  1936.         END
  1937.  
  1938.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  1939.         BEGIN
  1940.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  1941.  
  1942.             RETURN
  1943.         END
  1944.  
  1945.  
  1946.     IF [dbo].[ufn_Helper_Student_HasPaymentFees] (@Account) = @False
  1947.         BEGIN
  1948.             DECLARE @CurrentYear   int = [dbo].[ufn_Helper_CurrentYear]   ()
  1949.  
  1950.             DECLARE @CurrentPeriod int = [dbo].[ufn_Helper_CurrentPeriod] ()
  1951.  
  1952.  
  1953.             DECLARE @EnrollmentYear   int = [dbo].[ufn_Helper_EnrollmentYear]   ()
  1954.  
  1955.             DECLARE @EnrollmentPeriod int = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  1956.  
  1957.  
  1958.             IF (@CurrentYear + @CurrentPeriod) <> (@EnrollmentYear + @EnrollmentPeriod)
  1959.                 BEGIN
  1960.                     DECLARE @Cuenta  varchar(50) = @Account
  1961.  
  1962.                     DECLARE @Anio    varchar(4)  = @EnrollmentYear
  1963.  
  1964.                     DECLARE @Periodo varchar(2)  = @EnrollmentPeriod
  1965.  
  1966.  
  1967.                     IF EXISTS (
  1968.                                   SELECT
  1969.                                       [HistorialID]
  1970.                                   FROM
  1971.                                       [UTH].[dbo].[Historial]
  1972.                                   WHERE
  1973.                                       [Cuenta]          = @Cuenta
  1974.                                           AND [Anio]    = @Anio
  1975.                                           AND [Periodo] = @Periodo
  1976.                               )
  1977.                         BEGIN
  1978.                             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees_Financing] (@Account) ORDER BY [number]
  1979.  
  1980.                             RETURN
  1981.                         END
  1982.                 END
  1983.  
  1984.  
  1985.             SELECT 'total_pay' = 0
  1986.  
  1987.             RETURN
  1988.         END
  1989.  
  1990.  
  1991.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees] (@Account)
  1992. END
  1993.  
  1994. GO
  1995.  
  1996.  
  1997. ------------------------------------------------------------------------------------------------------------------------------------------------------
  1998.  
  1999.  
  2000. GO
  2001.  
  2002. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Billing_Financing_Detail]
  2003.     @Account  varchar(50)  ,
  2004.     @Password varchar(100)
  2005. AS
  2006. BEGIN
  2007.     SET NOCOUNT ON
  2008.  
  2009.  
  2010.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2011.  
  2012.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2013.  
  2014.  
  2015.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2016.  
  2017.  
  2018.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2019.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2020.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2021.         BEGIN
  2022.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2023.  
  2024.             RETURN
  2025.         END
  2026.  
  2027.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2028.         BEGIN
  2029.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2030.  
  2031.             RETURN
  2032.         END
  2033.  
  2034.  
  2035.  
  2036.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Financing_Detail] (@Account)
  2037. END
  2038.  
  2039. GO
  2040.  
  2041.  
  2042. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2043.  
  2044.  
  2045. GO
  2046.  
  2047. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Grades]
  2048.     @Account  varchar(50)  ,
  2049.     @Password varchar(100)
  2050. AS
  2051. BEGIN
  2052.     SET NOCOUNT ON
  2053.  
  2054.  
  2055.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2056.  
  2057.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2058.  
  2059.  
  2060.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2061.  
  2062.  
  2063.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2064.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2065.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2066.         BEGIN
  2067.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2068.  
  2069.             RETURN
  2070.         END
  2071.  
  2072.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2073.         BEGIN
  2074.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2075.  
  2076.             RETURN
  2077.         END
  2078.  
  2079.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2080.         BEGIN
  2081.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2082.  
  2083.             RETURN
  2084.         END
  2085.  
  2086.     IF [dbo].[ufn_Helper_Student_HasEnrollment] (@Account) = @False
  2087.         BEGIN
  2088.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoEnrollment] ()
  2089.  
  2090.             RETURN
  2091.         END
  2092.  
  2093.  
  2094.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Grades] (@Account) ORDER BY [name]
  2095. END
  2096.  
  2097. GO
  2098.  
  2099.  
  2100. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2101.  
  2102.  
  2103. GO
  2104.  
  2105. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Careers]
  2106.     @Account  varchar(50)  ,
  2107.     @Password varchar(100)
  2108. AS
  2109. BEGIN
  2110.     SET NOCOUNT ON
  2111.  
  2112.  
  2113.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2114.  
  2115.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2116.  
  2117.  
  2118.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2119.  
  2120.  
  2121.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2122.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2123.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2124.         BEGIN
  2125.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2126.  
  2127.             RETURN
  2128.         END
  2129.  
  2130.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2131.         BEGIN
  2132.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2133.  
  2134.             RETURN
  2135.         END
  2136.  
  2137.  
  2138.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Careers] (@Account)
  2139. END
  2140.  
  2141. GO
  2142.  
  2143.  
  2144. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2145.  
  2146.  
  2147. GO
  2148.  
  2149. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Periods]
  2150.     @Account  varchar(50)  ,
  2151.     @Password varchar(100)
  2152. AS
  2153. BEGIN
  2154.     SET NOCOUNT ON
  2155.  
  2156.  
  2157.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2158.  
  2159.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2160.  
  2161.  
  2162.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2163.  
  2164.  
  2165.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2166.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2167.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2168.         BEGIN
  2169.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2170.  
  2171.             RETURN
  2172.         END
  2173.  
  2174.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2175.         BEGIN
  2176.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2177.  
  2178.             RETURN
  2179.         END
  2180.  
  2181.  
  2182.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Periods] ()
  2183. END
  2184.  
  2185. GO
  2186.  
  2187.  
  2188. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2189.  
  2190.  
  2191. GO
  2192.  
  2193. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Campus]
  2194.     @Account  varchar(50)  ,
  2195.     @Password varchar(100)
  2196. AS
  2197. BEGIN
  2198.     SET NOCOUNT ON
  2199.  
  2200.  
  2201.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2202.  
  2203.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2204.  
  2205.  
  2206.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2207.  
  2208.  
  2209.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2210.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2211.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2212.         BEGIN
  2213.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2214.  
  2215.             RETURN
  2216.         END
  2217.  
  2218.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2219.         BEGIN
  2220.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2221.  
  2222.             RETURN
  2223.         END
  2224.  
  2225.  
  2226.     SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Campus] ()
  2227. END
  2228.  
  2229. GO
  2230.  
  2231.  
  2232. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2233.  
  2234.  
  2235. GO
  2236.  
  2237. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Classes]
  2238.     @Account  varchar(50)  ,
  2239.     @Password varchar(100) ,
  2240.     @CareerID int          ,
  2241.     @Year     int          ,
  2242.     @Period   int
  2243. AS
  2244. BEGIN
  2245.     SET NOCOUNT ON
  2246.  
  2247.  
  2248.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2249.  
  2250.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2251.  
  2252.  
  2253.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2254.  
  2255.  
  2256.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2257.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2258.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2259.         BEGIN
  2260.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2261.  
  2262.             RETURN
  2263.         END
  2264.  
  2265.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2266.         BEGIN
  2267.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2268.  
  2269.             RETURN
  2270.         END
  2271.  
  2272.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2273.         BEGIN
  2274.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2275.  
  2276.             RETURN
  2277.         END
  2278.  
  2279.  
  2280.     DECLARE @Cuenta           varchar(50) = @Account
  2281.  
  2282.     DECLARE @CarreraID        bigint      = @CareerID
  2283.  
  2284.     DECLARE @AnioMatricula    varchar(4)  = @Year
  2285.  
  2286.     DECLARE @PeriodoMatricula varchar(2)  = @Period
  2287.  
  2288.     DECLARE @ExigirRequisito  int         = 2
  2289.  
  2290.  
  2291.     DECLARE @FalseString varchar(5) = [dbo].[ufn_Const_Boolean_False_String] ()
  2292.  
  2293.     DECLARE @TrueString  varchar(4) = [dbo].[ufn_Const_Boolean_True_String]  ()
  2294.  
  2295.  
  2296.     DECLARE
  2297.         @Classes
  2298.     TABLE
  2299.         (
  2300.             [name]               varchar(200) ,
  2301.             [credits]            int          ,
  2302.             [code]               varchar(20)  ,
  2303.             [period]             int          ,
  2304.             [elective]           varchar(5)   ,
  2305.             [elective_code]      varchar(20)  ,
  2306.             [obligatory]         varchar(5)   ,
  2307.             [requirement]        varchar(10)  ,
  2308.             [status]             varchar(1)   ,
  2309.             [currently_enrolled] varchar(5)
  2310.         )
  2311.  
  2312.  
  2313.     INSERT
  2314.         @Classes
  2315.     SELECT
  2316.         [Nombre]                                                   ,
  2317.         [UV]                                                       ,
  2318.         [AsignaturaID]                                             ,
  2319.         [Periodo]                                                  ,
  2320.         IIF ([ElectivaID] IS NULL, @FalseString, @TrueString)      ,
  2321.         [ElectivaID]                                               ,
  2322.         IIF ([CantidadRequisitos] = 0, @FalseString, @TrueString)  ,
  2323.         [RelacionAsignaturaID]                                     ,
  2324.         IIF ([Confirmada] IS NULL OR [Confirmada] = '0', 'N', 'C') ,
  2325.         IIF ([Inscrita] = 0, @FalseString, @TrueString)
  2326.     FROM
  2327.         [UTH].[dbo].[FNT_matriculaOfertaEstudianteAsignaturas]
  2328.             (@Cuenta, @CarreraID, @AnioMatricula, @PeriodoMatricula, @ExigirRequisito)
  2329.  
  2330.  
  2331.     IF (SELECT COUNT(0) FROM @Classes) = 0
  2332.         BEGIN
  2333.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoAcademicOffer] ()
  2334.  
  2335.             RETURN
  2336.         END
  2337.  
  2338.  
  2339.     UPDATE
  2340.         @Classes
  2341.     SET
  2342.         [name]        = [elective_code] ,
  2343.         [code]        = [elective_code] ,
  2344.         [requirement] = NULL
  2345.     WHERE
  2346.         [elective_code] IS NOT NULL
  2347.  
  2348.  
  2349.     SELECT DISTINCT * FROM @Classes ORDER BY [elective_code], [period], [name]
  2350. END
  2351.  
  2352. GO
  2353.  
  2354.  
  2355. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2356.  
  2357.  
  2358. GO
  2359.  
  2360. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Classes_Electives]
  2361.     @Account  varchar(50)  ,
  2362.     @Password varchar(100) ,
  2363.     @Year     int          ,
  2364.     @Period   int          ,
  2365.     @ClassID  varchar(20)
  2366. AS
  2367. BEGIN
  2368.     SET NOCOUNT ON
  2369.  
  2370.  
  2371.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2372.  
  2373.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2374.  
  2375.  
  2376.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2377.  
  2378.  
  2379.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2380.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2381.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2382.         BEGIN
  2383.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2384.  
  2385.             RETURN
  2386.         END
  2387.  
  2388.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2389.         BEGIN
  2390.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2391.  
  2392.             RETURN
  2393.         END
  2394.  
  2395.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2396.         BEGIN
  2397.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2398.  
  2399.             RETURN
  2400.         END
  2401.  
  2402.  
  2403.     DECLARE @Cuenta           varchar(50) = @Account
  2404.  
  2405.     DECLARE @CarreraID        bigint      = [dbo].[ufn_Helper_Student_CareerID] (@Account)
  2406.  
  2407.     DECLARE @AnioMatricula    varchar(4)  = @Year
  2408.  
  2409.     DECLARE @PeriodoMatricula varchar(2)  = @Period
  2410.  
  2411.     DECLARE @ExigirRequisito  int         = 2
  2412.  
  2413.     DECLARE @ElectivaID       varchar(20) = @ClassID
  2414.  
  2415.  
  2416.     DECLARE @FalseString varchar(5) = [dbo].[ufn_Const_Boolean_False_String] ()
  2417.  
  2418.     DECLARE @TrueString  varchar(4) = [dbo].[ufn_Const_Boolean_True_String]  ()
  2419.  
  2420.  
  2421.     DECLARE
  2422.         @Electives
  2423.     TABLE
  2424.         (
  2425.             [name]               varchar(200) ,
  2426.             [credits]            int          ,
  2427.             [code]               varchar(10)  ,
  2428.             [period]             int          ,
  2429.             [elective_code]      varchar(10)  ,
  2430.             [status]             varchar(1)   ,
  2431.             [currently_enrolled] varchar(5)
  2432.         )
  2433.  
  2434.  
  2435.     INSERT
  2436.         @Electives
  2437.     SELECT
  2438.         [Nombre]                                                   ,
  2439.         [UV]                                                       ,
  2440.         [AsignaturaID]                                             ,
  2441.         [Periodo]                                                  ,
  2442.         [AsignaturaID]                                             ,
  2443.         IIF ([Confirmada] IS NULL OR [Confirmada] = '0', 'N', 'C') ,
  2444.         IIF ([Inscrita] = 0, @FalseString, @TrueString)
  2445.     FROM
  2446.         [UTH].[dbo].[FNT_matriculaOfertaEstudianteAsignaturas]
  2447.              (@Cuenta, @CarreraID, @AnioMatricula, @PeriodoMatricula, @ExigirRequisito)
  2448.     WHERE
  2449.         [ElectivaID] = @ElectivaID
  2450.  
  2451.  
  2452.     IF (SELECT COUNT(0) FROM @Electives) = 0
  2453.         BEGIN
  2454.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoAcademicOffer] ()
  2455.  
  2456.             RETURN
  2457.         END
  2458.  
  2459.  
  2460.     SELECT * FROM @Electives ORDER BY [period], [name]
  2461. END
  2462.  
  2463. GO
  2464.  
  2465.  
  2466. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2467.  
  2468.  
  2469. GO
  2470.  
  2471. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Schedule]
  2472.     @Account  varchar(50)  ,
  2473.     @Password varchar(100) ,
  2474.     @CareerID int          ,
  2475.     @Year     int          ,
  2476.     @Period   int          ,
  2477.     @CampusID varchar(3)   ,
  2478.     @ClassID  varchar(10)
  2479. AS
  2480. BEGIN
  2481.     SET NOCOUNT ON
  2482.  
  2483.  
  2484.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2485.  
  2486.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2487.  
  2488.  
  2489.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2490.  
  2491.  
  2492.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2493.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2494.            OR [dbo].[ufn_Util_String_IsValid]      (@CampusID) = @False
  2495.            OR [dbo].[ufn_Util_String_IsValid]      (@ClassID)  = @False
  2496.         BEGIN
  2497.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2498.  
  2499.             RETURN
  2500.         END
  2501.  
  2502.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2503.         BEGIN
  2504.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2505.  
  2506.             RETURN
  2507.         END
  2508.  
  2509.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2510.         BEGIN
  2511.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2512.  
  2513.             RETURN
  2514.         END
  2515.  
  2516.  
  2517.     DECLARE @Anio         int         = @Year
  2518.  
  2519.     DECLARE @Periodo      int         = @Period
  2520.  
  2521.     DECLARE @AsignaturaID varchar(20) = @ClassID
  2522.  
  2523.     DECLARE @CarreraID    int         = @CareerID
  2524.  
  2525.     DECLARE @Cuenta       varchar(20) = @Account
  2526.  
  2527.  
  2528.     DECLARE @CampusID_Virtual varchar(3) = [dbo].[ufn_Const_CampusID_Virtual] ()
  2529.  
  2530.  
  2531.     DECLARE @FalseString varchar(5) = [dbo].[ufn_Const_Boolean_False_String] ()
  2532.  
  2533.     DECLARE @TrueString  varchar(4) = [dbo].[ufn_Const_Boolean_True_String]  ()
  2534.  
  2535.  
  2536.     DECLARE
  2537.         @Schedule
  2538.     TABLE
  2539.         (
  2540.             [code]               varchar(10) ,
  2541.             [level]              int         ,
  2542.             [start_time]         varchar(8)  ,
  2543.             [end_time]           varchar(8)  ,
  2544.             [days]               varchar(20) ,
  2545.             [classroom]          varchar(10) ,
  2546.             [group]              int         ,
  2547.             [virtual_module]     varchar(1)  ,
  2548.             [class_status]       varchar(1)  ,
  2549.             [availability]       int         ,
  2550.             [identifier]         int         ,
  2551.             [schedule_exception] varchar(1)  ,
  2552.             [status]             varchar(1)  ,
  2553.             [currently_enrolled] varchar(5)
  2554.         )
  2555.  
  2556.  
  2557.     INSERT
  2558.         @Schedule
  2559.     SELECT
  2560.         [of].[AsignaturaID]                                                  ,
  2561.         [of].[CarreraID]                                                     ,
  2562.         [dbo].[ufn_Util_Time_Format] ([of].[HoraInicio])                     ,
  2563.         [dbo].[ufn_Util_Time_Format] ([of].[HoraFin])                        ,
  2564.         IIF ([ma].[Lunes]           IS NULL, SPACE(0), 'L-')
  2565.             + IIF ([ma].[Martes]    IS NULL, SPACE(0), 'K-')
  2566.             + IIF ([ma].[Miercoles] IS NULL, SPACE(0), 'M-')
  2567.             + IIF ([ma].[Jueves]    IS NULL, SPACE(0), 'J-')
  2568.             + IIF ([ma].[Viernes]   IS NULL, SPACE(0), 'V-')
  2569.             + IIF ([ma].[Sabado]    IS NULL, SPACE(0), 'S-')
  2570.             + IIF ([ma].[Domingo]   IS NULL, SPACE(0), 'D-')                 ,
  2571.         [dbo].[ufn_Util_String_FormatClassroom] ([of].[AulaID])              ,
  2572.         [ma].[Seccion]                                                       ,
  2573.         IIF ([of].[CampusID] <> @CampusID_Virtual, 'N', 'S')                 ,
  2574.         IIF ([ma].[Inscrita] = 0, ' ', 'C')                                  ,
  2575.         [of].[Cupo] - (
  2576.                           SELECT
  2577.                               COUNT(0)
  2578.                           FROM
  2579.                               [UTH].[dbo].[Historial]
  2580.                           WHERE
  2581.                               [OfertaID] = [ma].[OfertaID]
  2582.                       )                                                      ,
  2583.         [ma].[OfertaID]                                                      ,
  2584.         NULL                                                                 ,
  2585.         IIF ([ma].[Confirmada] IS NULL OR [ma].[Confirmada] = '0', 'N', 'S') ,
  2586.         IIF ([ma].[Inscrita] = 0, @FalseString, @TrueString)
  2587.     FROM
  2588.         [UTH].[dbo].[FNT_matriculaOfertaEstudianteSecciones]
  2589.             (@Anio, @Periodo, @CampusID, @AsignaturaID, @CarreraID, @Cuenta) AS [ma]
  2590.     INNER JOIN
  2591.         [UTH].[dbo].[Oferta]                                                 AS [of]
  2592.             ON [ma].[OfertaID] = [of].[OfertaID]
  2593.  
  2594.  
  2595.     IF (SELECT COUNT(0) FROM @Schedule) = 0
  2596.         BEGIN
  2597.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoAcademicOffer] ()
  2598.  
  2599.             RETURN
  2600.         END
  2601.  
  2602.  
  2603.     IF @CampusID = @CampusID_Virtual
  2604.         BEGIN
  2605.             DECLARE @CampusVirtualName varchar(100) = (
  2606.                                                           SELECT
  2607.                                                               [Descripcion]
  2608.                                                           FROM
  2609.                                                               [UTH].[dbo].[Campus]
  2610.                                                           WHERE
  2611.                                                               [CampusID] = @CampusID
  2612.                                                       )
  2613.  
  2614.             SET @CampusVirtualName = UPPER(@CampusVirtualName)
  2615.  
  2616.  
  2617.             UPDATE
  2618.                 @Schedule
  2619.             SET
  2620.                 [start_time] = @CampusVirtualName ,
  2621.                 [end_time]   = @CampusVirtualName ,
  2622.                 [classroom]  = @CampusVirtualName
  2623.         END
  2624.  
  2625.  
  2626.     UPDATE
  2627.         @Schedule
  2628.     SET
  2629.         [days]         = [dbo].[ufn_Util_String_FormatDays] ([days]) ,
  2630.         [availability] = IIF ([availability] < 0, 0, [availability])
  2631.  
  2632.  
  2633.     SELECT * FROM @Schedule ORDER BY [group]
  2634. END
  2635.  
  2636. GO
  2637.  
  2638.  
  2639. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2640.  
  2641.  
  2642. GO
  2643.  
  2644. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Add]
  2645.     @Account  varchar(50)  ,
  2646.     @Password varchar(100) ,
  2647.     @CareerID int          ,
  2648.     @ClassID  varchar(10)  ,
  2649.     @OfferID  bigint
  2650. AS
  2651. BEGIN
  2652.     SET NOCOUNT ON
  2653.  
  2654.  
  2655.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2656.  
  2657.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2658.  
  2659.  
  2660.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2661.  
  2662.  
  2663.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2664.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2665.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2666.            OR [dbo].[ufn_Util_String_IsValid]      (@ClassID)  = @False
  2667.         BEGIN
  2668.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2669.  
  2670.             RETURN
  2671.         END
  2672.  
  2673.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2674.         BEGIN
  2675.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2676.  
  2677.             RETURN
  2678.         END
  2679.  
  2680.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2681.         BEGIN
  2682.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2683.  
  2684.             RETURN
  2685.         END
  2686.  
  2687.  
  2688.     DECLARE @OfertaID             bigint      = @OfferID
  2689.  
  2690.     DECLARE @Cuenta               varchar(20) = @Account
  2691.  
  2692.     DECLARE @CarreraID            int         = @CareerID
  2693.  
  2694.     DECLARE @AsignaturaID         varchar(10) = @ClassID
  2695.  
  2696.     DECLARE @UsuarioInscribe      varchar(16) = [dbo].[ufn_Const_ClientType_Android] ()
  2697.  
  2698.     DECLARE @Simulacion           int         = @False
  2699.  
  2700.     DECLARE @PermitirSinRequisito bit         = @True
  2701.  
  2702.  
  2703.     BEGIN TRY
  2704.         DECLARE
  2705.             @Message
  2706.         TABLE
  2707.             (
  2708.                 [message] varchar(512)
  2709.             )
  2710.  
  2711.  
  2712.         INSERT
  2713.             @Message
  2714.         EXEC [UTH].[dbo].[inscribirAsignaturaEstudiante]
  2715.                  @OfertaID, @Cuenta, @CarreraID, @AsignaturaID, @UsuarioInscribe, @Simulacion, @PermitirSinRequisito
  2716.  
  2717.  
  2718.         SELECT
  2719.             @True             AS [result]  ,
  2720.             CASE [message]
  2721.                 WHEN 'ok'
  2722.                     THEN [dbo].[ufn_Const_Message_Student_Enrollment_Class_Add]    ()
  2723.                 WHEN 'MISMO_OFERTAID'
  2724.                     THEN [dbo].[ufn_Const_Message_Student_Enrollment_Class_Remove] ()
  2725.                 ELSE
  2726.                     [message]
  2727.             END               AS [message]
  2728.         FROM
  2729.             @Message
  2730.         END TRY
  2731.  
  2732.     BEGIN CATCH
  2733.         SELECT @False AS [result]
  2734.     END CATCH
  2735. END
  2736.  
  2737. GO
  2738.  
  2739.  
  2740. ------------------------------------------------------------------------------------------------------------------------------------------------------
  2741.  
  2742.  
  2743. GO
  2744.  
  2745. CREATE PROCEDURE [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Remove]
  2746.     @Account  varchar(50)  ,
  2747.     @Password varchar(100) ,
  2748.     @CareerID int          ,
  2749.     @ClassID  varchar(10)
  2750. AS
  2751. BEGIN
  2752.     SET NOCOUNT ON
  2753.  
  2754.  
  2755.     DECLARE @False bit = [dbo].[ufn_Const_Boolean_False] ()
  2756.  
  2757.     DECLARE @True  bit = [dbo].[ufn_Const_Boolean_True]  ()
  2758.  
  2759.  
  2760.     DECLARE @SessionTypeID int = [dbo].[ufn_Const_SessionTypeID_Student] ()
  2761.  
  2762.  
  2763.     IF [dbo].[ufn_Util_String_IsValid]             (@Account)  = @False
  2764.            OR [dbo].[ufn_Helper_Account_IsStudent] (@Account)  = @False
  2765.            OR [dbo].[ufn_Util_String_IsValid]      (@Password) = @False
  2766.            OR [dbo].[ufn_Util_String_IsValid]      (@ClassID)    = @False
  2767.         BEGIN
  2768.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2769.  
  2770.             RETURN
  2771.         END
  2772.  
  2773.     IF [dbo].[ufn_Helper_Session_IsValidAuthentication] (@Account, @Password, @SessionTypeID) = @False
  2774.         BEGIN
  2775.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed] ()
  2776.  
  2777.             RETURN
  2778.         END
  2779.  
  2780.     IF [dbo].[ufn_Helper_Student_HasOutstandingPayments] (@Account) = @True
  2781.         BEGIN
  2782.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2783.  
  2784.             RETURN
  2785.         END
  2786.  
  2787.  
  2788.     DECLARE @Cuenta               varchar(20) = @Account
  2789.  
  2790.     DECLARE @CarreraID            int         = @CareerID
  2791.  
  2792.     DECLARE @AsignaturaID         varchar(10) = @ClassID
  2793.  
  2794.     DECLARE @UsuarioInscribe      varchar(16) = [dbo].[ufn_Const_ClientType_Android] ()
  2795.  
  2796.     DECLARE @Simulacion           int         = @False
  2797.  
  2798.     DECLARE @PermitirSinRequisito bit         = @True
  2799.  
  2800.  
  2801.     DECLARE @Anio       varchar(4) = [dbo].[ufn_Helper_EnrollmentYear]   ()
  2802.  
  2803.     DECLARE @Periodo    varchar(1) = [dbo].[ufn_Helper_EnrollmentPeriod] ()
  2804.  
  2805.     DECLARE @Confirmada varchar(1) = @False
  2806.  
  2807.  
  2808.     DECLARE @OfertaID bigint = (
  2809.                                    SELECT
  2810.                                        [OfertaID]
  2811.                                    FROM
  2812.                                        [UTH].[dbo].[Historial]
  2813.                                    WHERE
  2814.                                        [Cuenta]               = @Cuenta
  2815.                                            AND [Anio]         = @Anio
  2816.                                            AND [Periodo]      = @Periodo
  2817.                                            AND [CarreraID]    = @CarreraID
  2818.                                            AND [AsignaturaID] = @AsignaturaID
  2819.                                            AND [Confirmada]   = @Confirmada
  2820.                                )
  2821.  
  2822.  
  2823.     IF @OfertaID IS NULL
  2824.         BEGIN
  2825.             SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed] ()
  2826.  
  2827.             RETURN
  2828.         END
  2829.  
  2830.  
  2831.     BEGIN TRY
  2832.         DECLARE
  2833.             @Message
  2834.         TABLE
  2835.             (
  2836.                 [message] varchar(512)
  2837.             )
  2838.  
  2839.  
  2840.         INSERT
  2841.             @Message
  2842.         EXEC [UTH].[dbo].[inscribirAsignaturaEstudiante]
  2843.                  @OfertaID, @Cuenta, @CarreraID, @AsignaturaID, @UsuarioInscribe, @Simulacion, @PermitirSinRequisito
  2844.  
  2845.  
  2846.         SELECT
  2847.             @True             AS [result]  ,
  2848.             CASE [message]
  2849.                 WHEN 'ok'
  2850.                     THEN [dbo].[ufn_Const_Message_Student_Enrollment_Class_Add]    ()
  2851.                 WHEN 'MISMO_OFERTAID'
  2852.                     THEN [dbo].[ufn_Const_Message_Student_Enrollment_Class_Remove] ()
  2853.                 ELSE
  2854.                     [message]
  2855.             END               AS [message]
  2856.         FROM
  2857.             @Message
  2858.         END TRY
  2859.  
  2860.     BEGIN CATCH
  2861.         SELECT @False AS [result]
  2862.     END CATCH
  2863. END
  2864.  
  2865. GO
  2866.  
  2867.  
  2868. -- ===================================================================================================================================================
  2869. -- Test -- Functions
  2870. -- ===================================================================================================================================================
  2871.  
  2872.  
  2873. -- Constants -----------------------------------------------------------------------------------------------------------------------------------------
  2874.  
  2875.  
  2876. SELECT [dbo].[ufn_Const_Boolean_False] ()
  2877.  
  2878. SELECT [dbo].[ufn_Const_Boolean_True]  ()
  2879.  
  2880.  
  2881. SELECT [dbo].[ufn_Const_Boolean_False_String] ()
  2882.  
  2883. SELECT [dbo].[ufn_Const_Boolean_True_String]  ()
  2884.  
  2885.  
  2886. SELECT [dbo].[ufn_Const_SessionTypeID_Professor] ()
  2887.  
  2888. SELECT [dbo].[ufn_Const_SessionTypeID_Student]   ()
  2889.  
  2890.  
  2891. SELECT [dbo].[ufn_Const_CampusID_Virtual] ()
  2892.  
  2893. SELECT [dbo].[ufn_Const_PeriodTypeID]     ()
  2894.  
  2895.  
  2896. SELECT [dbo].[ufn_Const_ClientType_Android] ()
  2897.  
  2898.  
  2899. SELECT [dbo].[ufn_Const_Message_Student_Enrollment_Class_Add]    ()
  2900.  
  2901. SELECT [dbo].[ufn_Const_Message_Student_Enrollment_Class_Remove] ()
  2902.  
  2903.  
  2904. -- Utils ---------------------------------------------------------------------------------------------------------------------------------------------
  2905.  
  2906.  
  2907. SELECT [dbo].[ufn_Util_String_IsValid]               (NULL)
  2908.  
  2909. SELECT [dbo].[ufn_Util_String_Capitalize]            ('TEST')
  2910.  
  2911.  
  2912. SELECT [dbo].[ufn_Util_String_FormatClassroom]       ('01100')
  2913.  
  2914. SELECT [dbo].[ufn_Util_String_FormatDays]            ('D-L-K-M-J-V-S')
  2915.  
  2916. SELECT [dbo].[ufn_Util_String_FormatName]            ('KEVIN EDUARDO', 'LARA')
  2917.  
  2918.  
  2919. SELECT [dbo].[ufn_Util_String_PasswordHash]          ('1234')
  2920.  
  2921. SELECT [dbo].[ufn_Util_String_SplitRemoveDuplicates] ('Test-Test', '-')
  2922.  
  2923.  
  2924. SELECT [dbo].[ufn_Util_Date_Format] (GETDATE())
  2925.  
  2926.  
  2927. SELECT [dbo].[ufn_Util_Time_Round]  (CONVERT(time, GETDATE()), 10)
  2928.  
  2929. SELECT [dbo].[ufn_Util_Time_Format] (CONVERT(time, GETDATE()))
  2930.  
  2931.  
  2932. -- Helpers -------------------------------------------------------------------------------------------------------------------------------------------
  2933.  
  2934.  
  2935. SELECT [dbo].[ufn_Helper_CurrentYear]   ()
  2936.  
  2937. SELECT [dbo].[ufn_Helper_CurrentPeriod] ()
  2938.  
  2939.  
  2940. SELECT [dbo].[ufn_Helper_EnrollmentYear]   ()
  2941.  
  2942. SELECT [dbo].[ufn_Helper_EnrollmentPeriod] ()
  2943.  
  2944.  
  2945. SELECT [dbo].[ufn_Helper_Account_IsProfessor] ('201110510072')
  2946.  
  2947. SELECT [dbo].[ufn_Helper_Account_IsStudent]   ('201110510072')
  2948.  
  2949.  
  2950. SELECT [dbo].[ufn_Helper_Session_IsValidAuthentication] ('201510011583', 'qwerty', 2)
  2951.  
  2952.  
  2953. SELECT [dbo].[ufn_Helper_Student_CareerID]               ('201110510072')
  2954.  
  2955. SELECT [dbo].[ufn_Helper_Student_CareerName]             ('201110510072')
  2956.  
  2957. SELECT [dbo].[ufn_Helper_Student_HasPaymentFees]         ('201110510072')
  2958.  
  2959. SELECT [dbo].[ufn_Helper_Student_HasOutstandingPayments] ('201110510072')
  2960.  
  2961. SELECT [dbo].[ufn_Helper_Student_HasEnrollment]          ('201110510072')
  2962.  
  2963.  
  2964. -- Response Android UTH v1 ---------------------------------------------------------------------------------------------------------------------------
  2965.  
  2966.  
  2967. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result] (-1)
  2968.  
  2969.  
  2970. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionSuccesfully]      ()
  2971.  
  2972. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_TransactionFailed]           ()
  2973.  
  2974. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_AuthenticationFailed]        ()
  2975.  
  2976. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_OutstandingPayments] ()
  2977.  
  2978. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoEnrollment]        ()
  2979.  
  2980. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Result_Student_NoAcademicOffer]     ()
  2981.  
  2982.  
  2983. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Authentication]  (1, 2)
  2984.  
  2985. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_CurrentPeriod]   ()
  2986.  
  2987. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Schedule]        ('201510011583', 2)
  2988.  
  2989.  
  2990. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees]             ('201510011583')
  2991.  
  2992. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Fees_Financing]   ('201510011583')
  2993.  
  2994. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Billing_Financing_Detail] ('201510011583')
  2995.  
  2996.  
  2997. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Grades] ('201510011583')
  2998.  
  2999.  
  3000. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Careers] ('201510011583')
  3001.  
  3002. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Periods] ()
  3003.  
  3004. SELECT * FROM [dbo].[ufn_Android_UTH_v1_Response_Student_Enrollment_Campus]  ()
  3005.  
  3006.  
  3007. -- ===================================================================================================================================================
  3008. -- Test -- Stored Procedures
  3009. -- ===================================================================================================================================================
  3010.  
  3011.  
  3012. -- Android UTH v1 ------------------------------------------------------------------------------------------------------------------------------------
  3013.  
  3014.  
  3015. EXEC [dbo].[usp_Android_UTH_v1_Authentication] @Account  = '201510011583' ,
  3016.                                                @Password = 'qwerty'
  3017.  
  3018. EXEC [dbo].[usp_Android_UTH_v1_CurrentPeriod] @Account  = '201510011583' ,
  3019.                                               @Password = 'qwerty'
  3020.  
  3021. EXEC [dbo].[usp_Android_UTH_v1_Schedule] @Account  = '201510011583' ,
  3022.                                          @Password = 'qwerty'
  3023.  
  3024.  
  3025. EXEC [dbo].[usp_Android_UTH_v1_Student_Billing_Fees] @Account  = '201510011583' ,
  3026.                                                      @Password = 'qwerty'
  3027.  
  3028. EXEC [dbo].[usp_Android_UTH_v1_Student_Billing_Financing_Detail] @Account  = '201510011583' ,
  3029.                                                                  @Password = 'qwerty'
  3030.  
  3031.  
  3032. EXEC [dbo].[usp_Android_UTH_v1_Student_Grades] @Account  = '201510011583' ,
  3033.                                                @Password = 'qwerty'
  3034.  
  3035.  
  3036. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Careers] @Account  = '201110510072' ,
  3037.                                                            @Password = '22080412'
  3038.  
  3039. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Periods] @Account  = '201110510072' ,
  3040.                                                            @Password = '22080412'
  3041.  
  3042. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Campus] @Account  = '201510011583' ,
  3043.                                                           @Password = 'qwerty'
  3044.  
  3045. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Classes] @Account  = '201110510072' ,
  3046.                                                            @Password = '22080412'     ,
  3047.                                                            @CareerID = 18             ,
  3048.                                                            @Year     = 2017           ,
  3049.                                                            @Period   = 3
  3050.  
  3051. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Classes_Electives] @Account  = '201110510072' ,
  3052.                                                                      @Password = '22080412'     ,
  3053.                                                                      @Year     = 2017           ,
  3054.                                                                      @Period   = 3              ,
  3055.                                                                      @ClassID  = 'ELECTIVAI'
  3056.  
  3057. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Schedule] @Account  = '201110510072' ,
  3058.                                                                   @Password = '22080412'     ,
  3059.                                                                   @CareerID = 18             ,
  3060.                                                                   @Year     = 2017           ,
  3061.                                                                   @Period   = 3              ,
  3062.                                                                   @CampusID = '010'          ,
  3063.                                                                   @ClassID  = 'AdE-0901'
  3064.  
  3065. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Add] @Account  = '201110510072' ,
  3066.                                                              @Password = '22080412'     ,
  3067.                                                              @CareerID = 18             ,
  3068.                                                              @ClassID  = 'AdE-0901'     ,
  3069.                                                              @OfferID  = 126799
  3070.  
  3071. EXEC [dbo].[usp_Android_UTH_v1_Student_Enrollment_Class_Remove] @Account  = '201110510072' ,
  3072.                                                                 @Password = '22080412'     ,
  3073.                                                                 @CareerID = 18             ,
  3074.                                                                 @ClassID  = 'AdE-0901'
RAW Paste Data