private void OnEnviar(object sender, EventArgs e)
        {
            try {
                Validate Validate = new Validate(this, ErrorProvider);

                Validate.AddRule(textNome, "Nome", "required|max:30");
                Validate.AddRule(combTipo, "Tipo", "required|numeric|exact:1");
                Validate.AddRule(combCentroCusto, "Centro de Custo", "required|max:2");
                Validate.AddRule(combFormaPagamento, "Forma de Pagamento", "required|max:2");
                Validate.AddRule(combStatus, "Status", "required|numeric|exact:1");
                Validate.AddRule(timeDataEmissao, "Data Emissão", "required|data:dd/MM/yyyy");
                Validate.AddRule(timeDataVencimento, "Data Vencimento", "required|data:dd/MM/yyyy");
                Validate.AddRule(textValor, "Valor", "required|reais|max:11");
                Validate.AddRule(textDocumento, "Nº Document", "max:30");
                Validate.AddRule(combOcorrencia, "Ocorrencia", "required|numeric|exact:1");
                Validate.AddRule(textQtdParcelas, "Qtd. Parcelas", "required_if:combOcorrencia,2|max:3");
                Validate.Validation();

                if (Validate.IsValid())
                {
                    PreencherJson();

                    Connection.Financeiro financeiro = new Connection.Financeiro();

                    financeiro.Nome           = textNome.Text;
                    financeiro.Tipo           = combTipo.SelectedValue.ToString();
                    financeiro.Referencia     = Referencia;
                    financeiro.CentroCusto    = combCentroCusto.SelectedValue.ToString();
                    financeiro.FormaPagamento = combFormaPagamento.SelectedValue.ToString();
                    financeiro.Status         = combStatus.SelectedValue.ToString();
                    financeiro.DataEmissao    = timeDataEmissao.Text;
                    financeiro.DataVencimento = timeDataVencimento.Text;
                    financeiro.Valor          = Converter.ToDecimal(textValor.Text, true);
                    financeiro.Documento      = textDocumento.Text;
                    financeiro.Ocorrencia     = combOcorrencia.SelectedValue.ToString();
                    financeiro.QtdParcelas    = textQtdParcelas.Text;
                    financeiro.Parcelas       = jsonParcelas;

                    if (Id > 0)
                    {
                        financeiro.Id = Convert.ToInt32(Id);
                        financeiro.Update();
                    }
                    else
                    {
                        financeiro.Create();
                    }

                    if (financeiro.Success)
                    {
                        DialogResult SuccessBox = MessageBox.Show(financeiro.Message, "CADASTRADO");
                        if (SuccessBox == DialogResult.OK)
                        {
                            if (fmPrincipal != null)
                            {
                                fmPrincipal.AtivarForm(new TMSForms.List.FormFinanceiro(fmPrincipal));
                            }
                            else
                            {
                                Close();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Houve um erro ao salvar o financeiro (" + financeiro.Message + ")");
                    }
                }
                else
                {
                    Validate.ErrorProviderShow();
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }