private void ProcessarDocumentosFiscaisMercadorias()
        {
            this.UpdateStatusAsynchronousExecution("Iniciando processamento de documentos fiscais");


            registrosC010 = DocumentosFiscaisMercadoriasService.GetRegistrosC010(UndTrabalho.CodigoEmpresa).ToList();

            // GetEmpresasFiliais(UndTrabalho.CodigoEmpresa);
            produtos      = new List <validacao>();
            unidades      = new List <validacao>();
            contribuintes = new List <validacao>();
            foreach (RegistroC010 regC010 in registrosC010)
            {
                this.UpdateStatusAsynchronousExecution("Gerando Registro C010");
                DadosArquivoPisCofinsService.PersistirRegistro(regC010);

                this.ProcessarNotasFiscaisMercadorias(regC010);
                this.ProcessarConsolidacaoNotasFiscais(regC010);
                this.ProcessarCuponsFiscais(regC010);
                this.ProcessarNotasFiscaisEnergiaAguaGas(regC010);
            }

            // Monta o registro de abertura do bloco, verificando se realmente existem
            // movimentações para o período especificado
            this.UpdateStatusAsynchronousExecution("Gerando Registro C001");
            RegistroC001 regC001 = new RegistroC001();

            if (DadosArquivoPisCofinsService.BlocoPossuiRegistros("C"))
            {
                regC001.IND_MOV = "0";
            }
            else
            {
                regC001.IND_MOV = "1";
            }
            DadosArquivoPisCofinsService.PersistirRegistro(regC001);

            this.UpdateStatusAsynchronousExecution("Gerando Registro C990");
            RegistroC990 regC990 = DadosArquivoPisCofinsService.GetRegistroC990();

            DadosArquivoPisCofinsService.PersistirRegistro(regC990);
        }
        private void GetEmpresasFiliais(string sEmp)
        {
            try
            {
                IEnumerable <RegistroC010> lreg = DocumentosFiscaisMercadoriasService.GetRegistrosC010(sEmp).ToList();
                if (lreg.Count() > 0)
                {
                    registrosC010.Add(lreg.FirstOrDefault());

                    string codEmpFilial = DadosGeraisService.GetCodEmpresaAfilial(registrosC010.FirstOrDefault().CD_EMP);
                    if (codEmpFilial != "")
                    {
                        GetEmpresasFiliais(codEmpFilial);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }