예제 #1
0
        /// <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);
        }
예제 #2
0
파일: Registro54.cs 프로젝트: ertprs/Estudo
        /// <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);
        }
예제 #3
0
        /// <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());
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
파일: Registro51.cs 프로젝트: ertprs/Estudo
        /// <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);
        }
예제 #6
0
파일: Registro53.cs 프로젝트: ertprs/Estudo
        /// <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);
        }
예제 #7
0
        /// <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);
            }
        }