Example #1
0
        public void Recibo()
        {
            if (Convert.ToBoolean(Convert.ToBoolean(Session["chooseReport"]) == true))
            {
                System.Drawing.Printing.PageSettings pg = new System.Drawing.Printing.PageSettings();
                pg.Margins.Top    = 0;
                pg.Margins.Bottom = 0;
                pg.Margins.Left   = 0;
                pg.Margins.Right  = 0;
                System.Drawing.Printing.PaperSize size = new System.Drawing.Printing.PaperSize();
                size.RawKind = (int)PaperKind.Letter;
                pg.PaperSize = size;
                pg.Landscape = true;

                decimal       somatudo               = 0;
                ReciboAguaBLL oReciboBLL             = new ReciboAguaBLL();
                ReciboAgua    oReciboModel           = new ReciboAgua();
                double        totalExcedenteDinamico = 0;

                DSrecibo dsSegundaVia = new DSrecibo();


                string mes = Session["mes"].ToString();
                string ano = Session["ano"].ToString();



                var oListOrdenadoByRegistro = from listaOrdenada in oReciboBLL.buscaTodosRecibosByYearAndMonth(Convert.ToInt32(ano), Convert.ToInt32(mes))
                                              orderby listaOrdenada.registro ascending
                                              select listaOrdenada;


                listaSegundaViaAgua listExcel = oReciboBLL.buscaTodosRecibosByYearAndMonth(Convert.ToInt32(ano), Convert.ToInt32(mes));



                if (Convert.ToBoolean(Session["Excel"]) == true)
                {
                    Export(mes + "/" + ano, listExcel);
                }

                else
                {
                    try
                    {
                        foreach (var item in oListOrdenadoByRegistro)
                        {
                            if (Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero) > 10)
                            {
                                totalExcedenteDinamico += Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero) - 10;
                            }
                        }



                        foreach (var item in oListOrdenadoByRegistro)
                        {
                            DataRow drSegundaVia = dsSegundaVia.Tables[1].NewRow();

                            drSegundaVia["ID-Condomínio"]          = item.idCondominio;
                            drSegundaVia["Nome do Condomínio"]     = item.nomeCondominio;
                            drSegundaVia["Endereço do Condomínio"] = item.enderecoCondominio;
                            drSegundaVia["Bloco"]                 = item.bloco;
                            drSegundaVia["Apartamento"]           = item.apartamento;
                            drSegundaVia["Registro"]              = item.registro;
                            drSegundaVia["Fechamento Atual"]      = item.fechamentoAtual;
                            drSegundaVia["Data leitura Anterior"] = item.dataLeituraAnterior;
                            drSegundaVia["Leitura Anterior M³"]   = item.leituraAnteriorM3;
                            drSegundaVia["Data leitura Atual"]    = item.dataLeituraAtual;
                            drSegundaVia["Leitura Atual M³"]      = item.leituraAtualM3;

                            drSegundaVia["Consumo do Mês M³"] = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero);     //item.consumoMesM3;// item.consumoMesM3;



                            //drSegundaVia["Consumo do Mês M³"] = Math.Round(item.excedenteM3diaria * 30, 0);//item.consumoMesM3;// item.consumoMesM3;
                            drSegundaVia["Data da próxima leitura"] = item.dataProximaLeitura;
                            drSegundaVia["status"] = item.status;
                            drSegundaVia["Média"]  = item.media;
                            drSegundaVia["Histórico descricação mês1"] = item.historicoDescricaoMes1;
                            drSegundaVia["Histórico mês1"]             = item.historicoMes1;
                            drSegundaVia["Histórico descricação mês2"] = item.historicoDescricaoMes2;
                            drSegundaVia["Histórico mês2"]             = item.historicoMes2;
                            drSegundaVia["Histórico descricação mês3"] = item.historicoDescricaoMes3;
                            drSegundaVia["Histórico mês3"]             = item.historicoMes3;
                            drSegundaVia["Histórico descricação mês4"] = item.historicoDescricaoMes4;
                            drSegundaVia["Histórico mês4"]             = item.historicoMes4;
                            drSegundaVia["Histórico descricação mês5"] = item.historicoDescricaoMes5;
                            drSegundaVia["Histórico mês5"]             = item.historicoMes5;
                            drSegundaVia["Histórico descricação mês6"] = item.historicoDescricaoMes6;
                            drSegundaVia["Histórico mês6"]             = item.historicoMes6;

                            // Virá do banco quando o consumo - se maior que 2400 fara o valor do rateio
                            //item.consumoM3pagoCondominio = 2600;
                            // o Valor pago do condominio virá do banco também...
                            //item.ConsumoValorPagoCondominio = 7900;

                            //Isto ficará fixo - Será a diferença paga entre o valor pago do consumo minimo, e o consumo e excedente
                            item.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);

                            drSegundaVia["Consumo Valor"] = item.ConsumoValorPagoCondominio;
                            drSegundaVia["Consumo M³"]    = item.consumoM3pagoCondominio;

                            drSegundaVia["Mínimo M³"]    = item.minimoM3PagoCondominio;
                            drSegundaVia["Mínimo Valor"] = item.minimoValorPagoCondominio;

                            drSegundaVia["Excedente Valor"]     = item.excedenteValorPagoCondominio;
                            drSegundaVia["Tarifa Mínima M³"]    = item.tarifaMinimaM3ValorDevido;
                            drSegundaVia["Tarifa Mínima Valor"] = item.tarifaMinimaValorValorDevido;



                            //var dir = System.Configuration.ConfigurationManager.AppSettings["relatorioGeral"];

                            //StreamWriter details = new StreamWriter("D:\\DZHosts\\LocalUser\\edmls34\\www.azulicondominio.com\\relatorio"+mes+ano+".txt",true,Encoding.ASCII);
                            //Se o valor do consumo do M3 for maior que o minimo M3 do condominio será feito o rateio...

                            if (item.consumoM3pagoCondominio > item.minimoM3PagoCondominio)
                            {
                                item.excedenteM3PagoCondominio = item.consumoM3pagoCondominio - item.minimoM3PagoCondominio;


                                item.excedenteValorRateio  = Convert.ToDecimal(Math.Round(Convert.ToDouble(item.excedenteValorPagoCondominio) / totalExcedenteDinamico + 0.0005, 3));
                                item.valorPagarValorDevido = item.excedenteValorDevido * item.excedenteValorRateio;

                                somatudo += item.valorPagarValorDevido;

                                drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                                drSegundaVia["ExcedenteValorRateio "]       = item.excedenteValorRateio;
                                drSegundaVia["a pagar"] = item.valorPagarValorDevido;



                                //details.WriteLine(item.bloco + " " + item.apartamento + " " + item.valorPagarValorDevido);
                            }
                            //Se não mantêm o valor sem rateio..
                            else
                            {
                                drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                                drSegundaVia["ExcedenteValorRateio "]       = item.excedenteValorRateio;
                                drSegundaVia["a pagar"] = item.valorPagarValorDevido;
                            }

                            //details.Close();

                            drSegundaVia["ExcedenteM3Rateio"]    = totalExcedenteDinamico;
                            drSegundaVia["Geral"]                = item.avisoGeralAviso;
                            drSegundaVia["Anormal"]              = item.AnormalAviso;
                            drSegundaVia["Invididual"]           = item.individualAviso;
                            drSegundaVia["ANORMALIDADE"]         = item.anormalidadeAviso;
                            drSegundaVia["Imagem"]               = item.imagem;
                            drSegundaVia["ExcedenteValorDevido"] = item.excedenteValorDevido;
                            drSegundaVia["excedenteM3Diario"]    = item.excedenteM3diaria;

                            dsSegundaVia.Tables[1].Rows.Add(drSegundaVia);
                        }



                        Crystal.Relatorios.ReciboMoradorByApBloco rbSegundaVia = new Crystal.Relatorios.ReciboMoradorByApBloco();

                        rbSegundaVia.SetDataSource(dsSegundaVia);

                        rbSegundaVia.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "Recibo");
                    }

                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }


            else
            {
                if (Session["reciboConfirmadoNoAto"] != null && (int)Session["reciboConfirmadoNoAto"] == 1)
                {
                    oAp.apartamento = Convert.ToInt32(Session["MoradorSemInternetAP"]);
                    oAp.bloco       = Convert.ToInt32(Session["MoradorSemInternetBloco"]);
                    oAgendaModel.dataAgendamento = Convert.ToDateTime(Session["dataReservaAdministrador"]);
                    oAgendaModel.ap = oAp;
                }
                else
                {
                    oAp.apartamento = Convert.ToInt32(Session["aptoSession"]);
                    oAp.bloco       = Convert.ToInt32(Session["blocoSession"]);
                    oAgendaModel.dataAgendamento = Convert.ToDateTime(Session["dataReservaOnline"]);
                    oAgendaModel.ap = oAp;
                }

                try
                {
                    DSrecibo dsRecibo = new DSrecibo();
                    DataRow  drRecibo = dsRecibo.Tables[0].NewRow();

                    foreach (var item in  oAgendaBLL.geraReciboPago(oAgendaModel))
                    {
                        drRecibo["DIA"] = DateTime.Now.Day;
                        drRecibo["MES"] = System.Globalization.DateTimeFormatInfo.CurrentInfo.GetMonthName(DateTime.Now.Month);
                        drRecibo["ANO"] = DateTime.Now.Year;
                        if (item.salaoChurrasco == true && item.salaoFesta == true)
                        {
                            foreach (var Desconto in oConfigValor.oListaValorReserva())
                            {
                                if (Desconto.id_valor == 3)
                                {
                                    drRecibo["VALOR_POR_EXTENSO"] = new Util.NumeroPorExtenso(Convert.ToDecimal(item.valorReserva - Desconto.valor));
                                    drRecibo["VALOR"]             = item.valorReserva - Desconto.valor + ",00";
                                }
                            }
                        }
                        else
                        {
                            drRecibo["VALOR_POR_EXTENSO"] = new Util.NumeroPorExtenso(Convert.ToDecimal(item.valorReserva));
                            drRecibo["VALOR"]             = item.valorReserva + ",00";
                        }

                        drRecibo["PROPRIETARIO"] = "0" + item.ap.bloco + " - " + item.ap.apartamento + " - " + item.ap.oProprietario.proprietario1;
                        drRecibo["Descricao"]    = item.observacao;
                    }



                    //string caminhoRelatorio = ConfigurationManager.AppSettings["ReportsPath"] + ConfigurationManager.AppSettings["reciboReserva"];

                    //rpt.Load(caminhoRelatorio);

                    // rpt.SetDataSource(drRecibo);

                    dsRecibo.Tables[0].Rows.Add(drRecibo);

                    Crystal.Relatorios.ReciboReserva rbReserva = new Crystal.Relatorios.ReciboReserva();

                    rbReserva.SetDataSource(dsRecibo);

                    CrystalReportViewer1.ReportSource = rbReserva;

                    rbReserva.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "Recibo");
                }

                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }