private void ProcessarInventarioFisico()
        {
            // Nesta primeira versão isto ainda não será implementado; levantar posteriormente
            // se isto realmente é necessário
            this.UpdateStatusAsynchronousExecution("Iniciando processamento de movimentações de transporte e comunicação");

            IEnumerable<RegistroH005> registrosH005 =
                InventarioService.GetRegistrosH005();
            foreach (RegistroH005 regH005 in registrosH005)
            {
                this.UpdateStatusAsynchronousExecution("Gerando Registro H005");
                DadosArquivoFiscalService.PersistirRegistro(regH005);

                // Processsa informações dos itens da nota fiscal
                this.UpdateStatusAsynchronousExecution("Processando itens de documento fiscal");
                IEnumerable<RegistroH010> registrosH010 =
                    InventarioService.GetRegistrosH010(regH005.DT_INV.Value);
                foreach (RegistroH010 regH010 in registrosH010)
                {
                    this.UpdateStatusAsynchronousExecution("Gerando Registro H010");
                    DadosArquivoFiscalService.PersistirRegistro(regH010);

                    this.ProcessarUnidade(regH010.UNID);
                    this.ProcessarProduto(regH010.COD_ITEM);
                    this.ProcessarParticipante(regH010.COD_PART);
                }
            }

            // Monta o registro de abertura do bloco, verificando se realmente existem
            // movimentações para o período especificado
            this.UpdateStatusAsynchronousExecution("Gerando Registro H001");
            RegistroH001 regH001 = new RegistroH001();
            if (DadosArquivoFiscalService.BlocoPossuiRegistros("H"))
                regH001.IND_MOV = "0";
            else
                regH001.IND_MOV = "1";
            DadosArquivoFiscalService.PersistirRegistro(regH001);

            RegistroH990 regH990 = DadosArquivoFiscalService.GetRegistroH990();
            DadosArquivoFiscalService.PersistirRegistro(regH990);
            this.UpdateStatusAsynchronousExecution("Gerando Registro H990");
        }
        private void ProcessarInventarioFisico()
        {
            DadosArquivoFiscalService.Inicializar();

            this.UpdateStatusAsynchronousExecution("Iniciando processamento do inventário");

            IEnumerable<RegistroH005Lorenzon> registrosH005 =
                InventarioLorenzonService.GetRegistrosH005();
            foreach (RegistroH005Lorenzon regH005 in registrosH005)
            {
                this.UpdateStatusAsynchronousExecution("Gerando Registro H005");
                DadosArquivoFiscalService.PersistirRegistro(regH005);

                // Processsa informações dos itens da nota fiscal
                this.UpdateStatusAsynchronousExecution("Processando itens do inventário");
                IEnumerable<RegistroH010> registrosH010 =
                    InventarioLorenzonService.GetRegistrosH010(regH005.DT_INV.Value);
                foreach (RegistroH010 regH010 in registrosH010)
                {
                    this.UpdateStatusAsynchronousExecution("Gerando Registro H010");
                    DadosArquivoFiscalService.PersistirRegistro(regH010);
                }
            }

            // Monta o registro de abertura do bloco, verificando se realmente existem
            // movimentações para o período especificado
            this.UpdateStatusAsynchronousExecution("Gerando Registro H001");
            RegistroH001 regH001 = new RegistroH001();
            if (registrosH005.Count() > 0)
                regH001.IND_MOV = "0";
            else
                regH001.IND_MOV = "1";
            DadosArquivoFiscalService.PersistirRegistro(regH001);

            RegistroH990 regH990 = DadosArquivoFiscalService.GetRegistroH990();
            DadosArquivoFiscalService.PersistirRegistro(regH990);
            this.UpdateStatusAsynchronousExecution("Gerando Registro H990");
        }