getLineFromBarcode method

String? getLineFromBarcode(
  1. String barcode
)

Implementation

String? getLineFromBarcode(String barcode) {
  String linha = barcode.replaceAll(RegExp("[^0-9]"), "");

  if (linha.length != 44) {
    return null;
  }

  String campo1 = linha.substring(0, 4) +
      linha.substring(19, 20) +
      '.' +
      linha.substring(20, 24);
  String campo2 = linha.substring(24, 29) + '.' + linha.substring(29, 34);
  String campo3 = linha.substring(34, 39) + '.' + linha.substring(39, 44);
  String campo4 = linha.substring(4, 5); // Digito verificador
  String campo5 = linha.substring(5, 19); // Vencimento + Valor

  if (_modulo11Banco(linha.substring(0, 4) + linha.substring(5, 44)) !=
      int.parse(campo4)) {
    return null; //'Digito verificador '+campo4+', o correto é '+modulo11_banco(  linha.substr(0,4)+linha.substr(5,99)  )+'\nO sistema não altera automaticamente o dígito correto na quinta casa!'
  }
  return campo1 +
      _modulo10(campo1).toString() +
      ' ' +
      campo2 +
      _modulo10(campo2).toString() +
      ' ' +
      campo3 +
      _modulo10(campo3).toString() +
      ' ' +
      campo4 +
      ' ' +
      campo5;
}