protected void callbackGravaCabecaDID_Callback(object source, DevExpress.Web.ASPxCallback.CallbackEventArgs e)
        {
            WEBDID did = new WEBDID();
            WEBDID.Dados dados = new WEBDID.Dados();
            string[] retorno = new string[3];

            if (string.IsNullOrEmpty(txtProcessoID.Text)) {
                txtProcessoID.Text = "0";
            }

            ConfigurationManager.AppSettings["PrefeituraUsaDotacao"].ToString().ToUpper();

            if (string.IsNullOrEmpty(txtProcessoID.Text))
            {
                did._NUMERO = string.Empty;
            }
            else
            {
                did._NUMERO = txtProcessoID.Text;
            }

            if (cbbUndOrcamentaria.Value == null)
            {
                e.Result = "ERROR:Informe a Unidade Orçamentária !!!";
            }
            else
            {
                if (cbbCentroCusto.Value == null)
                {
                    e.Result = "ERROR:Informe o Centro de Custo !!!";
                }
                else
                {
                    if (txtDataDID.Value == null)
                    {
                        e.Result = "ERROR:Informe a Data !!!";
                    }
                    else
                    {
                        if (dxtxtValorDID.Value.ToString() == "0,00")
                        {
                            e.Result = "ERROR:Informe o Valor do DID!!!";
                        }
                        else
                        {
                            if (txtFornecedorNome.Value == null)
                            {
                                e.Result = "ERROR:Informe o Fornecedor !!!";
                            }
                            else
                            {
                                if (cbbModalidadeEmpenho.Value == null)
                                {
                                    e.Result = "ERROR:Modalidade de Empenho não informada !!!";
                                }
                                else
                                {
                                    if (string.IsNullOrEmpty(ASPxMemo1.Text))
                                    {
                                        e.Result = "ERROR:Informe a especificação do histórico !!!";
                                    }
                                    else
                                    {
                                        if (txtDotacao.Value == null)
                                        {
                                            e.Result = "ERROR:Informe a Dotação !!!";
                                        }
                                        else
                                        {
                                            if (cbbModalidadeEmpenho.Value == null)
                                            {
                                                e.Result = "ERROR:Informe a Modalidade de Empenho !!!";
                                            }
                                            else
                                            {
                                                if (string.IsNullOrEmpty(hdfDadosDotacao.Get("FONCOD").ToString()))
                                                {
                                                    e.Result = "ERROR:Por algum motivo não encontramos a Fonte de Recurso indicada no DID. Por favor selecione novamente a Dotação desejada com suas respectiva Fonte de Recurso !!!";
                                                }
                                                else
                                                {
                                                    string op = "";
                                                    if (Request.QueryString["op"] != null)
                                                    {
                                                        op = Request.QueryString["op"].ToString();
                                                    }

                                                    if (hdfDadosDotacao.Get("CONTROLASALDO").ToString() == "1")
                                                    {
                                                        if (op.Equals("edt"))
                                                        {
                                                            var saldoDID = float.Parse(Session[SessionTotalDID].ToString()) + CarregaSaldoDID();
                                                            var valorDID = float.Parse(dxtxtValorDID.Text);
                                                            if ((float)saldoDID < (float)valorDID)
                                                            {
                                                                e.Result = "ERROR:Valor Solicitado (" + valorDID.ToString("C") + ") é maior do que o Saldo disponível (" + saldoDID.ToString("C") + ") para este Centro de Custo e Fonte de Recurso!!!";
                                                            }
                                                            else
                                                            {
                                                                did.id = Convert.ToInt32(txtProcessoID.Text);
                                                                did.contrato = txtContrato.Text;
                                                                did.data = txtDataDID.Date.ToShortDateString().Replace("/", ".");
                                                                did.historico = ASPxMemo1.Text;

                                                                did.processoAquisicao = "Contrato: " + hdfContratosInfo.Get("NUMEROCONTRATO").ToString() + " - Licitação: " + hdfContratosInfo.Get("NUMEROLICITACAO").ToString();

                                                                did.valor = Double.Parse(dxtxtValorDID.Text);
                                                                did.idCentroCusto = int.Parse(cbbCentroCusto.Value.ToString());
                                                                did.idModalidadeEmpenho = int.Parse(cbbModalidadeEmpenho.Value.ToString());
                                                                did.idFornecedor = int.Parse(hfdDadosFornecedor.Get("PESCOD").ToString());
                                                                did.idTipoAquisicao = hdfContratosInfo.Get("IDMODALIDADE").ToString();
                                                                did.didUnidade = cbbUndOrcamentaria.Value.ToString().Substring(2, 2);
                                                                did.didOrgao = cbbUndOrcamentaria.Value.ToString().Substring(0, 2);
                                                                did.Dotacao = txtDotacao.Text;
                                                                did.CTRCOD = txtContrato.Text;
                                                                did.USUARIOENVIO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                                did.USUARIODESTINO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                                did.UNDFUNC_ENVIO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                                did.UNDFUNC_DESTINO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                                did.FONCOD = hdfDadosDotacao.Get("FONCOD").ToString();
                                                                did.FONNOME = hdfDadosDotacao.Get("FONNOME").ToString();

                                                                retorno = dados.gravaCabecaDID(did);
                                                                e.Result = retorno[2] + "#" + retorno[1] + "#" + retorno[0]; ;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (float.Parse(txtSaldo.Text) < float.Parse(dxtxtValorDID.Text))
                                                            {
                                                                var saldoDID = float.Parse(txtSaldo.Text);
                                                                var valorDID = float.Parse(dxtxtValorDID.Text);

                                                                e.Result = "ERROR:Valor Solicitado (" + valorDID.ToString("C") + ") é maior do que o Saldo disponível (" + saldoDID.ToString("C") + ") para este Centro de Custo e Fonte de Recurso!!!";
                                                            }
                                                            else
                                                            {
                                                                did.id = Convert.ToInt32(txtProcessoID.Text);
                                                                did.contrato = txtContrato.Text;
                                                                did.data = txtDataDID.Date.ToShortDateString().Replace("/", ".");
                                                                did.historico = ASPxMemo1.Text;

                                                                did.processoAquisicao = "Contrato: " + hdfContratosInfo.Get("NUMEROCONTRATO").ToString() + " - Licitação: " + hdfContratosInfo.Get("NUMEROLICITACAO").ToString();

                                                                did.valor = Double.Parse(dxtxtValorDID.Text);
                                                                did.idCentroCusto = int.Parse(cbbCentroCusto.Value.ToString());
                                                                did.idModalidadeEmpenho = int.Parse(cbbModalidadeEmpenho.Value.ToString());
                                                                did.idFornecedor = int.Parse(hfdDadosFornecedor.Get("PESCOD").ToString());
                                                                did.idTipoAquisicao = hdfContratosInfo.Get("IDMODALIDADE").ToString();
                                                                did.didUnidade = cbbUndOrcamentaria.Value.ToString().Substring(2, 2);
                                                                did.didOrgao = cbbUndOrcamentaria.Value.ToString().Substring(0, 2);
                                                                did.Dotacao = txtDotacao.Text;
                                                                did.CTRCOD = txtContrato.Text;
                                                                did.USUARIOENVIO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                                did.USUARIODESTINO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                                did.UNDFUNC_ENVIO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                                did.UNDFUNC_DESTINO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                                did.FONCOD = hdfDadosDotacao.Get("FONCOD").ToString();
                                                                did.FONNOME = hdfDadosDotacao.Get("FONNOME").ToString();

                                                                retorno = dados.gravaCabecaDID(did);
                                                                e.Result = retorno[2] + "#" + retorno[1] + "#" + retorno[0];

                                                                string teste = string.Empty;
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        did.id = Convert.ToInt32(txtProcessoID.Text);
                                                        did.contrato = txtContrato.Text;
                                                        did.data = txtDataDID.Date.ToShortDateString().Replace("/", ".");
                                                        did.historico = ASPxMemo1.Text;

                                                        did.processoAquisicao = "Contrato: " + hdfContratosInfo.Get("NUMEROCONTRATO").ToString() + " - Licitação: " + hdfContratosInfo.Get("NUMEROLICITACAO").ToString();

                                                        did.valor = Double.Parse(dxtxtValorDID.Text);
                                                        did.idCentroCusto = int.Parse(cbbCentroCusto.Value.ToString());
                                                        did.idModalidadeEmpenho = int.Parse(cbbModalidadeEmpenho.Value.ToString());
                                                        did.idFornecedor = int.Parse(hfdDadosFornecedor.Get("PESCOD").ToString());
                                                        did.idTipoAquisicao = hdfContratosInfo.Get("IDMODALIDADE").ToString();
                                                        did.didUnidade = cbbUndOrcamentaria.Value.ToString().Substring(2, 2);
                                                        did.didOrgao = cbbUndOrcamentaria.Value.ToString().Substring(0, 2);
                                                        did.Dotacao = txtDotacao.Text;
                                                        did.CTRCOD = txtContrato.Text;
                                                        did.USUARIOENVIO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                        did.USUARIODESTINO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
                                                        did.UNDFUNC_ENVIO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                        did.UNDFUNC_DESTINO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
                                                        did.FONCOD = hdfDadosDotacao.Get("FONCOD").ToString();
                                                        did.FONNOME = hdfDadosDotacao.Get("FONNOME").ToString();
                                                        retorno = dados.gravaCabecaDID(did);
                                                        e.Result = retorno[2] + "#" + retorno[1] + "#" + retorno[0];
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        public string GravaDID()
        {
            #region GravaCabecaDID

            WEBDID did = new WEBDID();
            WEBDID.Dados dados = new WEBDID.Dados();
            string[] retorno = new string[3];

            if (string.IsNullOrEmpty(txtProcessoID.Text))
            {
                txtProcessoID.Text = "0";
            }

            ConfigurationManager.AppSettings["PrefeituraUsaDotacao"].ToString().ToUpper();

            did.id = Convert.ToInt32(txtProcessoID.Text);
            did.contrato = txtContrato.Text;
            did.data = txtDataDID.Date.ToShortDateString().Replace("/", ".");
            did.historico = ASPxMemo1.Text;

            did.processoAquisicao = "Contrato: " + hdfContratosInfo.Get("NUMEROCONTRATO").ToString() + " - Licitação: " + hdfContratosInfo.Get("NUMEROLICITACAO").ToString();

            did.valor = Double.Parse(dxtxtValorDID.Text);
            did.idCentroCusto = int.Parse(cbbCentroCusto.Value.ToString());
            did.idModalidadeEmpenho = int.Parse(cbbModalidadeEmpenho.Value.ToString());
            did.idFornecedor = int.Parse(hfdDadosFornecedor.Get("PESCOD").ToString());
            did.idTipoAquisicao = hdfContratosInfo.Get("IDMODALIDADE").ToString();
            did.didUnidade = cbbUndOrcamentaria.Value.ToString().Substring(2, 2);
            did.didOrgao = cbbUndOrcamentaria.Value.ToString().Substring(0, 2);
            did.Dotacao = txtDotacao.Text;
            did.CTRCOD = txtContrato.Text;
            did.USUARIOENVIO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
            did.USUARIODESTINO = int.Parse(hdfInfoUsuario.Get("IDUSUARIO").ToString());
            did.UNDFUNC_ENVIO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
            did.UNDFUNC_DESTINO = int.Parse(hdfInfoUsuario.Get("IDUNDFUNCIONAL").ToString());
            did.FONCOD = hdfDadosDotacao.Get("FONCOD").ToString();
            did.FONNOME = hdfDadosDotacao.Get("FONNOME").ToString();
            if (string.IsNullOrEmpty(txtProcessoID.Text))
            {
                did._NUMERO = string.Empty;
            }
            else
            {
                did._NUMERO = txtProcessoID.Text;
            }

            retorno = dados.gravaCabecaDID(did);

            #endregion

            #region Finaliza e Tramita DID CX Analise
            string retorno2 = string.Empty;

            var webdid = new WEBDID.Dados();

            retorno2 = webdid.gravaDID(retorno[1])[0];

            return retorno2;
            #endregion
        }