/// <summary> /// Retorna o codigo do digito veririfcador /// </summary> /// <returns></returns> public int GeraChaveMDFe() { string cUF, AAMM, CNPJ, mod, serie, nMDFe, tpEmis, cMDFe = ""; cUF = Acesso.cUF.ToString(); AAMM = daoUtil.GetDateServidor().ToString("yyMM"); CNPJ = this.enviMDFe.MDFe.infMDFe.emit.CNPJ.PadLeft(14, '0'); mod = this.enviMDFe.MDFe.infMDFe.ide.mod.ToString().Replace("Item", ""); serie = this.enviMDFe.MDFe.infMDFe.ide.serie; nMDFe = this.enviMDFe.MDFe.infMDFe.ide.nMDF.ToString(); tpEmis = this.enviMDFe.MDFe.infMDFe.ide.tpEmis.ToString().Replace("Item", ""); cMDFe = this.enviMDFe.MDFe.infMDFe.ide.cMDF.ToString(); string sChave = cUF.PadLeft(2, '0').Trim() + AAMM.Trim() + CNPJ.PadLeft(14, '0').Trim() + mod.PadLeft(2, '0').Trim() + serie.PadLeft(3, '0').Trim() + nMDFe.PadLeft(9, '0').Trim() + tpEmis.Trim() + cMDFe.PadLeft(8, '0').Trim(); int i = daoUtil.CalculaDig11(sChave); this.enviMDFe.MDFe.infMDFe.Id = "MDFe" + sChave + i.ToString(); return(i); }
/// <summary> /// Retorna o texto do registro do tipo 54 para uso do SIntegra. /// </summary> /// <returns>Uma string com os dados formatados para uso do SIntegra.</returns> public override string ToString() { // Formata os dados para o retorno do método string n01 = Tipo.ToString(); string n02 = CNPJ.PadLeft(14, '0'); string n03 = Modelo.PadLeft(2, '0'); string n04 = Serie.ToString().PadRight(3); string n05 = Numero.ToString().PadLeft(6, '0'); string n06 = CFOP.PadLeft(4, '0'); string n07 = CST.PadRight(3); string n08 = NumeroItem.ToString().PadLeft(3, '0'); string n09 = !string.IsNullOrEmpty(CodigoProduto) && CodigoProduto.Length > 14 ? CodigoProduto.Substring(0, 14) : !string.IsNullOrEmpty(CodigoProduto) ? CodigoProduto.PadRight(14) : "".PadRight(14); string n10 = Quantidade.ToString("0#######.##0").Remove(8, 1); string n11 = ValorProduto.ToString("0#########.#0").Remove(10, 1); string n12 = ValorDesconto.ToString("0#########.#0").Remove(10, 1); string n13 = BaseCalcICMS.ToString("0#########.#0").Remove(10, 1); string n14 = BaseCalcICMSST.ToString("0#########.#0").Remove(10, 1); string n15 = ValorIPI.ToString("0#########.#0").Remove(10, 1); string n16 = AliquotaICMS.ToString("0#.#0").Remove(2, 1); // Retorna os dados formatados return(n01 + n02 + n03 + n04 + n05 + n06 + n07 + n08 + n09 + n10 + n11 + n12 + n13 + n14 + n15 + n16); }
/// <summary> /// Retorna o texto do registro do tipo 90 para uso do SIntegra. /// </summary> /// <returns>Uma string com os dados formatados para uso do SIntegra.</returns> public override string ToString() { // Formata os dados para gerar a string do cabeçalho da resposta string n01 = Tipo.ToString().PadLeft(2, '0'); string n02 = CNPJ.PadLeft(14, '0'); string n03 = InscEstadual.PadRight(14); string[] n04 = new string[TotaisTipoRegistro.Keys.Count + 1]; string n05 = TotalRegistros90.ToString(); // Coloca os totais de registros na variável n04 int j = 0; foreach (int tipo in TotaisTipoRegistro.Keys) { n04[j++] = tipo.ToString().PadLeft(2, '0') + TotaisTipoRegistro[tipo].ToString().PadLeft(8, '0'); } n04[j] = "99" + TotalGeral.ToString().PadLeft(8, '0'); // Formata as linhas dos registros 90 string[] linhas = new string[TotalRegistros90]; for (int i = 0; i < linhas.Length; i++) { string n04Linha = ""; for (j = i * 8; j < (i + 1) * 8; j++) { if (j >= n04.Length) { break; } n04Linha += n04[j]; } linhas[i] = n01 + n02 + n03 + n04Linha.PadRight(95) + n05; } // Retorna os dados formatados StringBuilder retorno = new StringBuilder(); foreach (string s in linhas) { retorno.AppendLine(s); } return(retorno.ToString()); }
/// <summary> /// Retorna o texto do registro do tipo 10 para uso do SIntegra. /// </summary> /// <returns>Uma string com os dados formatados para uso do SIntegra.</returns> public override string ToString() { // Formata os campos para montar a resposta string n01 = Tipo.ToString().PadLeft(2, '0'); string n02 = CNPJ.PadLeft(14, '0'); string n03 = InscEstadual.PadRight(14); string n04 = Nome.PadRight(35); string n05 = Municipio.PadRight(30); string n06 = UF.PadRight(2); string n07 = Fax.PadLeft(10, '0'); string n08 = FormatData(DataInicio); string n09 = FormatData(DataFim); string n10 = ((int)IdentificacaoEstrutura).ToString(); string n11 = ((int)NaturezaOperacoes).ToString(); string n12 = ((int)FinalidadeArquivo).ToString(); // Retorna a string return(n01 + n02 + n03 + n04 + n05 + n06 + n07 + n08 + n09 + n10 + n11 + n12); }
/// <summary> /// Retorna o texto do registro do tipo 51 para uso do SIntegra. /// </summary> /// <returns>Uma string com os dados formatados para uso do SIntegra.</returns> public override string ToString() { // Formata os dados para o retorno do método string n01 = Tipo.ToString().PadLeft(2, '0'); string n02 = CNPJ.PadLeft(14, '0'); string n03 = InscEstadual.PadRight(14); string n04 = FormatData(DataEmissaoRecebimento); string n05 = UF.PadRight(2); string n06 = Serie.ToString().PadRight(3); string n07 = Numero.ToString().PadLeft(6, '0'); string n08 = CFOP.PadLeft(4, '0'); string n09 = ValorTotal.ToString("0##########.#0").Remove(11, 1); string n10 = ValorIPI.ToString("0##########.#0").Remove(11, 1); string n11 = ValorIsentoIPI.ToString("0##########.#0").Remove(11, 1); string n12 = ValorNaoIPI.ToString("0##########.#0").Remove(11, 1); string n13 = "".PadRight(20); string n14 = Situacao == TipoSituacao.Normal ? "N" : "S"; // Retorna os dados formatados return(n01 + n02 + n03 + n04 + n05 + n06 + n07 + n08 + n09 + n10 + n11 + n12 + n13 + n14); }
/// <summary> /// Retorna o texto do registro do tipo 53 para uso do SIntegra. /// </summary> /// <returns>Uma string com os dados formatados para uso do SIntegra.</returns> public override string ToString() { // Formata os dados para o retorno do método string n01 = Tipo.ToString(); string n02 = CNPJ.PadLeft(14, '0'); string n03 = InscEstadual.PadRight(14); string n04 = FormatData(DataEmissaoRecebimento); string n05 = UF.PadRight(2); string n06 = Modelo.PadLeft(2, '0'); string n07 = Serie.ToString().PadRight(3); string n08 = Numero.ToString().PadLeft(6, '0'); string n09 = CFOP.PadLeft(4, '0'); string n10 = Emitente == TipoEmitente.Proprio ? "P" : "T"; string n11 = BaseCalcICMSST.ToString("0##########.#0").Remove(11, 1); string n12 = ICMSRetido.ToString("0##########.#0").Remove(11, 1); string n13 = DespesasAcessorias.ToString("0##########.#0").Remove(11, 1); string n14 = Situacao == TipoSituacao.Normal ? "N" : "S"; string n15 = (int)CodigoAntecipacao != 0 ? ((int)CodigoAntecipacao).ToString() : " "; string n16 = "".PadLeft(29); // Retorna os dados formatados return(n01 + n02 + n03 + n04 + n05 + n06 + n07 + n08 + n09 + n10 + n11 + n12 + n13 + n14 + n15 + n16); }
/// <summary> /// Efetua a escrita do Registro 90 do arquivo. /// </summary> /// <returns>Strings</returns> public string EscreverRegistro90() { var sb = new StringBuilder(); int totalRegistrosTipo90 = 1; int tamanhoPosicaoTipo = 2; int posicaoInicialTipo = 31; int tamanhoPosicaoTotal = 8; int posicaoInicialTotal = 33; string r90 = null; try { foreach (var registroAtual in TotalizadoresDeRegistros) { if (posicaoInicialTipo == 121 || posicaoInicialTotal == 123) { sb.Append(r90); sb.Append(Environment.NewLine); // Reinicia o registro tipo 90 para inserção de nova linha para contagem dos demais registros. r90 = null; totalRegistrosTipo90++; posicaoInicialTipo = 31; posicaoInicialTotal = 33; } if (string.IsNullOrEmpty(r90)) { r90 = new string(' ', 126); r90 = r90.PreencherValorNaLinha(1, 2, TIPO.PadLeft(2, ' ')); r90 = r90.PreencherValorNaLinha(3, 16, CNPJ.PadLeft(14, ' ')); r90 = r90.PreencherValorNaLinha(17, 30, IE.PadRight(14, ' ')); } r90 = r90.PreencherValorNaLinha(posicaoInicialTipo, (posicaoInicialTipo + (tamanhoPosicaoTipo - 1)), registroAtual.TIPO_A_SER_TOTALIZADO); r90 = r90.PreencherValorNaLinha(posicaoInicialTotal, (posicaoInicialTotal + (tamanhoPosicaoTotal - 1)), registroAtual.TOTAL_DE_REGISTROS.ToString().PadLeft(8, '0')); posicaoInicialTipo = posicaoInicialTotal + tamanhoPosicaoTotal; posicaoInicialTotal = posicaoInicialTipo + tamanhoPosicaoTipo; } r90 = r90.PreencherValorNaLinha(126, 126, totalRegistrosTipo90.ToString()); sb.Append(r90); return(sb.ToString()); } catch (Exception e) { throw new Exception("Falha ao gerar registro tipo 90." + Environment.NewLine + e.Message); } }