ltsuda / azul-digital

TCC: Aplicativo para Zona Azul - Campinas SP
https://ltsuda.github.io/azul-digital
0 stars 1 forks source link

Money format #8

Open ltsuda opened 8 years ago

ltsuda commented 8 years ago

@chrisfsampaio, na tela do cartão eu coloquei um UITextField pro usuário inserir um valor como se fosse o valor que ele possui no cartão.

Você acha melhor utilizar a lib Money ou deixa da forma que fiz abaixo?

protocol ValidateFunds {
    fun validatefunds(funds: String) -> Bool
}

extension ValidateFunds {
    fun validatefunds(funds: String) -> Bool {
        let regex = try! NSRegularExpression(pattern: "^\\d{1,}(\\,{1})\\d{2}$", options: [.anchorsMatchLines])

        let regexResult = regex.firstMatch(in: funds, options:[], range: NSRange(location: 0, length: funds.characters.count)) != nil

        if !regexResult {
            return false
        }

        return true
    }
}

extension String {
    fun roundTwoDecimal(number: String) -> Float? {
        let format = NumberFormatter()
        format.numberStyle = .decimal
        format.maximumFractionDigits = 2
        return format.number(from: number)?.floatValue
    }
}
chrisfsampaio commented 8 years ago

Se você não vai usar outras funções específicas sobre dinheiro, eu recomendo usar um NSNumberFormatter com currencyStyle.

ltsuda commented 8 years ago

Entendi, mas a questão de ser "ponto" ou "virgula" no decimal do UITextField quando usuário digitar, não vai ter problemas né ? O currencyStyle vê localization né. Thanks.

chrisfsampaio commented 8 years ago

Isso 👍

On Tue, Aug 9, 2016 at 11:28 PM, Leonardo Henrique Tsuda < notifications@github.com> wrote:

Entendi, mas a questão de ser "ponto" ou "virgula" no decimal do UITextField quando usuário digitar, não vai ter problemas né ? O currencyStyle vê localization né. Thanks.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ltsuda/azul-digital/issues/8#issuecomment-238697474, or mute the thread https://github.com/notifications/unsubscribe-auth/AA9OO6FDEBpnJnLRjPM56HXIPPEOLcPuks5qePDygaJpZM4Jfb_V .

Att,

Christian

ltsuda commented 8 years ago

Thanks bro 👍🏻

ltsuda commented 8 years ago

Estou com problemas de localization:

Se estou com iPhone com região Brasil, o separador é "," mas o Firebase é formatado com ".", então se eu não editar o valor na tela de edição do Card, da erro no Save porque o valor do crédito está formatado com "."

Exemplo: iPhone com região Brasil

Deixei a linha abaixo, mas dai da erro quando o iPhone está com .locale onde o formato do separador é "." self?.currentUser?.cash = roundTwoDecimal((self?.cashEditTextField.text!)!.replacingOccurrences(of: ".", with: ","))

Como fazer o separador ficar global ?