示例#1
0
        public void Receber(int id, Models.ContasReceber model)
        {
            var sql = "UPDATE tbcontasreceber set dtpagamento = " + this.FormatDate(DateTime.Now) + ", situacao = 'G', codconta = " + model.ContaContabil.id + " WHERE tbcontasreceber.codcontareceber = " + model.codigo;

            string lancamento = "O CLIENTE " + model.Cliente.id + " - " + this.FormatString(model.Cliente.text) + " REALIZOU O PAGAMENTO DA PARCELA Nº" + model.nrParcela + " REFERENTE A VENDA Nº " + model.codVenda + ".";

            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();
                }
            }
        }
示例#2
0
        public ContasReceber GetContaPagar(int?codContaReceber)
        {
            try
            {
                var model = new Models.ContasReceber();
                if (codContaReceber != null)
                {
                    OpenConnection();
                    var sql = this.Search(codContaReceber, null);
                    SqlQuery = new SqlCommand(sql, con);
                    reader   = SqlQuery.ExecuteReader();
                    while (reader.Read())
                    {
                        model.codigo   = Convert.ToInt32(reader["ContaReceber_ID"]);
                        model.codVenda = Convert.ToInt32(reader["Venda_ID"]);
                        model.Cliente  = new Select.Clientes.Select
                        {
                            id   = Convert.ToInt32(reader["Cliente_ID"]),
                            text = Convert.ToString(reader["Cliente_Nome"])
                        };
                        model.FormaPagamento = new Select.FormaPagamento.Select
                        {
                            id   = Convert.ToInt32(reader["FormaPagamento_ID"]),
                            text = Convert.ToString(reader["FormaPagamento_Nome"])
                        };
                        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.nrParcela    = Convert.ToInt16(reader["ContaReceber_NrParcela"]);
                        model.vlParcela    = Convert.ToDecimal(reader["ContaReceber_Valor"]);
                        model.dtVencimento = Convert.ToDateTime(reader["ContaReceber_DataVencimento"]);
                        model.dtPagamento  = !string.IsNullOrEmpty(reader["ContaReceber_DataPagamento"].ToString()) ? Convert.ToDateTime(reader["ContaReceber_DataPagamento"]) : (DateTime?)null;
                        model.situacao     = (reader["ContaReceber_Situacao"].ToString() == "P" ? "PENDENTE" : "PAGA");
                        model.txJuros      = Convert.ToDecimal(reader["ContaReceber_Juros"]);
                        model.multa        = Convert.ToDecimal(reader["ContaReceber_Multa"]);
                        model.desconto     = Convert.ToDecimal(reader["ContaReceber_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();
            }
        }