// INSERT ENTRADA | ARECEBER CHEQUE //------------------------------------------------------------------------------------------------------------ private objAReceber insertAReceberCheque( objAReceber receber, objMovimentacao entrada, Action <int, decimal> contaSaldoUpdate, AcessoDados dbTran) { // create TRANSFER SAIDA objMovimentacao transfSaida = new objMovimentacao(null) { MovTipo = 3, // TRANSFERENCIA Origem = EnumMovOrigem.AReceber, // tblAReceber IDOrigem = (long)receber.IDAReceber, IDConta = receber.IDContaProvisoria, IDSetor = null, MovData = entrada.MovData, MovValor = entrada.MovValor * (-1), DescricaoOrigem = "TRANSFERÊNCIA: Depósito de Cheque", }; // create TRANSFER ENTRADA objMovimentacao transfEntrada = new objMovimentacao(null) { MovTipo = 3, // TRANSFERENCIA Origem = EnumMovOrigem.AReceber, // tblAReceber IDOrigem = (long)receber.IDAReceber, IDConta = entrada.IDConta, IDSetor = null, MovData = entrada.MovData, MovValor = entrada.MovValor, DescricaoOrigem = "TRANSFERÊNCIA: Compensação de Cheque", }; try { MovimentacaoBLL mBLL = new MovimentacaoBLL(); // Update FIRST Entrada: CONSOLIDADO = TRUE mBLL.UpdateConsolidado(receber.IDMovProvisoria, true, dbTran); // Insert transf saida mBLL.InsertMovimentacao(transfSaida, contaSaldoUpdate, null, dbTran); // Insert transf entrada mBLL.InsertMovimentacao(transfEntrada, contaSaldoUpdate, null, dbTran); // update AReceber UpdateAReceber(receber, dbTran); } catch (Exception ex) { throw ex; } return(receber); }
// INSERT TRANSFERENCIA SETOR //------------------------------------------------------------------------------------------------------------ public long InsertTransferenciaSetor(objTransfSetor Transf, Action <int, decimal> SetorSdlUpdate) { AcessoDados db = null; try { db = new AcessoDados(); db.BeginTransaction(); //--- 1. INSERT TRANSF SETOR //------------------------------------------------------------------------------------------------------------ //--- clear Params db.LimparParametros(); //--- params db.AdicionarParametros("@IDSetorEntrada", Transf.IDSetorEntrada); db.AdicionarParametros("@IDSetorSaida", Transf.IDSetorSaida); db.AdicionarParametros("@Descricao", Transf.Descricao); db.AdicionarParametros("@TransfData", Transf.TransfData); db.AdicionarParametros("@TransfValor", Transf.TransfValor); //--- convert null parameters db.ConvertNullParams(); //--- create insert string string query = db.CreateInsertSQL("tblTransfSetor"); //--- insert and Get new ID long newID = db.ExecutarInsertAndGetID(query); //--- 2. INSERT TRANSF ENTRADA //------------------------------------------------------------------------------------------------------------ MovimentacaoBLL mBLL = new MovimentacaoBLL(); //--- create transferencia de entrada objMovimentacao entrada = new objMovimentacao(null) { IDSetor = Transf.IDSetorEntrada, IDCaixa = null, IDConta = null, Origem = EnumMovOrigem.TransfSetor, IDOrigem = newID, MovData = Transf.TransfData, MovValor = Transf.TransfValor, DescricaoOrigem = $"TRANSFERÊNCIA: entrada de {Transf.SetorSaida}", }; //--- execute INSERT ENTRADA MOVIMENTACAO mBLL.InsertMovimentacao(entrada, SetorSdlUpdate, null, db); //--- 3. INSERT TRANSF SAIDA //------------------------------------------------------------------------------------------------------------ //--- create transferencia de entrada objMovimentacao saida = new objMovimentacao(null) { IDSetor = Transf.IDSetorSaida, IDCaixa = null, IDConta = null, Origem = EnumMovOrigem.TransfSetor, IDOrigem = newID, MovData = Transf.TransfData, MovValor = Transf.TransfValor * (-1), DescricaoOrigem = $"TRANSFERÊNCIA: saída para {Transf.SetorEntrada}", }; //--- execute INSERT SAIDA MOVIMENTACAO mBLL.InsertMovimentacao(entrada, null, SetorSdlUpdate, db); //--- COMMIT and RETURN db.CommitTransaction(); return(newID); } catch (Exception ex) { db.RollBackTransaction(); throw ex; } }
// 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; } }