コード例 #1
0
    //Constructores

    //Metodos Especiales
    public string ObtenerEstatusFactura(int pIdFacturaEncabezado, CConexion pConexion)
    {
        CFacturaEncabezado Factura = new CFacturaEncabezado();

        Factura.LlenaObjeto(pIdFacturaEncabezado, pConexion);
        CEstatusFacturaEncabezado Estatus = new CEstatusFacturaEncabezado();

        Estatus.LlenaObjeto(Factura.IdEstatusFacturaEncabezado, pConexion);
        return(Estatus.EstatusFacturaEncabezado);
    }
コード例 #2
0
    //Constructores

    //Metodos Especiales
    public void AgregarFacturaDetalle(Dictionary <string, object> pFacturaDetalle, int pIdFacturaEncabezado, int pIdCotizacionDetalle, CConexion pConexion)
    {
        CCotizacionDetalle CotizacionDetalle = new CCotizacionDetalle();
        CFacturaEncabezado FacturaEncabezado = new CFacturaEncabezado();
        CFacturaDetalle    FacturaDetalle    = new CFacturaDetalle();

        CotizacionDetalle.LlenaObjeto(pIdCotizacionDetalle, pConexion);
        FacturaEncabezado.LlenaObjeto(pIdFacturaEncabezado, pConexion);

        FacturaDetalle.Baja = false;
        //FacturaDetalle.Cantidad = Convert.ToInt32(pFacturaDetalle["Cantidad"]);
    }
コード例 #3
0
    public static string ObtenerFormaAgregarFechaPago(int pIdGestionCobranza, int pIdFactura, string pFacturasSeleccionadas)
    {
        CConexion ConexionBaseDatos = new CConexion();
        string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();

        JObject oRespuesta = new JObject();
        JObject Modelo     = new JObject();

        Modelo.Add("Fecha", DateTime.Now.ToShortDateString());
        Modelo.Add("IdFactura", pIdFactura);
        Modelo.Add("IdGestionCobranza", pIdGestionCobranza);

        string[] facturasSeleccionadas = { };
        if (pFacturasSeleccionadas.Length > 0)
        {
            facturasSeleccionadas = pFacturasSeleccionadas.Split(',');
        }

        string foliosFacturas = "";

        foreach (string oIdFactura in facturasSeleccionadas)
        {
            int idFactura = Convert.ToInt32(oIdFactura);
            CFacturaEncabezado Factura = new CFacturaEncabezado();
            Factura.LlenaObjeto(idFactura, ConexionBaseDatos);

            CSerieFactura Serie = new CSerieFactura();
            Serie.LlenaObjeto(Factura.IdSerieFactura, ConexionBaseDatos);
            foliosFacturas = foliosFacturas + Serie.SerieFactura + "-" + Factura.NumeroFactura + ", ";
        }

        if (foliosFacturas.Length > 0)
        {
            foliosFacturas = foliosFacturas.Remove(foliosFacturas.Length - 2);
        }
        Modelo.Add("FoliosFacturas", foliosFacturas);
        oRespuesta.Add(new JProperty("Error", 0));
        oRespuesta.Add(new JProperty("Modelo", Modelo));
        ConexionBaseDatos.CerrarBaseDatosSqlServer();
        return(oRespuesta.ToString());
    }
コード例 #4
0
    public static string ObtenerEstatusSolicitudesProyecto(int pIdProyecto, CConexion pConexion)
    {
        CSolicitudFacturacion       Solicitudes = new CSolicitudFacturacion();
        Dictionary <string, object> pParametros = new Dictionary <string, object>();

        pParametros.Add("IdProyecto", pIdProyecto);
        string estatus = "Sin facturar";

        foreach (CSolicitudFacturacion Solicitud in Solicitudes.LlenaObjetosFiltros(pParametros, pConexion))
        {
            CFacturaEncabezado          Factura    = new CFacturaEncabezado();
            Dictionary <string, object> Parametros = new Dictionary <string, object>();
            Parametros.Add("IdSolicitudFacturacion", Solicitud.IdSolicitudFacturacion);
            int idFactura = CConceptoProyecto.ObtenerIdFacturaEncabezadoRelacionado(Parametros, pConexion);
            Factura.LlenaObjeto(idFactura, pConexion);
            if (Factura.IdEstatusFacturaEncabezado != 0)
            {
                CEstatusFacturaEncabezado Estatus = new CEstatusFacturaEncabezado();
                Estatus.LlenaObjeto(Factura.IdEstatusFacturaEncabezado, pConexion);
                estatus = Estatus.EstatusFacturaEncabezado;
            }
        }
        return(estatus);
    }
コード例 #5
0
    public static string GenerarTraspaso(Dictionary <string, object> pTraspaso)
    {
        CConexion ConexionBaseDatos = new CConexion();
        string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();
        JObject   oRespuesta        = new JObject();
        int       puedeTraspasarProductosSucursales = 1;

        if (respuesta == "Conexion Establecida")
        {
            //valido que el usuario este asignado al almacen origen
            string validacion = ValidaUsuario(Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]), Convert.ToInt32(pTraspaso["pIdExistenciaDistribuida"]), ConexionBaseDatos);
            if (validacion == "Error")
            {
                oRespuesta.Add(new JProperty("Error", 1));
                oRespuesta.Add(new JProperty("Descripcion", "El usuario no esta asignado al almacén origen."));
            }
            else
            {
                CFacturaEncabezado          EncabezadoFactura          = new CFacturaEncabezado();
                CExistenciaDistribuida      ExistenciaDistribuida      = new CExistenciaDistribuida();
                CEncabezadoFacturaProveedor EncabezadoFacturaProveedor = new CEncabezadoFacturaProveedor();

                //Verifico que los datos no vayan vacios y en su caso, en ceros.
                if (Convert.ToString(HttpContext.Current.Session["IdUsuario"]).ToString() != "" && Convert.ToString(HttpContext.Current.Session["IdUsuario"]).ToString() != "0" && Convert.ToString(pTraspaso["pIdAlmacenDestino"]).ToString() != "" && Convert.ToString(pTraspaso["pIdAlmacenDestino"]).ToString() != "0" && Convert.ToString(pTraspaso["pCantidadDeEntrada"]).ToString() != "" && Convert.ToString(pTraspaso["pCantidadDeEntrada"]).ToString() != "0" && Convert.ToString(pTraspaso["pCantidadDeEntrada"]).ToString() != "" && Convert.ToString(pTraspaso["pCantidadDeEntrada"]).ToString() != "0" && Convert.ToString(pTraspaso["pSaldo"]).ToString() != "0" && Convert.ToString(pTraspaso["pSaldo"]).ToString() != "" && Convert.ToString(pTraspaso["pIdExistenciaDistribuida"]).ToString() != "" && Convert.ToString(pTraspaso["pIdExistenciaDistribuida"]).ToString() != "0")
                {
                    //Valido si las sucursales son distintas
                    int validacionSucursales = ValidaSucursal(Convert.ToInt32(pTraspaso["pIdAlmacenOrigen"]), Convert.ToInt32(pTraspaso["pIdAlmacenDestino"]), ConexionBaseDatos);
                    if (validacionSucursales == 0)
                    {
                        //Si resulto ser de distintas sucursales verificamos si tiene permiso
                        JObject  oPermisos = new JObject();
                        CUsuario Usuario   = new CUsuario();
                        if (Usuario.TienePermisos(new string[] { "puedeTraspasarProductosSucursales" }, ConexionBaseDatos) == "")
                        {
                            puedeTraspasarProductosSucursales = 1;
                        }
                        else
                        {
                            puedeTraspasarProductosSucursales = 0;
                        }
                        oPermisos.Add("puedeEditarTraspaso", puedeTraspasarProductosSucursales);
                    }

                    //Fin de Valido si las sucursales son distintas

                    if (puedeTraspasarProductosSucursales == 1)
                    {
                        //Para hacerlo mas legible, verifico aquí que la cantidad pedida no sea mayor al saldo existente
                        if (Convert.ToInt32(pTraspaso["pSaldo"]) >= Convert.ToInt32(pTraspaso["pCantidadDeEntrada"]) && Convert.ToInt32(pTraspaso["pCantidad"]) >= Convert.ToInt32(pTraspaso["pCantidadDeEntrada"]) && Convert.ToInt32(pTraspaso["pCantidad"]) >= 0 && Convert.ToInt32(pTraspaso["pSaldo"]) >= 0)
                        {
                            ExistenciaDistribuida.IdUsuario = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                            ExistenciaDistribuida.IdAlmacen = Convert.ToInt32(pTraspaso["pIdAlmacenDestino"]);
                            ExistenciaDistribuida.Cantidad  = Convert.ToInt32(pTraspaso["pCantidadDeEntrada"]);
                            ExistenciaDistribuida.Saldo     = Convert.ToInt32(pTraspaso["pSaldo"]);
                            ExistenciaDistribuida.IdExistenciaDistribuida = Convert.ToInt32(pTraspaso["pIdExistenciaDistribuida"]);
                            ExistenciaDistribuida.GenerarTraspaso(ConexionBaseDatos);
                            oRespuesta.Add(new JProperty("Error", 0));
                        }
                        else
                        {
                            oRespuesta.Add(new JProperty("Error", 1));
                            oRespuesta.Add(new JProperty("Descripcion", "La cantidad solicitada no puede ser mayor al saldo disponible del almacén ni a la cantidad detalle."));
                        }
                    }
                    else
                    {
                        oRespuesta.Add(new JProperty("Error", 1));
                        oRespuesta.Add(new JProperty("Descripcion", "No cuenta con los permisos necesarios para traspasar productos de diversas sucursales."));
                    }
                }
                else
                {
                    oRespuesta.Add(new JProperty("Error", 1));
                    oRespuesta.Add(new JProperty("Descripcion", "Asegúrese de que todos los datos esten capturados."));
                }
            }
        }
        else
        {
            oRespuesta.Add(new JProperty("Error", 1));
            oRespuesta.Add(new JProperty("Descripcion", "No hay conexion a Base de Datos"));
        }
        ConexionBaseDatos.CerrarBaseDatosSqlServer();
        return(oRespuesta.ToString());
    }
コード例 #6
0
    public static string AgregarFechaPago(int pIdGestionCobranza, int pIdFactura, string pFechaPago, string pComentarios, string pFacturasSeleccionadas)
    {
        //Abrir Conexion
        CConexion ConexionBaseDatos = new CConexion();
        string    respuesta         = ConexionBaseDatos.ConectarBaseDatosSqlServer();
        JObject   oRespuesta        = new JObject();

        //¿La conexion se establecio?
        if (respuesta == "Conexion Establecida")
        {
            if (pFacturasSeleccionadas.Length > 0)
            {
                string[] facturasSeleccionadas = { };
                if (pFacturasSeleccionadas.Length > 0)
                {
                    facturasSeleccionadas = pFacturasSeleccionadas.Split(',');
                }

                foreach (string oIdFactura in facturasSeleccionadas)
                {
                    int idFactura = Convert.ToInt32(oIdFactura);
                    CFacturaEncabezado Factura = new CFacturaEncabezado();
                    Factura.LlenaObjeto(idFactura, ConexionBaseDatos);

                    Dictionary <string, object> Parametros = new Dictionary <string, object>();
                    Parametros.Add("IdFactura", Factura.IdFacturaEncabezado);
                    Parametros.Add("Baja", false);

                    CGestionCobranza GestionCobranzaValidar = new CGestionCobranza();
                    GestionCobranzaValidar.LlenaObjetoFiltros(Parametros, ConexionBaseDatos);

                    CGestionCobranza GestionCobranza = new CGestionCobranza();
                    GestionCobranza.IdFactura       = Factura.IdFacturaEncabezado;
                    GestionCobranza.IdCliente       = Factura.IdCliente;
                    GestionCobranza.FechaAlta       = DateTime.Now;
                    GestionCobranza.FechaProgramada = Convert.ToDateTime(pFechaPago);
                    GestionCobranza.IdTipoGestion   = 2;
                    GestionCobranza.IdUsuario       = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                    GestionCobranza.Baja            = false;

                    CGestionCobranzaDetalle GestionCobranzaDetalle = new CGestionCobranzaDetalle();
                    GestionCobranzaDetalle.Comentario      = pComentarios;
                    GestionCobranzaDetalle.FechaProgramada = Convert.ToDateTime(pFechaPago);
                    GestionCobranzaDetalle.IdTipoGestion   = 2;
                    GestionCobranzaDetalle.FechaAlta       = DateTime.Now;
                    GestionCobranzaDetalle.IdUsuarioAlta   = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                    GestionCobranzaDetalle.Gestionado      = false;
                    GestionCobranzaDetalle.Baja            = false;

                    if (GestionCobranzaValidar.IdGestionCobranza == 0)
                    {
                        GestionCobranza.Agregar(ConexionBaseDatos);
                        GestionCobranzaDetalle.IdGestionCobranza = GestionCobranza.IdGestionCobranza;
                        GestionCobranzaDetalle.Agregar(ConexionBaseDatos);
                    }
                    else
                    {
                        GestionCobranza.IdGestionCobranza = GestionCobranzaValidar.IdGestionCobranza;;
                        GestionCobranza.Editar(ConexionBaseDatos);
                        GestionCobranzaDetalle.IdGestionCobranza = GestionCobranzaValidar.IdGestionCobranza;;
                        GestionCobranzaDetalle.Agregar(ConexionBaseDatos);
                    }
                }
                ConexionBaseDatos.CerrarBaseDatosSqlServer();
                oRespuesta.Add(new JProperty("Error", 0));
                return(oRespuesta.ToString());
            }
            else
            {
                CFacturaEncabezado Factura = new CFacturaEncabezado();
                Factura.LlenaObjeto(pIdFactura, ConexionBaseDatos);

                CGestionCobranza GestionCobranza = new CGestionCobranza();
                GestionCobranza.IdFactura       = Factura.IdFacturaEncabezado;
                GestionCobranza.IdCliente       = Factura.IdCliente;
                GestionCobranza.FechaAlta       = DateTime.Now;
                GestionCobranza.FechaProgramada = Convert.ToDateTime(pFechaPago);
                GestionCobranza.IdTipoGestion   = 2;
                GestionCobranza.IdUsuario       = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                GestionCobranza.Baja            = false;

                CGestionCobranzaDetalle GestionCobranzaDetalle = new CGestionCobranzaDetalle();
                GestionCobranzaDetalle.Comentario      = pComentarios;
                GestionCobranzaDetalle.FechaProgramada = Convert.ToDateTime(pFechaPago);
                GestionCobranzaDetalle.IdTipoGestion   = 2;
                GestionCobranzaDetalle.FechaAlta       = DateTime.Now;
                GestionCobranzaDetalle.IdUsuarioAlta   = Convert.ToInt32(HttpContext.Current.Session["IdUsuario"]);
                GestionCobranzaDetalle.Gestionado      = false;
                GestionCobranzaDetalle.Baja            = false;

                string validacion = "";
                //string validacion = ValidarMarca(Marca, ConexionBaseDatos);
                if (validacion == "")
                {
                    if (pIdGestionCobranza == 0)
                    {
                        GestionCobranza.Agregar(ConexionBaseDatos);
                        GestionCobranzaDetalle.IdGestionCobranza = GestionCobranza.IdGestionCobranza;
                        GestionCobranzaDetalle.Agregar(ConexionBaseDatos);
                    }
                    else
                    {
                        GestionCobranza.IdGestionCobranza = pIdGestionCobranza;
                        GestionCobranza.Editar(ConexionBaseDatos);
                        GestionCobranzaDetalle.IdGestionCobranza = pIdGestionCobranza;
                        GestionCobranzaDetalle.Agregar(ConexionBaseDatos);
                    }

                    oRespuesta.Add(new JProperty("Error", 0));
                    ConexionBaseDatos.CerrarBaseDatosSqlServer();
                }
                else
                {
                    oRespuesta.Add(new JProperty("Error", 1));
                    oRespuesta.Add(new JProperty("Descripcion", validacion));
                }
                ConexionBaseDatos.CerrarBaseDatosSqlServer();
                return(oRespuesta.ToString());
            }
        }
        else
        {
            oRespuesta.Add(new JProperty("Error", 1));
            oRespuesta.Add(new JProperty("Descripcion", respuesta));
            return(oRespuesta.ToString());
        }
    }
コード例 #7
0
    public static JObject ObtenerFacturaEncabezado(JObject pModelo, int pIdFacturaEncabezado, CConexion pConexion)
    {
        CFacturaEncabezado FacturaEncabezado = new CFacturaEncabezado();
        COrganizacion      Organizacion      = new COrganizacion();

        FacturaEncabezado.LlenaObjeto(pIdFacturaEncabezado, pConexion);
        pModelo.Add(new JProperty("IdFacturaEncabezado", FacturaEncabezado.IdFacturaEncabezado));
        pModelo.Add(new JProperty("IdCliente", FacturaEncabezado.IdCliente));

        CCliente Cliente = new CCliente();

        Cliente.LlenaObjeto(FacturaEncabezado.IdCliente, pConexion);

        pModelo.Add(new JProperty("IdOrganizacion", Cliente.IdOrganizacion));
        Organizacion.LlenaObjeto(Cliente.IdOrganizacion, pConexion);
        pModelo.Add(new JProperty("NombreComercial", Organizacion.NombreComercial));

        pModelo.Add(new JProperty("RegimenFiscal", FacturaEncabezado.RegimenFiscal));
        pModelo.Add(new JProperty("LugarExpedicion", FacturaEncabezado.LugarExpedicion));
        pModelo.Add(new JProperty("FechaEmision", FacturaEncabezado.FechaEmision.ToShortDateString()));
        pModelo.Add(new JProperty("RazonSocial", FacturaEncabezado.RazonSocial));
        pModelo.Add(new JProperty("RFC", FacturaEncabezado.RFC));
        pModelo.Add(new JProperty("IdCondicionPago", FacturaEncabezado.IdCondicionPago));
        pModelo.Add(new JProperty("CondicionPago", FacturaEncabezado.CondicionPago));
        pModelo.Add(new JProperty("IdMetodoPago", FacturaEncabezado.IdMetodoPago));
        pModelo.Add(new JProperty("MetodoPago", FacturaEncabezado.MetodoPago));

        CUsoCFDI usoCFDI = new CUsoCFDI();

        if (FacturaEncabezado.IdUsoCFDI == "" || FacturaEncabezado.IdUsoCFDI == null)
        {
            FacturaEncabezado.IdUsoCFDI = "3";
        }

        usoCFDI.LlenaObjeto(Convert.ToInt32(FacturaEncabezado.IdUsoCFDI), pConexion);
        pModelo.Add(new JProperty("IdUsoCFDI", usoCFDI.IdUsoCFDI));
        pModelo.Add(new JProperty("UsoCFDI", usoCFDI.ClaveUsoCFDI + " - " + usoCFDI.Descricpion));
        pModelo.Add(new JProperty("FechaPago", FacturaEncabezado.FechaPago.ToShortDateString()));
        pModelo.Add(new JProperty("Anticipo", FacturaEncabezado.Anticipo));

        CFacturaEncabezado FacturaRelacionada = new CFacturaEncabezado();

        FacturaRelacionada.LlenaObjeto(FacturaEncabezado.IdFacturaAnticipo, pConexion);
        string facturaR = Convert.ToString(FacturaRelacionada.NumeroFactura);

        pModelo.Add(new JProperty("FacturaRelacionada", (facturaR == "0")? "":facturaR));
        pModelo.Add(new JProperty("IdFacturaRelacionada", FacturaEncabezado.IdFacturaAnticipo));
        CTipoRelacion TipoRelacion = new CTipoRelacion();

        TipoRelacion.LlenaObjeto(FacturaEncabezado.idTipoRelacion, pConexion);
        pModelo.Add(new JProperty("TipoRelacion", TipoRelacion.Clave + " - " + TipoRelacion.Descripcion));
        pModelo.Add(new JProperty("IdTipoRelacion", FacturaEncabezado.IdTipoRelacion));

        // Obtener factura padre
        CFacturaEncabezadoSustituye FacturaSustituye = new CFacturaEncabezadoSustituye();
        Dictionary <string, object> ParametrosFS     = new Dictionary <string, object>();

        ParametrosFS.Add("IdFacturaSustituye", FacturaEncabezado.IdFacturaEncabezado);
        ParametrosFS.Add("Baja", 0);
        FacturaSustituye.LlenaObjetoFiltros(ParametrosFS, pConexion);

        string FolioPadre = "";

        if (FacturaSustituye.IdFacturaEncabezadoSustituye != 0)
        {
            CFacturaEncabezado FacturaPadre = new CFacturaEncabezado();
            FacturaPadre.LlenaObjeto(FacturaSustituye.IdFactura, pConexion);
            FolioPadre = FacturaPadre.Serie + FacturaPadre.NumeroFactura;
        }
        pModelo.Add("FolioHijo", FolioPadre);

        // Obtener factura hijo
        CFacturaEncabezadoSustituye SustituyeFactura = new CFacturaEncabezadoSustituye();
        Dictionary <string, object> ParametrosSF     = new Dictionary <string, object>();

        ParametrosSF.Add("IdFactura", FacturaEncabezado.IdFacturaEncabezado);
        ParametrosSF.Add("Baja", 0);
        SustituyeFactura.LlenaObjetoFiltros(ParametrosSF, pConexion);

        string FolioHijo = "";

        if (SustituyeFactura.IdFacturaEncabezadoSustituye != 0)
        {
            CFacturaEncabezado FacturaHijo = new CFacturaEncabezado();
            FacturaHijo.LlenaObjeto(SustituyeFactura.IdFacturaSustituye, pConexion);
            FolioHijo = FacturaHijo.Serie + FacturaHijo.NumeroFactura;
        }
        pModelo.Add("FolioPadre", FolioHijo);

        pModelo.Add(new JProperty("CalleFiscal", FacturaEncabezado.CalleFiscal));
        pModelo.Add(new JProperty("IdNumeroCuenta", FacturaEncabezado.IdNumeroCuenta));
        pModelo.Add(new JProperty("NumeroCuenta", FacturaEncabezado.NumeroCuenta));
        pModelo.Add(new JProperty("NumeroExteriorFiscal", FacturaEncabezado.NumeroExteriorFiscal));
        pModelo.Add(new JProperty("NumeroInteriorFiscal", FacturaEncabezado.NumeroInteriorFiscal));
        pModelo.Add(new JProperty("ColoniaFiscal", FacturaEncabezado.ColoniaFiscal));
        pModelo.Add(new JProperty("PaisFiscal", FacturaEncabezado.PaisFiscal));
        pModelo.Add(new JProperty("EstadoFiscal", FacturaEncabezado.EstadoFiscal));
        pModelo.Add(new JProperty("CodigoFiscal", FacturaEncabezado.CodigoPostalFiscal));
        pModelo.Add(new JProperty("MunicipioFiscal", FacturaEncabezado.MunicipioFiscal));
        pModelo.Add(new JProperty("LocalidadFiscal", FacturaEncabezado.LocalidadFiscal));
        pModelo.Add(new JProperty("ReferenciaFiscal", FacturaEncabezado.ReferenciaFiscal));

        pModelo.Add(new JProperty("CalleEntrega", FacturaEncabezado.CalleEntrega));
        pModelo.Add(new JProperty("NumeroExteriorEntrega", FacturaEncabezado.NumeroExteriorEntrega));
        pModelo.Add(new JProperty("NumeroInteriorEntrega", FacturaEncabezado.NumeroInteriorEntrega));
        pModelo.Add(new JProperty("ColoniaEntrega", FacturaEncabezado.ColoniaEntrega));
        pModelo.Add(new JProperty("PaisEntrega", FacturaEncabezado.PaisEntrega));
        pModelo.Add(new JProperty("EstadoEntrega", FacturaEncabezado.EstadoEntrega));
        pModelo.Add(new JProperty("CodigoPostalEntrega", FacturaEncabezado.CodigoPostalEntrega));
        pModelo.Add(new JProperty("MunicipioEntrega", FacturaEncabezado.MunicipioEntrega));
        pModelo.Add(new JProperty("LocalidadEntrega", FacturaEncabezado.LocalidadEntrega));
        pModelo.Add(new JProperty("ReferenciaEntrega", FacturaEncabezado.ReferenciaEntrega));
        pModelo.Add(new JProperty("EsRefactura", FacturaEncabezado.EsRefactura));

        pModelo.Add(new JProperty("IdDescuentoCliente", FacturaEncabezado.IdDescuentoCliente));
        pModelo.Add(new JProperty("DescuentoFacturaCliente", FacturaEncabezado.Descuento));
        pModelo.Add(new JProperty("PorcentajeDescuento", FacturaEncabezado.PorcentajeDescuento));

        pModelo.Add(new JProperty("FechaRequeridaFacturacion", FacturaEncabezado.FechaRequeridaFacturacion.ToShortDateString()));

        CSerieFactura SerieFactura = new CSerieFactura();

        SerieFactura.LlenaObjeto(FacturaEncabezado.IdSerieFactura, pConexion);
        pModelo.Add(new JProperty("IdSerieFactura", FacturaEncabezado.IdSerieFactura));
        pModelo.Add(new JProperty("SerieFactura", SerieFactura.SerieFactura));
        pModelo.Add(new JProperty("NumeroFactura", FacturaEncabezado.NumeroFactura));
        pModelo.Add(new JProperty("NumeroOrdenCompra", FacturaEncabezado.NumeroOrdenCompra));


        if (FacturaEncabezado.IdEstatusFacturaEncabezado == 2)
        {
            pModelo.Add(new JProperty("Estatus", "CANCELADA"));
        }
        else if (FacturaEncabezado.IdEstatusFacturaEncabezado == 3)
        {
            pModelo.Add(new JProperty("Estatus", "PAGADA PARCIAL"));
        }
        else if (FacturaEncabezado.IdEstatusFacturaEncabezado == 4)
        {
            pModelo.Add(new JProperty("Estatus", "PAGADA TOTAL"));
        }
        else
        {
            pModelo.Add(new JProperty("Estatus", "PENDIENTE"));
        }

        pModelo.Add(new JProperty("IdEstatus", Convert.ToInt32(FacturaEncabezado.IdEstatusFacturaEncabezado)));


        if (SerieFactura.Timbrado == true)
        {
            pModelo.Add(new JProperty("SerieTimbrado", 1));
        }
        else
        {
            pModelo.Add(new JProperty("SerieTimbrado", 0));
        }

        CTipoMoneda TipoMoneda = new CTipoMoneda();

        TipoMoneda.LlenaObjeto(FacturaEncabezado.IdTipoMoneda, pConexion);
        pModelo.Add(new JProperty("IdTipoMoneda", TipoMoneda.IdTipoMoneda));
        pModelo.Add(new JProperty("TipoMoneda", TipoMoneda.TipoMoneda));
        pModelo.Add(new JProperty("TipoCambio", FacturaEncabezado.TipoCambio));
        pModelo.Add(new JProperty("NumeroParcialidades", FacturaEncabezado.NumeroParcialidades));
        pModelo.Add(new JProperty("Parcialidades", FacturaEncabezado.Parcialidades));

        //FormaPago
        CFormaPago formaPago = new CFormaPago();

        string formPago = "";

        if (FacturaEncabezado.Parcialidades == true)
        {
            formaPago.LlenaObjeto(2, pConexion);
        }
        else
        {
            formaPago.LlenaObjeto(1, pConexion);
        }
        formPago = formaPago.FormaPago;
        pModelo.Add(new JProperty("FormaPago", formPago));

        CUsuario Usuario = new CUsuario();

        Usuario.LlenaObjeto(FacturaEncabezado.IdUsuarioAgente, pConexion);

        pModelo.Add(new JProperty("IdUsuarioAgente", FacturaEncabezado.IdUsuarioAgente));
        pModelo.Add(new JProperty("Agente", Usuario.Nombre + " " + Usuario.ApellidoPaterno + " " + Usuario.ApellidoMaterno));
        pModelo.Add(new JProperty("MotivoCancelacion", FacturaEncabezado.MotivoCancelacion));

        CDivision Division = new CDivision();

        Division.LlenaObjeto(FacturaEncabezado.IdDivision, pConexion);
        pModelo.Add(new JProperty("IdDivision", FacturaEncabezado.IdDivision));
        pModelo.Add(new JProperty("Division", Division.Division));
        pModelo.Add(new JProperty("Nota", FacturaEncabezado.Nota));
        pModelo.Add(new JProperty("Subtotal", FacturaEncabezado.Subtotal));
        pModelo.Add(new JProperty("Descuento", FacturaEncabezado.Descuento));
        pModelo.Add(new JProperty("SubtotalDescuento", FacturaEncabezado.Subtotal - FacturaEncabezado.Descuento));
        pModelo.Add(new JProperty("IVA", FacturaEncabezado.IVA));
        pModelo.Add(new JProperty("Total", FacturaEncabezado.Total));
        pModelo.Add(new JProperty("CantidadLetra", FacturaEncabezado.TotalLetra));



        CTxtTimbradosFactura        TxtTimbradosFactura = new CTxtTimbradosFactura();
        Dictionary <string, object> ParametrosTXT       = new Dictionary <string, object>();

        ParametrosTXT.Add("Folio", Convert.ToInt32(FacturaEncabezado.NumeroFactura));
        ParametrosTXT.Add("Serie", Convert.ToString(SerieFactura.SerieFactura));
        TxtTimbradosFactura.LlenaObjetoFiltros(ParametrosTXT, pConexion);

        if (TxtTimbradosFactura.IdTxtTimbradosFactura != 0)
        {
            pModelo.Add(new JProperty("IdTxtTimbradosFactura", TxtTimbradosFactura.IdTxtTimbradosFactura));
        }
        else
        {
            pModelo.Add(new JProperty("IdTxtTimbradosFactura", 0));
        }

        return(pModelo);
    }