예제 #1
0
        public async Task NFCeShouldBeSentTest()
        {
            //Arrange
            Mock <ISplashScreenService> splashMock            = new Mock <ISplashScreenService>();
            Mock <IDialogService>       dialogMock            = new Mock <IDialogService>();
            Mock <IClosable>            closableMock          = new Mock <IClosable>();
            Mock <INotaFiscalService>   notaFiscalServiceMock = new Mock <INotaFiscalService>();

            notaFiscalServiceMock.Setup(m => m.EnviarNotaFiscalAsync(It.IsAny <NotaFiscal>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(0);

            _splashScreenService  = splashMock.Object;
            _dialogService        = dialogMock.Object;
            _notaFiscalService    = notaFiscalServiceMock.Object;
            _enviarNotaController = new EnviarNotaController(_splashScreenService, _dialogService, _notaFiscalService);

            var viewModel = new NFCeViewModel(new DestinatarioViewModel(), _splashScreenService, _dialogService, _enviarNotaController);

            viewModel.LoadedCmd.Execute(null);
            viewModel.Produto.QtdeProduto        = 1;
            viewModel.Produto.ProdutoSelecionado = viewModel.ProdutosCombo[0];
            viewModel.AdicionarProdutoCmd.Execute(null);
            viewModel.GerarPagtoCmd.Execute(null);

            //Act
            await viewModel.EnviarNotaCmd.ExecuteAsync(closableMock.Object);

            //Assert
            notaFiscalServiceMock.Verify(n => n.EnviarNotaFiscalAsync(It.IsAny <NotaFiscal>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once);
            closableMock.Verify(c => c.Close(), Times.Once);
        }
예제 #2
0
        public NFCeViewModel(DestinatarioViewModel destinatarioViewModel, IDialogService dialogService, IEnviarNota enviarNotaController, INaturezaOperacaoService naturezaOperacaoService, IConfiguracaoService configuracaoService, IProdutoService produtoService, IDestinatarioService destinatarioService)
        {
            Pagamento = new PagamentoVO();
            Produto   = new ProdutoVO();
            DestinatarioParaSalvar   = new DestinatarioModel();
            TransportadoraParaSalvar = new TransportadoraModel();
            Destinatarios            = new ObservableCollection <DestinatarioModel>();
            Transportadoras          = new ObservableCollection <TransportadoraModel>();
            ProdutosCombo            = new ObservableCollection <ProdutoEntity>();

            AdicionarProdutoCmd   = new RelayCommand <object>(AdicionarProdutoCmd_Execute, null);
            GerarPagtoCmd         = new RelayCommand <object>(GerarPagtoCmd_Execute, null);
            EnviarNotaCmd         = new RelayCommand <IClosable>(EnviarNotaCmd_Execute);
            LoadedCmd             = new RelayCommand <string>(LoadedCmd_Execute, null);
            ClosedCmd             = new RelayCommand(ClosedCmd_Execute, null);
            ExcluirProdutoNotaCmd = new RelayCommand <ProdutoVO>(ExcluirProdutoNotaCmd_Execute, null);
            ExcluirPagamentoCmd   = new RelayCommand <PagamentoVO>(ExcluirPagamentoCmd_Execute, null);

            _dialogService           = dialogService;
            _enviarNotaController    = enviarNotaController;
            _naturezaOperacaoService = naturezaOperacaoService;
            _configuracaoService     = configuracaoService;
            _produtoService          = produtoService;
            _destinatarioService     = destinatarioService;

            destinatarioViewModel.DestinatarioSalvoEvent += DestinatarioVM_DestinatarioSalvoEvent;

            Finalidades = new List <string>()
            {
                "Normal",
                "Complementar",
                "Ajuste",
                "Devolução"
            };

            FormasPagamento = new Dictionary <string, string>()
            {
                { "Dinheiro", "Dinheiro" },
                { "Cheque", "Cheque" },
                { "CartaoCredito", "Cartão de Crédito" },
                { "CartaoDebito", "Cartão de Débito" }
                //{ "CreditoLoja", "Crédito Loja" },
                //{ "ValeAlimentacao",  "Vale Alimentação" },
                //{ "ValeRefeicao", "Vale Refeição" },
                //{ "ValePresente", "Vale Presente"},
                //{ "ValeCombustivel", "Vale Combustível"},
                //{ "Outros", "Outros" }
            };

            Parcelas = new List <int>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
            };
        }
예제 #3
0
        public AcompanhamentoNotasViewModel(IEnviarNota enviarNotaController, IEnviaNotaFiscalService enviaNotaFiscalService, CancelarNotaViewModel cancelarNotaViewModel, OpcoesViewModel opcoesViewModel, NotaFiscalMainViewModel notaFiscalMainViewModel, INotaFiscalRepository notaFiscalRepository)
        {
            LoadedCmd  = new RelayCommand(LoadedCmd_Execute, null);
            FiltrarCmd = new RelayCommand(FiltrarCmd_Execute, null);

            enviarNotaController.NotaEnviadaEvent     += NotaFiscalVM_NotaEnviadaEvent;
            cancelarNotaViewModel.NotaCanceladaEvent  += CancelarNotaFiscalVM_NotaCanceladaEvent;
            opcoesViewModel.ConfiguracaoAlteradaEvent += OpcoesVM_ConfiguracoesAlteradasEvent;

            _notaFiscalRepository = notaFiscalRepository;

            notaFiscalMainViewModel.NotaPendenteReenviadaEvent += NotaFiscalVM_NotaEnviadaEvent;

            _enviaNotaFiscalService = enviaNotaFiscalService;
        }
        public NotaFiscalMainViewModel(IEnviarNota enviarNotaController, OpcoesViewModel opcoesVm,
                                       CancelarNotaViewModel notaCanceladaVm, IEnviaNotaFiscalService enviaNotaFiscalService,
                                       IConfiguracaoService configuracaoService, ICertificadoService certificadoService,
                                       IProdutoService produtoService, IConsultaStatusServicoService consultaStatusServicoService,
                                       IEmissorService emissorService,
                                       VisualizarNotaEnviadaViewModel visualizarNotaEnviadaViewModel,
                                       EnviarEmailViewModel enviarEmailViewModel,
                                       INotaFiscalRepository notaFiscalRepository, ModoOnlineService modoOnlineService, INFeConsulta nfeConsulta)
        {
            LoadedCmd              = new RelayCommand(LoadedCmd_Execute, null);
            AbrirNFCeCmd           = new RelayCommand(AbrirNFCeCmd_Execute, null);
            AbrirNFeCmd            = new RelayCommand(AbrirNFeCmd_Execute, null);
            VisualizarNotaCmd      = new RelayCommand <NotaFiscalMemento>(VisualizarNotaCmd_Execute, null);
            EnviarNotaNovamenteCmd = new RelayCommand <NotaFiscalMemento>(EnviarNotaNovamenteCmd_ExecuteAsync, null);
            EnviarEmailCmd         = new RelayCommand <NotaFiscalMemento>(EnviarEmailCmd_Execute, null);
            MudarPaginaCmd         = new RelayCommand <int>(MudarPaginaCmd_Execute, null);

            _enviaNotaFiscalService         = enviaNotaFiscalService;
            _notaFiscalRepository           = notaFiscalRepository;
            _configuracaoService            = configuracaoService;
            _certificadoService             = certificadoService;
            _produtoService                 = produtoService;
            _consultaStatusServicoService   = consultaStatusServicoService;
            _emissorService                 = emissorService;
            _visualizarNotaEnviadaViewModel = visualizarNotaEnviadaViewModel;
            _enviarEmailViewModel           = enviarEmailViewModel;
            _nfeConsulta = nfeConsulta;

            NotasFiscais = new ObservableCollection <NotaFiscalMemento>();

            enviarNotaController.NotaEnviadaEvent += EnviarNotaController_NotaEnviadaEventHandler;

            opcoesVm.ConfiguracaoAlteradaEvent   += OpcoesVM_ConfiguracaoAlteradaEventHandler;
            notaCanceladaVm.NotaCanceladaEvent   += NotaFiscalVM_NotaCanceladaEventHandler;
            notaCanceladaVm.NotaInutilizadaEvent += NotaCanceladaVM_NotaInutilizadaEventHandler;

            modoOnlineService.NotasTransmitidasEvent += ModoOnlineService_NotasTransmitidasEventHandler;
        }
예제 #5
0
        public NFeViewModel(IEnviarNota enviarNotaController, IDialogService dialogService, IProdutoService produtoService, IEnviaNotaFiscalService enviaNotaFiscalService, IEstadoService estadoService, IEmissorService emissorService, IMunicipioService municipioService, TransportadoraService transportadoraService, IDestinatarioService destinatarioService, INaturezaOperacaoService naturezaOperacaoService, IConfiguracaoService configuracaoService, DestinatarioViewModel destinatarioViewModel, INotaFiscalRepository notaFiscalRepository)
        {
            Pagamento = new PagamentoVO();
            Produto   = new ProdutoVO();
            var produtosDB = produtoService.GetAll();

            DestinatarioParaSalvar   = new DestinatarioModel();
            TransportadoraParaSalvar = new TransportadoraModel();
            Destinatarios            = new ObservableCollection <DestinatarioModel>();
            Transportadoras          = new ObservableCollection <TransportadoraModel>();
            NaturezasOperacoes       = new ObservableCollection <NaturezaOperacaoModel>();
            ProdutosCombo            = new ObservableCollection <ProdutoEntity>();

            _enviaNotaFiscalService  = enviaNotaFiscalService;
            _estadoService           = estadoService;
            _produtoService          = produtoService;
            _emissorService          = emissorService;
            _municipioService        = municipioService;
            _transportadoraService   = transportadoraService;
            _destinatarioService     = destinatarioService;
            _naturezaOperacaoService = naturezaOperacaoService;
            _configuracaoService     = configuracaoService;
            _destinatarioViewModel   = destinatarioViewModel;
            _notaFiscalRepository    = notaFiscalRepository;

            AdicionarProdutoCmd      = new RelayCommand <object>(AdicionarProdutoCmd_Execute, null);
            GerarPagtoCmd            = new RelayCommand <object>(GerarPagtoCmd_Execute, null);
            SalvarTransportadoraCmd  = new RelayCommand <IClosable>(SalvarTransportadoraCmd_Execute, null);
            ExcluirTransportadoraCmd = new RelayCommand <TransportadoraModel>(ExcluirTransportadoraCmd_Execute, null);
            EnviarNotaCmd            = new RelayCommand <IClosable>(EnviarNotaCmd_Execute);
            LoadedCmd                     = new RelayCommand <string>(LoadedCmd_Execute, null);
            ClosedCmd                     = new RelayCommand(ClosedCmd_Execute, null);
            ExcluirProdutoNotaCmd         = new RelayCommand <ProdutoVO>(ExcluirProdutoNotaCmd_Execute, null);
            UfSelecionadoCmd              = new RelayCommand(UfSelecionadoCmd_Execute, null);
            TransportadoraWindowLoadedCmd = new RelayCommand(TransportadoraWindowLoadedCmd_Execute, null);
            DestinatarioChangedCmd        = new RelayCommand <DestinatarioModel>(DestinatarioChangedCmd_Execute, null);

            _enviarNotaController = enviarNotaController;
            _dialogService        = dialogService;

            Estados    = new ObservableCollection <EstadoEntity>();
            Municipios = new ObservableCollection <MunicipioEntity>();

            destinatarioViewModel.DestinatarioSalvoEvent += DestinatarioVM_DestinatarioSalvoEvent;

            foreach (var produtoDB in produtosDB)
            {
                ProdutosCombo.Add((ProdutoEntity)produtoDB);
            }

            IndicadoresPresenca = new List <string>()
            {
                "Não se Aplica",
                "Presencial",
                "Não Presencial, Internet",
                "Não Presencial, Teleatendimento",
                "Entrega a Domicílio",
                "Não Presencial, Outros"
            };

            Finalidades = new List <string>()
            {
                "Normal",
                "Complementar",
                "Ajuste",
                "Devolução"
            };

            FormasPagamento = new Dictionary <string, string>()
            {
                { "Dinheiro", "Dinheiro" },
                { "Cheque", "Cheque" },
                { "CartaoCredito", "Cartão de Crédito" },
                { "CartaoDebito", "Cartão de Débito" }
                //{ "CreditoLoja", "Crédito Loja" },
                //{ "ValeAlimentacao",  "Vale Alimentação" },
                //{ "ValeRefeicao", "Vale Refeição" },
                //{ "ValePresente", "Vale Presente"},
                //{ "ValeCombustivel", "Vale Combustível"},
                //{ "Outros", "Outros" }
            };

            EstadosUF = _estadoService.GetEstados().Select(e => e.Uf).ToList();

            Parcelas = new List <int>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
            };
        }