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(); }
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); } }
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); }
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); }
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); }
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(); } }
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(); } }