private void btRelatorio_Click(object sender, RoutedEventArgs e)
        {
            Movimentos_caixasController mc_controller = new Movimentos_caixasController();

            HashSet <Usuarios> usuarios = new HashSet <Usuarios>();
            List <Caixas>      caixas   = new List <Caixas>()
            {
                new CaixasController().Find(mc_controller.Get_ID_CaixaAtualUsuario())
            };
            HashSet <Formas_pagamento> formas_pg = new HashSet <Formas_pagamento>();

            mc_controller.DisableAntiTracking();
            List <Movimentos_caixas> movimentos = mc_controller.GetMovimentosCaixaAtual();

            foreach (Movimentos_caixas movimento in movimentos)
            {
                if (usuarios.FirstOrDefault(u => u.Id == movimento.Usuario_id) == null)
                {
                    usuarios.Add(movimento.Usuarios);
                }

                if (formas_pg.FirstOrDefault(f => f.Id == movimento.Forma_pagamento_id) == null)
                {
                    formas_pg.Add(movimento.Formas_pagamento);
                }

                movimento.Usuarios         = null;
                movimento.Formas_pagamento = null;
                movimento.Caixas           = null;
                movimento.Lojas            = null;
            }

            IControllerReport rController = ReportController.GetInstance();

            rController.AddDataSource("Movimentos_caixas", movimentos);
            rController.AddDataSource("Usuarios", usuarios);
            rController.AddDataSource("Caixas", caixas);
            rController.AddDataSource("Formas_pagamento", formas_pg);
            rController.AddDataSource("Lojas", new List <Lojas>()
            {
                UsuariosController.LojaAtual
            });

            rController.BindParameter("ValorAbertura", mc_controller.GetUltimoMovimentoAbertura().Valor);
            rController.BindParameter("TotalEntradas", mc_controller.GetTotalMovimentacoesCaixaAtual(Tipo_movimentacao_caixa.ENTRADA));
            rController.BindParameter("TotalSaidas", mc_controller.GetTotalMovimentacoesCaixaAtual(Tipo_movimentacao_caixa.SAIDA));
            rController.BindParameter("TotalCaixa", mc_controller.GetTotalCaixa());
            rController.BindParameter("UsuarioImpressao", UsuariosController.UsuarioAtual.Nome);

            rController.ShowReport("Relatório de caixa", "CXACONS001");
        }
예제 #2
0
        public void CupomNaoFiscal()
        {
            DsCupomNaoFiscal dataSet     = new DsCupomNaoFiscal();
            DataTable        dtMovimento = dataSet.Tables["Movimento"];

            EstoqueController          eController        = new EstoqueController();
            Grades_produtosController  gController        = new Grades_produtosController();
            UnidadesController         unController       = new UnidadesController();
            UsuariosController         usuariosController = new UsuariosController();
            ClientesController         clientesController = new ClientesController();
            Tipos_movimentoController  tipoMovController  = new Tipos_movimentoController();
            Formas_pagamentoController fpgController      = new Formas_pagamentoController();

            if (Movimento.Usuarios == null)
            {
                Movimento.Usuarios = new UsuariosController().Find(Movimento.Usuario_id);
            }

            #region MOVIMENTO
            dtMovimento.Rows.Add(
                Movimento.Id,
                UsuariosController.LojaAtual.Nome_fantasia,
                Movimento.Usuarios.Vendedores.Count == 0 ? Movimento.Usuarios.Nome : Movimento.Usuarios.Vendedores.First().Nome,
                Movimento.Cliente_id == 0 ? "Não identificado" : clientesController.Find(Movimento.Cliente_id).Nome,
                GetTotalParcial(),
                GetTotalDesconto(),
                Movimento.Data,
                "",
                $"{UsuariosController.LojaAtual.Logradouro}, {UsuariosController.LojaAtual.Bairro} - {UsuariosController.LojaAtual.Municipio}",
                tipoMovController.Find(Movimento.Tipo_movimento_id).Descricao,
                UsuariosController.LojaAtual.Cnpj);
            #endregion

            #region ITENS_PAGAMENTO
            DataTable dtItens_pag = dataSet.Tables["Itens_pagamento"];
            itens_pag.ForEach(e => dtItens_pag.Rows.Add(
                                  fpgController.Find(e.Forma_pagamento_id).Descricao,
                                  e.Valor
                                  ));
            #endregion

            #region ITENS_MOVIMENTO
            DataTable dtItens_mov = dataSet.Tables["Itens_movimento"];
            foreach (Itens_movimento item in Itens_movimento)
            {
                string cod_prod                 = string.Empty;
                string descricaoProdo           = item.Produtos.Descricao;
                string descricao_valor_unitario = string.Empty;

                if (!string.IsNullOrEmpty(item.Lote))
                {
                    cod_prod = item.Lote + "SL" + item.Sublote;
                }
                else if (item.Grade_id != null)
                {
                    Grades_produtos grade = gController.Find(item.Grade_id);

                    cod_prod        = item.Grade_id;
                    descricaoProdo += $" {grade.Cores.Descricao} {grade.Tamanhos.Descricao}";
                }
                else
                {
                    cod_prod = item.Produtos.Ean;
                }

                if (item.Unidades == null)
                {
                    item.Unidades = unController.Find(item.Unidade_id);
                }
                descricao_valor_unitario = $"{item.Quant} {item.Unidades.Sigla} x R${item.Valor_unit}";
                dtItens_mov.Rows.Add(item.Id, cod_prod, descricaoProdo, descricao_valor_unitario, item.Quant, item.Valor_final);
            }
            #endregion

            IControllerReport rController = ReportController.GetInstance();
            rController.AddDataSource("Itens_movimento", dtItens_mov);
            rController.AddDataSource("Itens_pagamento", dtItens_pag);
            rController.AddDataSource("Movimento", dtMovimento);

            rController.ShowReport("MOVIMENTO", "MOV001");
        }