public static string ProcessarParcelasCad_CondPGTO(TRegistro_CadCondPgto val, TRegistro_CadCondPgto_X_Parcelas Cad_CondPGTO_X_Parcelas, bool gravar, decimal[] valoresRateio, int[] QtdDias) { TCD_CadCondPgto_X_Parcelas qtb_cond = new TCD_CadCondPgto_X_Parcelas(); qtb_cond.CriarBanco_Dados(true); string retorno = string.Empty; try { //GRAVA OS NOVOS DADOS if (gravar) { valoresRateio = null; } decimal[] valorRateio = Estruturas.calcularRateio(Convert.ToInt16(val.Qt_parcelas), 100M, valoresRateio); if (valorRateio != null) { for (int i = 0; i < valorRateio.Length; i++) { TRegistro_CadCondPgto_X_Parcelas Cad_CondPGTO_X_ParcelasNEW = new TRegistro_CadCondPgto_X_Parcelas(); Cad_CondPGTO_X_ParcelasNEW.Cd_condpgto = val.Cd_condpgto; Cad_CondPGTO_X_ParcelasNEW.Id_parcela = (i + 1); if (QtdDias == null) { Cad_CondPGTO_X_ParcelasNEW.Qt_dias = (val.Qt_diasdesdobro * (i + 1)); } else { Cad_CondPGTO_X_ParcelasNEW.Qt_dias = QtdDias[i]; } Cad_CondPGTO_X_ParcelasNEW.Pc_rateio = valorRateio[i]; retorno = qtb_cond.GravarCondPgto_X_Parcelas(Cad_CondPGTO_X_ParcelasNEW); } } else { //Retorna a mensagem de erro throw new Exception("Atenção, o valor de todos os percentuais de rateio não pode exceder 100% no total!"); } qtb_cond.Banco_Dados.Commit_Tran(); } catch (Exception ex) { qtb_cond.Banco_Dados.RollBack_Tran(); throw new Exception(ex.Message); } finally { qtb_cond.deletarBanco_Dados(); } return(retorno); }