Example #1
0
        public ContasPagar GetContaPagar(short nrParcela, string modelo, string serie, int numero, int codFornecedor)
        {
            try
            {
                var model = new Models.ContasPagar();
                OpenConnection();
                var sql = this.Search(null, modelo, serie, numero, codFornecedor, nrParcela);
                SqlQuery = new SqlCommand(sql, con);
                reader   = SqlQuery.ExecuteReader();
                while (reader.Read())
                {
                    model.Fornecedor = new Select.Fornecedores.Select
                    {
                        id   = Convert.ToInt32(reader["ContaPagar_Fornecedor_ID"]),
                        text = Convert.ToString(reader["ContaPagar_Fornecedor_Nome"])
                    };
                    model.FormaPagamento = new Select.FormaPagamento.Select
                    {
                        id   = Convert.ToInt32(reader["ContaPagar_FormaPagamento_ID"]),
                        text = Convert.ToString(reader["ContaPagar_FormaPagamento_Nome"])
                    };
                    model.nrParcela     = Convert.ToInt16(reader["ContaPagar_NrParcela"]);
                    model.vlParcela     = Convert.ToDecimal(reader["ContaPagar_vlParcela"]);
                    model.dtVencimento  = Convert.ToDateTime(reader["ContaPagar_DataVencimento"]);
                    model.dtPagamento   = !string.IsNullOrEmpty(reader["ContaPagar_DataPagamento"].ToString()) ? Convert.ToDateTime(reader["ContaPagar_DataPagamento"]) : (DateTime?)null;
                    model.situacao      = Convert.ToString(reader["ContaPagar_Situacao"]) == "P" ? "PENDENTE" : "PAGA";
                    model.modelo        = Convert.ToString(reader["ContaPagar_Modelo"]);
                    model.serie         = Convert.ToString(reader["ContaPagar_Serie"]);
                    model.numero        = Convert.ToInt32(reader["ContaPagar_Numero"]);
                    model.ContaContabil = new Select.ContasContabeis.Select
                    {
                        id   = !string.IsNullOrEmpty(reader["ContaContabil_ID"].ToString()) ? Convert.ToInt32(reader["ContaContabil_ID"]) : (int?)null,
                        text = !string.IsNullOrEmpty(reader["ContaContabil_Nome"].ToString()) ? Convert.ToString(reader["ContaContabil_Nome"]) : string.Empty
                    };
                    model.txJuros  = Convert.ToDecimal(reader["ContaPagar_Juros"]);
                    model.multa    = Convert.ToDecimal(reader["ContaPagar_Multa"]);
                    model.desconto = Convert.ToDecimal(reader["ContaPagar_Desconto"]);

                    if (DateTime.Now.Date > model.dtVencimento.Date)
                    {
                        var     dtBase      = (DateTime.Now - model.dtVencimento).Days;
                        decimal txJusto     = decimal.Round((model.txJuros * model.vlParcela) / 100, 2);
                        decimal multaDiaria = decimal.Round(((model.multa * model.vlParcela) / 100) * dtBase, 2);
                        model.vlParcela = model.vlParcela + multaDiaria + txJusto;
                    }
                    else
                    {
                        var txDesconto = decimal.Round((model.desconto * model.vlParcela) / 100, 2);
                        model.vlParcela = model.vlParcela - txDesconto;
                    }
                }
                return(model);
            }
            catch (Exception error)
            {
                throw new Exception(error.Message);
            }
            finally
            {
                CloseConnection();
            }
        }
Example #2
0
        public void Pagar(string modelo, string serie, int numero, int codfornecedor, short nrparcela, Models.ContasPagar model)
        {
            var swhere = " WHERE tbcontaspagar.modelo = '" + modelo + "' AND tbcontaspagar.serie = '" + serie + "' AND tbcontaspagar.numero = " + numero + " AND tbcontaspagar.codfornecedor = " + codfornecedor + " AND tbcontaspagar.nrparcela = " + nrparcela;
            var sql    = "UPDATE tbcontaspagar set dtpagamento = " + this.FormatDate(DateTime.Now) + ", situacao = 'G', codconta = " + model.ContaContabil.id + swhere;

            string lancamento = "PAGAMENTO DO FORNECEDOR " + model.Fornecedor.id + " - " + this.FormatString(model.Fornecedor.text) + ", NOTA FISCAL Nº " + model.numero + ", PARCELA Nº " + model.nrParcela + ".";

            var sqlLancamento = string.Format("INSERT INTO tblancamentos (codconta, dtmovimento, vllancamento, tipo, descricao) VALUES ({0}, {1}, {2}, '{3}', '{4}')",
                                              model.ContaContabil.id,
                                              this.FormatDate(DateTime.Now),
                                              this.FormatDecimal(model.vlParcela),
                                              "D",
                                              this.FormatString(lancamento)
                                              );

            var sqlSaldoConta = "UPDATE tbcontascontabeis set vlsaldo -= " + this.FormatDecimal(model.vlParcela) + " WHERE tbcontascontabeis.codconta = " + model.ContaContabil.id;

            using (con)
            {
                OpenConnection();
                SqlTransaction trans   = con.BeginTransaction();
                SqlCommand     command = con.CreateCommand();
                try
                {
                    command.Transaction = trans;

                    command.CommandText = sql;
                    command.ExecuteNonQuery();

                    command.CommandText = sqlLancamento;
                    command.ExecuteNonQuery();

                    command.CommandText = sqlSaldoConta;
                    command.ExecuteNonQuery();

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw new Exception(ex.Message);
                }
                finally
                {
                    con.Close();
                }
            }
        }