public listaSegundaViaAgua buscaTodosRecibosByBlocoAndApto(ReciboAgua oReciboModel)
        {
            string clausulaSql = "";

            if (oReciboModel.mes <= 2015)
            {
                clausulaSql = "SP_RECIBO_WEB_BLOCO_AP_OLD";
            }
            else
            {
                clausulaSql = "SP_RECIBO_WEB_BLOCO_AP";
            }
            try
            {
                SqlCommand comandoSQL = new SqlCommand(clausulaSql);

                comandoSQL.Parameters.AddWithValue("@BLOCO", oReciboModel.bloco);
                comandoSQL.Parameters.AddWithValue("@AP", oReciboModel.apartamento);
                comandoSQL.Parameters.AddWithValue("@Mes", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@Ano", oReciboModel.mes);

                DataTable tbRecibo = new DataTable();

                tbRecibo = ExecutaQuery(comandoSQL);

                return(populaSegundaViaAgua(tbRecibo));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public listaSegundaViaAgua buscaTodosRecibosByBlocoAndApto(ReciboAgua oReciboModel)
        {
            string clausulaSql = "";
            if (oReciboModel.mes <= 2015)
            {
                clausulaSql = "SP_RECIBO_WEB_BLOCO_AP_OLD";
            }
            else
            {
                clausulaSql = "SP_RECIBO_WEB_BLOCO_AP";
            }
            try
            {
                SqlCommand comandoSQL = new SqlCommand(clausulaSql);

                comandoSQL.Parameters.AddWithValue("@BLOCO", oReciboModel.bloco);
                comandoSQL.Parameters.AddWithValue("@AP", oReciboModel.apartamento);
                comandoSQL.Parameters.AddWithValue("@Mes", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@Ano", oReciboModel.mes);

                DataTable tbRecibo = new DataTable();

                tbRecibo = ExecutaQuery(comandoSQL);

                return populaSegundaViaAgua(tbRecibo);

            }
            catch (Exception)
            {

                throw;
            }
        }
        public void persisteCalculoFinalBanco(ReciboAgua oReciboModel)
        {
            ReciboAguaDAO oReciboDao = new ReciboAguaDAO();

            try
            {
                oReciboDao.persisteCalculoFinalBanco(oReciboModel);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void importIntegracaoWeb(ReciboAgua oReciboModel)
        {
            ReciboAguaDAO oReciboDao = new ReciboAguaDAO();

            try
            {
                oReciboDao.importIntegracaoWeb(oReciboModel);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public listaSegundaViaAgua validaImportacao(ReciboAgua oReciboModel)
        {
            listaSegundaViaAgua oListReciboAgua;
            ReciboAguaDAO       oReciboDao = new ReciboAguaDAO();

            try
            {
                oListReciboAgua = oReciboDao.validaImportacao(oReciboModel);

                return(oListReciboAgua);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public listaSegundaViaAgua buscaTodosRecibosByBlocoAndApto(ReciboAgua oReciboModel)
        {
            listaSegundaViaAgua oListReciboAgua;
            ReciboAguaDAO       oReciboDao = new ReciboAguaDAO();

            try
            {
                oListReciboAgua = oReciboDao.buscaTodosRecibosByBlocoAndApto(oReciboModel);

                return(oListReciboAgua);
            }
            catch (Exception)
            {
                throw;
            }
        }
        protected void cmdSave_Click(object sender, EventArgs e)
        {
            ReciboAgua    oReciboModel = new ReciboAgua();
            ReciboAguaBLL bussiness    = new ReciboAguaBLL();

            oReciboModel.ano = IteropList[1].mes;
            oReciboModel.mes = IteropList[1].ano;

            var contador = bussiness.validaImportacao(oReciboModel);

            if (contador[0].mes == 0)
            {
                // Add Fake Delay to simulate long running process.
                System.Threading.Thread.Sleep(5000);
                //Forech entry found in text file loaded
                for (int c = 0; c < IteropList.Count; c++)
                {
                    try
                    {
                        bussiness.importIntegracaoWeb(IteropList[c]);
                    }
                    catch (Exception ex)
                    {
                        ex.Message.ToString();
                    }
                }

                this.lblSaved.Visible    = true;
                lblSaved.Text            = "Integração feita com sucesso Referência - > " + oReciboModel.mes + "/" + oReciboModel.ano;
                divtabela.Visible        = false;
                cmdSave.Visible          = false;
                lblDescTotalRead.Visible = false;
                lblTotalRead.Visible     = false;
                btnCheck.Visible         = true;
                dvUploadArquivos.Visible = true;
                this.grZip.DataSource    = null;
                this.grZip.DataBind();
            }
            else
            {
                hiddenComponent();
                this.lblSaved.Visible   = true;
                this.btnCheck.Visible   = true;
                this.lblSaved.ForeColor = Color.Red;
                lblSaved.Text           = "já houve integração p/ refêrencia - " + oReciboModel.mes + "/" + oReciboModel.ano;
            }
        }
        public listaSegundaViaAgua buscaTodosRecibosByBlocoAndApto(ReciboAgua oReciboModel)
        {
            listaSegundaViaAgua oListReciboAgua;
            ReciboAguaDAO  oReciboDao = new ReciboAguaDAO();

            try
            {
                oListReciboAgua = oReciboDao.buscaTodosRecibosByBlocoAndApto(oReciboModel);

                return oListReciboAgua;

            }
            catch (Exception)
            {

                throw;
            }
        }
        /// <summary>
        /// Methods which read the file and convert it to the model
        /// </summary>
        /// <param name="file">File to be loaded</param>
        /// <returns>List of objects found</returns>
        public listaSegundaViaAgua LoadFile(Stream file)
        {
            listaSegundaViaAgua list = new listaSegundaViaAgua();
            int lineNumber           = 0;

            StreamReader reader = new StreamReader(file, Encoding.Default, false);


            try
            {
                //Checking all lines of the file
                while (reader.Peek() > 0)
                {
                    string line = reader.ReadLine();

                    int count = line.Length;

                    if (line[count - 5] == '.')
                    {
                        line = line.Remove(count - 5, 1);
                        line = line.Insert(count - 5, ",");
                    }


                    //Converting the line to object
                    ReciboAgua newObject = ConvertRowToObject(lineNumber, line);

                    //If found a valid object

                    if (newObject != null)
                    {
                        list.Add(newObject);
                    }

                    lineNumber++;
                }//end while
            }
            finally
            {
                reader.Close();
            }

            return(list);
        }
示例#10
0
        public listaSegundaViaAgua validaImportacao(ReciboAgua oReciboModel)
        {
            string clausulaSql = "SP_VALIDAIMPORT_BY_YEAR_MOUNTH";

            try
            {
                SqlCommand comandoSQL = new SqlCommand(clausulaSql);

                comandoSQL.Parameters.AddWithValue("@Mes", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@Ano", oReciboModel.mes);

                DataTable tbRecibo = new DataTable();

                tbRecibo = ExecutaQuery(comandoSQL);

                return(populaSegundaViaAgua(tbRecibo));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public listaSegundaViaAgua validaImportacao(ReciboAgua oReciboModel)
        {
            listaSegundaViaAgua oListReciboAgua;
              ReciboAguaDAO oReciboDao = new ReciboAguaDAO();

            try
            {
               oListReciboAgua = oReciboDao.validaImportacao(oReciboModel);

               return oListReciboAgua;

            }
            catch (Exception)
            {

                throw;
            }
        }
        public void persisteCalculoFinalBanco(ReciboAgua oReciboModel)
        {
            ReciboAguaDAO oReciboDao = new ReciboAguaDAO();

            try
            {
                oReciboDao.persisteCalculoFinalBanco(oReciboModel);

            }
            catch (Exception e)
            {

                throw e;
            }
        }
        public void importIntegracaoWeb(ReciboAgua oReciboModel)
        {
            ReciboAguaDAO oReciboDao = new ReciboAguaDAO();

            try
            {
                oReciboDao.importIntegracaoWeb(oReciboModel);

            }
            catch (Exception e)
            {

                throw e;
            }
        }
        /// <summary>
        /// Method which converts the row to object
        /// </summary>
        /// <param name="yearBase">Year base</param>
        /// <param name="lineNumber">line number of the file</param>
        /// <param name="line">string which contains line information read</param>
        /// <returns>object created in the iterop format</returns>
        private ReciboAgua ConvertRowToObject(int lineNumber, string line)
        {
            ReciboAgua model = new ReciboAgua();

            info.NumberDecimalSeparator = ",";
            info.NumberGroupSeparator = ".";
            
            if (string.IsNullOrEmpty(line))
                return null;

            string[] split = line.Split(new char[] { ';' });


            if (split.Length <= (int)Header.idCondominio)
                throw new Exception("Not found idCondominio in column: " + ((int)Header.idCondominio).ToString());
            model.idCondominio = split[(int)Header.idCondominio].Trim().ToString();

            if (split.Length <= (int)Header.nomeCondominio)
                throw new Exception("Not found nomeCondominio in column: " + ((int)Header.nomeCondominio).ToString());
            model.nomeCondominio = split[(int)Header.nomeCondominio].Trim().ToString();

            if (split.Length <= (int)Header.enderecoCondominio)
                throw new Exception("Not found enderecoCondominio in column: " + ((int)Header.enderecoCondominio).ToString());
            model.enderecoCondominio = split[(int)Header.enderecoCondominio].Trim().ToString();


            if (split.Length <= (int)Header.bloco)
                throw new Exception("Not found bloco in column: " + ((int)Header.bloco).ToString());
            model.bloco = split[(int)Header.bloco].Trim().ToString();

            if (split.Length <= (int)Header.apartamento)
                throw new Exception("Not found apartamento in column: " + ((int)Header.apartamento).ToString());
            model.apartamento = split[(int)Header.apartamento].Trim().ToString();

            if (split.Length <= (int)Header.registro)
                throw new Exception("Not found registro in column: " + ((int)Header.registro).ToString());
            model.registro = split[(int)Header.registro].Trim().ToString();


            if (split.Length <= (int)Header.fechamentoAtual)
                throw new Exception("Not found fechamentoAtual in column: " + ((int)Header.fechamentoAtual).ToString());
            model.fechamentoAtual = split[(int)Header.fechamentoAtual].Trim().ToString();


            if (split.Length <= (int)Header.dataLeituraAnterior)
                throw new Exception("Not found dataLeituraAnteriorr in column: " + ((int)Header.dataLeituraAnterior).ToString());
            model.dataLeituraAnterior = split[(int)Header.dataLeituraAnterior].Trim().ToString();

            if (split.Length <= (int)Header.leituraAnteriorM3)
                throw new Exception("Not found leituraAnteriorM3 in column: " + ((int)Header.leituraAnteriorM3).ToString());
            model.leituraAnteriorM3 = split[(int)Header.leituraAnteriorM3].Trim().ToString();

            if (split.Length <= (int)Header.dataLeituraAtual)
                throw new Exception("Not found dataLeituraAtual in column: " + ((int)Header.dataLeituraAtual).ToString());
            model.dataLeituraAtual = split[(int)Header.dataLeituraAtual].Trim().ToString();

            if (split.Length <= (int)Header.leituraAtualM3)
                throw new Exception("Not found leituraAtualM3 in column: " + ((int)Header.leituraAtualM3).ToString());
            model.leituraAtualM3 = split[(int)Header.leituraAtualM3].Trim().ToString();

            if (split.Length <= (int)Header.consumoMesM3)
                throw new Exception("Not found consumoMesM3 in column: " + ((int)Header.consumoMesM3).ToString());
            model.consumoMesM3 = split[(int)Header.consumoMesM3].Trim().ToString();


            if (split.Length <= (int)Header.dataProximaLeitura)
                throw new Exception("Not found dataProximaLeitura in column: " + ((int)Header.dataProximaLeitura).ToString());
            model.dataProximaLeitura = split[(int)Header.dataProximaLeitura].Trim().ToString();

            if (split.Length <= (int)Header.status)
                throw new Exception("Not found status in column: " + ((int)Header.status).ToString());
            model.status = split[(int)Header.status].Trim();

            if (split.Length <= (int)Header.media)
                throw new Exception("Not found media in column: " + ((int)Header.media).ToString());
            model.media = split[(int)Header.media].Trim().ToString();


            if (split.Length <= (int)Header.historicoDescricaoMes1)
                throw new Exception("Not found historicoDescricaoMes1 in column: " + ((int)Header.historicoDescricaoMes1).ToString());
            model.historicoDescricaoMes1 = split[(int)Header.historicoDescricaoMes1].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes1)
                throw new Exception("Not found historicoMes1 in column: " + ((int)Header.historicoMes1).ToString());
            model.historicoMes1 = split[(int)Header.historicoMes1].Trim().ToString();


            if (split.Length <= (int)Header.historicoDescricaoMes2)
                throw new Exception("Not found historicoDescricaoMes2 in column: " + ((int)Header.historicoDescricaoMes2).ToString());
            model.historicoDescricaoMes2 = split[(int)Header.historicoDescricaoMes2].Trim();

            if (split.Length <= (int)Header.historicoMes2)
                throw new Exception("Not found historicoMes2 in column: " + ((int)Header.historicoMes2).ToString());
            model.historicoMes2 = split[(int)Header.historicoMes2].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes3)
                throw new Exception("Not found historicoDescricaoMes3 in column: " + ((int)Header.historicoDescricaoMes3).ToString());
            model.historicoDescricaoMes3 = split[(int)Header.historicoDescricaoMes3].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes3)
                throw new Exception("Not found historicoMes3 in column: " + ((int)Header.historicoMes3).ToString());
            model.historicoMes3 = split[(int)Header.historicoMes3].Trim().ToString();



            if (split.Length <= (int)Header.historicoDescricaoMes4)
                throw new Exception("Not found historicoDescricaoMes4 in column: " + ((int)Header.historicoDescricaoMes4).ToString());
            model.historicoDescricaoMes4 = split[(int)Header.historicoDescricaoMes4].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes4)
                throw new Exception("Not found historicoMes1 in column: " + ((int)Header.historicoMes4).ToString());
            model.historicoMes4 = split[(int)Header.historicoMes4].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes5)
                throw new Exception("Not found historicoDescricaoMes5 in column: " + ((int)Header.historicoDescricaoMes5).ToString());
            model.historicoDescricaoMes5 = split[(int)Header.historicoDescricaoMes5].Trim().ToString();


            if (split.Length <= (int)Header.historicoMes5)
                throw new Exception("Not found historicoMes5 in column: " + ((int)Header.historicoMes5).ToString());
            model.historicoMes5 = split[(int)Header.historicoMes5].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes6)
                throw new Exception("Not found historicoDescricaoMes6 in column: " + ((int)Header.historicoDescricaoMes6).ToString());
            model.historicoDescricaoMes6 = split[(int)Header.historicoDescricaoMes6].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes6)
                throw new Exception("Not found historicoMes6 in column: " + ((int)Header.historicoMes6).ToString());
            model.historicoMes6 = split[(int)Header.historicoMes6].Trim().ToString();

            if (split.Length <= (int)Header.imagem)
                throw new Exception("Not found imagem in column: " + ((int)Header.imagem).ToString());
            model.imagem = split[(int)Header.imagem].Trim().ToString();



            if (split.Length <= (int)Header.ConsumoValorPagoCondominio)
                throw new Exception("Not found consumoM3pagoCondominio in column: " + ((int)Header.consumoM3pagoCondominio).ToString());
            model.ConsumoValorPagoCondominio = Convert.ToDecimal(split[(int)Header.ConsumoValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.consumoM3pagoCondominio)
                throw new Exception("Not found consumoM3pagoCondominio in column: " + ((int)Header.consumoM3pagoCondominio).ToString());
            model.consumoM3pagoCondominio = Convert.ToInt32(split[(int)Header.consumoM3pagoCondominio].Trim());

            if (split.Length <= (int)Header.minimoM3PagoCondominio)
                throw new Exception("Not found minimoM3PagoCondominio in column: " + ((int)Header.minimoM3PagoCondominio).ToString());
            model.minimoM3PagoCondominio = Convert.ToInt32(split[(int)Header.minimoM3PagoCondominio].Trim());

            if (split.Length <= (int)Header.minimoValorPagoCondominio)
                throw new Exception("Not found minimoValorPagoCondominio in column: " + ((int)Header.minimoValorPagoCondominio).ToString());
            model.minimoValorPagoCondominio = Convert.ToDecimal(split[(int)Header.minimoValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteM3PagoCondominio)
                throw new Exception("Not found excedenteM3PagoCondominio in column: " + ((int)Header.excedenteM3PagoCondominio).ToString());
            model.excedenteM3PagoCondominio = Convert.ToInt32(split[(int)Header.excedenteM3PagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteValorPagoCondominio)
                throw new Exception("Not found excedenteValorPagoCondominio in column: " + ((int)Header.excedenteValorPagoCondominio).ToString());
            model.excedenteValorPagoCondominio = Convert.ToDecimal(split[(int)Header.excedenteValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteM3Rateio)
                throw new Exception("Not found excedenteM3Rateio in column: " + ((int)Header.excedenteM3Rateio).ToString());
            model.excedenteM3Rateio = Convert.ToInt32(split[(int)Header.excedenteM3Rateio].Trim());

            if (split.Length <= (int)Header.excedenteValorRateio)
                throw new Exception("Not found excedenteValorRateio in column: " + ((int)Header.excedenteValorRateio).ToString());
            model.excedenteValorRateio = Convert.ToDecimal(split[(int)Header.excedenteValorRateio].Trim());

            if (split.Length <= (int)Header.tarifaMinimaM3ValorDevido)
                throw new Exception("Not found tarifaMinimaM3ValorDevido in column: " + ((int)Header.tarifaMinimaM3ValorDevido).ToString());
            model.tarifaMinimaM3ValorDevido = Convert.ToInt32(split[(int)Header.tarifaMinimaM3ValorDevido].Trim());

            if (split.Length <= (int)Header.tarifaMinimaValorValorDevido)
                throw new Exception("Not found tarifaMinimaValorValorDevido in column: " + ((int)Header.tarifaMinimaValorValorDevido).ToString());
            model.tarifaMinimaValorValorDevido = Convert.ToDecimal(split[(int)Header.tarifaMinimaValorValorDevido].Trim());

            if (split.Length <= (int)Header.excedenteValorDevido)
                throw new Exception("Not found excedenteValorDevido in column: " + ((int)Header.excedenteValorDevido).ToString());
            model.excedenteValorDevido = Convert.ToDecimal(split[(int)Header.excedenteValorDevido].Trim());


            if (split.Length <= (int)Header.valorPagarValorDevido)
                throw new Exception("Not found valorPagarValorDevido in column: " + ((int)Header.valorPagarValorDevido).ToString());
            model.valorPagarValorDevido = Convert.ToDecimal(split[(int)Header.valorPagarValorDevido].Trim());

            if (split.Length <= (int)Header.avisoGeralAviso)
                throw new Exception("Not found avisoGeralAviso in column: " + ((int)Header.avisoGeralAviso).ToString());
            model.avisoGeralAviso = split[(int)Header.avisoGeralAviso].Trim().ToString();

            if (split.Length <= (int)Header.AnormalAviso)
                throw new Exception("Not found AnormalAviso in column: " + ((int)Header.AnormalAviso).ToString());
            model.AnormalAviso = split[(int)Header.AnormalAviso].Trim().ToString();

            if (split.Length <= (int)Header.individualAviso)
                throw new Exception("Not found individualAviso in column: " + ((int)Header.individualAviso).ToString());
            model.individualAviso = split[(int)Header.individualAviso].Trim();

            if (split.Length <= (int)Header.anormalidadeAviso)
                throw new Exception("Not found anormalidadeAviso in column: " + ((int)Header.anormalidadeAviso).ToString());
            model.anormalidadeAviso = split[(int)Header.anormalidadeAviso].Trim().ToString();

            if (split.Length <= (int)Header.individualAviso)
                throw new Exception("Not found individualAviso in column: " + ((int)Header.individualAviso).ToString());
            model.individualAviso = split[(int)Header.individualAviso].Trim().ToString();

            if (split.Length <= (int)Header.ano)
                throw new Exception("Not found ano in column: " + ((int)Header.ano).ToString());
            model.ano = Convert.ToInt32(split[(int)Header.ano].Trim());

            if (split.Length <= (int)Header.mes)
                throw new Exception("Not found mes in column: " + ((int)Header.mes).ToString());
            model.mes = Convert.ToInt32(split[(int)Header.mes].Trim());

            if (split.Length <= (int)Header.excedenteM3diaria)
                throw new Exception("Not found  excedenteM3diaria in column: " + ((int)Header.excedenteM3diaria).ToString());
             decimal excedenteM3diario = Convert.ToDecimal(split[(int)Header.excedenteM3diaria].Trim().ToString());
             model.excedenteM3diaria = (float)excedenteM3diario;
           
            return model;
        }
        private listaSegundaViaAgua populaSegundaViaAgua(DataTable dt)
        {
            listaSegundaViaAgua oListReciboAgua = new listaSegundaViaAgua();

            foreach (DataRow itemOcorrencia in dt.Rows)
            {
                ReciboAgua oReciboAgua = new ReciboAgua();

                if (itemOcorrencia.Table.Columns.Contains("ID - Condomínio"))
                    oReciboAgua.idCondominio = itemOcorrencia["ID - Condomínio"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Nome do Condomínio"))
                    oReciboAgua.nomeCondominio = itemOcorrencia["Nome do Condomínio"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Endereço do Condomínio"))
                    oReciboAgua.enderecoCondominio = itemOcorrencia["Endereço do Condomínio"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Bloco"))
                    oReciboAgua.bloco = itemOcorrencia["Bloco"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Apartamento"))
                    oReciboAgua.apartamento = itemOcorrencia["Apartamento"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Regitro"))
                    oReciboAgua.registro = itemOcorrencia["Regitro"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Fechamento Atual"))
                    oReciboAgua.fechamentoAtual = itemOcorrencia["Fechamento Atual"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Data leitura Anterior"))
                    oReciboAgua.dataLeituraAnterior = itemOcorrencia["Data leitura Anterior"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Data leitura Atual"))
                    oReciboAgua.dataLeituraAtual = itemOcorrencia["Data leitura Atual"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("leitura Anterior M³"))
                    oReciboAgua.leituraAnteriorM3 = itemOcorrencia["leitura Anterior M³"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Leitura Atual M³"))
                    oReciboAgua.leituraAtualM3 = itemOcorrencia["Leitura Atual M³"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Consumo do mês M³"))
                    oReciboAgua.consumoMesM3 = itemOcorrencia["Consumo do mês M³"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Data da próxima leitura"))
                    oReciboAgua.dataProximaLeitura = itemOcorrencia["Data da próxima leitura"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Status"))
                    oReciboAgua.status = itemOcorrencia["Status"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Média"))
                    oReciboAgua.media = itemOcorrencia["Média"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês1"))
                    oReciboAgua.historicoDescricaoMes1 = itemOcorrencia["Histórico descrição mês1"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês2"))
                    oReciboAgua.historicoDescricaoMes2 = itemOcorrencia["Histórico descrição mês2"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês3"))
                    oReciboAgua.historicoDescricaoMes3 = itemOcorrencia["Histórico descrição mês3"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês4"))
                    oReciboAgua.historicoDescricaoMes4 = itemOcorrencia["Histórico descrição mês4"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês5"))
                    oReciboAgua.historicoDescricaoMes5 = itemOcorrencia["Histórico descrição mês5"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês6"))
                    oReciboAgua.historicoDescricaoMes6 = itemOcorrencia["Histórico descrição mês6"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês1"))
                    oReciboAgua.historicoMes1 = itemOcorrencia["Histórico mês1"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês2"))
                    oReciboAgua.historicoMes2 = itemOcorrencia["Histórico mês2"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês3"))
                    oReciboAgua.historicoMes3 = itemOcorrencia["Histórico mês3"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês4"))
                    oReciboAgua.historicoMes4 = itemOcorrencia["Histórico mês4"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês5"))
                    oReciboAgua.historicoMes5 = itemOcorrencia["Histórico mês5"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês6"))
                    oReciboAgua.historicoMes6 = itemOcorrencia["Histórico mês6"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Imagem"))
                    oReciboAgua.imagem = itemOcorrencia["Imagem"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Consumo M³"))
                    oReciboAgua.consumoM3pagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Consumo M³"]);

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Consumo Valor"))
                    oReciboAgua.ConsumoValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Consumo Valor"]);

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Mínimo M³"))
                    oReciboAgua.minimoM3PagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Mínimo M³"]);

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Mínimo Valor"))
                    oReciboAgua.minimoValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Mínimo Valor"]);

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Excedente M³"))
                    oReciboAgua.excedenteM3PagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Excedente M³"]);

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Excedente Valor"))
                    oReciboAgua.excedenteValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Excedente Valor"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor de Rateio - Excedente M³"))
                    oReciboAgua.excedenteM3Rateio = Convert.ToInt32(itemOcorrencia["Valor de Rateio - Excedente M³"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor de Rateio - Excedente Valor"))
                    oReciboAgua.excedenteValorRateio = Convert.ToDecimal(itemOcorrencia["Valor de Rateio - Excedente Valor"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Tarifa Mínima M³"))
                    oReciboAgua.tarifaMinimaM3ValorDevido = Convert.ToInt32(itemOcorrencia["Valor Devido - Tarifa Mínima M³"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Tarifa Mínima Valor"))
                    oReciboAgua.tarifaMinimaValorValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - Tarifa Mínima Valor"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Excedente"))
                    oReciboAgua.excedenteValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - Excedente"]);

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - a pagar"))
                    oReciboAgua.valorPagarValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - a pagar"]);

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Geral"))
                    oReciboAgua.avisoGeralAviso = itemOcorrencia["Aviso - Geral"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Anormal"))
                    oReciboAgua.AnormalAviso = itemOcorrencia["Aviso - Anormal"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Individual"))
                    oReciboAgua.individualAviso = itemOcorrencia["Aviso - Individual"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Aviso - ANORMALIDADE"))
                    oReciboAgua.anormalidadeAviso = itemOcorrencia["Aviso - ANORMALIDADE"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Geral"))
                    oReciboAgua.avisoGeralAviso = itemOcorrencia["Aviso - Geral"].ToString();

                if (itemOcorrencia.Table.Columns.Contains("Consuta - Mes"))
                    oReciboAgua.mes = Convert.ToInt32(itemOcorrencia["Consuta - Mes"]);

                if (itemOcorrencia.Table.Columns.Contains("somaExcedente"))
                    oReciboAgua.somaConsumoByBloco = Convert.ToInt32(itemOcorrencia["somaExcedente"]);

                if (itemOcorrencia.Table.Columns.Contains("qtdAnormalidade"))
                    oReciboAgua.qtdAnormalidade = Convert.ToInt32(itemOcorrencia["qtdAnormalidade"]);

                if (itemOcorrencia.Table.Columns.Contains("validaContador"))
                    oReciboAgua.mes = Convert.ToInt32(itemOcorrencia["validaContador"]);

                if (itemOcorrencia.Table.Columns.Contains("Consulta - Ano"))
                    oReciboAgua.ano = Convert.ToInt32(itemOcorrencia["Consulta - Ano"]);

                if (itemOcorrencia.Table.Columns.Contains("Excedente M3 Diario"))
                    oReciboAgua.excedenteM3diaria = float.Parse(itemOcorrencia["Excedente M3 Diario"].ToString());

                if (itemOcorrencia.Table.Columns.Contains("PersisteDados"))
                    oReciboAgua.persisteBanco = itemOcorrencia["PersisteDados"].ToString();

                oListReciboAgua.Add(oReciboAgua);

            }

            return oListReciboAgua;
        }
示例#16
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;
                }
            }
        }
 public listaSegundaViaAgua buscaTodosRecibos(ReciboAgua oReciboAguaModel)
 {
     throw new NotImplementedException();
 }
        public void crystalReport()
        {
            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;

            DSrecibo dsSegundaVia = new DSrecibo();
            ListaSabesp oListLeituraSabesp = new ListaSabesp();
            LeituraSabespBLL oLeituraBussiness = new LeituraSabespBLL();
            ReciboAguaBLL oReciboBLL = new ReciboAguaBLL();
            ReciboAgua oReciboModel = new ReciboAgua();
            Util.RelatorioConfigRecibo oCarregaVariaveisRecibo = new Util.RelatorioConfigRecibo();

            string apartamento = Session["AP"].ToString();
            string bloco = Session["Bloco"].ToString();
            string mes = Session["mes"].ToString();
            string ano = Session["ano"].ToString();

            oReciboModel.bloco = bloco;
            oReciboModel.apartamento = apartamento;
            oReciboModel.ano = Convert.ToInt32(ano);
            oReciboModel.mes = Convert.ToInt32(mes);

            int mesReferenciaSabesp = Convert.ToInt32(mes);

             if (Convert.ToInt32(ano) <= 2015)
            {
                ReciboOld();

            }
            else  if (Convert.ToInt32(mes) == 1 &&  Convert.ToInt32(ano) == 2016)
            {
                ReciboOld();
            }

             else if (Convert.ToInt32(mes) == 2 && Convert.ToInt32(ano) == 2016)
             {
                 ReciboOld();
             }

             else
             {

                 var oListOrdenadoByRegistroJaCalculado = from listaOrdenada in oReciboBLL.buscaTodosRecibosByBlocoAndApto(oReciboModel)
                                                      orderby listaOrdenada.registro ascending
                                                      select listaOrdenada;

                        foreach (var item in oListOrdenadoByRegistroJaCalculado)
                        {

                            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³"] = item.consumoMesM3;
                            drSegundaVia["Data da próxima leitura"] = item.dataProximaLeitura;
                            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;
                            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;
                            drSegundaVia["ExcedenteValorDevido"] =  item.excedenteValorDevido;
                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                            drSegundaVia["a pagar"] = item.valorPagarValorDevido;
                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteM3Rateio"] = item.excedenteM3Rateio;
                            drSegundaVia["Geral"] = item.avisoGeralAviso;
                            drSegundaVia["Anormal"] = item.AnormalAviso;
                            drSegundaVia["Invididual"] = item.individualAviso;
                            drSegundaVia["ANORMALIDADE"] = item.anormalidadeAviso;
                            drSegundaVia["Imagem"] = item.imagem;
                            drSegundaVia["excedenteM3Diario"] = item.excedenteM3diaria;
                            drSegundaVia["status"] = item.status;
                            dsSegundaVia.Tables[1].Rows.Add(drSegundaVia);

                        }

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

                        rbSegundaVia.SetDataSource(dsSegundaVia);

                 rbSegundaVia.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "Recibo-"+ano+mes);
             }
        }
 public listaSegundaViaAgua buscaTodosRecibos(ReciboAgua oReciboAguaModel)
 {
     throw new NotImplementedException();
 }
示例#20
0
        private listaSegundaViaAgua populaSegundaViaAgua(DataTable dt)
        {
            listaSegundaViaAgua oListReciboAgua = new listaSegundaViaAgua();


            foreach (DataRow itemOcorrencia in dt.Rows)
            {
                ReciboAgua oReciboAgua = new ReciboAgua();

                if (itemOcorrencia.Table.Columns.Contains("ID - Condomínio"))
                {
                    oReciboAgua.idCondominio = itemOcorrencia["ID - Condomínio"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Nome do Condomínio"))
                {
                    oReciboAgua.nomeCondominio = itemOcorrencia["Nome do Condomínio"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Endereço do Condomínio"))
                {
                    oReciboAgua.enderecoCondominio = itemOcorrencia["Endereço do Condomínio"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Bloco"))
                {
                    oReciboAgua.bloco = itemOcorrencia["Bloco"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Apartamento"))
                {
                    oReciboAgua.apartamento = itemOcorrencia["Apartamento"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Regitro"))
                {
                    oReciboAgua.registro = itemOcorrencia["Regitro"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Fechamento Atual"))
                {
                    oReciboAgua.fechamentoAtual = itemOcorrencia["Fechamento Atual"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Data leitura Anterior"))
                {
                    oReciboAgua.dataLeituraAnterior = itemOcorrencia["Data leitura Anterior"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Data leitura Atual"))
                {
                    oReciboAgua.dataLeituraAtual = itemOcorrencia["Data leitura Atual"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("leitura Anterior M³"))
                {
                    oReciboAgua.leituraAnteriorM3 = itemOcorrencia["leitura Anterior M³"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Leitura Atual M³"))
                {
                    oReciboAgua.leituraAtualM3 = itemOcorrencia["Leitura Atual M³"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Consumo do mês M³"))
                {
                    oReciboAgua.consumoMesM3 = itemOcorrencia["Consumo do mês M³"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Data da próxima leitura"))
                {
                    oReciboAgua.dataProximaLeitura = itemOcorrencia["Data da próxima leitura"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Status"))
                {
                    oReciboAgua.status = itemOcorrencia["Status"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Média"))
                {
                    oReciboAgua.media = itemOcorrencia["Média"].ToString();
                }


                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês1"))
                {
                    oReciboAgua.historicoDescricaoMes1 = itemOcorrencia["Histórico descrição mês1"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês2"))
                {
                    oReciboAgua.historicoDescricaoMes2 = itemOcorrencia["Histórico descrição mês2"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês3"))
                {
                    oReciboAgua.historicoDescricaoMes3 = itemOcorrencia["Histórico descrição mês3"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês4"))
                {
                    oReciboAgua.historicoDescricaoMes4 = itemOcorrencia["Histórico descrição mês4"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês5"))
                {
                    oReciboAgua.historicoDescricaoMes5 = itemOcorrencia["Histórico descrição mês5"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico descrição mês6"))
                {
                    oReciboAgua.historicoDescricaoMes6 = itemOcorrencia["Histórico descrição mês6"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês1"))
                {
                    oReciboAgua.historicoMes1 = itemOcorrencia["Histórico mês1"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês2"))
                {
                    oReciboAgua.historicoMes2 = itemOcorrencia["Histórico mês2"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês3"))
                {
                    oReciboAgua.historicoMes3 = itemOcorrencia["Histórico mês3"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês4"))
                {
                    oReciboAgua.historicoMes4 = itemOcorrencia["Histórico mês4"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês5"))
                {
                    oReciboAgua.historicoMes5 = itemOcorrencia["Histórico mês5"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Histórico mês6"))
                {
                    oReciboAgua.historicoMes6 = itemOcorrencia["Histórico mês6"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Imagem"))
                {
                    oReciboAgua.imagem = itemOcorrencia["Imagem"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Consumo M³"))
                {
                    oReciboAgua.consumoM3pagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Consumo M³"]);
                }


                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Consumo Valor"))
                {
                    oReciboAgua.ConsumoValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Consumo Valor"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Mínimo M³"))
                {
                    oReciboAgua.minimoM3PagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Mínimo M³"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Mínimo Valor"))
                {
                    oReciboAgua.minimoValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Mínimo Valor"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Excedente M³"))
                {
                    oReciboAgua.excedenteM3PagoCondominio = Convert.ToInt32(itemOcorrencia["Pago pelo condomínio - Excedente M³"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Pago pelo condomínio - Excedente Valor"))
                {
                    oReciboAgua.excedenteValorPagoCondominio = Convert.ToDecimal(itemOcorrencia["Pago pelo condomínio - Excedente Valor"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor de Rateio - Excedente M³"))
                {
                    oReciboAgua.excedenteM3Rateio = Convert.ToInt32(itemOcorrencia["Valor de Rateio - Excedente M³"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor de Rateio - Excedente Valor"))
                {
                    oReciboAgua.excedenteValorRateio = Convert.ToDecimal(itemOcorrencia["Valor de Rateio - Excedente Valor"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Tarifa Mínima M³"))
                {
                    oReciboAgua.tarifaMinimaM3ValorDevido = Convert.ToInt32(itemOcorrencia["Valor Devido - Tarifa Mínima M³"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Tarifa Mínima Valor"))
                {
                    oReciboAgua.tarifaMinimaValorValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - Tarifa Mínima Valor"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - Excedente"))
                {
                    oReciboAgua.excedenteValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - Excedente"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Valor Devido - a pagar"))
                {
                    oReciboAgua.valorPagarValorDevido = Convert.ToDecimal(itemOcorrencia["Valor Devido - a pagar"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Geral"))
                {
                    oReciboAgua.avisoGeralAviso = itemOcorrencia["Aviso - Geral"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Anormal"))
                {
                    oReciboAgua.AnormalAviso = itemOcorrencia["Aviso - Anormal"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Individual"))
                {
                    oReciboAgua.individualAviso = itemOcorrencia["Aviso - Individual"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Aviso - ANORMALIDADE"))
                {
                    oReciboAgua.anormalidadeAviso = itemOcorrencia["Aviso - ANORMALIDADE"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Aviso - Geral"))
                {
                    oReciboAgua.avisoGeralAviso = itemOcorrencia["Aviso - Geral"].ToString();
                }

                if (itemOcorrencia.Table.Columns.Contains("Consuta - Mes"))
                {
                    oReciboAgua.mes = Convert.ToInt32(itemOcorrencia["Consuta - Mes"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("somaExcedente"))
                {
                    oReciboAgua.somaConsumoByBloco = Convert.ToInt32(itemOcorrencia["somaExcedente"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("qtdAnormalidade"))
                {
                    oReciboAgua.qtdAnormalidade = Convert.ToInt32(itemOcorrencia["qtdAnormalidade"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("validaContador"))
                {
                    oReciboAgua.mes = Convert.ToInt32(itemOcorrencia["validaContador"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Consulta - Ano"))
                {
                    oReciboAgua.ano = Convert.ToInt32(itemOcorrencia["Consulta - Ano"]);
                }

                if (itemOcorrencia.Table.Columns.Contains("Excedente M3 Diario"))
                {
                    oReciboAgua.excedenteM3diaria = float.Parse(itemOcorrencia["Excedente M3 Diario"].ToString());
                }


                oListReciboAgua.Add(oReciboAgua);
            }

            return(oListReciboAgua);
        }
示例#21
0
        public void importIntegracaoWeb(ReciboAgua oReciboModel)
        {
            string clausulaSQL = "SP_INTEGRACAO_GENEXUS_WEB_TXT";

            try
            {
                SqlCommand comandoSQL = new SqlCommand(clausulaSQL);
                comandoSQL.Parameters.AddWithValue("@ID_CONDOMINIO ", oReciboModel.idCondominio);
                comandoSQL.Parameters.AddWithValue("@NOME_CONDOMINIO ", oReciboModel.nomeCondominio);
                comandoSQL.Parameters.AddWithValue("@ENDERECO_CONDOMINIO", oReciboModel.enderecoCondominio);
                comandoSQL.Parameters.AddWithValue("@BLOCO", oReciboModel.bloco);
                comandoSQL.Parameters.AddWithValue("@APTO", oReciboModel.apartamento);
                comandoSQL.Parameters.AddWithValue("@REGISTRO", oReciboModel.registro);
                comandoSQL.Parameters.AddWithValue("@FECHAMENTO_ATUAL ", oReciboModel.fechamentoAtual);
                comandoSQL.Parameters.AddWithValue("@Data_leitura_Anterior ", oReciboModel.dataLeituraAnterior);
                comandoSQL.Parameters.AddWithValue("@leitura_Anterior_M3 ", oReciboModel.leituraAnteriorM3);
                comandoSQL.Parameters.AddWithValue("@Data_leitura_Atual ", oReciboModel.dataLeituraAtual);
                comandoSQL.Parameters.AddWithValue("@Leitura_Atual_m3 ", oReciboModel.leituraAtualM3);
                comandoSQL.Parameters.AddWithValue("@Consumo_mes_M3 ", corrigeConsumo(oReciboModel.excedenteM3diaria));
                comandoSQL.Parameters.AddWithValue("@dt_proximaLeitura", oReciboModel.dataProximaLeitura);
                comandoSQL.Parameters.AddWithValue("@Status ", oReciboModel.status);
                comandoSQL.Parameters.AddWithValue("@Media ", oReciboModel.media);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes1 ", oReciboModel.historicoDescricaoMes1);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes1 ", oReciboModel.historicoMes1);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes2 ", oReciboModel.historicoDescricaoMes2);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes2 ", oReciboModel.historicoMes2);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes3 ", oReciboModel.historicoDescricaoMes3);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes3 ", oReciboModel.historicoMes3);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes4 ", oReciboModel.historicoDescricaoMes4);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes4", oReciboModel.historicoMes4);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes5 ", oReciboModel.historicoDescricaoMes5);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes5", oReciboModel.historicoMes5);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes6", oReciboModel.historicoDescricaoMes6);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes6", oReciboModel.historicoMes6);
                comandoSQL.Parameters.AddWithValue("@Imagem ", oReciboModel.imagem);
                comandoSQL.Parameters.AddWithValue("@Pg_condoConsumoM3 ", oReciboModel.consumoM3pagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoConsumoValor ", oReciboModel.ConsumoValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoM3 ", oReciboModel.minimoM3PagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoValor ", oReciboModel.minimoValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoExcedenteM3 ", oReciboModel.excedenteM3PagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoExcedenteValor ", oReciboModel.excedenteValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@ValorRateioExcedenteM3 ", oReciboModel.excedenteM3Rateio);
                comandoSQL.Parameters.AddWithValue("@ValorRateioExcedenteValor ", oReciboModel.excedenteValorRateio);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoTarifaMinimaM3 ", oReciboModel.tarifaMinimaM3ValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoTarifaMinimaValor ", oReciboModel.tarifaMinimaValorValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoExcedente ", oReciboModel.excedenteValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoPagar ", oReciboModel.valorPagarValorDevido);
                comandoSQL.Parameters.AddWithValue("@AvisoGeral ", oReciboModel.avisoGeralAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoAnormal ", oReciboModel.AnormalAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoIndividual ", oReciboModel.individualAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoANORMALIDADE ", oReciboModel.anormalidadeAviso);
                comandoSQL.Parameters.AddWithValue("@ConsutaMes ", oReciboModel.mes);
                comandoSQL.Parameters.AddWithValue("@ConsultaAno ", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@ExcedenteM3Diario ", oReciboModel.excedenteM3diaria);

                ExecutaComando(comandoSQL);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void preencheDadosExcel()
        {
            //int consumoAPs = 0;
            //int consumoSomaExcedentes = 0;
            double[] arrayConsumoTotalAPs = new double[5];
            double[] arrayExcedente = new double[5];

            int[] arraySabesp = new int[5];
            string[] mesesHistrorico = new string[5];

            string mes = Session["mes"].ToString();
            string ano = Session["ano"].ToString();
            int anoHistorico = Convert.ToInt32(mes);

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

               // bool mesVerdadeiro = false;
            int anoExcel = Convert.ToInt32(ano);

            for (int i = 0; i < 5; i ++)
            {
                if (anoExcel == 2013)
                {

                    var listHistoricoAP = from listHistorico in oReciboBLL.buscaTodosRecibosByYearAndMonth(anoExcel, Convert.ToInt32(anoHistorico))
                                          select Convert.ToInt32(listHistorico.consumoMesM3);

                    arrayConsumoTotalAPs[i] = listHistoricoAP.Sum();
                }
                else
                {
                    var listHistoricoAP = from listHistorico in oReciboBLL.buscaTodosRecibosByYearAndMonth(anoExcel, Convert.ToInt32(anoHistorico))
                                          select Math.Round(listHistorico.excedenteM3diaria * 30, 0,MidpointRounding.AwayFromZero);

                    arrayConsumoTotalAPs[i] = listHistoricoAP.Sum();
                }

               // var listHistoricoExcedente = from listHistorico in oReciboBLL.buscaTodosRecibosByYearAndMonth(anoExcel, Convert.ToInt32(anoHistorico))
                                           //  select Convert.ToInt32(listHistorico.excedenteM3Rateio);

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

                var listSabesp = from listHistorico in oReciboBLL.buscaTodosRecibosByYearAndMonth(anoExcel, Convert.ToInt32(anoHistorico))
                                 select listHistorico.consumoM3pagoCondominio;

                mesesHistrorico[i] = "01/" + anoHistorico + "/" + anoExcel;
                double totalExcedenteDinamico = 0;
                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;
                    }

                }

                arrayExcedente[i] = totalExcedenteDinamico;
                arraySabesp[i] = listSabesp.FirstOrDefault();

                 if (anoHistorico == 1)
                 {
                     anoHistorico = 12;
                     anoExcel--;
                 }
                 else
                 {

                   anoHistorico--;

                 }

            }

            var listChart = from lisExcelChartAux in oReciboBLL.buscaTodosRecibosByYearAndMonth(Convert.ToInt32(ano), Convert.ToInt32(mes))
                            orderby lisExcelChartAux.consumoMesM3 descending
                            select lisExcelChartAux;

            // Open Template
            //local
            //FileStream fs = new FileStream(@"C:\Users\Edmilson\Documents\RelatorioGeral.xls", FileMode.Open, FileAccess.Read);
            //web

            var dir = System.Configuration.ConfigurationManager.AppSettings["relatorioGeral"];
            FileStream fs = new FileStream(Server.MapPath(dir + "RelatorioGeral.xls"), FileMode.Open, FileAccess.Read);

            // Load the template into a NPOI workbook
            HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);

            ISheet sheet = templateWorkbook.GetSheet("RG");
            ISheet sheetMedia = templateWorkbook.GetSheet("Plan2");
            int auxiliarChart = 0;
            int posArrayConsumoAps = 23;
            int posArrayExcedente = 24;
            int posArrayConsumoSabesp = 22;
            int posArrayMesesHistorico = 21;
            int posArrayReferencia = 0;

            sheet.GetRow(posArrayReferencia).GetCell(8).SetCellValue(Convert.ToDateTime("01/"+mes+"/"+ano));
            sheet.GetRow(posArrayConsumoAps).GetCell(7).SetCellValue(arrayConsumoTotalAPs[0]);
            sheet.GetRow(posArrayConsumoAps).GetCell(6).SetCellValue(arrayConsumoTotalAPs[1]);
            sheet.GetRow(posArrayConsumoAps).GetCell(5).SetCellValue(arrayConsumoTotalAPs[2]);
            sheet.GetRow(posArrayConsumoAps).GetCell(4).SetCellValue(arrayConsumoTotalAPs[3]);
            sheet.GetRow(posArrayConsumoAps).GetCell(3).SetCellValue(arrayConsumoTotalAPs[4]);

            sheet.GetRow(posArrayExcedente).GetCell(7).SetCellValue(arrayExcedente[0]);
            sheet.GetRow(posArrayExcedente).GetCell(6).SetCellValue(arrayExcedente[1]);
            sheet.GetRow(posArrayExcedente).GetCell(5).SetCellValue(arrayExcedente[2]);
            sheet.GetRow(posArrayExcedente).GetCell(4).SetCellValue(arrayExcedente[3]);
            sheet.GetRow(posArrayExcedente).GetCell(3).SetCellValue(arrayExcedente[4]);

            sheet.GetRow(posArrayConsumoSabesp).GetCell(7).SetCellValue(arraySabesp[0]);
            sheet.GetRow(posArrayConsumoSabesp).GetCell(6).SetCellValue(arraySabesp[1]);
            sheet.GetRow(posArrayConsumoSabesp).GetCell(5).SetCellValue(arraySabesp[2]);
            sheet.GetRow(posArrayConsumoSabesp).GetCell(4).SetCellValue(arraySabesp[3]);
            sheet.GetRow(posArrayConsumoSabesp).GetCell(3).SetCellValue(arraySabesp[4]);

            sheet.GetRow(posArrayMesesHistorico).GetCell(7).SetCellValue(Convert.ToDateTime(mesesHistrorico[0]));
            sheet.GetRow(posArrayMesesHistorico).GetCell(6).SetCellValue(Convert.ToDateTime(mesesHistrorico[1]));
            sheet.GetRow(posArrayMesesHistorico).GetCell(5).SetCellValue(Convert.ToDateTime(mesesHistrorico[2]));
            sheet.GetRow(posArrayMesesHistorico).GetCell(4).SetCellValue(Convert.ToDateTime(mesesHistrorico[3]));
            sheet.GetRow(posArrayMesesHistorico).GetCell(3).SetCellValue(Convert.ToDateTime(mesesHistrorico[4]));

            foreach (var item in listChart)
            {

                if (auxiliarChart <= 240)
                {

                    sheetMedia.GetRow(auxiliarChart).GetCell(0).SetCellValue(Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero));
                    sheetMedia.GetRow(auxiliarChart).GetCell(2).SetCellValue(Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero)); //
                    auxiliarChart++;
                }

            }

            sheetMedia.ForceFormulaRecalculation = true;

            int initial = 46;
            int dataAtual = 9;
            int dataAnterior = 9 ;
            int consumoSabesp = 5;
            int valorCobrado = 6;
            bool date = false;

            foreach (var item in listExcel)
            {
                ReciboAgua oReciboModel = new ReciboAgua();

                if (date == false)
                {

                    sheet.GetRow(dataAtual).GetCell(1).SetCellValue(item.dataLeituraAtual.Replace("Leitura Atual (", "").Replace("):", ""));
                    sheet.GetRow(dataAnterior).GetCell(5).SetCellValue(item.dataLeituraAnterior.Replace("Leitura anterior (", "").Replace("):", ""));
                    sheet.GetRow(consumoSabesp).GetCell(2).SetCellValue(item.consumoM3pagoCondominio);
                    sheet.GetRow(valorCobrado).GetCell(2).SetCellValue(String.Format("{0:C2}",item.ConsumoValorPagoCondominio));

                    date = true;
                }

                    //R111

                    sheet.GetRow(initial).GetCell(0).SetCellValue("R" + item.registro);  //
                    sheet.GetRow(initial).GetCell(1).SetCellValue("B" + item.bloco + "-AP" + item.apartamento);  //
                    sheet.GetRow(initial).GetCell(2).SetCellValue(" " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")");
                    sheet.GetRow(initial).GetCell(3).SetCellValue(item.leituraAnteriorM3);
                    sheet.GetRow(initial).GetCell(4).SetCellValue(item.leituraAtualM3);

                    sheet.GetRow(initial).GetCell(5).SetCellValue(Math.Round(item.excedenteM3diaria * 30, 0 , MidpointRounding.AwayFromZero));
                    sheet.GetRow(initial).GetCell(6).SetCellValue(""+item.excedenteValorDevido);
                    item.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                    item.excedenteValorRateio = (item.excedenteValorPagoCondominio / item.excedenteM3Rateio);
                    sheet.GetRow(initial).GetCell(7).SetCellValue(String.Format("{0:C2}", item.excedenteValorDevido * Math.Round(item.excedenteValorRateio, 2)));

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "")
                    {
                       // oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                        sheet.GetRow(initial).GetCell(8).SetCellValue(" - ");
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {
                            sheet.GetRow(initial).GetCell(8).SetCellValue("↓ " + item.status);

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {
                            sheet.GetRow(initial).GetCell(8).SetCellValue("↑ " + item.status);

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {
                            sheet.GetRow(initial).GetCell(8).SetCellValue( item.status);
                        }

                    }

                    initial++;

                    if (initial == 86) // bloco 2
                    {
                        initial = 92;
                    }
                    else if (initial == 132) // bloco 3
                    {
                        initial = 138;
                    }
                    else if (initial == 178) // bloco 4
                    {
                        initial = 184;
                    }

                    else if (initial == 224) // bloco 5
                    {
                        initial = 230;
                    }
                    else if (initial == 270) //bloco 6
                    {
                        initial = 276;
                    }

            }

            // Force formulas to update with new data we added
            sheet.ForceFormulaRecalculation = true;

            // Save the NPOI workbook into a memory stream to be sent to the browser, could have saved to disk.
            MemoryStream ms = new MemoryStream();
            templateWorkbook.Write(ms);

            //// Send the memory stream to the browser
            ExportDataTableToExcel(ms, "Relatório Geral Referência " + addZero(mes) + "/" + ano);
        }
        public void detalheConsumo(int mes, int ano)
        {
            string leituraAt ="";
            string leituraAnt ="";
            var listExcel = from lisExcelBl1 in oReciboBLL.buscaTodosRecibosByYearAndMonth(mes,ano)
                            orderby lisExcelBl1.registro ascending
                            select lisExcelBl1;

            listaSegundaViaAgua listExcelTratada = new listaSegundaViaAgua();
            listaSegundaViaAgua listExcelTratada2 = new listaSegundaViaAgua();
            listaSegundaViaAgua listExcelTratada3 = new listaSegundaViaAgua();
            listaSegundaViaAgua listExcelTratada4 = new listaSegundaViaAgua();
            listaSegundaViaAgua listExcelTratada5 = new listaSegundaViaAgua();
            listaSegundaViaAgua listExcelTratada6 = new listaSegundaViaAgua();
            double totalExcedenteDinamico = 0;

            foreach (var item in listExcel)
            {

                if (leituraAnt == "" && leituraAt == "")
                {

                    leituraAnt = item.dataLeituraAnterior;
                    leituraAt = item.dataLeituraAtual;

                }

            }

            foreach (var item in listExcel)
            {

                if (Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero) > 10)
                {

                    totalExcedenteDinamico += Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero) - 10;
                }

            }

            foreach (var item in listExcel)
            {
                ReciboAgua oReciboModel = new ReciboAgua();

                if (item.bloco == "1")
                {

                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }

                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;
                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {

                                oReciboModel.status = "↓ " + item.status;

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {

                                oReciboModel.status = "↑ " + item.status;

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = item.status;

                        }
                    }

                    listExcelTratada.Add(oReciboModel);
                }

                if (item.bloco == "2")
                {

                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }

                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;
                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;
                  //  oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↓ " + item.status;

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↑ " + item.status;

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = item.status;

                        }
                    }

                    listExcelTratada2.Add(oReciboModel);
                }

                if (item.bloco == "3")
                {

                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }

                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;
                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;
                    //oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↓ " + item.status;

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↑ " + item.status;

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = item.status;

                        }
                    }

                    listExcelTratada3.Add(oReciboModel);
                }

                if (item.bloco == "4")
                {

                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }

                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;
                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;
                    //oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↓ " + item.status;

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↑ " + item.status;

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = item.status;

                        }
                    }

                    listExcelTratada4.Add(oReciboModel);
                }

                if (item.bloco == "5")
                {
                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }
                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;
                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;
                    //oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                            if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                            {

                                oReciboModel.status = "↓ " + item.status;

                            }
                            if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                            {

                                oReciboModel.status = "↑ " + item.status;

                            }

                            if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                            {

                                oReciboModel.status = item.status;

                            }

                    }

                    listExcelTratada5.Add(oReciboModel);
                }

                if (item.bloco == "6")
                {
                    //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.excedenteValorPagoCondominio = Math.Abs(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                        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;

                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    }
                    //Se não mantêm o valor sem rateio..
                    else
                    {
                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                    }

                    oReciboModel.registro = "R" + item.registro;
                    oReciboModel.apartamento = "B" + item.bloco + "-AP" + item.apartamento;
                    oReciboModel.historicoMes1 = " " + addZero(returnNumber(item.historicoMes6)) + "-" + addZero(returnNumber(item.historicoMes5)) + "-" + addZero(returnNumber(item.historicoMes4)) + "-" + addZero(returnNumber(item.historicoMes3)) + "-" + addZero(returnNumber(item.historicoMes2)) + "-" + addZero(returnNumber(item.historicoMes1)) + " - (" + addZero(item.media) + ")";
                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;
                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;

                    oReciboModel.consumoMesM3 = Math.Round(item.excedenteM3diaria * 30, 0, MidpointRounding.AwayFromZero).ToString();
                    oReciboModel.excedenteValorDevido = item.excedenteValorDevido;
                    //oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;

                    item.historicoMes1 = returnNumber(item.historicoMes1).ToString();

                    if (item.status == "" || item.historicoMes1 == "" || item.status == "-")
                    {
                        oReciboModel.status = "-";
                        item.historicoMes1 = "0";
                    }
                    else
                    {

                        if (Math.Round(item.excedenteM3diaria * 30, 0) < Convert.ToInt32(item.historicoMes1))
                        {

                                oReciboModel.status = "↓ " + item.status;

                        }
                        if (Math.Round(item.excedenteM3diaria * 30, 0) > Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = "↑ " + item.status;

                        }

                        if (Math.Round(item.excedenteM3diaria * 30, 0) == Convert.ToInt32(item.historicoMes1))
                        {

                            oReciboModel.status = item.status;

                        }
                    }

                    listExcelTratada6.Add(oReciboModel);
                }

            }

            populaGridBloco(listExcelTratada, 1, leituraAnt, leituraAt);
            populaGridBloco(listExcelTratada2, 2, leituraAnt, leituraAt);
            populaGridBloco(listExcelTratada3, 3, leituraAnt, leituraAt);
            populaGridBloco(listExcelTratada4, 4, leituraAnt, leituraAt);
            populaGridBloco(listExcelTratada5, 5, leituraAnt, leituraAt);
            populaGridBloco(listExcelTratada6, 6, leituraAnt, leituraAt);
        }
示例#24
0
        public void crystalReport()
        {
            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;


            ReciboAguaBLL oReciboBLL   = new ReciboAguaBLL();
            ReciboAgua    oReciboModel = new ReciboAgua();

            DSrecibo dsSegundaVia = new DSrecibo();
            DataRow  drSegundaVia = dsSegundaVia.Tables[1].NewRow();

            try
            {
                string apartamento = Session["AP"].ToString();
                string bloco       = Session["Bloco"].ToString();
                string mes         = Session["mes"].ToString();
                string ano         = Session["ano"].ToString();

                oReciboModel.bloco       = bloco;
                oReciboModel.apartamento = apartamento;
                oReciboModel.ano         = Convert.ToInt32(ano);
                oReciboModel.mes         = Convert.ToInt32(mes);



                foreach (var item in oReciboBLL.buscaTodosRecibosByBlocoAndApto(oReciboModel))
                {
                    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³"]          = 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;

                    //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 M³"]       = item.consumoM3pagoCondominio;
                    drSegundaVia["Consumo Valor"]    = item.ConsumoValorPagoCondominio;
                    drSegundaVia["Mínimo M³"]        = item.minimoM3PagoCondominio;
                    drSegundaVia["Mínimo Valor"]     = item.minimoValorPagoCondominio;
                    drSegundaVia["Excedente Valor"]  = item.excedenteValorPagoCondominio;
                    drSegundaVia["Tarifa Mínima M³"] = item.tarifaMinimaM3ValorDevido;


                    //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      = (item.excedenteValorPagoCondominio / item.excedenteM3Rateio);
                        item.valorPagarValorDevido     = item.excedenteValorDevido * Math.Round(item.excedenteValorRateio, 2);

                        drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                        drSegundaVia["ExcedenteValorRateio "]       = item.excedenteValorRateio;
                        drSegundaVia["a pagar"] = 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;
                    }
                    drSegundaVia["Tarifa Mínima Valor"] = item.tarifaMinimaValorValorDevido;
                    drSegundaVia["ExcedenteM3Rateio"]   = item.excedenteM3Rateio;
                    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);

                //CrystalReportViewer1.ReportSource = rbSegundaVia;

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

                //ReportDocument rpt = new ReportDocument();
                //CrystalDecisions.Shared.ConnectionInfo connectionCrystal = new CrystalDecisions.Shared.ConnectionInfo();
                //connectionCrystal.ServerName = ConfigurationManager.AppSettings["azuliServerName"];
                //connectionCrystal.DatabaseName = ConfigurationManager.AppSettings["azuliDatabase"];
                //connectionCrystal.UserID = ConfigurationManager.AppSettings["userIdSomee"];
                //connectionCrystal.Password = ConfigurationManager.AppSettings["pwdSomee"];
                //connectionCrystal.Type = ConnectionInfoType.SQL;
                //connectionCrystal.IntegratedSecurity = false;
                // string caminhoRelatorio = ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"; // Local
                ////string caminhoRelatorio = Server.MapPath(ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"); //web


                ////string caminhoRelatorio = ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"; // Local
                //// string caminhoRelatorio = Server.MapPath(ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"); //web
                ////Session["reportSource"] = caminhoRelatorio;

                //string apartamento = Session["AP"].ToString();
                //string bloco = Session["Bloco"].ToString();
                //string mes = Session["mes"].ToString();
                //string ano = Session["ano"].ToString();

                //rpt.Load(caminhoRelatorio);
                //rpt.SetParameterValue("bloco", bloco);
                //rpt.SetParameterValue("apto", apartamento);
                //rpt.SetParameterValue("mes", mes);
                //rpt.SetParameterValue("ano", ano);
                //SetDBLogonForReport(connectionCrystal, rpt);

                //CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
                //CrystalReportViewer1.HasToggleGroupTreeButton = false;
                //CrystalReportViewer1.HasToggleParameterPanelButton = false;
                //rpt.SetDatabaseLogon(connectionCrystal.UserID, connectionCrystal.Password, connectionCrystal.ServerName, connectionCrystal.DatabaseName);
                //CrystalReportViewer1.ReportSourceID = ConfigurationManager.AppSettings["reciboMorador"];


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



            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void enviaReciboMoradorPorEmail()
        {
            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;

            ReciboAguaBLL oReciboBLL = new ReciboAguaBLL();
            ReciboAgua oReciboModel = new ReciboAgua();

            DSrecibo dsSegundaVia = new DSrecibo();

            try
            {
                string fileNameRecibo = "";
                listProprietario oListaFromProprietario = new listProprietario();

                oListaFromProprietario = oProprietario.listaProprietarioSendEmail();

                foreach (var enviaEmail in oListaFromProprietario)
                {

                    oReciboModel.bloco = enviaEmail.ap.bloco.ToString(); ;
                    oReciboModel.apartamento = enviaEmail.ap.apartamento.ToString();
                    oReciboModel.ano = Convert.ToInt32(Session["ano"].ToString());
                    oReciboModel.mes = Convert.ToInt32(Session["mes"].ToString());

                    fileNameRecibo = @"C:\Desenvolvimento\reciboAguaBloco_"+oReciboModel.bloco+"AP_"+oReciboModel.apartamento+"Mes_"+oReciboModel.mes+"Ano_"+oReciboModel.ano+".pdf";

                    foreach (var item in oReciboBLL.buscaTodosRecibosByBlocoAndApto(oReciboModel))
                    {
                        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³"] = 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;

                        //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 M³"] = item.consumoM3pagoCondominio;
                        drSegundaVia["Consumo Valor"] = item.ConsumoValorPagoCondominio;
                        drSegundaVia["Mínimo M³"] = item.minimoM3PagoCondominio;
                        drSegundaVia["Mínimo Valor"] = item.minimoValorPagoCondominio;
                        drSegundaVia["Excedente Valor"] = item.excedenteValorPagoCondominio;
                        drSegundaVia["Tarifa Mínima M³"] = item.tarifaMinimaM3ValorDevido;

                        //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 = (item.excedenteValorPagoCondominio / item.excedenteM3Rateio);
                            item.valorPagarValorDevido = item.excedenteValorDevido * Math.Round(item.excedenteValorRateio, 2);

                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                            drSegundaVia["a pagar"] = 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;
                        }
                        drSegundaVia["Tarifa Mínima Valor"] = item.tarifaMinimaValorValorDevido;
                        drSegundaVia["ExcedenteM3Rateio"] = item.excedenteM3Rateio;
                        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.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat,fileNameRecibo);

                    rbSegundaVia.Close();

                    StringBuilder msgEmail = montaEmailHtml(enviaEmail.proprietario1, oReciboModel.mes.ToString(), oReciboModel.ano.ToString());

                    sendReciboAguaAzuliByEmail(msgEmail.ToString(), enviaEmail.email, enviaEmail.proprietario1, fileNameRecibo);

                }

            }

            catch (Exception ex)
            {

                throw ex;
            }
        }
        public listaSegundaViaAgua validaImportacao(ReciboAgua oReciboModel)
        {
            string clausulaSql = "SP_VALIDAIMPORT_BY_YEAR_MOUNTH";

            try
            {
                SqlCommand comandoSQL = new SqlCommand(clausulaSql);

                comandoSQL.Parameters.AddWithValue("@Mes", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@Ano", oReciboModel.mes);

                DataTable tbRecibo = new DataTable();

                tbRecibo = ExecutaQuery(comandoSQL);

                return populaSegundaViaAgua(tbRecibo);

            }
            catch (Exception)
            {

                throw;
            }
        }
        public void Recibo()
        {
            string mes = Session["mes"].ToString();
            string ano = Session["ano"].ToString();

            if (Convert.ToInt32(ano) <= 2015)
            {
                ReciboOld();

            }
            else  if (Convert.ToInt32(mes) == 1 &&  Convert.ToInt32(ano) == 2016)
            {
                ReciboOld();
            }

            else if (Convert.ToInt32(mes) == 2 && Convert.ToInt32(ano) == 2016)
            {
                ReciboOld();
            }

            else
            {

                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;

                    //TODO:FicarConfigurável
                    bool IsConsumoCondominio = false;

                    //**********************/

                    int validaPersistCalculoCorreto = 0;
                    ListaSabesp oListLeituraSabesp = new ListaSabesp();
                    LeituraSabespBLL oLeituraBussiness = new LeituraSabespBLL();
                    decimal somatudo = 0;
                    ReciboAguaBLL oReciboBLL = new ReciboAguaBLL();
                    Util.RelatorioConfigRecibo oCarregaVariaveisRecibo = new Util.RelatorioConfigRecibo();
                    double totalExcedenteDinamico = 0;
                    double totalConsumoExcedenteMorador = 0;
                    double consumoMorador = 0;
                    double totalconsumoVariavelDiasAzuli30d = 0;
                    double totalExcedenteConsumoAzuli30d = 0;
                    double valorExcedentePagoCondominio = 0;
                    double totalExdenteAreaComumMorador = 0; // 1014 tt area comum + excedente morador
                    double diasAzuli = 0;
                    double consumoDoCondominio = 0;
                    double valorM3Excedente = 0;
                    DSrecibo dsSegundaVia = new DSrecibo();
                    int diasLeituraSabesp = 0;

                    validaPersistCalculoCorreto =  oReciboBLL.validaPersistenciaAgua(Convert.ToInt32(mes),Convert.ToInt32(ano));

                    // Entra neste if, quando for executado apenas a primeira vez
                    // Neste momento ele faz o cálculo, e cadastra no banco para consultas diretas.
                    if (validaPersistCalculoCorreto <= 0)
                    {

                        int mesReferenciaSabesp = Convert.ToInt32(mes);

                        oListLeituraSabesp = oLeituraBussiness.buscaLeitura(mesReferenciaSabesp.ToString(), ano);

                        foreach (var item in oListLeituraSabesp)
                        {
                            diasLeituraSabesp = item.dias;
                        }

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

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

                        else
                        {
                            try
                            {
                                foreach (var item in oListOrdenadoByRegistro)
                                {
                                    if (!IsConsumoCondominio)
                                    {
                                        TimeSpan date = Convert.ToDateTime(item.dataLeituraAtual.Replace("Leitura Atual (", "").Replace("):", "")) - Convert.ToDateTime(item.dataLeituraAnterior.Replace("Leitura anterior (", "").Replace("):", ""));
                                        diasAzuli = date.Days;

                                        valorExcedentePagoCondominio = Convert.ToDouble(item.ConsumoValorPagoCondominio - item.minimoValorPagoCondominio);
                                        consumoDoCondominio = item.consumoM3pagoCondominio;
                                        IsConsumoCondominio = true;
                                    }

                                    consumoMorador = Math.Round((Convert.ToDouble(item.leituraAtualM3) - Convert.ToDouble(item.leituraAnteriorM3)) / diasAzuli * diasLeituraSabesp, MidpointRounding.AwayFromZero);

                                    if (consumoMorador > 10)
                                    {

                                        totalExcedenteDinamico += consumoMorador - 10;

                                    }
                                    totalConsumoExcedenteMorador += consumoMorador;
                                }

                                /* -------- Calcula Leitura Azuli - Dias de leituras Azuli   */

                                totalconsumoVariavelDiasAzuli30d = Math.Round(((totalConsumoExcedenteMorador / diasLeituraSabesp) * diasAzuli) / diasAzuli * diasLeituraSabesp, MidpointRounding.AwayFromZero);
                                totalExcedenteConsumoAzuli30d = Math.Round(totalExcedenteDinamico / diasLeituraSabesp * diasAzuli / diasAzuli * diasLeituraSabesp, MidpointRounding.AwayFromZero);

                                double areaComumConsumo = consumoDoCondominio - totalconsumoVariavelDiasAzuli30d;

                                if (areaComumConsumo < 0 || consumoDoCondominio <= 2400)
                                {
                                    areaComumConsumo = 0;
                                }

                                totalExdenteAreaComumMorador = Math.Round(totalExcedenteConsumoAzuli30d + areaComumConsumo, MidpointRounding.AwayFromZero);

                                valorM3Excedente = Math.Round(valorExcedentePagoCondominio / totalExdenteAreaComumMorador + 0.001, 4);
                                /* ------------------------------------------------------------------------------------- */

                                foreach (var item in oListOrdenadoByRegistro)
                                {
                                    ReciboAgua oReciboModel = new ReciboAgua();
                                    DataRow drSegundaVia = dsSegundaVia.Tables[1].NewRow();
                                    int consumoIndividualMensal = Convert.ToInt32(Math.Round((Convert.ToDouble(item.leituraAtualM3) - Convert.ToDouble(item.leituraAnteriorM3)) / diasAzuli * diasLeituraSabesp, MidpointRounding.AwayFromZero));

                                    oReciboModel.mes = Convert.ToInt32(mes);
                                    oReciboModel.ano = Convert.ToInt32(ano);

                                    int mesConvertido = Convert.ToInt32(mes) - 1;
                                    int anoConvertido = Convert.ToInt32(ano);

                                    drSegundaVia["ID-Condomínio"] = item.idCondominio;
                                    oReciboModel.idCondominio = item.idCondominio;

                                    drSegundaVia["Nome do Condomínio"] = item.nomeCondominio;
                                    oReciboModel.nomeCondominio = item.nomeCondominio;

                                    drSegundaVia["Endereço do Condomínio"] = item.enderecoCondominio;
                                    oReciboModel.enderecoCondominio = item.enderecoCondominio;

                                    drSegundaVia["Bloco"] = item.bloco;
                                    oReciboModel.bloco = item.bloco;

                                    drSegundaVia["Apartamento"] = item.apartamento;
                                    oReciboModel.apartamento = item.apartamento;

                                    drSegundaVia["Registro"] = item.registro;
                                    oReciboModel.registro = item.registro;

                                    drSegundaVia["Fechamento Atual"] = item.fechamentoAtual;
                                    oReciboModel.fechamentoAtual = item.fechamentoAtual;

                                    drSegundaVia["Data leitura Anterior"] = item.dataLeituraAnterior;
                                    oReciboModel.dataLeituraAnterior = item.dataLeituraAnterior;

                                    drSegundaVia["Leitura Anterior M³"] = item.leituraAnteriorM3;
                                    oReciboModel.leituraAnteriorM3 = item.leituraAnteriorM3;

                                    drSegundaVia["Data leitura Atual"] = item.dataLeituraAtual;
                                    oReciboModel.dataLeituraAtual = item.dataLeituraAtual;

                                    drSegundaVia["Leitura Atual M³"] = item.leituraAtualM3;
                                    oReciboModel.leituraAtualM3 = item.leituraAtualM3;

                                    drSegundaVia["Consumo do Mês M³"] = consumoIndividualMensal;
                                    oReciboModel.consumoMesM3 = consumoIndividualMensal.ToString();

                                    //drSegundaVia["Consumo do Mês M³"] = Math.Round(item.excedenteM3diaria * 30, 0);//item.consumoMesM3;// item.consumoMesM3;
                                    drSegundaVia["Data da próxima leitura"] = item.dataProximaLeitura;
                                    oReciboModel.dataProximaLeitura = item.dataProximaLeitura;

                                    drSegundaVia["status"] = item.status;
                                    oReciboModel.status = item.status;

                                    drSegundaVia["Média"] = item.media;
                                    oReciboModel.media = item.media;

                                    int media = 0;

                                    int consumoHistory = 0;
                                    for (int i = 1; i <= 6; i++)
                                    {

                                        if (mesConvertido == 0)
                                        {
                                            anoConvertido = anoConvertido - 1;
                                            mesConvertido = 12;
                                        }

                                        if (i == 1)
                                        {
                                            drSegundaVia["Histórico descricação mês1"] = item.historicoDescricaoMes1;
                                            oReciboModel.historicoDescricaoMes1 = item.historicoDescricaoMes1;

                                            consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                            drSegundaVia["Histórico mês1"] = consumoHistory;
                                            oReciboModel.historicoMes1 = consumoHistory.ToString() + " m³";
                                            media += consumoHistory;
                                            consumoHistory = 0;

                                            //oReciboModel.historicoMes1 = item.historicoMes1;
                                        }
                                        else if (i == 2)
                                        {
                                            drSegundaVia["Histórico descricação mês2"] = item.historicoDescricaoMes2;
                                            oReciboModel.historicoDescricaoMes2 = item.historicoDescricaoMes2;

                                            consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                            drSegundaVia["Histórico mês2"] = consumoHistory;//item.historicoMes2;
                                            oReciboModel.historicoMes2 = consumoHistory.ToString() + " m³";//item.historicoMes2;
                                            media += consumoHistory;
                                            consumoHistory = 0;
                                        }
                                        else if (i == 3)
                                        {

                                            drSegundaVia["Histórico descricação mês3"] = item.historicoDescricaoMes3;
                                            oReciboModel.historicoDescricaoMes3 = item.historicoDescricaoMes3;

                                            consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                            drSegundaVia["Histórico mês3"] = consumoHistory;// item.historicoMes3;
                                            oReciboModel.historicoMes3 = consumoHistory.ToString() + " m³";// item.historicoMes3;
                                            media += consumoHistory;
                                            consumoHistory = 0;
                                        }
                                        else if (i == 4)
                                        {

                                            drSegundaVia["Histórico descricação mês4"] = item.historicoDescricaoMes4;
                                            oReciboModel.historicoDescricaoMes4 = item.historicoDescricaoMes4;

                                             consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                             drSegundaVia["Histórico mês4"] = consumoHistory;//item.historicoMes4;
                                             oReciboModel.historicoMes4 = consumoHistory.ToString() + " m³"; //item.historicoMes4;
                                             media += consumoHistory;
                                            consumoHistory = 0;
                                        }

                                        else if (i == 5)
                                        {

                                            drSegundaVia["Histórico descricação mês5"] = item.historicoDescricaoMes5;
                                            oReciboModel.historicoDescricaoMes5 = item.historicoDescricaoMes5;
                                            consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                            drSegundaVia["Histórico mês5"] = consumoHistory;//item.historicoMes5;
                                            media += consumoHistory;
                                            oReciboModel.historicoMes5 = consumoHistory.ToString() + " m³";//item.historicoMes5;
                                        }
                                        else if (i == 6)
                                        {

                                            drSegundaVia["Histórico descricação mês6"] = item.historicoDescricaoMes6;
                                            oReciboModel.historicoDescricaoMes6 = item.historicoDescricaoMes6;
                                            consumoHistory = oReciboBLL.retornaConsumoHistorico(mesConvertido, anoConvertido, Convert.ToInt32(item.bloco), Convert.ToInt32(item.apartamento));//item.historicoMes1;
                                            drSegundaVia["Histórico mês6"] = consumoHistory;//item.historicoMes6;
                                            oReciboModel.historicoMes6 =consumoHistory.ToString() + " m³";// item.historicoMes6;
                                            media += consumoHistory;
                                            consumoHistory = 0;

                                        }

                                           mesConvertido--;
                                    }

                                    drSegundaVia["Média"] = media / 6;
                                    oReciboModel.media = (media / 6).ToString();

                                    // 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;
                                    oReciboModel.ConsumoValorPagoCondominio = item.ConsumoValorPagoCondominio;

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

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

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

                                    drSegundaVia["Excedente Valor"] = item.excedenteValorPagoCondominio;
                                    oReciboModel.excedenteValorPagoCondominio = item.excedenteValorPagoCondominio;

                                    drSegundaVia["Tarifa Mínima M³"] = item.tarifaMinimaM3ValorDevido;
                                    oReciboModel.tarifaMinimaM3ValorDevido = item.tarifaMinimaM3ValorDevido;

                                    drSegundaVia["Tarifa Mínima Valor"] = item.tarifaMinimaValorValorDevido;
                                    oReciboModel.tarifaMinimaValorValorDevido = 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)
                                    {

                                        /* Calcula consumo estimativa leitura de dias da Sabesp, pegando o valor do m3 por excedente, e também calcula a area comum */

                                        item.excedenteM3PagoCondominio = item.consumoM3pagoCondominio - item.minimoM3PagoCondominio;
                                        //totalExcenteAreaComumMorador = (item.consumoM3pagoCondominio - totalConsumoExcedenteMorador) + totalExcedenteDinamico;
                                        //item.excedenteValorRateio = Convert.ToDecimal(Math.Round(Convert.ToDouble(item.excedenteValorPagoCondominio) / totalExcedenteDinamico + 0.0005, 3));
                                        //M³ incluindo area comum..
                                        //item.excedenteValorRateio = Convert.ToDecimal(Math.Round(Convert.ToDouble(item.excedenteValorPagoCondominio) / totalExdenteAreaComumMorador + 0.0005,MidpointRounding.AwayFromZero));

                                        item.excedenteValorRateio = Convert.ToDecimal(valorM3Excedente);
                                        if (consumoIndividualMensal > 10)
                                        {
                                            drSegundaVia["ExcedenteValorDevido"] = consumoIndividualMensal - 10;
                                            oReciboModel.excedenteValorDevido = Convert.ToDecimal(drSegundaVia["ExcedenteValorDevido"]);

                                            item.valorPagarValorDevido = Math.Round(Convert.ToDecimal(consumoIndividualMensal - 10) * item.excedenteValorRateio - Convert.ToDecimal(0.0005), 3);
                                            somatudo += item.valorPagarValorDevido;
                                        }
                                        else
                                        {
                                            drSegundaVia["ExcedenteValorDevido"] = 0L;
                                            oReciboModel.excedenteValorDevido = 0L;
                                            item.valorPagarValorDevido = 0L;
                                        }

                                        drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                                        oReciboModel.excedenteM3PagoCondominio = item.excedenteM3PagoCondominio;

                                        drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                                        oReciboModel.excedenteValorRateio = item.excedenteValorRateio;

                                        drSegundaVia["a pagar"] = Math.Truncate(item.valorPagarValorDevido * 100) / 100;  //Math.Round(item.valorPagarValorDevido, 2);
                                        oReciboModel.valorPagarValorDevido = Math.Truncate(item.valorPagarValorDevido * 100) / 100;

                                        //details.WriteLine(item.bloco + " " + item.apartamento + " " + item.valorPagarValorDevido);

                                    }
                                    //Se não mantêm o valor sem rateio..
                                    else
                                    {
                                        if (consumoIndividualMensal > 10)
                                        {
                                            drSegundaVia["ExcedenteValorDevido"] = consumoIndividualMensal - 10;
                                            oReciboModel.excedenteValorDevido = Convert.ToDecimal(drSegundaVia["ExcedenteValorDevido"]);
                                        }
                                        else
                                        {
                                            drSegundaVia["ExcedenteValorDevido"] = 0L;
                                            oReciboModel.excedenteValorDevido = 0L;
                                        }

                                        drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                                        oReciboModel.excedenteM3PagoCondominio = item.excedenteM3PagoCondominio;

                                        drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                                        oReciboModel.excedenteValorRateio = item.excedenteValorRateio;

                                        drSegundaVia["a pagar"] = item.valorPagarValorDevido;
                                        oReciboModel.valorPagarValorDevido = item.valorPagarValorDevido;
                                    }

                                    //details.Close();

                                    drSegundaVia["ExcedenteM3Rateio"] = totalExdenteAreaComumMorador;
                                    oReciboModel.excedenteM3Rateio = Convert.ToInt32(totalExdenteAreaComumMorador);

                                    drSegundaVia["Geral"] = item.avisoGeralAviso;
                                    oReciboModel.avisoGeralAviso = item.avisoGeralAviso;

                                    drSegundaVia["Anormal"] = item.AnormalAviso;
                                    oReciboModel.AnormalAviso = item.AnormalAviso;

                                    drSegundaVia["Invididual"] = item.individualAviso;//"-> O ajuste no sistema foi realizado, haverá desconto na conta de junho/2016, para aqueles que excederam à 10 M³ na conta de maio/2016."; //item.individualAviso;
                                    oReciboModel.individualAviso = item.individualAviso;

                                    drSegundaVia["ANORMALIDADE"] = item.anormalidadeAviso;
                                    oReciboModel.anormalidadeAviso = item.anormalidadeAviso;

                                    drSegundaVia["Imagem"] = item.imagem;
                                    oReciboModel.imagem = item.imagem;

                                    drSegundaVia["excedenteM3Diario"] = Convert.ToDouble(consumoIndividualMensal) / Convert.ToDouble(diasLeituraSabesp);//item.excedenteM3diaria;
                                    oReciboModel.excedenteM3diaria = Convert.ToSingle(Convert.ToDouble(consumoIndividualMensal) / Convert.ToDouble(diasLeituraSabesp));

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

                                    oReciboBLL.persisteCalculoFinalBanco(oReciboModel);
                                    oReciboModel = null;
                                }

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

                                rbSegundaVia.SetDataSource(dsSegundaVia);

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

                            catch (Exception ex)
                            {

                                throw ex;
                            }

                        }

                    }
                    else
                    {

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

                        foreach (var item in oListOrdenadoByRegistroJaCalculado)
                        {

                            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³"] = item.consumoMesM3;
                            drSegundaVia["Data da próxima leitura"] = item.dataProximaLeitura;
                            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;
                            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;
                            drSegundaVia["ExcedenteValorDevido"] =  item.excedenteValorDevido;
                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                            drSegundaVia["a pagar"] = item.valorPagarValorDevido;
                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteM3Rateio"] = item.excedenteM3Rateio;
                            drSegundaVia["Geral"] = item.avisoGeralAviso;
                            drSegundaVia["Anormal"] = item.AnormalAviso;
                            drSegundaVia["Invididual"] = item.individualAviso;
                            drSegundaVia["ANORMALIDADE"] = item.anormalidadeAviso;
                            drSegundaVia["Imagem"] = item.imagem;
                            drSegundaVia["excedenteM3Diario"] = item.excedenteM3diaria;
                            drSegundaVia["status"] = item.status;

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

                        }

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

                        rbSegundaVia.SetDataSource(dsSegundaVia);

                        rbSegundaVia.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "Recibo-"+ano+mes);

                    }

                }

                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;
                    }

                }
            }
        }
        public void ReciboOld()
        {
            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;
                }

            }
        }
        public void persisteCalculoFinalBanco(ReciboAgua oReciboModel)
        {
            string clausulaSQL = "SP_PERSISTE_CALCULOFINAL_AGUA";

            try
            {

                SqlCommand comandoSQL = new SqlCommand(clausulaSQL);
                comandoSQL.Parameters.AddWithValue("@ID_CONDOMINIO ", oReciboModel.idCondominio);
                comandoSQL.Parameters.AddWithValue("@NOME_CONDOMINIO ", oReciboModel.nomeCondominio);
                comandoSQL.Parameters.AddWithValue("@ENDERECO_CONDOMINIO", oReciboModel.enderecoCondominio);
                comandoSQL.Parameters.AddWithValue("@BLOCO", oReciboModel.bloco);
                comandoSQL.Parameters.AddWithValue("@APTO", oReciboModel.apartamento);
                comandoSQL.Parameters.AddWithValue("@REGISTRO", oReciboModel.registro);
                comandoSQL.Parameters.AddWithValue("@FECHAMENTO_ATUAL ", oReciboModel.fechamentoAtual);
                comandoSQL.Parameters.AddWithValue("@Data_leitura_Anterior ", oReciboModel.dataLeituraAnterior);
                comandoSQL.Parameters.AddWithValue("@leitura_Anterior_M3 ", oReciboModel.leituraAnteriorM3);
                comandoSQL.Parameters.AddWithValue("@Data_leitura_Atual ", oReciboModel.dataLeituraAtual);
                comandoSQL.Parameters.AddWithValue("@Leitura_Atual_m3 ", oReciboModel.leituraAtualM3);
                comandoSQL.Parameters.AddWithValue("@Consumo_mes_M3 ", oReciboModel.consumoMesM3);
                comandoSQL.Parameters.AddWithValue("@dt_proximaLeitura", oReciboModel.dataProximaLeitura);
                comandoSQL.Parameters.AddWithValue("@Status ", oReciboModel.status);
                comandoSQL.Parameters.AddWithValue("@Media ", oReciboModel.media);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes1 ", oReciboModel.historicoDescricaoMes1);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes1 ", oReciboModel.historicoMes1);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes2 ", oReciboModel.historicoDescricaoMes2);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes2 ", oReciboModel.historicoMes2);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes3 ", oReciboModel.historicoDescricaoMes3);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes3 ", oReciboModel.historicoMes3);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes4 ", oReciboModel.historicoDescricaoMes4);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes4", oReciboModel.historicoMes4);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes5 ", oReciboModel.historicoDescricaoMes5);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes5", oReciboModel.historicoMes5);
                comandoSQL.Parameters.AddWithValue("@HistDescricao_mes6", oReciboModel.historicoDescricaoMes6);
                comandoSQL.Parameters.AddWithValue("@HistoricoMes6", oReciboModel.historicoMes6);
                comandoSQL.Parameters.AddWithValue("@Imagem ", oReciboModel.imagem);
                comandoSQL.Parameters.AddWithValue("@Pg_condoConsumoM3 ", oReciboModel.consumoM3pagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoConsumoValor ", oReciboModel.ConsumoValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoM3 ", oReciboModel.minimoM3PagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoValor ", oReciboModel.minimoValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoMinimoExcedenteM3 ", oReciboModel.excedenteM3PagoCondominio);
                comandoSQL.Parameters.AddWithValue("@Pg_condoExcedenteValor ", oReciboModel.excedenteValorPagoCondominio);
                comandoSQL.Parameters.AddWithValue("@ValorRateioExcedenteM3 ", oReciboModel.excedenteM3Rateio);
                comandoSQL.Parameters.AddWithValue("@ValorRateioExcedenteValor ", oReciboModel.excedenteValorRateio);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoTarifaMinimaM3 ", oReciboModel.tarifaMinimaM3ValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoTarifaMinimaValor ", oReciboModel.tarifaMinimaValorValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoExcedente ", oReciboModel.excedenteValorDevido);
                comandoSQL.Parameters.AddWithValue("@ValorDevidoPagar ", oReciboModel.valorPagarValorDevido);
                comandoSQL.Parameters.AddWithValue("@AvisoGeral ", oReciboModel.avisoGeralAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoAnormal ", oReciboModel.AnormalAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoIndividual ", oReciboModel.individualAviso);
                comandoSQL.Parameters.AddWithValue("@AvisoANORMALIDADE ", oReciboModel.anormalidadeAviso);
                comandoSQL.Parameters.AddWithValue("@ConsutaMes ", oReciboModel.ano);
                comandoSQL.Parameters.AddWithValue("@ConsultaAno ", oReciboModel.mes);
                comandoSQL.Parameters.AddWithValue("@ExcedenteM3Diario ", oReciboModel.excedenteM3diaria);
                comandoSQL.Parameters.AddWithValue("@PersisteDados", "S");

                ExecutaComando(comandoSQL);
            }
            catch (Exception e)
            {
                throw e;

            }
        }
        /// <summary>
        /// Method which converts the row to object
        /// </summary>
        /// <param name="yearBase">Year base</param>
        /// <param name="lineNumber">line number of the file</param>
        /// <param name="line">string which contains line information read</param>
        /// <returns>object created in the iterop format</returns>
        private ReciboAgua ConvertRowToObject(int lineNumber, string line)
        {
            ReciboAgua model = new ReciboAgua();

            info.NumberDecimalSeparator = ",";
            info.NumberGroupSeparator   = ".";

            if (string.IsNullOrEmpty(line))
            {
                return(null);
            }

            string[] split = line.Split(new char[] { ';' });


            if (split.Length <= (int)Header.idCondominio)
            {
                throw new Exception("Not found idCondominio in column: " + ((int)Header.idCondominio).ToString());
            }
            model.idCondominio = split[(int)Header.idCondominio].Trim().ToString();

            if (split.Length <= (int)Header.nomeCondominio)
            {
                throw new Exception("Not found nomeCondominio in column: " + ((int)Header.nomeCondominio).ToString());
            }
            model.nomeCondominio = split[(int)Header.nomeCondominio].Trim().ToString();

            if (split.Length <= (int)Header.enderecoCondominio)
            {
                throw new Exception("Not found enderecoCondominio in column: " + ((int)Header.enderecoCondominio).ToString());
            }
            model.enderecoCondominio = split[(int)Header.enderecoCondominio].Trim().ToString();


            if (split.Length <= (int)Header.bloco)
            {
                throw new Exception("Not found bloco in column: " + ((int)Header.bloco).ToString());
            }
            model.bloco = split[(int)Header.bloco].Trim().ToString();

            if (split.Length <= (int)Header.apartamento)
            {
                throw new Exception("Not found apartamento in column: " + ((int)Header.apartamento).ToString());
            }
            model.apartamento = split[(int)Header.apartamento].Trim().ToString();

            if (split.Length <= (int)Header.registro)
            {
                throw new Exception("Not found registro in column: " + ((int)Header.registro).ToString());
            }
            model.registro = split[(int)Header.registro].Trim().ToString();


            if (split.Length <= (int)Header.fechamentoAtual)
            {
                throw new Exception("Not found fechamentoAtual in column: " + ((int)Header.fechamentoAtual).ToString());
            }
            model.fechamentoAtual = split[(int)Header.fechamentoAtual].Trim().ToString();


            if (split.Length <= (int)Header.dataLeituraAnterior)
            {
                throw new Exception("Not found dataLeituraAnteriorr in column: " + ((int)Header.dataLeituraAnterior).ToString());
            }
            model.dataLeituraAnterior = split[(int)Header.dataLeituraAnterior].Trim().ToString();

            if (split.Length <= (int)Header.leituraAnteriorM3)
            {
                throw new Exception("Not found leituraAnteriorM3 in column: " + ((int)Header.leituraAnteriorM3).ToString());
            }
            model.leituraAnteriorM3 = split[(int)Header.leituraAnteriorM3].Trim().ToString();

            if (split.Length <= (int)Header.dataLeituraAtual)
            {
                throw new Exception("Not found dataLeituraAtual in column: " + ((int)Header.dataLeituraAtual).ToString());
            }
            model.dataLeituraAtual = split[(int)Header.dataLeituraAtual].Trim().ToString();

            if (split.Length <= (int)Header.leituraAtualM3)
            {
                throw new Exception("Not found leituraAtualM3 in column: " + ((int)Header.leituraAtualM3).ToString());
            }
            model.leituraAtualM3 = split[(int)Header.leituraAtualM3].Trim().ToString();

            if (split.Length <= (int)Header.consumoMesM3)
            {
                throw new Exception("Not found consumoMesM3 in column: " + ((int)Header.consumoMesM3).ToString());
            }
            model.consumoMesM3 = split[(int)Header.consumoMesM3].Trim().ToString();


            if (split.Length <= (int)Header.dataProximaLeitura)
            {
                throw new Exception("Not found dataProximaLeitura in column: " + ((int)Header.dataProximaLeitura).ToString());
            }
            model.dataProximaLeitura = split[(int)Header.dataProximaLeitura].Trim().ToString();

            if (split.Length <= (int)Header.status)
            {
                throw new Exception("Not found status in column: " + ((int)Header.status).ToString());
            }
            model.status = split[(int)Header.status].Trim();

            if (split.Length <= (int)Header.media)
            {
                throw new Exception("Not found media in column: " + ((int)Header.media).ToString());
            }
            model.media = split[(int)Header.media].Trim().ToString();


            if (split.Length <= (int)Header.historicoDescricaoMes1)
            {
                throw new Exception("Not found historicoDescricaoMes1 in column: " + ((int)Header.historicoDescricaoMes1).ToString());
            }
            model.historicoDescricaoMes1 = split[(int)Header.historicoDescricaoMes1].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes1)
            {
                throw new Exception("Not found historicoMes1 in column: " + ((int)Header.historicoMes1).ToString());
            }
            model.historicoMes1 = split[(int)Header.historicoMes1].Trim().ToString();


            if (split.Length <= (int)Header.historicoDescricaoMes2)
            {
                throw new Exception("Not found historicoDescricaoMes2 in column: " + ((int)Header.historicoDescricaoMes2).ToString());
            }
            model.historicoDescricaoMes2 = split[(int)Header.historicoDescricaoMes2].Trim();

            if (split.Length <= (int)Header.historicoMes2)
            {
                throw new Exception("Not found historicoMes2 in column: " + ((int)Header.historicoMes2).ToString());
            }
            model.historicoMes2 = split[(int)Header.historicoMes2].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes3)
            {
                throw new Exception("Not found historicoDescricaoMes3 in column: " + ((int)Header.historicoDescricaoMes3).ToString());
            }
            model.historicoDescricaoMes3 = split[(int)Header.historicoDescricaoMes3].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes3)
            {
                throw new Exception("Not found historicoMes3 in column: " + ((int)Header.historicoMes3).ToString());
            }
            model.historicoMes3 = split[(int)Header.historicoMes3].Trim().ToString();



            if (split.Length <= (int)Header.historicoDescricaoMes4)
            {
                throw new Exception("Not found historicoDescricaoMes4 in column: " + ((int)Header.historicoDescricaoMes4).ToString());
            }
            model.historicoDescricaoMes4 = split[(int)Header.historicoDescricaoMes4].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes4)
            {
                throw new Exception("Not found historicoMes1 in column: " + ((int)Header.historicoMes4).ToString());
            }
            model.historicoMes4 = split[(int)Header.historicoMes4].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes5)
            {
                throw new Exception("Not found historicoDescricaoMes5 in column: " + ((int)Header.historicoDescricaoMes5).ToString());
            }
            model.historicoDescricaoMes5 = split[(int)Header.historicoDescricaoMes5].Trim().ToString();


            if (split.Length <= (int)Header.historicoMes5)
            {
                throw new Exception("Not found historicoMes5 in column: " + ((int)Header.historicoMes5).ToString());
            }
            model.historicoMes5 = split[(int)Header.historicoMes5].Trim().ToString();

            if (split.Length <= (int)Header.historicoDescricaoMes6)
            {
                throw new Exception("Not found historicoDescricaoMes6 in column: " + ((int)Header.historicoDescricaoMes6).ToString());
            }
            model.historicoDescricaoMes6 = split[(int)Header.historicoDescricaoMes6].Trim().ToString();

            if (split.Length <= (int)Header.historicoMes6)
            {
                throw new Exception("Not found historicoMes6 in column: " + ((int)Header.historicoMes6).ToString());
            }
            model.historicoMes6 = split[(int)Header.historicoMes6].Trim().ToString();

            if (split.Length <= (int)Header.imagem)
            {
                throw new Exception("Not found imagem in column: " + ((int)Header.imagem).ToString());
            }
            model.imagem = split[(int)Header.imagem].Trim().ToString();



            if (split.Length <= (int)Header.ConsumoValorPagoCondominio)
            {
                throw new Exception("Not found consumoM3pagoCondominio in column: " + ((int)Header.consumoM3pagoCondominio).ToString());
            }
            model.ConsumoValorPagoCondominio = Convert.ToDecimal(split[(int)Header.ConsumoValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.consumoM3pagoCondominio)
            {
                throw new Exception("Not found consumoM3pagoCondominio in column: " + ((int)Header.consumoM3pagoCondominio).ToString());
            }
            model.consumoM3pagoCondominio = Convert.ToInt32(split[(int)Header.consumoM3pagoCondominio].Trim());

            if (split.Length <= (int)Header.minimoM3PagoCondominio)
            {
                throw new Exception("Not found minimoM3PagoCondominio in column: " + ((int)Header.minimoM3PagoCondominio).ToString());
            }
            model.minimoM3PagoCondominio = Convert.ToInt32(split[(int)Header.minimoM3PagoCondominio].Trim());

            if (split.Length <= (int)Header.minimoValorPagoCondominio)
            {
                throw new Exception("Not found minimoValorPagoCondominio in column: " + ((int)Header.minimoValorPagoCondominio).ToString());
            }
            model.minimoValorPagoCondominio = Convert.ToDecimal(split[(int)Header.minimoValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteM3PagoCondominio)
            {
                throw new Exception("Not found excedenteM3PagoCondominio in column: " + ((int)Header.excedenteM3PagoCondominio).ToString());
            }
            model.excedenteM3PagoCondominio = Convert.ToInt32(split[(int)Header.excedenteM3PagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteValorPagoCondominio)
            {
                throw new Exception("Not found excedenteValorPagoCondominio in column: " + ((int)Header.excedenteValorPagoCondominio).ToString());
            }
            model.excedenteValorPagoCondominio = Convert.ToDecimal(split[(int)Header.excedenteValorPagoCondominio].Trim());

            if (split.Length <= (int)Header.excedenteM3Rateio)
            {
                throw new Exception("Not found excedenteM3Rateio in column: " + ((int)Header.excedenteM3Rateio).ToString());
            }
            model.excedenteM3Rateio = Convert.ToInt32(split[(int)Header.excedenteM3Rateio].Trim());

            if (split.Length <= (int)Header.excedenteValorRateio)
            {
                throw new Exception("Not found excedenteValorRateio in column: " + ((int)Header.excedenteValorRateio).ToString());
            }
            model.excedenteValorRateio = Convert.ToDecimal(split[(int)Header.excedenteValorRateio].Trim());

            if (split.Length <= (int)Header.tarifaMinimaM3ValorDevido)
            {
                throw new Exception("Not found tarifaMinimaM3ValorDevido in column: " + ((int)Header.tarifaMinimaM3ValorDevido).ToString());
            }
            model.tarifaMinimaM3ValorDevido = Convert.ToInt32(split[(int)Header.tarifaMinimaM3ValorDevido].Trim());

            if (split.Length <= (int)Header.tarifaMinimaValorValorDevido)
            {
                throw new Exception("Not found tarifaMinimaValorValorDevido in column: " + ((int)Header.tarifaMinimaValorValorDevido).ToString());
            }
            model.tarifaMinimaValorValorDevido = Convert.ToDecimal(split[(int)Header.tarifaMinimaValorValorDevido].Trim());

            if (split.Length <= (int)Header.excedenteValorDevido)
            {
                throw new Exception("Not found excedenteValorDevido in column: " + ((int)Header.excedenteValorDevido).ToString());
            }
            model.excedenteValorDevido = Convert.ToDecimal(split[(int)Header.excedenteValorDevido].Trim());


            if (split.Length <= (int)Header.valorPagarValorDevido)
            {
                throw new Exception("Not found valorPagarValorDevido in column: " + ((int)Header.valorPagarValorDevido).ToString());
            }
            model.valorPagarValorDevido = Convert.ToDecimal(split[(int)Header.valorPagarValorDevido].Trim());

            if (split.Length <= (int)Header.avisoGeralAviso)
            {
                throw new Exception("Not found avisoGeralAviso in column: " + ((int)Header.avisoGeralAviso).ToString());
            }
            model.avisoGeralAviso = split[(int)Header.avisoGeralAviso].Trim().ToString();

            if (split.Length <= (int)Header.AnormalAviso)
            {
                throw new Exception("Not found AnormalAviso in column: " + ((int)Header.AnormalAviso).ToString());
            }
            model.AnormalAviso = split[(int)Header.AnormalAviso].Trim().ToString();

            if (split.Length <= (int)Header.individualAviso)
            {
                throw new Exception("Not found individualAviso in column: " + ((int)Header.individualAviso).ToString());
            }
            model.individualAviso = split[(int)Header.individualAviso].Trim();

            if (split.Length <= (int)Header.anormalidadeAviso)
            {
                throw new Exception("Not found anormalidadeAviso in column: " + ((int)Header.anormalidadeAviso).ToString());
            }
            model.anormalidadeAviso = split[(int)Header.anormalidadeAviso].Trim().ToString();

            if (split.Length <= (int)Header.individualAviso)
            {
                throw new Exception("Not found individualAviso in column: " + ((int)Header.individualAviso).ToString());
            }
            model.individualAviso = split[(int)Header.individualAviso].Trim().ToString();

            if (split.Length <= (int)Header.ano)
            {
                throw new Exception("Not found ano in column: " + ((int)Header.ano).ToString());
            }
            model.ano = Convert.ToInt32(split[(int)Header.ano].Trim());

            if (split.Length <= (int)Header.mes)
            {
                throw new Exception("Not found mes in column: " + ((int)Header.mes).ToString());
            }
            model.mes = Convert.ToInt32(split[(int)Header.mes].Trim());

            if (split.Length <= (int)Header.excedenteM3diaria)
            {
                throw new Exception("Not found  excedenteM3diaria in column: " + ((int)Header.excedenteM3diaria).ToString());
            }
            decimal excedenteM3diario = Convert.ToDecimal(split[(int)Header.excedenteM3diaria].Trim().ToString());

            model.excedenteM3diaria = (float)excedenteM3diario;

            return(model);
        }
        protected void cmdSave_Click(object sender, EventArgs e)
        {
            ReciboAgua oReciboModel = new ReciboAgua();
            ReciboAguaBLL bussiness = new ReciboAguaBLL();

            oReciboModel.ano = IteropList[1].mes;
            oReciboModel.mes = IteropList[1].ano;

            var contador = bussiness.validaImportacao(oReciboModel);

            if (contador[0].mes == 0)
            {

                // Add Fake Delay to simulate long running process.
                System.Threading.Thread.Sleep(5000);
                //Forech entry found in text file loaded
                for (int c = 0; c < IteropList.Count; c++)
                {

                    try
                    {
                        bussiness.importIntegracaoWeb(IteropList[c]);
                    }
                    catch (Exception ex)
                    {
                        ex.Message.ToString();
                    }
                }

                this.lblSaved.Visible = true;
                lblSaved.Text = "Integração feita com sucesso Referência - > " + oReciboModel.mes + "/" + oReciboModel.ano;
                divtabela.Visible = false;
                cmdSave.Visible = false;
                lblDescTotalRead.Visible = false;
                lblTotalRead.Visible = false;
                btnCheck.Visible = true;
                dvUploadArquivos.Visible = true;
                this.grZip.DataSource = null;
                this.grZip.DataBind();
            }
            else
            {
                hiddenComponent();
                this.lblSaved.Visible = true;
                this.btnCheck.Visible = true;
                this.lblSaved.ForeColor = Color.Red;
                lblSaved.Text = "já houve integração p/ refêrencia - "+oReciboModel.mes +"/"+oReciboModel.ano;
            }
        }
        public void crystalReport()
        {
            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;

            ReciboAguaBLL oReciboBLL = new ReciboAguaBLL();
            ReciboAgua oReciboModel = new ReciboAgua();

            DSrecibo dsSegundaVia = new DSrecibo();
            DataRow drSegundaVia = dsSegundaVia.Tables[1].NewRow();

            try
            {

                    string apartamento = Session["AP"].ToString();
                    string bloco = Session["Bloco"].ToString();
                    string mes = Session["mes"].ToString();
                    string ano = Session["ano"].ToString();

                    oReciboModel.bloco = bloco;
                    oReciboModel.apartamento = apartamento;
                    oReciboModel.ano = Convert.ToInt32(ano);
                    oReciboModel.mes = Convert.ToInt32(mes);

                    foreach (var item in oReciboBLL.buscaTodosRecibosByBlocoAndApto(oReciboModel))
                    {

                        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³"] = 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;

                        //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 M³"] = item.consumoM3pagoCondominio;
                        drSegundaVia["Consumo Valor"] = item.ConsumoValorPagoCondominio;
                        drSegundaVia["Mínimo M³"] = item.minimoM3PagoCondominio;
                        drSegundaVia["Mínimo Valor"] = item.minimoValorPagoCondominio;
                        drSegundaVia["Excedente Valor"] = item.excedenteValorPagoCondominio;
                        drSegundaVia["Tarifa Mínima M³"] = item.tarifaMinimaM3ValorDevido;

                        //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 = (item.excedenteValorPagoCondominio / item.excedenteM3Rateio);
                            item.valorPagarValorDevido = item.excedenteValorDevido * Math.Round(item.excedenteValorRateio, 2);

                            drSegundaVia["ExcedentePagoPeloCondominio"] = item.excedenteM3PagoCondominio;
                            drSegundaVia["ExcedenteValorRateio "] = item.excedenteValorRateio;
                            drSegundaVia["a pagar"] = 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;
                        }
                        drSegundaVia["Tarifa Mínima Valor"] = item.tarifaMinimaValorValorDevido;
                        drSegundaVia["ExcedenteM3Rateio"] = item.excedenteM3Rateio;
                        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);

                    //CrystalReportViewer1.ReportSource = rbSegundaVia;

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

                    //ReportDocument rpt = new ReportDocument();
                    //CrystalDecisions.Shared.ConnectionInfo connectionCrystal = new CrystalDecisions.Shared.ConnectionInfo();
                    //connectionCrystal.ServerName = ConfigurationManager.AppSettings["azuliServerName"];
                    //connectionCrystal.DatabaseName = ConfigurationManager.AppSettings["azuliDatabase"];
                    //connectionCrystal.UserID = ConfigurationManager.AppSettings["userIdSomee"];
                    //connectionCrystal.Password = ConfigurationManager.AppSettings["pwdSomee"];
                    //connectionCrystal.Type = ConnectionInfoType.SQL;
                    //connectionCrystal.IntegratedSecurity = false;
                    // string caminhoRelatorio = ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"; // Local
                    ////string caminhoRelatorio = Server.MapPath(ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"); //web

                    ////string caminhoRelatorio = ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"; // Local
                    //// string caminhoRelatorio = Server.MapPath(ConfigurationManager.AppSettings["ReportsPath"] + "ReciboMoradorByApBloco.rpt"); //web
                    ////Session["reportSource"] = caminhoRelatorio;

                    //string apartamento = Session["AP"].ToString();
                    //string bloco = Session["Bloco"].ToString();
                    //string mes = Session["mes"].ToString();
                    //string ano = Session["ano"].ToString();

                    //rpt.Load(caminhoRelatorio);
                    //rpt.SetParameterValue("bloco", bloco);
                    //rpt.SetParameterValue("apto", apartamento);
                    //rpt.SetParameterValue("mes", mes);
                    //rpt.SetParameterValue("ano", ano);
                    //SetDBLogonForReport(connectionCrystal, rpt);

                    //CrystalReportViewer1.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
                    //CrystalReportViewer1.HasToggleGroupTreeButton = false;
                    //CrystalReportViewer1.HasToggleParameterPanelButton = false;
                    //rpt.SetDatabaseLogon(connectionCrystal.UserID, connectionCrystal.Password, connectionCrystal.ServerName, connectionCrystal.DatabaseName);
                    //CrystalReportViewer1.ReportSourceID = ConfigurationManager.AppSettings["reciboMorador"];

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

            catch (Exception ex)
            {

                throw ex;
            }
        }