Exemplo n.º 1
0
        private void EnviarEmail(ResultadoOperacaoFechamento resultado)
        {
            var dataInicial  = DateTime.Now.GetFirstDateTimeOfMonth();
            var datafinal    = DateTime.Now.GetLastDateTimeOfMonth();
            var totalVendido = RecuperarTotalVendido(dataInicial, datafinal);
            var senderEmail  = _parametros.SmtpSenderEmail;
            var senderName   = _parametros.SmtpSenderName;
            var fromEmail    = _parametros.SmtpSenderEmail;
            var fromName     = _parametros.SmtpSenderName;
            var subject      = "Resultado do Fechamento";
            var htmlBody     = "";

            var emailsTo = new List <MailAddress>();

            _parametros.EmailsParaEnviar.Split(';').ToList().ForEach(email => emailsTo.Add(new MailAddress(email)));

            htmlBody =
                $@"<h1>Resultado fechamento dia: {DateTime.Now:dd/MM/yyy HH:mm} - <span style='color: red;'>{resultado.ValorTotalPagamento.ToString("c", CultureInfo.GetCultureInfo("pt-BR"))}</span></h1>
                                    <table style='width: 400px; border-collapse: collapse;'>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Nome Do PDV:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{"NomeDoCaixa".GetConfigValue().ToUpper()}</td></tr>

	                                    <tr><td style='width: 250px;  border: 1px solid black;'>Valor de Abertura:</td>
		                                <td  align='right' style='width: 150px;  border: 1px solid black;'>{resultado.ValorAbertura:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Dinheiro no Caixa p/ Operador:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                        .ValorContabilizadoNoFechamento:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Pagamentos em Dinheiro:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                            .ValorTotalPagamentoDinheiro:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Pagamentos em Debito:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                                .ValorTotalPagamentoDebito:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Pagamentos em Credito:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                                    .ValorTotalPagamentoCredito:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Pagamentos em Ticket:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                                        .ValorTotalPagamentoTicket:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Dinheiro no Caixa p/ Sistema:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                                            .ValorTotalEstimadoEmEspecie:c}</td></tr>

                                        <tr><td style='width: 250px;  border: 1px solid black;'>Diferença:</td>
		                                <td align='right' style='width: 150px;  border: 1px solid black;'>{resultado
                                                .DiferencaNoCaixa:c}</td></tr>
                                    </table>
                    <h3>Total Venda em {DateTime.Now.GetMonthName()}: <span style='color: red;'>{totalVendido.ValorTotal.ToString("c", CultureInfo.GetCultureInfo("pt-BR"))}</span></br>
                    Quantidade Vendida: <span style='color: red;'>{totalVendido.Quantidade}</span></h3>";


            _email.Enviar(senderEmail, senderName, fromEmail, fromName, subject, htmlBody, emailsTo);
        }
Exemplo n.º 2
0
        private void RegistrarResultadoFechamento(OperacaoCaixa operacaoCaixaFechamento, decimal valorContabilizadoNoFechamento)
        {
            var vendas = _vendaRepositorio.RecuperarListaDasVendasDaOperacaoDeAbertura(CaixaCorrente.CodigoOperacaoDeAbertura);

            if (vendas != null && vendas.Count > 0)
            {
                var operacoesCaixa        = _repositorio.RecuperarOperacoesCaixaPorCodigoDeAbertura(CaixaCorrente.CodigoOperacaoDeAbertura);
                var operacaoCaixaAbertura = operacoesCaixa.SingleOrDefault(x => x.TipoOperacao == EnumCaixaTipoOperacao.Abertura.ToString());

                if (operacaoCaixaAbertura != null)
                {
                    var resultadoFechamento = new ResultadoOperacaoFechamento();

                    resultadoFechamento.CodigoResultado = GerarCodigoUnico();
                    resultadoFechamento.OperacaoCaixa_CodigoOperacaoCaixa = operacaoCaixaFechamento.CodigoOperacaoCaixa;
                    resultadoFechamento.ValorAbertura = operacaoCaixaAbertura.ValorOperacao;
                    resultadoFechamento.ValorContabilizadoNoFechamento = valorContabilizadoNoFechamento;
                    resultadoFechamento.ValorTotalReforco = operacoesCaixa.Where(x => x.TipoOperacao == EnumCaixaTipoOperacao.Reforco.ToString()).Sum(x => x.ValorOperacao);
                    resultadoFechamento.ValorTotalSangria = operacoesCaixa.Where(x => x.TipoOperacao == EnumCaixaTipoOperacao.Sangria.ToString()).Sum(x => x.ValorOperacao);

                    vendas.ForEach(venda =>
                    {
                        var vendaPagamentos = _vendaRepositorio.RecuperarListaDosPagamentosDaVenda(venda.CodigoVenda);
                        resultadoFechamento.ValorTotalDescontoVenda += venda.ValorTotalDescontoVenda;

                        TipoDoPagamento.ListaDeTiposDePagamento.Where(x => x.Nome.Contains("Dinheiro")).ToList().ForEach(item =>
                        {
                            resultadoFechamento.ValorTotalPagamentoDinheiro += vendaPagamentos.Where(
                                x => x.TipoPagamento_CodigoTipoPagamento == item.CodigoTipoPagamento).Sum(x => x.ValorPagamento) - venda.ValorTroco;
                        });

                        TipoDoPagamento.ListaDeTiposDePagamento.Where(x => x.Nome.Contains("Crédito")).ToList().ForEach(item =>
                        {
                            resultadoFechamento.ValorTotalPagamentoCredito +=
                                vendaPagamentos.Where(x => x.TipoPagamento_CodigoTipoPagamento == item.CodigoTipoPagamento).Sum(x => x.ValorPagamento);

                            resultadoFechamento.ValorRecebimentoCretito = resultadoFechamento.ValorTotalPagamentoCredito - (item.PercentualDesconto / 100 * resultadoFechamento.ValorTotalPagamentoCredito);
                        });

                        TipoDoPagamento.ListaDeTiposDePagamento.Where(x => x.Nome.Contains("Débito")).ToList().ForEach(item =>
                        {
                            resultadoFechamento.ValorTotalPagamentoDebito +=
                                vendaPagamentos.Where(x => x.TipoPagamento_CodigoTipoPagamento == item.CodigoTipoPagamento).Sum(x => x.ValorPagamento);

                            resultadoFechamento.ValorRecebimentoDebito = resultadoFechamento.ValorTotalPagamentoDebito - (item.PercentualDesconto / 100 * resultadoFechamento.ValorTotalPagamentoDebito);
                        });


                        TipoDoPagamento.ListaDeTiposDePagamento.Where(x => x.Nome.Contains("Tiket")).ToList().ForEach(item =>
                        {
                            resultadoFechamento.ValorTotalPagamentoTicket +=
                                vendaPagamentos.Where(x => x.TipoPagamento_CodigoTipoPagamento == item.CodigoTipoPagamento).Sum(x => x.ValorPagamento);

                            resultadoFechamento.ValorRecebimentoTicket += resultadoFechamento.ValorTotalPagamentoTicket - (item.PercentualDesconto / 100 * resultadoFechamento.ValorTotalPagamentoTicket);
                        });
                    });

                    resultadoFechamento.ValorTotalPagamento = resultadoFechamento.ValorTotalPagamentoDinheiro +
                                                              resultadoFechamento.ValorTotalPagamentoCredito +
                                                              resultadoFechamento.ValorTotalPagamentoDebito +
                                                              resultadoFechamento.ValorTotalPagamentoTicket;

                    resultadoFechamento.ValorTotalEstimadoEmEspecie = resultadoFechamento.ValorAbertura +
                                                                      resultadoFechamento.ValorTotalReforco +
                                                                      resultadoFechamento.ValorTotalPagamentoDinheiro -
                                                                      resultadoFechamento.ValorTotalSangria;
                    resultadoFechamento.DiferencaNoCaixa = resultadoFechamento.ValorContabilizadoNoFechamento - resultadoFechamento.ValorTotalEstimadoEmEspecie;

                    _repositorio.Inserir <ResultadoOperacaoFechamento>(resultadoFechamento);

                    Task.Factory.StartNew(() =>
                    {
                        EnviarEmail(resultadoFechamento);
                    });
                }
            }
        }