Beispiel #1
0
        public string PostInsertGasto(ParametrosGastos Datos)
        {
            SqlCommand comando = new SqlCommand("EnviaAutorizacion");

            comando.CommandType = CommandType.StoredProcedure;

            //Declaracion de parametros

            comando.Parameters.Add("@idinforme", SqlDbType.Int);
            comando.Parameters.Add("@ualterno", SqlDbType.VarChar);

            //Asignacion de valores a parametros
            comando.Parameters["@idinforme"].Value = Datos.idinforme;
            comando.Parameters["@ualterno"].Value  = "";

            comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
            comando.CommandTimeout = 0;
            comando.Connection.Open();
            //DA.SelectCommand = comando;
            // comando.ExecuteNonQuery();

            DataTable      DT = new DataTable();
            SqlDataAdapter DA = new SqlDataAdapter(comando);

            comando.Connection.Close();
            DA.Fill(DT);


            if (DT.Rows.Count > 0)
            {
                foreach (DataRow row in DT.Rows)
                {
                    string usuarioResponsable = Convert.ToString(row["usuarioResponsable"]);
                    string usuarioAutoriza    = Convert.ToString(row["usuarioAutoriza"]);
                    string mensaje            = Convert.ToString(row["msn"]);
                    string titulo             = Convert.ToString(row["titulo"]);
                    int    idgasto            = Convert.ToInt32(row["idgasto"]);

                    //agregar altenerno del autorizador
                    try
                    {
                        var    ResultadoAlterno = GetUsuarioAlterno.UsuarioAlterno(usuarioAutoriza);
                        string consulta         = "";
                        if (ResultadoAlterno.Estatus == 1)
                        {
                            consulta = "UPDATE autorizarinforme SET a_ualterno = '" + ResultadoAlterno.Resultado + "' " +
                                       "WHERE a_idinforme = " + Datos.idinforme + " AND a_nivel = 1 AND a_uautoriza = '" + usuarioAutoriza + "'";
                        }
                        else
                        {
                            consulta = "UPDATE autorizarinforme SET a_ualterno = '" + usuarioAutoriza + "' " +
                                       "WHERE a_idinforme = " + Datos.idinforme + " AND a_nivel = 1 AND a_uautoriza = '" + usuarioAutoriza + "'";
                        }
                        DA = new SqlDataAdapter(consulta, VariablesGlobales.CadenaConexion);
                        DA.Fill(DT);
                    }
                    catch (Exception ex)
                    {
                        //ex
                    }



                    EnvioCorreosELE.Envio(usuarioResponsable, "", "", usuarioAutoriza, "", titulo, mensaje, 0);

                    try
                    {
                        DocumentoEntrada entrada = new DocumentoEntrada
                        {
                            Usuario     = usuarioResponsable,
                            Origen      = "AdminWeb",
                            Transaccion = 120090,
                            Operacion   = 13
                        };
                        entrada.agregaElemento("FiGasId", idgasto);
                        entrada.agregaElemento("Accion", 5);//5 = envio (validacion/aprobación)

                        DocumentoSalida respuesta = PeticionCatalogo(entrada.Documento);
                    }
                    catch (Exception)
                    {
                        //throw;
                    }
                }

                return("");
            }
            else
            {
                return(null);
            }
        }
Beispiel #2
0
        public string PostInsertGasto(ParametrosGastos Datos)
        {
            SqlCommand comando = new SqlCommand("InsertGasto");

            comando.CommandType = CommandType.StoredProcedure;

            //Declaracion de parametros
            comando.Parameters.Add("@idinforme", SqlDbType.Int);
            comando.Parameters.Add("@fgasto", SqlDbType.Date);
            comando.Parameters.Add("@ugasto", SqlDbType.Int);
            comando.Parameters.Add("@concepto", SqlDbType.VarChar);
            comando.Parameters.Add("@negocio", SqlDbType.VarChar);
            comando.Parameters.Add("@formapago", SqlDbType.Int);
            comando.Parameters.Add("@cuenta", SqlDbType.Int);
            comando.Parameters.Add("@subtotal", SqlDbType.Float);
            comando.Parameters.Add("@iva", SqlDbType.Float);
            comando.Parameters.Add("@total", SqlDbType.Float);
            comando.Parameters.Add("@ucreo", SqlDbType.Int);
            comando.Parameters.Add("@comprobante", SqlDbType.Int);
            comando.Parameters.Add("@estatus", SqlDbType.Int);
            comando.Parameters.Add("@idapp", SqlDbType.VarChar);
            comando.Parameters.Add("@dirxml", SqlDbType.VarChar);
            comando.Parameters.Add("@dirpdf", SqlDbType.VarChar);
            comando.Parameters.Add("@dirotros", SqlDbType.VarChar);
            comando.Parameters.Add("@observaciones", SqlDbType.VarChar);
            comando.Parameters.Add("@rfc", SqlDbType.VarChar);
            comando.Parameters.Add("@contacto", SqlDbType.VarChar);
            comando.Parameters.Add("@telefono", SqlDbType.VarChar);
            comando.Parameters.Add("@correo", SqlDbType.VarChar);

            //Asignacion de valores a parametros
            comando.Parameters["@idinforme"].Value     = Datos.idinforme;
            comando.Parameters["@fgasto"].Value        = Datos.fgasto;
            comando.Parameters["@ugasto"].Value        = Datos.ugasto;
            comando.Parameters["@concepto"].Value      = Datos.concepto;
            comando.Parameters["@negocio"].Value       = Datos.negocio;
            comando.Parameters["@formapago"].Value     = Datos.formapago;
            comando.Parameters["@cuenta"].Value        = Datos.cuenta;
            comando.Parameters["@subtotal"].Value      = Datos.subtotal;
            comando.Parameters["@iva"].Value           = Datos.iva;
            comando.Parameters["@total"].Value         = Datos.total;
            comando.Parameters["@ucreo"].Value         = Datos.ucreo;
            comando.Parameters["@comprobante"].Value   = Datos.comprobante;
            comando.Parameters["@estatus"].Value       = Datos.estatus;
            comando.Parameters["@idapp"].Value         = Datos.idapp;
            comando.Parameters["@dirxml"].Value        = Datos.dirxml;
            comando.Parameters["@dirpdf"].Value        = Datos.dirpdf;
            comando.Parameters["@dirotros"].Value      = Datos.dirotros;
            comando.Parameters["@observaciones"].Value = Datos.observaciones;
            comando.Parameters["@rfc"].Value           = Datos.rfc;
            comando.Parameters["@contacto"].Value      = Datos.contacto;
            comando.Parameters["@telefono"].Value      = Datos.telefono;
            comando.Parameters["@correo"].Value        = Datos.correo;

            comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
            comando.CommandTimeout = 0;
            comando.Connection.Open();
            //DA.SelectCommand = comando;
            comando.ExecuteNonQuery();

            DataTable      DT = new DataTable();
            SqlDataAdapter DA = new SqlDataAdapter(comando);

            comando.Connection.Close();
            DA.Fill(DT);


            if (DT.Rows.Count > 0)
            {
                DataRow row = DT.Rows[0];

                return("");
            }
            else
            {
                return(null);
            }
        }
Beispiel #3
0
        public async Task <Resultado> Post()
        {
            try
            {
                Resultado Ruta;
                string    TipoArchivo = "";
                string    ruta2       = HttpContext.Current.Server.MapPath("/");
                string    ruta3       = System.Web.Hosting.HostingEnvironment.MapPath("/");

                HttpRequest httpRequest = HttpContext.Current.Request;

                ParametrosGastos Datos = new ParametrosGastos
                {
                    id        = Convert.ToInt16(httpRequest.Params["id"]),
                    idinforme = Convert.ToInt32(httpRequest.Params["idinforme"]),
                    dir       = httpRequest.Params["dir"],
                    Valida    = httpRequest.Params["Valida"]
                };

                if (Datos.Valida == "1")
                {
                    Ruta        = PostSave(Datos.dir, httpRequest);
                    TipoArchivo = "PDF";
                }
                else
                {
                    Ruta        = PostSaveImage(Datos.dir);
                    TipoArchivo = "IMG";
                }

                if (Ruta.UrlWeb.Contains("Error"))
                {
                    Ruta.UrlWeb = "";
                }


                SqlCommand comando = new SqlCommand("UpdateGastoPDFOtros");
                comando.CommandType = CommandType.StoredProcedure;

                //Declaracion de parametros
                comando.Parameters.Add("@id", SqlDbType.Int);
                comando.Parameters.Add("@idinforme", SqlDbType.Int);
                comando.Parameters.Add("@dir", SqlDbType.VarChar);
                comando.Parameters.Add("@Valida", SqlDbType.VarChar);

                //Asignacion de valores a parametros
                comando.Parameters["@id"].Value        = Datos.id;
                comando.Parameters["@idinforme"].Value = Datos.idinforme;
                comando.Parameters["@dir"].Value       = Ruta.UrlWeb;
                comando.Parameters["@Valida"].Value    = Datos.Valida;

                comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
                comando.CommandTimeout = 0;
                comando.Connection.Open();
                //DA.SelectCommand = comando;
                comando.ExecuteNonQuery();

                DataTable      DT = new DataTable();
                SqlDataAdapter DA = new SqlDataAdapter(comando);
                comando.Connection.Close();
                DA.Fill(DT);


                if (DT.Rows.Count > 0)
                {
                    DataRow row = DT.Rows[0];

                    string consulta = "";

                    if (TipoArchivo == "PDF")
                    {
                        consulta = "SELECT g_id FROM gastos WHERE g_idinforme = " + Datos.idinforme + " " +
                                   "AND g_id <> g_idgorigen " +
                                   "AND g_idgorigen = " + Datos.id + " " +
                                   "AND ISNULL(g_dirpdf, '') = '';";
                    }
                    else if (TipoArchivo == "IMG")
                    {
                        consulta = "SELECT g_id FROM gastos WHERE g_idinforme = " + Datos.idinforme + " " +
                                   "AND g_id <> g_idgorigen " +
                                   "AND g_idgorigen = " + Datos.id + " " +
                                   "AND ISNULL(g_dirotros, '') = '';";
                    }
                    if (consulta != "")
                    {
                        DataTable      DT2 = new DataTable();
                        SqlDataAdapter DA2 = new SqlDataAdapter(consulta, VariablesGlobales.CadenaConexion);
                        DA2.Fill(DT2);
                        if (DT2.Rows.Count > 0)
                        {
                            foreach (DataRow RowGasto in DT2.Rows)
                            {
                                int IdGasto = Convert.ToInt32(RowGasto["g_id"]);
                                if (TipoArchivo == "PDF")
                                {
                                    string   dirPDFAd = "";
                                    string[] PDF      = Ruta.UrlDisco.Split('.');
                                    dirPDFAd = PDF[0] + "ad" + Convert.ToString(IdGasto) + "." + PDF[1];
                                    if (File.Exists(dirPDFAd) == false)
                                    {
                                        File.Copy(Ruta.UrlDisco, dirPDFAd);
                                    }
                                    dirPDFAd = dirPDFAd.Replace(ruta2, "");

                                    consulta = "UPDATE gastos SET " +
                                               "g_dirpdf = '" + dirPDFAd.Replace("\\", "/") + "' " +
                                               "WHERE g_idinforme = " + Datos.idinforme + " AND " +
                                               "g_idgorigen = " + Datos.id + " AND " +
                                               "g_id = " + IdGasto + ";";
                                    DataTable      DTq = new DataTable();
                                    SqlDataAdapter DAq = new SqlDataAdapter(consulta, VariablesGlobales.CadenaConexion);
                                    DAq.Fill(DTq);
                                }
                                else if (TipoArchivo == "IMG")
                                {
                                    string   dirIMGAd = "";
                                    string[] IMG      = Ruta.UrlDisco.Split('.');
                                    dirIMGAd = IMG[0] + "ad" + Convert.ToString(IdGasto) + "." + IMG[1];
                                    if (File.Exists(dirIMGAd) == false)
                                    {
                                        File.Copy(Ruta.UrlDisco, dirIMGAd);
                                    }
                                    dirIMGAd = dirIMGAd.Replace(ruta2, "");
                                    consulta = "UPDATE gastos SET " +
                                               "g_dirotros = '" + dirIMGAd.Replace("\\", "/") + "' " +
                                               "WHERE g_idinforme = " + Datos.idinforme + " AND " +
                                               "g_idgorigen = " + Datos.id + " AND " +
                                               "g_id = " + IdGasto + ";";
                                    DataTable      DTq = new DataTable();
                                    SqlDataAdapter DAq = new SqlDataAdapter(consulta, VariablesGlobales.CadenaConexion);
                                    DAq.Fill(DTq);
                                }
                            }
                        }
                    }


                    return(Ruta);
                }
                else
                {
                    return(Ruta);
                }
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public List <ObtieneGastoResult> PostInsertGasto(ParametrosGastos Datos)
        {
            try
            {
                //string dir = "";

                //if  (Datos.Convierte == 1)
                //    {
                //    try
                //    {
                //        if (Datos.dirotros != "" && Datos.dirotros != null)
                //        {
                //            dir = PostSaveImage(Datos.dirotros);
                //        }
                //        else
                //        {
                //            dir = "";
                //        }

                //    }
                //    catch (Exception ex)
                //    {

                //        dir = ex.ToString();
                //    }

                //}
                //else
                //{
                //    dir = Datos.dirotros;
                //}


                SqlCommand comando = new SqlCommand("UpdateGastoApp");
                comando.CommandType = CommandType.StoredProcedure;

                comando.Parameters.Add("@id", SqlDbType.Int);
                comando.Parameters.Add("@idinforme", SqlDbType.Int);
                comando.Parameters.Add("@fgasto", SqlDbType.Date);
                comando.Parameters.Add("@hgasto", SqlDbType.VarChar);
                comando.Parameters.Add("@formapago", SqlDbType.VarChar);
                comando.Parameters.Add("@categoria", SqlDbType.Int);
                comando.Parameters.Add("@total", SqlDbType.Float);
                comando.Parameters.Add("@observaciones", SqlDbType.VarChar);
                comando.Parameters.Add("@nombreCategoria", SqlDbType.VarChar);
                comando.Parameters.Add("@ivaCategoria", SqlDbType.Float);
                comando.Parameters.Add("@dirotros", SqlDbType.VarChar);
                comando.Parameters.Add("@rfc", SqlDbType.VarChar);
                comando.Parameters.Add("@contacto", SqlDbType.VarChar);
                comando.Parameters.Add("@telefono", SqlDbType.VarChar);
                comando.Parameters.Add("@correo", SqlDbType.VarChar);
                comando.Parameters.Add("@ncomensales", SqlDbType.Int);
                comando.Parameters.Add("@nmbcomensales", SqlDbType.VarChar);
                comando.Parameters.Add("@deducible", SqlDbType.Int);
                comando.Parameters.Add("@importenodeducible", SqlDbType.Float);
                comando.Parameters.Add("@importereembolsable", SqlDbType.Float);
                comando.Parameters.Add("@importenoreembolsable", SqlDbType.Float);
                comando.Parameters.Add("@importenoaceptable", SqlDbType.Float);

                //Asignacion de valores a parametros
                comando.Parameters["@id"].Value        = Datos.id;
                comando.Parameters["@idinforme"].Value = Datos.idinforme;
                comando.Parameters["@fgasto"].Value    = Convert.ToDateTime(Datos.fgasto);

                string hora = "";
                if (Datos.hgasto != null)
                {
                    hora = Datos.hgasto;
                }
                comando.Parameters["@hgasto"].Value = hora;

                comando.Parameters["@formapago"].Value = Datos.formapago;
                comando.Parameters["@categoria"].Value = Datos.categoria;
                comando.Parameters["@total"].Value     = Datos.total;
                string Obs = "";
                if (Datos.observaciones != null)
                {
                    Obs = Datos.observaciones;
                }
                comando.Parameters["@observaciones"].Value   = Obs;
                comando.Parameters["@nombreCategoria"].Value = Datos.nombreCategoria;
                comando.Parameters["@ivaCategoria"].Value    = Datos.ivaCategoria;
                comando.Parameters["@dirotros"].Value        = Datos.dirotros != null ? Datos.dirotros : "";
                comando.Parameters["@rfc"].Value             = Datos.rfc != null ? Datos.rfc : "";
                comando.Parameters["@contacto"].Value        = Datos.contacto != null ? Datos.contacto : "";
                comando.Parameters["@telefono"].Value        = Datos.telefono != null ? Datos.telefono : "";
                comando.Parameters["@correo"].Value          = Datos.correo != null ? Datos.correo : "";


                comando.Parameters["@ncomensales"].Value           = Datos.ncomensales;
                comando.Parameters["@nmbcomensales"].Value         = Datos.nmbcomensales != null ? Datos.nmbcomensales : "";
                comando.Parameters["@deducible"].Value             = Datos.importenodeducible == 0 ? 1 : 0;
                comando.Parameters["@importenodeducible"].Value    = Datos.importenodeducible;
                comando.Parameters["@importereembolsable"].Value   = Datos.importereembolsable;
                comando.Parameters["@importenoreembolsable"].Value = Datos.importenoreembolsable;
                comando.Parameters["@importenoaceptable"].Value    = Datos.importenoaceptable;

                comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
                comando.CommandTimeout = 0;
                comando.Connection.Open();
                //DA.SelectCommand = comando;
                //comando.ExecuteNonQuery();

                DataTable      DT = new DataTable();
                SqlDataAdapter DA = new SqlDataAdapter(comando);
                comando.Connection.Close();
                DA.Fill(DT);


                List <ObtieneGastoResult> lista = new List <ObtieneGastoResult>();

                if (DT.Rows.Count > 0)
                {
                    foreach (DataRow row in DT.Rows)
                    {
                        ObtieneGastoResult ent = new ObtieneGastoResult
                        {
                            ACTUALIZADO = Datos.dirotros, //Convert.ToString(row["ACTUALIZADO"]),
                            id          = Convert.ToInt32(row["id"]),
                            idinforme   = Convert.ToInt32(row["idinforme"]),
                            Ruta        = Convert.ToString(row["Ruta"])
                        };

                        lista.Add(ent);
                    }

                    return(lista);
                }
                else
                {
                    ObtieneGastoResult ent = new ObtieneGastoResult
                    {
                        ACTUALIZADO = "Error al actualizar",
                        id          = 0,
                        idinforme   = 0,
                    };

                    lista.Add(ent);


                    return(lista);
                }
            }
            catch (System.Exception ex)
            {
                List <ObtieneGastoResult> lista = new List <ObtieneGastoResult>();

                ObtieneGastoResult ent = new ObtieneGastoResult
                {
                    ACTUALIZADO = ex.ToString(),
                    id          = 0,
                    idinforme   = 0,
                };

                lista.Add(ent);


                return(lista);
            }
        }
        public string PostInsertGasto(ParametrosGastos Datos)
        {
            SqlCommand comando = new SqlCommand("UpdateGasto");

            comando.CommandType = CommandType.StoredProcedure;

            //Declaracion de parametros
            comando.Parameters.Add("@id", SqlDbType.Int);
            comando.Parameters.Add("@idinforme", SqlDbType.Int);
            comando.Parameters.Add("@fgasto", SqlDbType.Date);
            comando.Parameters.Add("@hgasto", SqlDbType.VarChar);
            comando.Parameters.Add("@concepto", SqlDbType.VarChar);
            comando.Parameters.Add("@negocio", SqlDbType.VarChar);
            comando.Parameters.Add("@formapago", SqlDbType.VarChar);
            comando.Parameters.Add("@categoria", SqlDbType.Int);
            comando.Parameters.Add("@total", SqlDbType.Float);
            comando.Parameters.Add("@observaciones", SqlDbType.VarChar);
            comando.Parameters.Add("@nombreCategoria", SqlDbType.VarChar);
            comando.Parameters.Add("@ivaCategoria", SqlDbType.Float);

            comando.Parameters.Add("@ncomensales", SqlDbType.Int);
            comando.Parameters.Add("@nmbcomensales", SqlDbType.VarChar);
            comando.Parameters.Add("@deducible", SqlDbType.Int);
            comando.Parameters.Add("@importenodeducible", SqlDbType.Float);
            comando.Parameters.Add("@importereembolsable", SqlDbType.Float);
            comando.Parameters.Add("@importenoreembolsable", SqlDbType.Float);
            comando.Parameters.Add("@importenoaceptable", SqlDbType.Float);

            DateTime Fecha;

            string day   = Datos.fgasto.Substring(0, 2);
            string month = Datos.fgasto.Substring(3, 2);
            string year  = Datos.fgasto.Substring(6, 4);

            try
            {
                Fecha = Convert.ToDateTime(year + "-" + month + "-" + day);
            }
            catch (Exception)
            {
                Fecha = Convert.ToDateTime(day + "-" + month + "-" + year);
            }


            //Asignacion de valores a parametros
            comando.Parameters["@id"].Value        = Datos.id;
            comando.Parameters["@idinforme"].Value = Datos.idinforme;
            comando.Parameters["@fgasto"].Value    = Fecha;

            comando.Parameters["@ncomensales"].Value           = Datos.ncomensales;
            comando.Parameters["@nmbcomensales"].Value         = Datos.nmbcomensales != null ? Datos.nmbcomensales : "";
            comando.Parameters["@deducible"].Value             = Datos.importenodeducible == 0 ? 1 : 0;
            comando.Parameters["@importenodeducible"].Value    = Datos.importenodeducible;
            comando.Parameters["@importereembolsable"].Value   = Datos.importereembolsable;
            comando.Parameters["@importenoreembolsable"].Value = Datos.importenoreembolsable;
            comando.Parameters["@importenoaceptable"].Value    = Datos.importenoaceptable;

            string hora = "";

            if (Datos.hgasto != null)
            {
                hora = Datos.hgasto;
            }

            comando.Parameters["@hgasto"].Value          = hora;
            comando.Parameters["@concepto"].Value        = Datos.concepto;
            comando.Parameters["@negocio"].Value         = Datos.negocio;
            comando.Parameters["@formapago"].Value       = Datos.formapago;
            comando.Parameters["@categoria"].Value       = Datos.categoria;
            comando.Parameters["@total"].Value           = Datos.total;
            comando.Parameters["@nombreCategoria"].Value = Datos.nombreCategoria;
            comando.Parameters["@ivaCategoria"].Value    = Datos.ivaCategoria;

            string Obs = "";

            if (Datos.observaciones != null)
            {
                Obs = Datos.observaciones;
            }
            comando.Parameters["@observaciones"].Value = Obs;

            comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
            comando.CommandTimeout = 0;
            comando.Connection.Open();
            //DA.SelectCommand = comando;
            comando.ExecuteNonQuery();

            DataTable      DT = new DataTable();
            SqlDataAdapter DA = new SqlDataAdapter(comando);

            comando.Connection.Close();
            DA.Fill(DT);


            if (DT.Rows.Count > 0)
            {
                DataRow row = DT.Rows[0];

                var idinforme = row[2].ToString();

                return(idinforme);
            }
            else
            {
                return(null);
            }
        }
Beispiel #6
0
        public string Post(ParametrosGastos Datos)
        {
            string Ruta = "";

            Ruta = PostSave(Datos.dir);
            double Total             = 0;
            string Emisor            = "";
            string Receptor          = "";
            string UUID              = "";
            string Formapago         = "";
            string TipoDeComprobante = "";
            string Folio             = "";
            string Serie             = "";
            string NmbEmisor         = "";
            int    ValPosNeg         = 1;

            if (Ruta != "")
            {
                string path = HttpContext.Current.Server.MapPath("/");

                XmlTextReader reader = new XmlTextReader(path + Ruta);

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case XmlNodeType.Element:                             // The node is an element.

                        if (reader.Name == "cfdi:Receptor")
                        {
                            while (reader.MoveToNextAttribute())                                     // Read the attributes.

                            {
                                if (reader.Name == "rfc" || reader.Name == "Rfc")
                                {
                                    Receptor = Convert.ToString(reader.Value);
                                }
                            }
                        }

                        if (reader.Name == "cfdi:Emisor")
                        {
                            while (reader.MoveToNextAttribute())
                            {                                     // Read the attributes.
                                if (reader.Name == "rfc" || reader.Name == "Rfc")
                                {
                                    Emisor = Convert.ToString(reader.Value);
                                }
                                if (reader.Name == "Nombre" || reader.Name == "nombre")
                                {
                                    NmbEmisor = Convert.ToString(reader.Value);
                                }
                            }
                        }

                        if (reader.Name == "tfd:TimbreFiscalDigital")
                        {
                            while (reader.MoveToNextAttribute())                                     // Read the attributes

                            {
                                if (reader.Name == "uuid" || reader.Name == "UUID")
                                {
                                    UUID = Convert.ToString(reader.Value);
                                }
                            }
                        }

                        if (reader.Name == "cfdi:Comprobante")
                        {
                            while (reader.MoveToNextAttribute())
                            {                                     // Read the attributes
                                if (reader.Name == "total" || reader.Name == "Total")
                                {
                                    Total = Convert.ToDouble(reader.Value);
                                }
                                else
                                {
                                    if (reader.Name == "FormaPago" || reader.Name == "FormaPago")
                                    {
                                        Formapago = Convert.ToString(reader.Value);
                                    }
                                }
                                if (reader.Name == "serie" || reader.Name == "Serie")
                                {
                                    Serie = Convert.ToString(reader.Value);
                                }
                                if (reader.Name == "folio" || reader.Name == "Folio")
                                {
                                    Folio = Convert.ToString(reader.Value);
                                }
                                if (reader.Name == "TipoDeComprobante")
                                {
                                    TipoDeComprobante = Convert.ToString(reader.Value);
                                }
                            }
                        }

                        while (reader.MoveToNextAttribute())
                        {                                 // Read the attributes.
                            if ((reader.Name == "total" || reader.Name == "Total") && Total == 0)
                            {
                                Total = Convert.ToDouble(reader.Value);
                            }
                            if (reader.Name == "emisor")
                            {
                                Emisor = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "receptor")
                            {
                                Receptor = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "uuid" || reader.Name == "UUID")
                            {
                                UUID = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "FormaPago")
                            {
                                Formapago = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "TipoDeComprobante")
                            {
                                TipoDeComprobante = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "Folio" && Folio.Trim() == "")
                            {
                                Folio = Convert.ToString(reader.Value);
                            }
                            if (reader.Name == "Serie" && Serie.Trim() == "")
                            {
                                Serie = Convert.ToString(reader.Value);
                            }
                        }
                        break;
                    }
                }
            }

            if (string.IsNullOrEmpty(UUID))
            {
                Deletexml(Ruta);

                return("XML invalido");
            }
            //validar xml en AdminERP
            string         usuarioxml    = "";
            int            idrequisicion = 0;
            int            idgasto       = 0;
            SqlDataAdapter DA1;
            DataTable      DT1 = new DataTable();

            SqlConnection Conexion = new SqlConnection
            {
                ConnectionString = VariablesGlobales.CadenaConexion
            };
            string consulta = "SELECT r_idrequisicion, r_idgasto, i_uresponsable FROM informe WHERE i_id = " + Datos.idinforme + "; ";

            DA1 = new SqlDataAdapter(consulta, Conexion);
            DA1.Fill(DT1);

            if (DT1.Rows.Count > 0)
            {
                // DataRow row = DT.Rows[0];
                foreach (DataRow row in DT1.Rows)
                {
                    usuarioxml    = Convert.ToString(row["i_uresponsable"]).Trim();
                    idrequisicion = Convert.ToInt32(row["r_idrequisicion"]);
                    idgasto       = Convert.ToInt32(row["r_idgasto"]);
                }
            }
            else
            {
                usuarioxml = "imartinez";
            }

            /*
             * DocumentoEntrada entradadoc = new DocumentoEntrada
             * {
             *      Usuario = usuarioxml,//Variables.usuario;
             *      Origen = "AdminWEB",
             *      Transaccion = 120870,
             *      Operacion = 6
             * };
             * entradadoc.agregaElemento("FiCfdUuid", UUID);
             *
             * DocumentoSalida respuesta = PeticionCatalogo(entradadoc.Documento);
             *
             * int FicfdTipoDocumento = 0;
             * int FiCfdNumeroDocumento = 0;
             * string FiCfdUuid = "";
             * int existeAdminERP = 0;
             *
             * try
             * {
             *      DataTable DTCFDI = new DataTable();
             *
             *      if (respuesta.Resultado == "1")
             *      {
             *              DTCFDI = respuesta.obtieneTabla("Llave");
             *              for (int i = 0; i < DTCFDI.Rows.Count; i++)
             *              {
             *                      FicfdTipoDocumento = Convert.ToInt32(DTCFDI.Rows[i]["FicfdTipoDocumento"]);
             *                      FiCfdNumeroDocumento = Convert.ToInt32(DTCFDI.Rows[i]["FiCfdNumeroDocumento"]);
             *                      FiCfdUuid = Convert.ToString(DTCFDI.Rows[i]["FiCfdUuid"]);
             *              }
             *      }
             * }
             * catch (Exception)
             * {
             *
             *      throw;
             * }
             *
             * if (FicfdTipoDocumento > 0 && FiCfdNumeroDocumento > 0)
             * {
             *      string tipoDoc = "";
             *      string msn = "";
             *      switch (FicfdTipoDocumento)
             *      {
             *              case 95:
             *                      tipoDoc = "Gasto";
             *                      if (idgasto != FiCfdNumeroDocumento)
             *                              existeAdminERP = 1;
             *                      else
             *                              mismoDocAdminERP = 1;
             *                      break;
             *              case 96:
             *                      tipoDoc = "Recepción";
             *                      existeAdminERP = 1;
             *                      break;
             *              case 97:
             *                      tipoDoc = "Requisición";
             *                      if (idrequisicion != FiCfdNumeroDocumento)
             *                              existeAdminERP = 1;
             *                      else
             *                              mismoDocAdminERP = 1;
             *                      break;
             *      }
             *      if (existeAdminERP == 1)
             *      {
             *              msn = "El XML No se puede cargar, el comprobante " + FiCfdUuid + " ya existe en AdminERP. " + tipoDoc + ": " + FiCfdNumeroDocumento.ToString();
             *              Deletexml(Ruta);
             *      }
             *
             *      if (msn != "")
             *              return msn;
             * }
             */
            //****************agregar xml a AdminERP****************//
            int    cUuid    = 0;
            string xuuid    = "";
            string msnError = "";

            DT1      = new DataTable();
            consulta = "SELECT g_dirxml, x_urlxml, ISNULL(x_uuid, '') AS x_uuid, ISNULL(LEN(x_uuid),0) AS cUuid " +
                       "FROM gastos INNER JOIN " +
                       "xmlinforme ON x_idinforme = g_idinforme AND x_idgasto = g_id " +
                       "WHERE g_idinforme = " + Datos.idinforme + " AND g_id = " + Datos.id + "; ";

            DA1 = new SqlDataAdapter(consulta, Conexion);
            DA1.Fill(DT1);
            DocumentoEntrada entradadoc = new DocumentoEntrada();
            DocumentoSalida  respuesta;

            string[] xmlBorrado;
            if (DT1.Rows.Count > 0)
            {
                int st_respuesta = 1;
                foreach (DataRow row in DT1.Rows)
                {
                    cUuid = Convert.ToInt16(row["cUuid"]);
                    xuuid = Convert.ToString(row["x_uuid"]);
                }

                if (cUuid == 36)
                {
                    xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, xuuid);

                    /*DocumentoEntrada entradadoc = new DocumentoEntrada
                     * {
                     *      Usuario = usuarioxml,//Variables.usuario;
                     *      Origen = "AdminWEB",
                     *      Transaccion = 120092,
                     *      Operacion = 22
                     * };//21:Agregar XML, 22:Eliminar XML
                     * entradadoc.agregaElemento("FiGfaGasto", idgasto);
                     * entradadoc.agregaElemento("FiGfaUuid", xuuid);
                     *
                     * DocumentoSalida respuesta = PeticionCatalogo(entradadoc.Documento);*/
                    st_respuesta = Convert.ToInt16(xmlBorrado[0]);                    //(respuesta.Resultado);
                    if (st_respuesta == 1 || st_respuesta == 0)
                    {
                        entradadoc = new DocumentoEntrada
                        {
                            Usuario     = usuarioxml,                        //Variables.usuario;
                            Origen      = "AdminWEB",
                            Transaccion = 120092,
                            Operacion   = 21
                        };                        //21:Agregar XML, 22:Eliminar XML
                        entradadoc.agregaElemento("FiGfaGasto", idgasto);
                        entradadoc.agregaElemento("FiGfaUuid", UUID);
                        respuesta = PeticionCatalogo(entradadoc.Documento);

                        try
                        {
                            if (respuesta.Resultado == "0")
                            {
                                msnError = "";

                                XmlDocument xmErrores = new XmlDocument();
                                xmErrores.LoadXml(respuesta.Errores.InnerXml);

                                XmlNodeList elemList = xmErrores.GetElementsByTagName("Descripcion");
                                for (int i = 0; i < elemList.Count; i++)
                                {
                                    msnError += elemList[i].InnerXml;
                                }
                                if (msnError != "")
                                {
                                    Deletexml(Ruta);
                                    return(msnError);
                                }
                            }
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                    else
                    {
                        msnError = xmlBorrado[1];

                        /*XmlDocument xmErrores = new XmlDocument();
                         * xmErrores.LoadXml(respuesta.Errores.InnerXml);
                         * XmlNodeList elemList = xmErrores.GetElementsByTagName("Descripcion");
                         * for (int i = 0; i < elemList.Count; i++)
                         * {
                         *      msnError += elemList[i].InnerXml;
                         * }*/
                        if (msnError != "")
                        {
                            Deletexml(Ruta);
                            return(msnError);
                        }
                    }
                }
                else
                {
                    Deletexml(Ruta);
                    return("El UUID " + xuuid + " es invalido.");
                }
            }
            else
            {
                entradadoc = new DocumentoEntrada
                {
                    Usuario     = usuarioxml,                //Variables.usuario;
                    Origen      = "AdminWEB",
                    Transaccion = 120092,
                    Operacion   = 21
                };                //21:Agregar XML, 22:Eliminar XML
                entradadoc.agregaElemento("FiGfaGasto", idgasto);
                entradadoc.agregaElemento("FiGfaUuid", UUID);

                respuesta = PeticionCatalogo(entradadoc.Documento);
                try
                {
                    if (respuesta.Resultado == "0")
                    {
                        msnError = "";
                        XmlDocument xmErrores = new XmlDocument();
                        xmErrores.LoadXml(respuesta.Errores.InnerXml);

                        XmlNodeList elemList = xmErrores.GetElementsByTagName("Descripcion");
                        for (int i = 0; i < elemList.Count; i++)
                        {
                            msnError += elemList[i].InnerXml;
                        }
                        if (msnError != "")
                        {
                            Deletexml(Ruta);
                            return(msnError);
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }

            //***********fin agregar XML en AdminERP**********//

            if (Receptor.ToUpper() != "SPO830427DQ1")
            {
                if (UUID.Trim() != "")
                {
                    xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                }

                Deletexml(Ruta);

                return("El RFC es invalido.");
            }
            //FIN valida xml en AdminERP

            //validar tipo de comprobante

            if ((TipoDeComprobante.Substring(0, 1)).ToUpper() != "I")
            {
                ValPosNeg = -1;
                //if (UUID.Trim() != "")
                //{
                //	xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                //}
                //Deletexml(Ruta);
                //return "XML no cargado documento no es un ingreso.";
            }
            //fin valida tipo de comprobante


            SqlCommand comando = new SqlCommand("UpdateGastoXML");

            comando.CommandType = CommandType.StoredProcedure;

            //Declaracion de parametros
            comando.Parameters.Add("@id", SqlDbType.Int);
            comando.Parameters.Add("@idinforme", SqlDbType.Int);
            comando.Parameters.Add("@dir", SqlDbType.VarChar);
            comando.Parameters.Add("@Monto", SqlDbType.Float);
            comando.Parameters.Add("@Emisor", SqlDbType.VarChar);
            comando.Parameters.Add("@Receptor", SqlDbType.VarChar);
            comando.Parameters.Add("@UUID", SqlDbType.VarChar);
            comando.Parameters.Add("@FormaPago", SqlDbType.VarChar);
            comando.Parameters.Add("@TipoDeComprobante", SqlDbType.VarChar);
            comando.Parameters.Add("@NmbEmisor", SqlDbType.VarChar);
            comando.Parameters.Add("@Serie", SqlDbType.VarChar);
            comando.Parameters.Add("@Folio", SqlDbType.VarChar);

            //Asignacion de valores a parametros
            comando.Parameters["@id"].Value                = Datos.id;
            comando.Parameters["@idinforme"].Value         = Datos.idinforme;
            comando.Parameters["@dir"].Value               = Ruta;
            comando.Parameters["@Monto"].Value             = (Total * ValPosNeg);
            comando.Parameters["@Emisor"].Value            = Emisor;
            comando.Parameters["@Receptor"].Value          = Receptor;
            comando.Parameters["@UUID"].Value              = UUID;
            comando.Parameters["@FormaPago"].Value         = Formapago;
            comando.Parameters["@TipoDeComprobante"].Value = TipoDeComprobante.ToUpper();
            comando.Parameters["@NmbEmisor"].Value         = NmbEmisor;
            comando.Parameters["@Serie"].Value             = Serie;
            comando.Parameters["@Folio"].Value             = Folio;

            comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
            comando.CommandTimeout = 0;
            comando.Connection.Open();
            //DA.SelectCommand = comando;
            //comando.ExecuteNonQuery();

            DataTable      DT = new DataTable();
            SqlDataAdapter DA = new SqlDataAdapter(comando);

            comando.Connection.Close();
            DA.Fill(DT);

            //aqui verificar en base al mensaje,que es lo que se va regresar
            if (DT.Rows.Count > 0)
            {
                DataRow row = DT.Rows[0];

                string Mensaje = row[0].ToString();

                //if (Mensaje == "Gasto Actualizado")
                //{

                //}
                if (Mensaje == "No se puede guardar el comprobante, el importe es igual o mayor a $ 2000.00 y la forma de pago es efectivo.")
                {
                    if (UUID.Trim() != "")
                    {
                        xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                    }

                    Deletexml(Ruta);
                }
                if (Mensaje == "El UUID ingresado ya existe" || Mensaje.Contains("El UUID ingresado ya existe"))
                {
                    if (UUID.Trim() != "")
                    {
                        xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                    }

                    Deletexml(Ruta);
                }
                if (Mensaje == "El RFC es invalido.")
                {
                    if (UUID.Trim() != "")
                    {
                        xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                    }

                    Deletexml(Ruta);
                }

                return(Mensaje);
            }
            else
            {
                if (UUID.Trim() != "")
                {
                    xmlBorrado = BorrarUUIDAdminERP(usuarioxml, idgasto, UUID);
                }

                Deletexml(Ruta);

                return(null);
            }
        }
        public string Post(ParametrosGastos Datos)
        {
            // string Ruta = "";
            //// Ruta = PostSave(Datos.dir);
            // double Total = 0;
            // string Emisor = "";
            // string Receptor = "";
            // string UUID = "";
            // string Formapago = "";

            // if (Ruta != "")
            // {
            //     string path = HttpContext.Current.Server.MapPath("/");
            // }

            SqlCommand comando = new SqlCommand("DeleteComprobantes");

            comando.CommandType = CommandType.StoredProcedure;

            //Declaracion de parametros
            comando.Parameters.Add("@id", SqlDbType.Int);
            comando.Parameters.Add("@idinforme", SqlDbType.Int);
            comando.Parameters.Add("@comprobante", SqlDbType.VarChar);


            //Asignacion de valores a parametros
            comando.Parameters["@id"].Value          = Datos.id;
            comando.Parameters["@idinforme"].Value   = Datos.idinforme;
            comando.Parameters["@comprobante"].Value = Datos.comprobante;

            comando.Connection     = new SqlConnection(VariablesGlobales.CadenaConexion);
            comando.CommandTimeout = 0;
            comando.Connection.Open();
            //DA.SelectCommand = comando;
            //comando.ExecuteNonQuery();

            DataTable      DT = new DataTable();
            SqlDataAdapter DA = new SqlDataAdapter(comando);

            comando.Connection.Close();
            DA.Fill(DT);

            //aqui verificar en base al mensaje,que es lo que se va regresar
            if (DT.Rows.Count > 0)
            {
                //@g_dirxml as RutaXML,@g_dirpdf as RutaPDF ,@g_dirotros as RutaComp

                DataRow row = DT.Rows[0];

                var    RutaXML          = row[0].ToString();
                var    RutaPDF          = row[1].ToString();
                var    RutaComprobantes = row[2].ToString();
                string UUID             = row[3].ToString();
                int    idGasto          = Convert.ToInt16(row[4].ToString());
                string uResponsable     = row[5].ToString();

                if (Datos.comprobante == "OTRO")
                {
                    Deletexml(RutaComprobantes);
                }

                if (Datos.comprobante == "PDF")
                {
                    Deletexml(RutaPDF);
                }

                if (Datos.comprobante == "XML")
                {
                    if (UUID.Trim() != "")
                    {
                        try
                        {
                            DocumentoEntrada entradadoc = new DocumentoEntrada
                            {
                                Usuario     = uResponsable,                            //Variables.usuario;
                                Origen      = "AdminWEB",
                                Transaccion = 120092,
                                Operacion   = 22
                            };                            //21:Agregar XML, 22:Eliminar XML
                            entradadoc.agregaElemento("FiGfaGasto", idGasto);
                            entradadoc.agregaElemento("FiGfaUuid", UUID);

                            DocumentoSalida respuesta = PeticionCatalogo(entradadoc.Documento);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }

                    Deletexml(RutaXML);
                }

                return("");
            }
            else
            {
                //Deletexml(Ruta);

                return(null);
            }
        }