Esempio n. 1
0
        private void Execute()
        {
            var pathForFile = GetPathOrException();
            var parametro   = GetParametro();

            parametro.LoadMoviment();

            UtilXpo.WriteLog("Antes var arquivoModelo22 = new ArquivoModel22(parametro, pathForFile);");
            var arquivoModelo22 = new ArquivoModel22(parametro, pathForFile);

            UtilXpo.WriteLog("Antes arquivoModelo22.CreateFiles();");
            arquivoModelo22.CreateFiles();
        }
Esempio n. 2
0
        public void LoadMoviment()
        {
            if (Movimentos == null)
            {
                UtilXpo.WriteLog("Movimentos == null");
                Movimentos = new List <MovimentoModel22>();
            }

            UtilXpo.WriteLog("Store Model22 , Antes de Chamar GetAll, LoadMoviment()");

            var movimentos = _movimentoRepositorio.GetAll(EstabelecimentoId, DataInicio, DataFim);

            UtilXpo.WriteLog("Store Model22 , Depois de Chamar GetAll, LoadMoviment()");

            if (movimentos.Any())
            {
                Movimentos.AddRange(movimentos);
            }
        }
Esempio n. 3
0
        private string GetFileName(IArquivo arquivo)
        {
            /* UFSSSAAMMSTT.VVV
             * UF - uf do emitente dos docs fiscais
             * SSS - serie dos docs fiscais
             * AA - ano do periodo de apuracao dos docs fiscais
             * MM - mes do periodo de apuracao dos docs fiscais
             * ST - indica se o arquivo é normal (N) ou substituto (S)
             * T - Tipo, inicial do tipo do arquivo, podendo assumir :
             *   'M' - Mestre do Documnto Fiscal
             *   'I' - Item de Documnto Fiscal
             *   'D' - Dados cadastrais do destinatario do documento fiscal
             *   'C' - Controle e identificacao
             *   'VVV' - numero sequenciadl do volume, limitado a 100 mil em cada arquivo, iniciando de 001.
             *          (em nosso caso sera sempre 001)
             *          */

            if (!_parametro.Movimentos.Any())
            {
                throw new Exception("Nenhum movimento para gerar o nome do arquivo.");
            }

            var movimento = _parametro.Movimentos.First();

            var uf                 = movimento.ClienteUf;
            var serie              = movimento.Serie.PadLeft(3, ' ');
            var ano                = movimento.DataEmissao.ToString("yy");
            var mes                = movimento.DataEmissao.ToString("MM");
            var tipoArquivo        = "N";
            var tipoInicialArquivo = arquivo.TipoArquivo;
            var volume             = "001";

            var fileName = string.Format("{0}{1}{2}{3}{4}{5}.{6}",
                                         uf, serie, ano, mes, tipoArquivo, tipoInicialArquivo, volume);

            UtilXpo.WriteLog("GetNomeArquivo: " + fileName);

            return(fileName);
        }
        public List <MovimentoModel22> GetAll(int pEstabelecimentoId, DateTime pDataInicio, DateTime pDataFim)
        {
            var movimentos = new List <MovimentoModel22>();

            UtilXpo.WriteLog("GetAll, antes query vwMega.");

            var vwMega = new XPQuery <ViewMegaNotaModel22>(Session.DefaultSession)
                         .Where(v => v.FIL_IN_CODIGO == pEstabelecimentoId && v.NOT_DT_EMISSAO >= pDataInicio && v.NOT_DT_EMISSAO <= pDataFim)
                         .OrderBy(v => v.NOT_IN_NUMERO)
                         .ToList();

            if (!vwMega.Any())
            {
                throw new Exception("Nao existe movimento com os parâmetros informados. Verifique.");
            }

            foreach (var linha in vwMega)
            {
                movimentos.Add(GetMovimento(linha));
            }

            return(movimentos);
        }
Esempio n. 5
0
        private string GetCodigoAutenticacaoDocumento(List <MovimentoModel22> pMovimentoNfList)
        {
            var text = new StringBuilder();

            text.Append(_cnpjCpf);
            text.Append(_numero);

            _valorTotal.Value = pMovimentoNfList.Sum(v => v.ValorTotal);
            text.Append(_valorTotal);

            _baseIcms.Value = pMovimentoNfList.Sum(v => v.ValorBaseIcms);
            text.Append(_baseIcms);

            _valorIcms.Value = pMovimentoNfList.Sum(v => v.ValorIcms);
            text.Append(_valorIcms);

            var hashCodeDoc = HashCode.GetMd5Hash(text.ToString()).ToUpper();

            UtilXpo.WriteLog("Codigo hash: NF " + _numero.Value);
            UtilXpo.WriteLog(text.ToString());
            UtilXpo.WriteLog(hashCodeDoc);

            return(hashCodeDoc);
        }
Esempio n. 6
0
        public void SalvarHash(HistoricoModelo22E21 historico)
        {
            var codigoDaFilial = historico.CodigoDaFilial;

            var queryFilial =
                @"SELECT ORG_TAB_IN_CODIGO, ORG_PAD_IN_CODIGO, ORG_IN_CODIGO, PAI_ORG_IN_CODIGO FROM MGGLO.GLO_VW_ORGANIZACAO WHERE ORG_IN_CODIGO = " + codigoDaFilial;

            var filial = UtilXpo.ExecutaSelect(queryFilial);

            if (filial.Rows.Count == 0 || filial.Rows.Count > 1)
            {
                throw new Exception(
                          string.Format(
                              "Não foi encontrado organização maior com o código [{0}]", codigoDaFilial));
            }

            var linhaDaFilial = filial.Rows[0];

            var queryDeInsertDoHistorico =
                string.Format(CultureInfo.InvariantCulture,
                              @"INSERT INTO MGCUSTOM.MG_HISTNFMODELO21 (
                    ORG_TAB_IN_CODIGO,
                    ORG_PAD_IN_CODIGO,
                    ORG_IN_CODIGO,
                    FIL_IN_CODIGO,
                    REC_DT_RECIBO,
                    REC_ST_NOMEARQMESTRE,
                    REC_ST_HASHARQMESTRE ,
                    rec_st_nomearqitem  ,
                    rec_st_hasharqitem  ,
                    rec_st_nomearqdest  ,
                    rec_st_hasharqdest  ,
                    rec_in_qtderegistro ,
                    rec_re_vlrtotal     ,
                    rec_re_vlrdesc      ,
                    rec_re_vlracres     ,
                    rec_re_vlrbaseicms  ,
                    rec_re_vlricms      ,
                    rec_re_vlrisentas   ,
                    rec_re_vlroutros    ,
                    rec_dt_referenciaini,
                    rec_dt_referenciafin
                )
                VALUES 
                    ({0},
                     {1},
                     {2},
                     {3},
                     SYSDATE,
                     '{4}',
                     '{5}',
                     '{6}',
                     '{7}',
                     '{8}',
                     '{9}',
                      {10},
                      {11},
                      {12},
                      {13},
                      {14},
                      {15},
                      {16},
                      {17},
                     TO_DATE('{18:dd/MM/yyyy}{20:hh:mm:ss}',  'DD/MM/YYYYHH24:MI:SS'),
                     TO_DATE('{19:dd/MM/yyyy}{20:hh:mm:ss}',  'DD/MM/YYYYHH24:MI:SS')
             )",
                              linhaDaFilial["ORG_TAB_IN_CODIGO"],
                              linhaDaFilial["ORG_PAD_IN_CODIGO"],
                              linhaDaFilial["PAI_ORG_IN_CODIGO"],
                              codigoDaFilial,
                              historico.NomeDoArquioMestre,
                              historico.HashDoArquivoMestere,
                              historico.NomeDoArquivoItem,
                              historico.HashDoArquivoItem,
                              historico.NomeDoArquivoDados,
                              historico.HashDoArquivoDados,
                              historico.QtdRegistroMestre,
                              historico.ValorTotal,
                              historico.ValorDesconto,
                              historico.ValorAcrescimo,
                              historico.ValorBaseIcms,
                              historico.ValorIcms,
                              historico.ValorBaseIsentas,
                              historico.ValorOutros,
                              historico.ReferenciaInicial,
                              historico.ReferenciaFinal,
                              DateTime.Now
                              );

            UtilXpo.WriteLog(queryDeInsertDoHistorico);

            UtilXpo.ExecuteNonQuery(queryDeInsertDoHistorico);
        }
Esempio n. 7
0
        public override void Append(StringBuilder stringBuilder)
        {
            var movimentos = _parametro
                             .Movimentos
                             .GroupBy(m => new
            {
                m.ClienteCpfCnpj,
                m.ClienteUf,
                m.DataEmissao,
                m.ClienteCodigo,
                m.Modelo,
                m.Serie,
                m.NumeroNf,
                m.Situacao,
                m.Cfop,
                m.Item,
                m.Unidade,
                m.ClasseConsumoTipoAssinante,
                m.FaseTipoUtilizacao,
                m.GrupoTensao,
                m.CodigoServicoFornecimento,
                m.DescricaoServicoFornecimento,
                m.CodigoClasseItem
            });

            foreach (var movimento in movimentos)
            {
                SetValue(_cnpjCpf, movimento.Key.ClienteCpfCnpj);
                SetValue(_uf, movimento.Key.ClienteUf);
                SetValue(_classeConsumoTipoAssinante, movimento.Key.ClasseConsumoTipoAssinante);
                SetValue(_faseTipoUtil, movimento.Key.FaseTipoUtilizacao);
                SetValue(_grupoTensao, movimento.Key.GrupoTensao);
                SetValue(_dataEmissao, movimento.Key.DataEmissao);
                SetValue(_modelo, movimento.Key.Modelo);
                SetValue(_serie, movimento.Key.Serie);
                SetValue(_numero, movimento.Key.NumeroNf);
                SetValue(_cfop, movimento.Key.Cfop);
                SetValue(_item, movimento.Key.Item);
                SetValue(_codigoServicoFornec, movimento.Key.CodigoServicoFornecimento);
                SetValue(_descricaoServicoFornec, movimento.Key.DescricaoServicoFornecimento);
                SetValue(_codClassItem, movimento.Key.CodigoClasseItem);
                SetValue(_unidade, movimento.Key.Unidade);
                SetValue(_qtdadeContratada, movimento.Sum(v => v.QtdadeContratada));
                SetValue(_qtdadePrestada, movimento.Sum(v => v.QtdadePrestada));
                SetValue(_valorTotal, movimento.Sum(v => v.ValorTotal));
                SetValue(_valorDesconto, movimento.Sum(v => v.ValorDesconto));
                SetValue(_valorAcrescimo, movimento.Sum(v => v.ValorAcrescimo));
                SetValue(_baseIcms, movimento.Sum(v => v.ValorBaseIcms));
                SetValue(_valorIcms, movimento.Sum(v => v.ValorIcms));
                SetValue(_valorIsentos, movimento.Sum(v => v.ValorIcmsIsento));
                SetValue(_valorOutros, movimento.Sum(v => v.ValorIcmsOutros));
                SetValue(_aliqIcms, movimento.Max(v => v.AliqIcms));
                SetValue(_situacao, movimento.Key.Situacao);
                SetValue(_anoMes, movimento.Key.DataEmissao);

                SetValue(_brancos, string.Empty);

                UtilXpo.WriteLog("Item");
                UtilXpo.WriteLog(_conteudo.ToString());

                _codigoAutDigital.Value = HashCode.GetMd5Hash(_conteudo.ToString()).ToUpper();
                AppendLine(stringBuilder);
                _conteudo.Clear();
            }
        }
Esempio n. 8
0
        public override void Append(StringBuilder stringBuilder)
        {
            var index = 1;

            var movimentos = _parametro
                             .Movimentos
                             .GroupBy(m => new
            {
                m.ClienteCpfCnpj,
                m.ClienteIe,
                m.ClienteRazaoSocial,
                m.ClienteUf,
                m.ClienteCodigo,
                m.DataEmissao,
                m.Modelo,
                m.Serie,
                m.NumeroNf,
                m.Situacao,
                m.CodigoAutenticacaoDocumento,
                m.ClasseConsumoTipoAssinante,
                m.FaseTipoUtilizacao,
                m.GrupoTensao
            });

            foreach (var movimento in movimentos)
            {
                SetValue(_cnpjCpf, movimento.Key.ClienteCpfCnpj);
                SetValue(_ie, movimento.Key.ClienteIe);
                SetValue(_razaoSocial, movimento.Key.ClienteRazaoSocial.NoAccents());
                SetValue(_uf, movimento.Key.ClienteUf);
                SetValue(_classeConsumoTipoAssinante, movimento.Key.ClasseConsumoTipoAssinante);
                SetValue(_faseTipoUtil, movimento.Key.FaseTipoUtilizacao);
                SetValue(_grupoTensao, movimento.Key.GrupoTensao);
                SetValue(_codigoIdentConsumidor, movimento.Key.ClienteCodigo);
                SetValue(_dataEmissao, movimento.Key.DataEmissao);
                SetValue(_modelo, movimento.Key.Modelo);
                SetValue(_serie, movimento.Key.Serie);
                SetValue(_numero, movimento.Key.NumeroNf);
                //SetValue(_codigoAutenticacao, movimento.Key.CodigoAutenticacaoDocumento.ToUpper());
                var movimentoNf = _parametro.Movimentos.Where(m => m.NumeroNf == movimento.Key.NumeroNf).ToList();
                SetValue(_codigoAutenticacao, GetCodigoAutenticacaoDocumento(movimentoNf));
                SetValue(_valorTotal, movimento.Sum(v => v.ValorTotal));
                SetValue(_baseIcms, movimento.Sum(v => v.ValorBaseIcms));
                SetValue(_valorIcms, movimento.Sum(v => v.ValorIcms));
                SetValue(_valorIsentos, movimento.Sum(v => v.ValorIcmsIsento));
                SetValue(_valorOutros, movimento.Sum(v => v.ValorIcmsOutros));
                SetValue(_situacao, movimento.Key.Situacao);
                SetValue(_anoMes, movimento.Key.DataEmissao);
                SetValue(_referenciaItemNf, index);
                index++;
                SetValue(_numeroTerminalTel, string.Empty);

                SetValue(_brancos, string.Empty);

                UtilXpo.WriteLog("Mestre");
                UtilXpo.WriteLog(_conteudo.ToString());

                _codigoAutDigital.Value = HashCode.GetMd5Hash(_conteudo.ToString()).ToUpper();
                AppendLine(stringBuilder);
                _conteudo = new StringBuilder();
            }
        }