// INSERT CONTRIBUICAO CARTAO //------------------------------------------------------------------------------------------------------------ private void AddContribuicaoCartao(objContribuicaoCartao cartao, AcessoDados dbTran) { try { //--- clear Params dbTran.LimparParametros(); //--- define Params dbTran.AdicionarParametros("@IDContribuicao", cartao.IDContribuicao); dbTran.AdicionarParametros("@CartaoTipo", cartao.CartaoTipo); dbTran.AdicionarParametros("@IDCartaoBandeira", cartao.IDCartaoBandeira); dbTran.AdicionarParametros("@IDCartaoOperadora", cartao.IDCartaoOperadora); dbTran.AdicionarParametros("@IDContaProvisoria", cartao.IDContaProvisoria); dbTran.AdicionarParametros("@Parcelas", cartao.Parcelas); dbTran.AdicionarParametros("@TaxaAplicada", cartao.TaxaAplicada); dbTran.AdicionarParametros("@Prazo", cartao.Prazo); //--- convert null parameters dbTran.ConvertNullParams(); string query = dbTran.CreateInsertSQL("tblContribuicaoCartao"); //--- insert and Get new ID dbTran.ExecutarManipulacao(CommandType.Text, query); } catch (Exception ex) { throw ex; } }
private ErrorProvider EP = new ErrorProvider(); // default error provider #region SUB NEW | PROPERTIES // SUB NEW //------------------------------------------------------------------------------------------------------------ public frmContribuicaoCartao(ref objContribuicaoCartao cartao, Form formOrigem) { InitializeComponent(); if (cartao.IDContribuicao != null) { _cartao = GetCartao((long)cartao.IDContribuicao); } else { _cartao = cartao; } _formOrigem = formOrigem; GetOperadorasList(); GetBandeirasList(); PreencheDictionary(); // binding bind.DataSource = typeof(objContribuicaoCartao); bind.Add(_cartao); BindingCreator(); if (_cartao.IDContribuicao == null) { Sit = EnumFlagEstado.NovoRegistro; } else { Sit = EnumFlagEstado.RegistroSalvo; } // handlers _cartao.PropertyChanged += RegistroAlterado; HandlerKeyDownControl(this); }
// INSERT //------------------------------------------------------------------------------------------------------------ public long InsertContribuicao( objContribuicao cont, Action <int, decimal> ContaSldLocalUpdate, Action <int, decimal> SetorSldLocalUpdate, object forma = null) { AcessoDados db = new AcessoDados(); long? newID = null; long? newMovID = null; objMovimentacao entrada = null; try { db.BeginTransaction(); //--- Check Conta Bloqueio if (!new ContaBLL().ContaDateBlockPermit(cont.IDConta, cont.ContribuicaoData, db)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Crédito proposta...", 2); } switch (cont.IDEntradaForma) { case 1: // DINHEIRO //--- Insert Contribuicao cont.Realizado = true; cont.ValorRecebido = cont.ValorBruto; newID = AddContribuicao(cont, db); //--- Create NEW Entrada entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = cont.IDConta, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = cont.ValorBruto, Consolidado = true, DescricaoOrigem = "CONTRIBUIÇÃO: " + cont.OrigemDescricao, }; //--- Insert MOVIMENTACAO Entrada new MovimentacaoBLL().InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); break; case 2: // CHEQUE if (forma == null || forma.GetType() != typeof(objContribuicaoCheque)) { throw new Exception("Não há registro de informação do cheque..."); } //--- Insert Contribuicao cont.Realizado = false; cont.ValorRecebido = 0; newID = AddContribuicao(cont, db); cont.IDContribuicao = newID; //--- Insert ContribuicaoCheque objContribuicaoCheque cheque = (objContribuicaoCheque)forma; cheque.IDContribuicao = newID; AddContribuicaoCheque(cheque, db); //--- Create NEW MOVIMENTACAO ENTRADA entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = cont.IDConta, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = cont.ValorBruto, Consolidado = false, DescricaoOrigem = $"CONTRIBUIÇÃO: Cheque no. {cheque.ChequeNumero} {cheque.Banco}", }; //--- Insert MOVIMENTACAO Entrada newMovID = new MovimentacaoBLL().InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); //--- Create AReceber var areceber = new objAReceber(null) { CompensacaoData = cheque.DepositoData, IDContaProvisoria = cont.IDConta, IDContribuicao = (long)cont.IDContribuicao, IDSituacao = 1, Situacao = "Em Aberto", ValorBruto = cont.ValorBruto, ValorLiquido = cont.ValorBruto, ValorRecebido = 0, IDMovProvisoria = (long)newMovID, }; //--- Insert AReceber Parcela new AReceberBLL().InsertAReceber(areceber, db); break; case 3: // CARTAO if (forma == null || forma.GetType() != typeof(objContribuicaoCartao)) { throw new Exception("Não há registro de informação do cartão..."); } //--- Check Conta Bloqueio objContribuicaoCartao cartao = (objContribuicaoCartao)forma; if (!new ContaBLL().ContaDateBlockPermit(cartao.IDContaProvisoria, cont.ContribuicaoData, db)) { throw new AppException("A Data da Conta está BLOQUEADA nesta Data de Crédito proposta...", 2); } //--- Insert Contribuicao cont.Realizado = false; cont.ValorRecebido = 0; newID = AddContribuicao(cont, db); cont.IDContribuicao = newID; //--- Insert ContribuicaoCartao cartao.IDContribuicao = newID; AddContribuicaoCartao(cartao, db); //--- Insert ListOf AReceber var listAReceber = new List <objAReceber>(); int parcelas = cartao.Parcelas == 0 ? 1 : cartao.Parcelas; // create PARCELAS for (int i = 0; i < parcelas; i++) { var parcela = new objAReceber(null) { CompensacaoData = cont.ContribuicaoData.AddDays(cartao.Prazo * (i + 1)), IDContaProvisoria = cartao.IDContaProvisoria, IDContribuicao = (long)cont.IDContribuicao, IDSituacao = 1, Situacao = "Em Aberto", ValorBruto = cont.ValorBruto / parcelas, ValorLiquido = (cont.ValorBruto / parcelas) * (100 - cartao.TaxaAplicada) / 100, ValorRecebido = 0 }; listAReceber.Add(parcela); } var rBLL = new AReceberBLL(); var mBLL = new MovimentacaoBLL(); int numParcela = 1; //--- Insert ListOf AReceber Parcelas foreach (var parcela in listAReceber) { //--- Create NEW MOVIMENTACAO Entrada entrada = new objMovimentacao(null) { MovTipo = 1, IDConta = parcela.IDContaProvisoria, IDSetor = cont.IDSetor, IDOrigem = (long)newID, Origem = EnumMovOrigem.Contribuicao, MovData = cont.ContribuicaoData, MovValor = parcela.ValorBruto, Consolidado = false, }; //--- define descricao origem of movimentacao if (cartao.Parcelas == 0) { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão de Débito {cartao.CartaoBandeira}"; } else if (cartao.Parcelas == 1) { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão de Crédito {cartao.CartaoBandeira}"; } else { entrada.DescricaoOrigem = $"CONTRIBUIÇÃO: Cartão Parcelado {cartao.CartaoBandeira} parcela {numParcela:D2}"; } //--- add Parcela numParcela += 1; //--- Insert Entrada newMovID = mBLL.InsertMovimentacao(entrada, ContaSldLocalUpdate, SetorSldLocalUpdate, db); //--- Insert AReceber parcela.IDMovProvisoria = (long)newMovID; rBLL.InsertAReceber(parcela, db); } break; default: break; } if (newID == 0) { throw new Exception("Não foi possível inserir um novo registro de Contribuição..."); } db.CommitTransaction(); return((long)newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }