Option Explicit

Public Sub ExportSummary()

    '---
    '---    Export to Excel
    '---

    On Error GoTo errhandler
    Dim oWkbk As Workbook
    Dim oWksht As Worksheet
    Dim db As New clsDatabase
    Dim rs As New ADODB.Recordset
    Dim i As Long
    Dim dtCob As Date
    Dim lLastRow As Long

    Call ProtectWorkbook(False)
    Call UpdateScreen(False)
    Application.DisplayAlerts = False

    dtCob = ThisWorkbook.Names("rgcob").RefersToRange
    Set oWkbk = Workbooks.Add
    Set oWksht = oWkbk.Sheets(1)
    oWksht.Name = "Uncapitalised Rejections"
    oWksht.Cells.Font.Size = 8
    oWksht.Cells.Font.Name = "Arial"
    Set rs = db.GetRecordset("Select * from tbl_Uncapitalised_Rejections")
    If rs.EOF = False And rs.BOF = False Then
        For i = 0 To rs.Fields.Count - 1
            oWksht.Cells(1, i + 1).Value = rs.Fields(i).Name
        Next i
        oWksht.Columns(2).NumberFormat = "dd-mmm-yyyy"
        oWksht.Rows(1).Font.Bold = True
        oWksht.Cells(2, 1).CopyFromRecordset rs
        oWksht.Range(oWksht.Cells(1, 1), oWksht.Cells(1, 1).End(xlToRight)).Interior.Color = 10921638
        oWksht.Cells.RowHeight = 30
        oWksht.Cells(1, 1).CurrentRegion.Borders(xlInsideVertical).Weight = xlThin
        oWksht.Cells(1, 1).CurrentRegion.Borders(xlInsideHorizontal).Weight = xlThin
        oWksht.Cells(1, 1).CurrentRegion.BorderAround , xlThin
        oWksht.Range("b:h").EntireColumn.AutoFit
        oWksht.Range("s:s").ColumnWidth = 50
    End If
    rs.Close
    Call ColorCodeUncapitalisedRejections(oWksht, dtCob)

    Set oWksht = oWkbk.Worksheets.Add
    oWksht.Name = "Capitalised Rejections"
    oWksht.Cells.Font.Size = 8
    oWksht.Cells.Font.Name = "Arial"
    Set rs = db.GetRecordset("Select * from tbl_Capitalised_Rejections")
    If rs.EOF = False And rs.BOF = False Then
        For i = 0 To rs.Fields.Count - 1
            oWksht.Cells(1, i + 1).Value = rs.Fields(i).Name
        Next i
        oWksht.Rows(1).Font.Bold = True
        oWksht.Cells(2, 1).CopyFromRecordset rs
        oWksht.Cells.RowHeight = 30
        oWksht.Range(oWksht.Cells(1, 1), oWksht.Cells(1, 1).End(xlToRight)).Interior.Color = 10921638
        oWksht.Cells(1, 1).CurrentRegion.Borders(xlInsideVertical).Weight = xlThin
        oWksht.Cells(1, 1).CurrentRegion.Borders(xlInsideHorizontal).Weight = xlThin
        oWksht.Cells(1, 1).CurrentRegion.BorderAround , xlThin
        oWksht.Range("b:o").EntireColumn.AutoFit
        oWksht.Range("d:d").ColumnWidth = 50
        oWksht.Range("d:d").WrapText = True
        oWksht.Range("y:y").ColumnWidth = 50
        oWksht.Range("AB:AC").ColumnWidth = 50
        oWksht.Range("AB:AC").WrapText = True
    End If
    rs.Close
    Call ColorCodeCapitalisedRejections(oWksht, dtCob)

    Call PrepareSummary(oWkbk, dtCob)

    For Each oWksht In oWkbk.Sheets
        If Left(oWksht.Name, 5) = "Sheet" Then oWksht.Delete
    Next

    Call ProtectWorkbook(True)
    Call UpdateScreen(True)

    Call MsgBox("Export Complete", vbInformation, "IRC Commentary Tool")

exitsub:
    Set rs = Nothing
    Set db = Nothing
    Set oWkbk = Nothing
    Application.DisplayAlerts = True
    Exit Sub
errhandler:
    Call MsgBox("Error: " & Err.Description, vbInformation, "Error")
    Resume exitsub
    Resume

End Sub

Public Sub ColorCodeUncapitalisedRejections(oWksht, dtCob As Date)
    Dim rngData As Range
    Dim rngFilter As Range

    Set rngData = oWksht.UsedRange
    'rngData.AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, Format(dtCob, "dd-mmm-yyyy"))
    rngData.AutoFilter Field:=20, Operator:=xlFilterValues, Criteria1:="<>" & Format(dtCob, "dd-mmm-yyyy")
    rngData.AutoFilter Field:=23, Criteria1:=Array("IN-PROGRESS", "ON HOLD", "OPEN", "="), Operator:=xlFilterValues

    On Error Resume Next

    If Err.Number = 1004 Then
        'Do nothing
    Else
        rngData.Resize(rngData.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Interior.Color = 14408946
    End If
    oWksht.AutoFilterMode = False
    Set rngData = Nothing
End Sub

Public Sub ColorCodeCapitalisedRejections(oWksht, dtCob As Date)
    Dim rngData As Range
    Dim rngFilter As Range

    Set rngData = oWksht.UsedRange
    'rngData.AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, Format(dtCob, "dd-mmm-yyyy"))
    rngData.AutoFilter Field:=26, Operator:=xlFilterValues, Criteria1:="<>" & Format(dtCob, "dd-mmm-yyyy")
    rngData.AutoFilter Field:=27, Criteria1:=Array("IN-PROGRESS", "ON HOLD", "OPEN", "="), Operator:=xlFilterValues
    rngData.AutoFilter Field:=3, Criteria1:="<>CP-VEN"

    On Error Resume Next

    If Err.Number = 1004 Then
        'Do nothing
    Else
        rngData.Resize(rngData.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Interior.Color = 14408946
    End If
    oWksht.AutoFilterMode = False
    Set rngData = Nothing
End Sub

Public Sub PrepareSummary(oWkbk As Workbook, dtCob As Date)
    Dim oWksht As Worksheet

    Set oWksht = oWkbk.Worksheets.Add
    With oWksht
        .Name = "Summary"
        .Cells.Font.Size = 8
        .Cells.Font.Name = "Arial"
        .Cells(2, 1).Value = "COB:"
        .Cells(2, 1).Font.Bold = True
        .Cells(2, 2).Formula = dtCob
        .Cells(2, 2).NumberFormat = "dd/mm/yyyy"
        .Cells(2, 2).HorizontalAlignment = xlLeft
        .Cells(2, 2).Font.Bold = True
    End With

    Call PrepareUncapitalisedSummary(oWksht, oWkbk.Sheets("Uncapitalised Rejections"), dtCob)
    Call PrepareCapitalisedSummary(oWksht, oWkbk.Sheets("Capitalised Rejections"), dtCob)
End Sub

Public Sub SaveReport(oWkbk As Excel.Workbook, dtCob As Date)
    Dim fso As New Scripting.FileSystemObject
    Dim sYear As String
    Dim sMonth As String
    Dim sPath As String

    sPath = ThisWorkbook.Names("rgSavePath").RefersToRange
    sYear = Year(dtCob)
    sMonth = Format(dtCob, "mmm")

    'Create Year Folder
    If Not fso.FolderExists(sPath & "\" & sYear) Then
        Call fso.CreateFolder(sPath & "\" & sYear)
    End If

    'Create Month Folder
    sPath = sPath & "\" & sYear
    If Not fso.FolderExists(sPath & "\" & sMonth) Then
        Call fso.CreateFolder(sPath & "\" & sMonth)
    End If

    'Save File
    sPath = sPath & "\" & sMonth
    oWkbk.SaveAs sPath & "\" & "IRC Material Errors " & Format(dtCob, "yyyymmdd") & ".xlsx"

    oWkbk.Close False

    Set oWkbk = Nothing
End Sub

Public Sub PrepareUncapitalisedSummary(oWkshtSummary As Worksheet, oWkshtData As Worksheet, currCob As Date)
    Dim lRows As Long
    Dim lLastRow As Long
    Dim objSummary As clsUncapitalisedSummary
    Dim objSummary1 As clsUncapitalisedSummary
    Dim dictSummary As New Scripting.Dictionary
    Dim key

    On Error GoTo errhandler

    With oWkshtData
        lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add key:=.Range("S2:S" & lLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("a1").CurrentRegion
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply

        For lRows = 2 To lLastRow
            If .Cells(lRows, Application.Match("COB", .Rows(1), 0)) = currCob Then
                Set objSummary = New clsUncapitalisedSummary
                objSummary.SourceSystem = "VEN"
                objSummary.RejectionReason = getRejectionReason(.Cells(lRows, Application.Match("RejectionReason", .Rows(1), 0)))
                objSummary.BriefDescription = .Cells(lRows, Application.Match("Brief Description", .Rows(1), 0)).Value
                objSummary.BookId = .Cells(lRows, Application.Match("Book Id", .Rows(1), 0)).Value
                objSummary.CountOfId = 1
                objSummary.SumOfNotional = .Cells(lRows, Application.Match("Notional", .Rows(1), 0)).Value
                objSummary.SumOfDDZR = .Cells(lRows, Application.Match("DDZR", .Rows(1), 0)).Value
                objSummary.SumOfAbsoluteDDZR = .Cells(lRows, Application.Match("Absolute DDZR", .Rows(1), 0)).Value
                objSummary.SumOfCR01 = .Cells(lRows, Application.Match("CR01", .Rows(1), 0)).Value
                objSummary.SumOfAbsoluteCR01 = .Cells(lRows, Application.Match("Absolute CR01", .Rows(1), 0)).Value
                key = objSummary.SourceSystem & objSummary.RejectionReason & objSummary.BriefDescription & objSummary.BookId

                If dictSummary.Exists(key) Then
                    Set objSummary1 = dictSummary(key)
                    objSummary1.CountOfId = objSummary1.CountOfId + objSummary.CountOfId
                    objSummary1.SumOfNotional = objSummary1.SumOfNotional + objSummary.SumOfNotional
                    objSummary1.SumOfDDZR = objSummary1.SumOfDDZR + objSummary.SumOfDDZR
                    objSummary1.SumOfAbsoluteDDZR = objSummary1.SumOfAbsoluteDDZR + objSummary.SumOfAbsoluteDDZR
                    objSummary1.SumOfCR01 = objSummary1.SumOfCR01 + objSummary.SumOfCR01
                    objSummary1.SumOfAbsoluteCR01 = objSummary1.SumOfAbsoluteCR01 + objSummary.SumOfAbsoluteCR01
                    Set dictSummary(key) = objSummary1
                Else
                    dictSummary.Add key, objSummary
                End If
            End If
        Next lRows

        .Sort.SortFields.Clear
        .Sort.SortFields.Add key:=.Range("B2:B" & lLastRow), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("a1").CurrentRegion
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With
    If dictSummary.Count > 0 Then
        Call PopulateUncapitalisedHeaders(oWkshtSummary)
        Call RenderUncapitalisedSummary(oWkshtSummary, dictSummary)
    End If

    Exit Sub

errhandler:
    MsgBox Err.Number & " - " & Err.Description
    Exit Sub
    Resume
End Sub

Public Sub PrepareCapitalisedSummary(oWkshtSummary As Worksheet, oWkshtData As Worksheet, currCob As Date)
    Dim lRows As Long
    Dim lLastRow As Long
    Dim objSummary As clsCapitalisedSummary
    Dim objSummary1 As clsCapitalisedSummary
    Dim dictSummary As New Scripting.Dictionary
    Dim key

    On Error GoTo errhandler

    With oWkshtData
        lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Sort.SortFields.Clear
        .Sort.SortFields.Add key:=.Range("B2:B" & lLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add key:=.Range("C2:C" & lLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("a1").CurrentRegion
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply

        For lRows = 2 To lLastRow
            If .Cells(lRows, Application.Match("COB", .Rows(1), 0)) = currCob And _
                .Cells(lRows, Application.Match("Source System", .Rows(1), 0)) <> "CP-VEN" Then
                    Set objSummary = New clsCapitalisedSummary
                    objSummary.SourceSystem = .Cells(lRows, Application.Match("Source System", .Rows(1), 0)).Value
                    objSummary.RejectionReason = getRejectionReason(.Cells(lRows, Application.Match("Reason of Rejection", .Rows(1), 0)))
                    objSummary.BriefDescription = .Cells(lRows, Application.Match("Brief Description", .Rows(1), 0)).Value
                    objSummary.CountOfId = 1
                    objSummary.SumOfMateriality = .Cells(lRows, Application.Match("Materiality", .Rows(1), 0)).Value
                    key = objSummary.SourceSystem & objSummary.RejectionReason & objSummary.BriefDescription

                    If dictSummary.Exists(key) Then
                        Set objSummary1 = dictSummary(key)
                        objSummary1.CountOfId = objSummary1.CountOfId + objSummary.CountOfId
                        objSummary1.SumOfMateriality = objSummary1.SumOfMateriality + objSummary.SumOfMateriality
                        Set dictSummary(key) = objSummary1
                    Else
                        dictSummary.Add key, objSummary
                    End If
            End If
        Next lRows

        .Sort.SortFields.Clear
        .Sort.SortFields.Add key:=.Range("B2:B" & lLastRow), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .Sort.SetRange .Range("a1").CurrentRegion
        .Sort.Header = xlYes
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
    End With

    If dictSummary.Count > 0 Then
        Call PopulateCapitalisedHeaders(oWkshtSummary)
        Call RenderCapitalisedSummary(oWkshtSummary, dictSummary)
    End If

    Exit Sub

errhandler:
    MsgBox Err.Number & " - " & Err.Description
    Exit Sub
    Resume
End Sub

Public Sub PopulateCapitalisedHeaders(oWksht)
    Dim lRow As Long

    lRow = oWksht.Cells(oWksht.Rows.Count, 1).End(xlUp).Row + 2
    With oWksht
        .Cells(lRow, 1).Value = "Capitalised Rejections"
        .Cells(lRow, 1).Font.Bold = True
        .Cells(lRow, 1).Font.Size = 10

        lRow = lRow + 1
        .Cells(lRow, 1).Value = "Source System"
        .Cells(lRow, 2).Value = "Rejection Detail"
        .Cells(lRow, 3).Value = "Brief Description"
        .Cells(lRow, 4).Value = "Count of Id"
        .Cells(lRow, 5).Value = "Sum of Materiality"
        .Rows(lRow).Font.Bold = True
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Interior.Color = 14277081
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).BorderAround , xlThin, , 10921638
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Borders(xlInsideVertical).Weight = xlThin
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Borders(xlInsideVertical).Color = 10921638
    End With
End Sub

Public Sub PopulateUncapitalisedHeaders(oWksht)
    Dim lRow As Long

    lRow = 4
    With oWksht
        .Cells(lRow, 1).Value = "Uncapitalised Rejections"
        .Cells(lRow, 1).Font.Bold = True
        .Cells(lRow, 1).Font.Size = 10

        lRow = lRow + 1
        .Cells(lRow, 1).Value = "Source System"
        .Cells(lRow, 2).Value = "Rejection Detail"
        .Cells(lRow, 3).Value = "Brief Description"
        .Cells(lRow, 4).Value = "Book Id"
        .Cells(lRow, 5).Value = "Count of Id"
        .Cells(lRow, 6).Value = "Sum of Notional"
        .Cells(lRow, 7).Value = "Sum of DDZR"
        .Cells(lRow, 8).Value = "Sum of Absolute DDZR"
        .Cells(lRow, 9).Value = "Sum of CR01"
        .Cells(lRow, 10).Value = "Sum of Absolute CR01"
        .Rows(lRow).Font.Bold = True
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Interior.Color = 14277081
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).BorderAround , xlThin, , 10921638
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Borders(xlInsideVertical).Weight = xlThin
        .Range(oWksht.Cells(lRow, 1), .Cells(lRow, 1).End(xlToRight)).Borders(xlInsideVertical).Color = 10921638
    End With
End Sub

Public Function RenderUncapitalisedSummary(oWksht As Worksheet, dictSummary)
    Dim lRows As Long
    Dim oSummary As clsUncapitalisedSummary
    Dim lHeaderRow As Long
    Dim HeaderRows() As String
    Dim key
    Dim iHR As Long
    Dim sFormula As String

    lRows = 6
    With oWksht
        For Each key In dictSummary
            Set oSummary = dictSummary(key)
            If lRows > 6 Then
                If oWksht.Cells(lHeaderRow, 2).Value = oSummary.RejectionReason Then
                    oWksht.Cells(lRows, 2).Value = ""
                Else
                    iHR = iHR + 1
                    ReDim Preserve HeaderRows(1 To iHR)
                    HeaderRows(iHR) = lRows
                    .Cells(lRows, 2).Value = oWksht.Cells(lHeaderRow, 2).Value & " Total"
                    .Cells(lRows, 5).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 6).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 7).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 8).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 9).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 10).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Range(.Cells(lRows, 2), .Cells(lRows, 10)).Interior.Color = 14610923
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeTop).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeRight).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeLeft).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeBottom).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlInsideVertical).Weight = xlThin
                    .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlInsideVertical).Color = 10921638
                    .Range(.Cells(lRows, 2), .Cells(lRows, 10)).Borders(xlInsideVertical).Weight = xlThin
                    .Range(.Cells(lRows, 2), .Cells(lRows, 10)).Font.Bold = True
                    lRows = lRows + 1
                    .Cells(lRows, 2).Value = oSummary.RejectionReason
                    lHeaderRow = lRows
                End If
                .Cells(lRows, 3).Value = oSummary.BriefDescription
                .Cells(lRows, 4).Value = oSummary.BookId
                .Cells(lRows, 5).Value = oSummary.CountOfId
                .Cells(lRows, 6).Value = oSummary.SumOfNotional
                .Cells(lRows, 7).Value = oSummary.SumOfDDZR
                .Cells(lRows, 8).Value = oSummary.SumOfAbsoluteDDZR
                .Cells(lRows, 9).Value = oSummary.SumOfCR01
                .Cells(lRows, 10).Value = oSummary.SumOfAbsoluteCR01
            Else
                lHeaderRow = 6
                .Cells(lRows, 1).Value = oSummary.SourceSystem
                .Cells(lRows, 2).Value = oSummary.RejectionReason
                .Cells(lRows, 3).Value = oSummary.BriefDescription
                .Cells(lRows, 4).Value = oSummary.BookId
                .Cells(lRows, 5).Value = oSummary.CountOfId
                .Cells(lRows, 6).Value = oSummary.SumOfNotional
                .Cells(lRows, 7).Value = oSummary.SumOfDDZR
                .Cells(lRows, 8).Value = oSummary.SumOfAbsoluteDDZR
                .Cells(lRows, 9).Value = oSummary.SumOfCR01
                .Cells(lRows, 10).Value = oSummary.SumOfAbsoluteCR01
            End If
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Interior.Color = 15921906
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeTop).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeRight).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeLeft).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlEdgeBottom).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlInsideVertical).Weight = xlThin
            .Range(.Cells(lRows, 1), .Cells(lRows, 10)).Borders(xlInsideVertical).Color = 10921638
            lRows = lRows + 1
        Next key
    End With
    iHR = iHR + 1
    ReDim Preserve HeaderRows(1 To iHR)
    HeaderRows(iHR) = lRows
    oWksht.Cells(lRows, 2).Value = oWksht.Cells(lHeaderRow, 2).Value & " Total"
    oWksht.Cells(lRows, 5).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 6).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 7).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 8).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 9).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 10).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Range(oWksht.Cells(lRows, 2), oWksht.Cells(lRows, 10)).Interior.Color = 14610923
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeTop).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeRight).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeLeft).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeBottom).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlInsideVertical).Weight = xlThin
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlInsideVertical).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Font.Bold = True
    lRows = lRows + 1
    oWksht.Cells(lRows, 1).Value = "Grand Total"
    '1
    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+e" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 5).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+f" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 6).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+g" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 7).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+h" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 8).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+i" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 9).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+j" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 10).Formula = sFormula
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Interior.Color = 12379352
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeTop).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeRight).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeLeft).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlEdgeBottom).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlInsideVertical).Weight = xlThin
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Borders(xlInsideVertical).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, 10)).Font.Bold = True

    oWksht.Cells.EntireColumn.AutoFit
    oWksht.Columns(1).ColumnWidth = 12
    oWksht.Columns(2).ColumnWidth = 42
    oWksht.Columns("E:F").ColumnWidth = 15
    oWksht.Columns(3).ColumnWidth = 60
    oWksht.Rows.RowHeight = 22
    oWksht.Range("B:C").EntireColumn.WrapText = True
    oWksht.Range("F:J").NumberFormat = "#,##0"

End Function

Public Function RenderCapitalisedSummary(oWksht As Worksheet, dictSummary)
    Dim lRows As Long
    Dim oSummary As clsCapitalisedSummary
    Dim lHeaderRow As Long
    Dim HeaderRows() As String
    Dim key
    Dim iHR As Long
    Dim sFormula As String
    Dim lFirstRow As Long
    Dim lColCount As Long

    lFirstRow = oWksht.Cells(oWksht.Rows.Count, 1).End(xlUp).Row + 1
    lColCount = 5
    lRows = lFirstRow
    With oWksht
        For Each key In dictSummary
            Set oSummary = dictSummary(key)
            If lRows > lFirstRow Then
                If oWksht.Cells(lHeaderRow, 1).Value = oSummary.SourceSystem Then
                    oWksht.Cells(lRows, 1).Value = ""
                Else
                    iHR = iHR + 1
                    ReDim Preserve HeaderRows(1 To iHR)
                    HeaderRows(iHR) = lRows
                    .Cells(lRows, 1).Value = oWksht.Cells(lHeaderRow, 1).Value & " Total"
                    .Cells(lRows, 4).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Cells(lRows, 5).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Interior.Color = 14610923
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeTop).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeRight).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeLeft).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeBottom).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlInsideVertical).Weight = xlThin
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlInsideVertical).Color = 10921638
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlInsideVertical).Weight = xlThin
                    .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Font.Bold = True
                    lRows = lRows + 1
                    .Cells(lRows, 1).Value = oSummary.SourceSystem
                    lHeaderRow = lRows
                End If
                .Cells(lRows, 2).Value = oSummary.RejectionReason
                .Cells(lRows, 3).Value = oSummary.BriefDescription
                .Cells(lRows, 4).Value = oSummary.CountOfId
                .Cells(lRows, 5).Value = oSummary.SumOfMateriality
            Else
                lHeaderRow = lFirstRow
                .Cells(lRows, 1).Value = oSummary.SourceSystem
                .Cells(lRows, 2).Value = oSummary.RejectionReason
                .Cells(lRows, 3).Value = oSummary.BriefDescription
                .Cells(lRows, 4).Value = oSummary.CountOfId
                .Cells(lRows, 5).Value = oSummary.SumOfMateriality
            End If
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Interior.Color = 15921906
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeTop).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeRight).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeLeft).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlEdgeBottom).Color = 10921638
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlInsideVertical).Weight = xlThin
            .Range(.Cells(lRows, 1), .Cells(lRows, lColCount)).Borders(xlInsideVertical).Color = 10921638
            .Cells(lRows, 5).NumberFormat = "#,##0"
            lRows = lRows + 1
        Next key
    End With
    iHR = iHR + 1
    ReDim Preserve HeaderRows(1 To iHR)
    HeaderRows(iHR) = lRows
    oWksht.Cells(lRows, 1).Value = oWksht.Cells(lHeaderRow, 1).Value & " Total"
    oWksht.Cells(lRows, 4).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Cells(lRows, 5).FormulaR1C1 = "=SUM(R[" & lHeaderRow - lRows & "]C:R[-1]C)"
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Interior.Color = 14610923
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeTop).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeRight).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeLeft).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeBottom).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlInsideVertical).Weight = xlThin
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlInsideVertical).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Font.Bold = True
    oWksht.Cells(lRows, 5).NumberFormat = "#,##0"
    lRows = lRows + 1
    oWksht.Cells(lRows, 1).Value = "Grand Total"

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+D" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 4).Formula = sFormula

    sFormula = "="
    For iHR = 1 To UBound(HeaderRows)
        sFormula = sFormula & "+E" & HeaderRows(iHR)
    Next iHR
    oWksht.Cells(lRows, 5).Formula = sFormula

    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Interior.Color = 12379352
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeTop).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeRight).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeLeft).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlEdgeBottom).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlInsideVertical).Weight = xlThin
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Borders(xlInsideVertical).Color = 10921638
    oWksht.Range(oWksht.Cells(lRows, 1), oWksht.Cells(lRows, lColCount)).Font.Bold = True
End Function

Public Function getRejectionReason(sReason As String)
    Dim vData
    Dim strOut As String
    Dim i As Long
    Dim iStart As Long
    Dim dictUnique As Scripting.Dictionary
    Dim sFieldName As String
    Dim sErrorDesc As String

    If sReason = "" Then Exit Function

    vData = Split(sReason, "]")
    Set dictUnique = New Scripting.Dictionary
    For i = 0 To UBound(vData) - 1
        If i = 0 Then
            sFieldName = Mid(vData(i), 2, InStr(vData(i), "-") - 2)
        Else
            sFieldName = Mid(vData(i), 3, InStr(vData(i), "-") - 2)
        End If
        sErrorDesc = Mid(vData(i), InStr(vData(i), "-") + 1)
        If sFieldName Like "stgValueChange*" Then
            sErrorDesc = "Error in Reval Ladders"
            getRejectionReason = "Error in Reval Ladders"
            Exit Function
        End If
        If Not dictUnique.Exists(sErrorDesc) Then
            dictUnique.Add sErrorDesc, sErrorDesc
        End If
    Next i

    Call SortDictionary(dictUnique)

    strOut = ""
    For i = 0 To dictUnique.Count - 1
        strOut = strOut & dictUnique.Items(i) & vbCrLf
    Next i
    strOut = Left(strOut, Len(strOut) - 2)

    getRejectionReason = strOut
End Function


merge from develop


In Gradle there are 2 phases for any build process, Configuration and Execution. All tasks are always been configured on every build, but only some of them are really executed as part of the Execution phase. The **<<** or **doLast** are used to run something at the Execution phase. The task of type Copy does not always execute the tarTree unarchive command. Hence configured copy into doLast section or can use << to the task definition as well to execute on every run.


надо было проверить, помещаются ли оба дома на одном участке, а не каждый по отдельности. Иначе смысл вводить два дома, если можно было бы вводить параметры одного дома, но несколько раз


Why not full case sensitivity by default? As you have not implemented a FAT to btrfs converter, no compatibility issues can arise from full case sensitivity.


@ctf0 Look good!


лучше сразу инициализировать переменные, да и потом, в твоем случае можно было сделать сразу
return b * b - 4 * a * c;


In the meantime you could move the Moditect plugin to your release profile as a quick fix.


Tried to use [**Gradle Spawn Plugin**](https://github.com/marc0der/gradle-spawn-plugin), but the SpawnProcessTask was not spawn another process from the current gradle process.


если дискриминант отрицательный, то и нет смысла дальше выполнять программу, делаешь сразу выход из метода main - return например, а лучше просто в if (d > 0) и если положительный, то засунуть дальнейшее вычисление задачи


Englischer Originalstring:
"This theme isn't compatible with the version of MIUI installed on your device. Some parts of MIUI might not work properly if you apply this theme."
Am besten das 10 komplett weglassen, dann passt es für jede neue MIUI Version. 👍


код не отформатирован


во всех функциях своих ты каждый раз вычисляешь заново дискриминант и передаешь 3 параметра. А можно было передавать уже вычисленный в самом начале дискриминант. Иначе не оптимально написана программа


используй лучше более короткие записи: +=, /=


функция main должна быть вверху класса, класс должен читаться как книга


Specify argument [zipkin.collector.kafka.bootstrap-servers](https://github.com/openzipkin/zipkin/tree/master/zipkin-autoconfigure/collector-kafka) for Zipkin server to connect to Kafka message broker.


yay awesome to have some of my code in the comunity :)


зачем объявлять переменную за циклов while. Тем самым увеличиваешь область видимости ее, так делать плохо, область видимости должна быть как можно меньше, поэтому помещай ее в while


this code will not pass all the test cases.


среднее кол-во осадков надо хранить в double, иначе потеряешь вещественную часть


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


U ovom fajlu ima dosta izmena koje ne znam kako su se uvukle, mozda imas kod kuce drugaciju verziju Laravel-a ili tako nesto. 🤷♀


```
#Downtiser
def add(a,b,f):
    return f(a)+f(b)

print(add(-3,-4,abs))  #将函数作为参数传入另一个函数
```


free comment


делать отступ в одну строку между классом и функцией, а также между функциями


не оставлять отступ в первой строчке метода


все надо выносить в функции. Такой код просто нечитабельный


расчет высокостного года неверный, мы же писали с вами функцию, вот ее и надо было использовать


код не отформатирован, использовать Ctrl + Alt + L перед коммитом


oo_boiler_refactor (drewyh) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1687 of 1687 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-40.01%25-green.png)


Source: https://github.com/bitcoin/bitcoin/commit/071c95570b8e2ee5c2a4aed8b86b9b14f8e75578#diff-b2bb174788c7409b671c46ccc86034bdL198


修正了http协议不安全导致的css无法成功导入引发的iconfont不显示的问题


how can i extract for example an ID from the json response ?


Perhaps using `relLangURL` instead could solve the problem?

It seems that when baseURL is a root url, the menu should be set like this (without `zh-cn`):

```
 [[languages.zh-cn.menu.main]]
   name = "归档"
   weight = 20
   identifier = "archives"
   url = "/post/"
```

Otherwise it is possible to get `/zh-cn/zh-cn/`


Done


How do I do that, and why would it fix the issue? Sorry, I don't know even the most basic stuff about Maven. It drives me nuts with its complexity and brittleness every time I have to touch that confounded pom file.


совсем не хочешь выносить код в функции, ужасно все смотрится, не ленись давай, мы не зря их проходили!


дублируешь вывод сообщения 10 раз,  не хорошо это


ну, тыт вообще не круто, смысл задачи как раз-таки и состоял в создании 3 функций, даже написано было каких, а ты даже здесь не захотел их создавать и все наклепал в main :(


these configurations are independent of the environment


смысл объявлять все переменные так высоко без инициализации? Они рассчитываются один раз у тебя почти все, область видимости должна быть как можно меньше у переменных. Лучше так:
double a = scanner.nextDouble();


не надо брать в скобочки (n % 10)


jjooop


просто sout(sum), не надо ненужной конкотенации со строкой " "


форматируем код!


ненужные пропуски строк


названия переменным давать говорящие, иначе ничего не понятно!


не видел решение фибоначи с рекурсией и решение 3 задачи


Thiếu last update. Khi tạo thì giá trị insertDate với lastUpdate bằng nhau


классы начинаются с большой буквы, читаем код конвеншен


делать отступ в одну строку между классом и функцией, а также между функциями


не надо делать отступ в первой строчке функции


Puzzle `565-edf33878` disappeared from [`src/main/java/com/zerocracy/pmo/banks/FkBank.java`](https://github.com/zerocracy/farm/blob/master/src/main/java/com/zerocracy/pmo/banks/FkBank.java), that's why I closed #1069. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.


Puzzle `1069-c7edbb2e` discovered in   [`src/main/java/com/zerocracy/pmo/banks/FkBank.java`](  https://github.com/zerocracy/farm/blob/master/src/main/java/com/zerocracy/pmo/banks/FkBank.java)   and submitted as #1428. Please, remember that the puzzle was not   necessarily added in this particular commit. Maybe it was added earlier, but   we discovered it only now.


надо было просто написать функцию, которая возвращает true-false, как мы писали на занятии, иначе плохо читается код


так же не надо делать return,  у тебя и так никуда программа дальше не пойдет после захода в if


код не отформатирован, использовать Ctrl + Alt + L перед коммитом


стараться придерживаться того, чтобы из функции был только один return


hi


много лишних отступов после метода


else не нужно здесь, бессмысленная строчка кода, ничего не делающая


то же, что и с year = year, нет смысла


`if  not unitId or  (not UNIT_HEALTH_FITLER[unitId] and not Ovale.db.profile.apparence.fullAuraScan) then`
Hi! IMHO health scan should also use "fullaura scan" option.


Oh sorry I didn't noticed that.


сразу return делаешь:
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;


давай названия переменным нормальные, чтобы было понятно, что там лежит


нет default секции, а должен быть после всех case!


нет смысла в return


Going to have to push back on this. This approach is not compatible with Mongo, or similar NoSQL databases.

If the purpose of this was to avoid the multiple config bug, this issue has already been fixed. Existing multiple configs should be cleaned up with a separate tool.


такие простые конструкции можно просто делать в одну строчку return number > 0;


достаточно вычислить дискриминант один раз, иначе не оптимално его рассчитывать каждый раз


с return ты понял в таких ситуациях))


лучше использовать более компактный вариант с +=, %= и т.д.


форматируем код везде


c названием переменных все так же грустно


Hello sar, please check properly. https://github.com/kuntao-development/android_device_lenovo_kuntao/blob/lineage-15.1/BoardConfig.mk#L124


Hi Erwan,

Why did you remove the batch_size option? It can't hurt
(Anyway I think the size by default is 1 MB).

MinouHub


с рекурсией не разобрался как я понял


ha


> When dealing with bash, the test command has syntactic sugar, that's the [ ... ]. When you use the chaining operator, &&, you perform the second command upon successful completion of the first, in this case, the first test command. When you do [ ... ] && [ ... ] you're launching the test command twice, whereas [ ... -a ... ] launches it once, and is equivalent to test ... -a .... This wasn't too much of a big deal, I just did it that way because I used to test the script on my Raspberry Pi, and I tried optimizing it a bit because it used to run very slowly.

Yeah I know, but the reason why I have choosen` &&` instead of` -a` is [here](https://github.com/koalaman/shellcheck/wiki/SC2166). I didn't test speed but `-a` is not well defined.

> I tested the script on Kali, which is the primary operating system I provide support for, and the script failed to give the xterm a proper size. It was as small as the xterm window could possibly get, which means it failed to work. If it worked on Debian, it should've worked on Kali.

Yeah, did you already restore this. If not I could do that.

> The control character you were using with printf wasn't working on Kali, and the text kept shifting causing the banner to print out distorted, shifting all the columns after it.

Intresting on arch (using the urxvt terminal) there are no issues.

> The second reason, which I didn't mention because I didn't think it'd be necessary, was that some conditions are explicitly checking for NOT 1, and you went and replace all the -1 making them 1, which would trigger the wrong sequences.

I noticed that afterwards.


Puzzle `1015-7cbe8f93` disappeared from [`src/test/resources/com/zerocracy/bundles/assigns_performer_pr/_after.groovy`](https://github.com/zerocracy/farm/blob/master/src/test/resources/com/zerocracy/bundles/assigns_performer_pr/_after.groovy), that's why I closed #1163. Please, remember that the puzzle was not necessarily removed in this particular commit. Maybe it happened earlier, but we discovered this fact only now.


название пакетов с маленькой буквы, читаем код конвеншен


xfhc


не надо делать отступ в первой строчке метода


сложно написано


комментарии можно оставлять только над классом или методом, в коде их быть не должно


можно просто сделать return ( year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0, чтобы не усложнять код


does this mean there is a .deb package coming? i can't compile for some reason…


нечитабельно, 10 ра повторяется одно и тоже сообщение dome vmeschatca, дублируешь код


## This is a markdown file


text file


else if пишется в одну строчку, смотри как мы на занятиях это делали


не оптимально написано, вызывается расчет дискриминанта много раз, хотя достаточно 1 раз вызвать и присвоить переменной это значение


просто return сchislo == 0; оно ведь и так возвращает булеан, не надо дополнительно что-то писать


не надо писать название на русском языке латиницей, смотрим как переводится на английский это


Non pas voulu, c est le systeme qui a repris le nom du site quand j ai fait le pdf.
Je push.


не скомпилируется код даже, ты не указан тип для своей переменной chisloFiboN


плохо писать код, который требует комментариев, следовательно, можно написать проще)


fasdfa


switch должен иметь по код конвешену default контструкцию после всех case


делать отступ в одну строку между классом и функцией, а также между функциями


merged.


discriminant вызывается  очень часто, не оптимально, один раз вызвать и хранить в переменной


@frankmayer, regarding your latest comment. Thanks for your feedback: it took some time but this is now fixed in the devel documentation. thanks again


зачем объявлять переменную за циклов for. Тем самым увеличиваешь область видимости ее, так делать плохо, область видимости должна быть как можно меньше, поэтому помещай ее в foir


потеряешь вещественную часть при делении, приводи к double


смысла нет присваивать значение, если оно =, поэтому тут лучше использовать строго больше >


Because it wouldn't run on CI, anyway, I'll try and hijack the wife's Chromebook this afternoon.


@baxandrei

Ah ok, that's not a bug, just how profile fields are checked.

I have changed this in e442f2af82a6e4575670798f6817e16b8ae667ef


basic data updated


camel case для названий пакетов не распространяется


не надо делать отступ в первой строчке функции


Hi @tlimbani , is the **dietSaltFluid** variable defined twice here? Maybe a duplicate? Is it possible to use concept UUIDs as oppose to concept IDs? Thanks.


printDay название не совсем корректно, оно не печатает дату, а формирует строку, название функции должно отражать то, что действительно она делает


oo_boiler_refactor (drewyh) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-IntegrationCoverage-Debug: OK (2315 of 2315 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-71.2%25-green.png)


комментарии в коде можно оставлять только перед методом или перед классом, в коде их быть не должно


располагать функции последовательно друг за другом, как будто это чтение страницы книги, а то isLongMonth стоит перед printDay, хотя printDay ее вызывает, а не наоборот


*This document is Developed by Nishant Maheshwari for Sorting Arrey*


oo_boiler_refactor (drewyh) - x86_64-Linux-Ubuntu-14.04-custom_check: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


survient <notifications@github.com> writes:

> I am having issues compiling on Fedora 28 with this latest commit, the
> previous commit of 6cdb4962597e0da4d472dc11b1b88aeceac35635 works
> fine. Errors below:

I think this is the same issue that Kevin noticed with wrong order of
includes. Could you please try the latest commit and see if that works? :)


код не отформатирован, использовать Ctrl + Alt + L перед коммитом


даже если одна строчка в else - все равно ставим скобочки


название переменных с маленькой буквы


else if конструкция пишется в одну строку


исключительные ситуации нужно обрабатывать в конце


![Uploading JavaSE35.png…]()
![Uploading JavaSE36.png…]()
![Uploading JavaSE37.png…]()
![Uploading JavaSE38.png…]()
![Uploading JavaSE39.png…]()
![Uploading JavaSE40.png…]()
![Uploading JavaSE41.png…]()
![Uploading JavaSE42.png…]()


this of course should be bcrypt.hash(req.body.password, ...


в общем, ты понял, что комментариев таких быть не должно в коде)


у тебя оба случая - рекурсия))


не оставляй столько ненужных пустых строк после класса


else не уместен здесь, просто return, не усложняй


вещественная часть пропадет, приводить к double


there's a bug in this commit. See https://github.com/e4rache/nodeMongoShop/commit/5f9d5351f326d483ae24b3cdb9fe98bed9452c65#diff-25af5654f99c31ad56b798603bd0d519


делать отступ в одну строку между классом и функцией, а также между функциями


arquivos adicionados


названия пакетов не надо в camel case, читаем код конвеншен


комментарии в коде можно оставлять только перед методом или перед классом, в коде их быть не должно


исключительные ситуации лучше обработать один раз в начале метода,  а не размазывать по всему алгоритму, чище и читабельнее код


просто month++


@datahaki @claudioglasses I think I have an idea what is going wrong there (but didn't have time to test it). The SanFrancisco scenario contains the "linkSpeedData" file, while the others don't. And Amodeus right now USES the linkSpeedData if the file is present and it DOESN'T USE linkSpeedData if the file does not exist. Now, if San Francisco is run first, the linkSpeedData file is unpacked into the working directory. If Tel Aviv is run afterwards it wouldn't create such a file and hence not use it. However, because the file still exists from San Francisco, it is probably loaded in Tel Aviv / Santiago, which then leads to the error. So simple solution might just be to properly clean up the files after running one scenario. But not 100% sure.


Are you releasing a kernel with these changes somewhere on the web is it for your own usage?


Docker bases cache on a string match to the `RUN` command, thus even if `master` has been updated, the command `RUN curl -fsSL https://api.github.com/repos/nextstrain/augur/tarball/master` won't break the cache. According to this: https://github.com/moby/moby/issues/22832, the best current way to do this is through `ARG` variables that differ at runtime.


Another test commit


and for people who already have an account? :)


Thank you HazeDumper for Updating the Correct Offsets


ok convinced


This is OK - let's put this one back


int CSU_auto2App::ExecuteOutsideEditor()
{

	STARTUPINFO sinfo;
	//CString szCmdLine;
	//szCmdLine.Format("c:\\Windows\\notepad.exe c:\\help.txt");

	LPTSTR szCmdline=_tcsdup(TEXT("C:\\Program Files\\Canon\\MF Scan Utility\\MFSCANUTILITY.exe")); //SU 위치 저장

	if(IsOutsideEditorRunning())
		return -2;
	memset(&sinfo, 0x00, sizeof(sinfo));

	//if(CreateProcess(NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &sinfo, &pinfo))
	if(CreateProcess(NULL, szCmdline, NULL, NULL, FALSE, 0, NULL, NULL, &sinfo, &pinfo))
		return -1;

	else
		return 0;

}


visual c++ 2010 에서는 형식이 조금 다름


@TurboProgramming Yes, this works in the latest version as well if you use `dev-master`. Whenever you are testing code that includes LESS syntax, use the admin interface to add the styles instead of the DevTools.


develop (Myoldmopar) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (2339 of 2339 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Ditto, I'm seeing the following on 2 seperate LibreNMS servers.
This has rendered the Web UI unusable, seems the poller is still working though

```
PHP message: [2018-07-16 09:45:17] production.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Class 'Wpb\String_Blade_Compiler\ViewServiceProvider' not found in /mnt/disk1/librenms/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:208
Stack trace:
#0 /mnt/disk1/librenms/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php(144): Illuminate\Foundation\ProviderRepository->createProvider('Wpb\\String_Blad...')
#1 /mnt/disk1/librenms/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php(61): Illuminate\Foundation\ProviderRepository->compileManifest(Array)
#2 /mnt/disk1/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(549): Illuminate\Foundation\ProviderRepository->load(Array)
#3 /mnt/disk1/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php(17): Illuminate\Foundation\Application->registerConfiguredProviders()
#4 /mnt/disk1/librenms/vendor/laravel/framework/src/Illumi" while reading response header from upstream, client: 172.20.0.167, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "nms1"

```


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


develop (Myoldmopar) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


Se ponen en minúscula tal y como esta en formulario


Entrega


yes brother


## Joker
Este es mi villano favorito :star:


how are you


Make sure you give each of your selects a name attribute.    For example the dose interval select could have a name like doseInterval.   Also, your checkboxes should each have a unique name.    So the height checkbox could be eventHeight.   I added event to the front of it so that you know it's related to events.   BMI could be eventBMI to follow that pattern.

I like the reset button.    You don't need a save and submit.    It should be one or the other (I like your save button better because it has the onclick handlers which we can define next)


## Notas
Entiendo porque agregaste a Deadshot, lo necesitamos


I feel so much better that others are here stalking Brian's Nix config.


Deletions is this file are the answer on why it is strongly recommended to revember Math basics )


Cheers


Deletions in this file are the answer on why it is strongly recommended to remember Math basics )


 更正：+  echo " $0 alaw data/train_si284 data/train_si284p"
由於是提示暫不影響scrip


develop (Myoldmopar) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: OK (1694 of 1694 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-40.03%25-green.png)


Build version: __`0.10.0-renovate/node-8.11.342`__ :crossed_fingers: [`renovate/node-8.11`](https://github.com/streamich/ci-scripts/tree/renovate/node-8.11) on [*Travis*](https://travis-ci.org/streamich/ci-scripts/builds/404260129) :tada:


I believe this is supposed to read `state.textureTiles[1].addr`.


Thanks a lot.


unparam: could not import github.com/disiqueira/ultraslackbot/pkg/command/random (cannot find package "github.com/disiqueira/ultraslackbot/pkg/command/random" in any of:


unconvert: could not import github.com/disiqueira/ultraslackbot/pkg/command/random (cannot find package "github.com/disiqueira/ultraslackbot/pkg/command/random" in any of:


go vet: cannot find package "github.com/disiqueira/ultraslackbot/pkg/command/random" in any of:


golint: exported function NewRandomCommand should have comment or be unexported


Added Jeffery Morgan's part 2.


Compiling...


Error: Your code is bad.
Did not compile.


It uses psc-package instead, which is the way forward AFAIK?


Shorter lines, easier to read...excellent! What's next to get this pushed to the live site?


seu porcão


How do i do this?

On Monday, July 16, 2018, InitialFail <notifications@github.com> wrote:

> If by "last part" you mean opening in separate Chrome user data
> directories, then just launch Chrome multiple times with different
> --user-data-dir values like --user-data-dir=/tmp/profile01,
> --user-data-dir=/tmp/profile02, --user-data-dir=/tmp/profile03, etc. If
> you're still confused, you should learn about the command line.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/InitialFail/driftin-bots/commit/12bfa4aa0dd04d4634687aa8703f777bdc07725e#commitcomment-29713499>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AnUi7y5HZPKOKtonRQavgOaQ5KXXw-wQks5uG3UzgaJpZM4VPzZi>
> .
>


Created multidev environment [gk-8#ci-159](https://dashboard.pantheon.io/sites/5cbd78f8-3a96-492a-beb0-f892421708d8#ci-159).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-159-gk-8.pantheonsite.io/)


"seed growth algorithm"


881c4f05dae86d897262c8845fb36a16f4a8e02e
https://github.com/saadeh73/facedroid/blob/master/alart.zip


A splay tree is a self-adjusting binary search tree with the additional property that recently accessed elements are quick to access again.


q-q


1.3	Scope of the system
	We aim to build the system to monitor a vehicle driver’s heart beat and breathing rate simultaneously while driving. If the measured values are abnormal, the system will fire an alarm for a certain period of time and waits for driver’s response. If no response performed until the alarm goes off on its own, the system will enters auto-parking phase and sends driver’s status and location to nearest hospital.


use hashset to deduplicate


This was a major mistake. The rule for this project ought to be that a commit (or PR) either changes *only* the version, or it changes anything else at all -- never both.


Glad to see this critical work make it into main! Promotion inc (never mind faster loading times)!


Dear @Infernus101:
I regret to inform you that the release you submitted, named "**KitUI**" (v1.3.0), for the project [KitUI](https://poggit.pmmp.io/ci/Infernus101/KitUI/KitUI) on 2018-07-15T06:59:57.000Z, has been rejected.

Plugins cannot yet claim compatibility with 4.0.0.

Please resolve the issues listed above and submit the updated plugin again.

> Note: This comment is created here because this is the last commit when the released build was created.

> via Poggit (@poggit-bot)


Why does this divide by `3`? Shouldn't it divide by `max-secs` to get the iters/sec?


正则表达式


> Version number updated: 2.4.4

- Introduced options to fix SteamCMD and Unturned.
   - The SteamCMD process now assists with common errors that take place with logging in. _It's double the length of code._
   - The Unturned process now actually saves the type of server.
- I found a bug that stopped the server start function from ever working and squashed it.
- The settings menu is fully functioning.
- The Help me host menu is working _I think :?_


![](https://github.trello.services/images/mini-trello-icon.png) [Код: отрефакторить кусок кода с обработкой SystemType и объектов.](https://trello.com/c/gP7bHxId/56-%D0%BA%D0%BE%D0%B4-%D0%BE%D1%82%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D1%82%D1%8C-%D0%BA%D1%83%D1%81%D0%BE%D0%BA-%D0%BA%D0%BE%D0%B4%D0%B0-%D1%81-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%BE%D0%B9-systemtype-%D0%B8-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2)


HelloWorld


Hello.This is not released with own usage.


I think I've got the updates right in v5.


@sukhrajghuman These needed to be dependencies


Is there any possibility to change this? Gilneas is pretty much a mess right now, so can we make worgens start on stormwind with his racials already learned? (Until Gilneas is on a completable state of course)


Collision 744.12~744.18


changed file name


hll


@Etaglibash amigo mio es que a mi me sale que ya son etiquetas viejas, yo solo me guió por el reporte de traducción y por el repositorio de los Ruso https://github.com/Ludeon/RimWorld-ru y este otro https://github.com/RimWorld-zh/RimWorld-English  nose que podría ser el inconveniente, tal vez la versión de tu rimworld por que desde la 1953 cambiaron esas etiquetas y ahora mismo si pones esas salen los errores en el reporte de traducción, nose si te has fijado pero ahora ya estamos en la 1964 y todo funciona así como esta.


>if($sender->hasPermission('fly.command') == false or $sender->isOp() == false){...

In English this reads:

>If the sender does not have the permission 'fly.command' *OR* the sender is not Op, then no fly allowed.

What you want is:

>If the sender has the permission 'fly.command' *OR* the sender is Op, then fly allowed.


![gotomeeting 003](https://user-images.githubusercontent.com/41133200/42740604-7ca6e36c-886f-11e8-8cb2-3a1a2ca5c7f1.png)


a


If 2700 is the correct number, then the numbers below should also be adjusted appropriately to make them consistent.
I.e. if 1/16 microstepping requires 2700steps/mm then the same setup with 1/8 microstepping needs only half of that -> 2700/2=1350, not 1200.


Updated to newest icons


No tag and not released?


![](https://github.trello.services/images/mini-trello-icon.png) [Encryption key not serializable.](https://trello.com/c/EEIceEdS/7-encryption-key-not-serializable)


Collision 855.14~855.16


merge


@cemo You can run [pebble-performance-tests](https://github.com/PebbleTemplates/pebble-performance-test) by yourself to see it. Not a big improvement but it's better than nothing. #348, #350, #357 for example


will probably want the odometer as a ground truth for speed, IMU only gets acceleration & will drift


@Etaglibash  sera que podrás mandarme un reporte de traducción así mismo como esta el código y en que versión esta tu juego?, buscare donde esta el error, para ver cuales cambios dejar.


![](https://github.trello.services/images/mini-trello-icon.png) [Планеты: сделать первичную генерацию планет (имя, размер, объект? (крутящийся шарик с рандомной текстурой), система-хозяин.](https://trello.com/c/VhpDS4WO/21-%D0%BF%D0%BB%D0%B0%D0%BD%D0%B5%D1%82%D1%8B-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B2%D0%B8%D1%87%D0%BD%D1%83%D1%8E-%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8E-%D0%BF%D0%BB%D0%B0%D0%BD%D0%B5%D1%82-%D0%B8%D0%BC%D1%8F-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-%D0%BA%D1%80%D1%83%D1%82%D1%8F%D1%89%D0%B8%D0%B9%D1%81%D1%8F-%D1%88%D0%B0%D1%80%D0%B8%D0%BA-%D1%81-%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B9-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80%D0%BE%D0%B9-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D1%85%D0%BE%D0%B7%D1%8F%D0%B8%D0%BD)


Apparently https://github.com/css/csso/tree/master/test/fixture/compress just deletes them (see the bad declaration files), but not sure if we want to go that way.


kc


Fixed bug #17 .


If 2 instances of this contract are deployed, the same arguments will yield the same hash. Opening the door to potential rainbow attack.
How can you prevent that?


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


eigen_HBIRE (mbadams5) - x86_64-Linux-Ubuntu-14.04-custom_check: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


Putra


inputLine


So here you disclose the passwords but allow their reuse because you zero out `ethFunds`.


[R/berekenLSVIbasis.R:264:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/berekenLSVIbasis.R#L264) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>        .data$Habitattype,   #en hier zouden extra gegevens uit Data_habitat moeten toegevoegd worden
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/combinerenVoorwaarden.R:31:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/combinerenVoorwaarden.R#L31) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog testen of Formule bestaat uit EN, OF, haakjes en VoorwaardeID's (en evt. andere tekens die logische berekening toelaten)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/deselecteerKenmerkenInOpname.R:45:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/deselecteerKenmerkenInOpname.R#L45) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>      #Hier moet nog toegevoegd worden dat ofwel de soorten, ofwel de subsoorten gewist moeten worden al naargelang de soorten zelf in de kenmerkenlijst staan (zie berekenAantalSoorten en selecteerSoortenInOpname)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_soortenKenmerken.R:96:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_soortenKenmerken.R#L96) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    Kenmerken <- Data_soortenKenmerken #naamsverandering is omdat code verplaatst is
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_soortenKenmerken.R:109:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_soortenKenmerken.R#L109) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande code mag weg zodra Gert deze Canonicalname toegevoegd heeft aan de databank
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_voorwaarden.R:47:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_voorwaarden.R#L47) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #misschien best ook testen dat die indicator-criterium-combinatie in de databank voorkomt?  En of deze voor dat habitattype voorkomt, maar dat best verderop doen
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_voorwaarden.R:48:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_voorwaarden.R#L48) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #Voorwaarde ook verplichten?  Anders wel testen of het ok is als het aanwezig is.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_aantal.R:116:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_aantal.R#L116) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>setMethod(           #bij deze methode nog rekening houden met eventuele dubbels in de soortenlijst!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/selecteerKenmerkenInOpname.R:45:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/selecteerKenmerkenInOpname.R#L45) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>      #Hier moet nog toegevoegd worden dat ofwel de soorten, ofwel de subsoorten gewist moeten worden al naargelang de soorten zelf in de kenmerkenlijst staan (zie berekenAantalSoorten en selecteerSoortenInOpname)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/zzz.R:31:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/zzz.R#L31) *warning:* **no visible binding for global variable 'ConnectiePool'**
```r
<U+200B>  poolClose(ConnectiePool)
            ^~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:26:3:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L26) *style:* **Commented code should be removed.**
```r
<U+200B># save(Resultaat, file = "inst/vbdata/Resultaat_test.Rdata")
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:27:3:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L27) *style:* **Commented code should be removed.**
```r
<U+200B># load("inst/vbdata/Resultaat_test.Rdata")
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:485:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L485) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog testen: "Niet alle te evalueren soorten zijn opgenomen onder Data_soorten\\$Soort_Latijn, er wordt van uitgegaan dat de niet opgenomen soorten niet waargenomen zijn"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:486:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L486) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog extra tests toevoegen voor genera en habitatsubtypes als de ontwikkeling hiervoor op punt staat
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_s4_Aantal.R:189:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_s4_Aantal.R#L189) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>  #nog toevoegen als het opzoeken van soorten in subniveaus opgelost is: de aggregatie van bedekkingen gebeurt correct
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


我用你的源码打包后 有提示了


convertToListOfSudents because you work with list of strings not with 1 string


List<Integer> limitedList = new ArrayList<Integer>(mainList.subList(0,5));


issue-6829 (EnergyArchmage) - i386-Windows-7-VisualStudio-14: OK (2942 of 2942 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


I don't think it is a good idea to hard-number your tests because if you swap the order then you have more work to do.


Notice that `^9 < 9.4` would be safer but I don't expect a real breakage until v9 LTS.


If the `assert` fail I think your test will time out. You should `try { assert() } catch(done)`.
Complicated. Just don't use `done` and the test is only the `assert`.


you need to use do-while cause this code should be executed at least once.


с


Remove the `.catch(done)`, the `done()` above and the `done` in `function(done)`. That will just the same, but more readable.


The same as I wrote somewere in this review


Don't aggressively convert to Javascript numbers. Keep it as it is, a BogNumber.


`newContBalance.minus(contractBalance).toString(10)`.


updated


typo coverage


My intention was that I, as an owner, can agree different fees with different customers.
I will agree a fee with Alice for her payment and another one with Dave.
It is their duty to `createPayment` with the fee we've agreed on.
I have just realized though that I have not implemented the logic to take care of the scenario in which they ignore that request and send a fee equal to 0.
Perhaps not a good idea to allow that flexibility?


TLS is managed by ngin. I guess this is just a cleanup?


Thanks!


As far as the Fluid API is concerned - I don't think there would be any problems. The one thing that could break is in the module package, if the core changes something about how BE modules or cache clears behave. But even that is low-risk, I'd say.

In any case I'm sure we'll be on top of it, should a breaking change occur. I'd like to make this package a lot more important than it currently is, due to the first-request stress reduction it brings. That's a frequent complaint about TYPO3 that I hear so it's low-hanging fruit :)


don't need to declare these - can just use them whenever you want or if you want to be צדיק initialize them in the constructor


As a side note, the creation block is already part of the event, because the event is in a block. So a human still has access to this info even if your code does nothing to help.


issue-6829 (EnergyArchmage) - x86_64-MacOS-10.9-clang: OK (2781 of 2942 tests passed, 10 test warnings)

Messages:

 * 11 tests had: AUD diffs.
 * 131 tests had: EIO diffs.
 * 96 tests had: ESO big diffs.
 * 160 tests had: Table big diffs.
 * 23 tests had: ERR diffs.
 * 58 tests had: MTR big diffs.
 * 21 tests had: ESO small diffs.
 * 17 tests had: MTR small diffs.

Failures:

regression Test Summary
 * Passed: 462
 * Failed: 161

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-94.53%25-yellow.png)


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


@cnuke: please add to staging


Following #22 and #18


can be simplified even more:
if(Collections.frequency(names, name) > 1)
      studentsEqualName.addAll (getStudentsByName(name)) , where getStudentsByName return collection of students


[R/berekenLSVIbasis.R:264:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/berekenLSVIbasis.R#L264) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>        .data$Habitattype,   #en hier zouden extra gegevens uit Data_habitat moeten toegevoegd worden
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/combinerenVoorwaarden.R:31:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/combinerenVoorwaarden.R#L31) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog testen of Formule bestaat uit EN, OF, haakjes en VoorwaardeID's (en evt. andere tekens die logische berekening toelaten)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/deselecteerKenmerkenInOpname.R:45:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/deselecteerKenmerkenInOpname.R#L45) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>      #Hier moet nog toegevoegd worden dat ofwel de soorten, ofwel de subsoorten gewist moeten worden al naargelang de soorten zelf in de kenmerkenlijst staan (zie berekenAantalSoorten en selecteerSoortenInOpname)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_soortenKenmerken.R:96:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_soortenKenmerken.R#L96) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    Kenmerken <- Data_soortenKenmerken #naamsverandering is omdat code verplaatst is
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_soortenKenmerken.R:109:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_soortenKenmerken.R#L109) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande code mag weg zodra Gert deze Canonicalname toegevoegd heeft aan de databank
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_voorwaarden.R:47:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_voorwaarden.R#L47) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #misschien best ook testen dat die indicator-criterium-combinatie in de databank voorkomt?  En of deze voor dat habitattype voorkomt, maar dat best verderop doen
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/invoercontroleData_voorwaarden.R:48:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/invoercontroleData_voorwaarden.R#L48) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #Voorwaarde ook verplichten?  Anders wel testen of het ok is als het aanwezig is.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_aantal.R:116:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_aantal.R#L116) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>setMethod(           #bij deze methode nog rekening houden met eventuele dubbels in de soortenlijst!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_bedekking.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_bedekking.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekking.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekking.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:40:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L40) *style:* **Commented code should be removed.**
```r
<U+200B>    #       (.data$WaardeMin + .data$WaardeMax) / 2
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:43:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L43) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #onderstaande is om te testen of het concept werkt, berekening moet nog aangepast worden!!!
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:59:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L59) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMin <- BedekkingGem * 0.9
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/s4_maxBedekkingExcl.R:60:7:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/s4_maxBedekkingExcl.R#L60) *style:* **Commented code should be removed.**
```r
<U+200B>    # BedekkingMax <- BedekkingGem * 1.1
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/selecteerKenmerkenInOpname.R:45:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/selecteerKenmerkenInOpname.R#L45) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>      #Hier moet nog toegevoegd worden dat ofwel de soorten, ofwel de subsoorten gewist moeten worden al naargelang de soorten zelf in de kenmerkenlijst staan (zie berekenAantalSoorten en selecteerSoortenInOpname)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/zzz.R:31:13:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/R/zzz.R#L31) *warning:* **no visible binding for global variable 'ConnectiePool'**
```r
<U+200B>  poolClose(ConnectiePool)
            ^~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:26:3:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L26) *style:* **Commented code should be removed.**
```r
<U+200B># save(Resultaat, file = "inst/vbdata/Resultaat_test.Rdata")
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:27:3:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L27) *style:* **Commented code should be removed.**
```r
<U+200B># load("inst/vbdata/Resultaat_test.Rdata")
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:485:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L485) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog testen: "Niet alle te evalueren soorten zijn opgenomen onder Data_soorten\\$Soort_Latijn, er wordt van uitgegaan dat de niet opgenomen soorten niet waargenomen zijn"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_berekenLSVIbasis.R:486:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_berekenLSVIbasis.R#L486) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>    #nog extra tests toevoegen voor genera en habitatsubtypes als de ontwikkeling hiervoor op punt staat
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[inst/tests/testthat/test_s4_Aantal.R:189:1:](https://github.com/inbo/LSVI/blob/863b00516adaf3edbe210ae3d794b5e64d0241c9/inst/tests/testthat/test_s4_Aantal.R#L189) *style:* **lines should not be more than 80 characters.**
```r
<U+200B>  #nog toevoegen als het opzoeken van soorten in subniveaus opgelost is: de aggregatie van bedekkingen gebeurt correct
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


1. do you need `:integer` twice?
2. if you use `:date` I believe it will convert it to the Date object (but you will need to add another custom converter to strip the whitespaces):
```
stripper = lambda { |f, _| f.nil? ? f : f.strip }`
converters: [stripper, :integer, :date]
```


Why don't you use the puzzle as the payment id?


I wanted it 3 years ago back when I was scripting.. and that was really the only needed change.. lol


Good idea.


if you use this `:symbol` converter, you can have nicer access to the row columns:
`row[:monthly_price]`, `row[:start_day]` etc.


You can use `bytesToB64` and `strToBytes` from [crypto conversion utils](https://github.com/PeerioTechnologies/peerio-icebear/blob/dev/src/crypto/util.conversion.js) on mobile, something like `bytesToB64(strToBytes(JSON.stringify(object)))`.


Couldn't you use something like `.owner != 0` as a cheaper way of achieving the same?


I would rename `validate_row` to `valid_row?` - it's a convention in Ruby for boolean methods


Move this line up by 1 and do `require(etherAvailable > 0)`, that will save you gas because you read it twice from storage now.


God, you're right. I need to ` payments[paymentID].processed = true;` or else the customer can call the function as many times as they want and drain the funds.


Can omit the `()` - not needed in method declarations or method calls


This permits reuse of the `receiverOTP`.


Ruby likes `end_day` better than `endDay`... just a convention thing


if you have future reservations in the list this won't work


I think I have found the hole. The owner can call the function as many times as they want. I need to rethink how to implement this to meet the rest of the suggestions.


I come for fixing this issue and see this been fixed by this commit.  :-)
Wonder why https://tour.dgraph.io/moredata/1/ haven't update yet?


I'm not 100% sure on that: didn't we decide to get rid of the direct morph because it was slower or so and only use pre-compute morphing anyway? So I implemented it such that initializing the SourceMorph causes pre-computation (always, except when src is None (in my case)) and calling an instance applies it. Which would technically mean that - yes - SourceMorph always makes use of the precomputed way (of morphing surface data)