public void PresentarPago()
        {
            CPago cpago = new CPago();

            cpago._Pago = IagregarPago.pago;
            OPago opago = servicioPago.EjecutarPago(cpago);

            if (opago.Correcto)
            {
                IagregarPago.PagoCorrecto("se realizo el pago");
            }
            else
            {
                IagregarPago.ErrorPago(string.Format("{0}", opago.Excepcion.Message));
            }
        }
示例#2
0
        public OPago EjecutarPago(CPago cpago)
        {
            OPago opago = new OPago();

            try
            {
                IpagoR.RealizarPago(cpago._Pago);
                opago.Correcto = true;
            }
            catch (Exception e)
            {
                opago.Excepcion = e;
                opago.Correcto  = false;
            }

            return(opago);
        }
示例#3
0
        public OPagoLista ObtenerPagosPorAlumno(CPago cpago)
        {
            OPagoLista lista = new OPagoLista();

            try
            {
                IEnumerable <ConceptoPagoDetalle> pagos = IpagoR.MostrarPagosPorAlumno(cpago._Filtro);
                lista.detalles = pagos;
                lista.Correcto = true;
            }
            catch (Exception e)
            {
                lista.Excepcion = e;
                lista.Correcto  = false;
            }
            return(lista);
        }
        public void PresentarPagoPorAlumno()
        {
            OPagoLista listadoPagos = servicioPago.ObtenerPagosDetalle();
            CPago      cpago        = new CPago();

            cpago._Filtro = ibusqueda.FiltroNomre;
            OPagoLista listado = servicioPago.ObtenerPagosPorAlumno(cpago);

            if (listado.Correcto)
            {
                if (cpago._Filtro == null)
                {
                    ibusqueda.MostrarPagosPorAlumno(listadoPagos.pagosDetalleLista);
                }
                else
                {
                    ibusqueda.MostrarPagosPorAlumno(listado.detalles);
                }
            }
            else
            {
                ibusqueda.ErrorPagosPorAlumno(string.Format("{0}", listado.Excepcion.Message));
            }
        }
示例#5
0
    public static string TimbrarPago(string Id, string Token, Dictionary <string, object> Comprobante, string RFC, string RefID, string NoCertificado, string Formato, string Correos, string RutaCFDI)
    {
        JObject Respuesta   = new JObject();
        string  Xml         = "";
        CPago   comprobante = new CPago();;

        try { comprobante = GenerarComprobante(Comprobante); }
        catch (Exception ex)
        { }

        Xml = PagosXML.XML(comprobante);

        // Save file XML in
        System.IO.Directory.CreateDirectory(@"" + RutaCFDI + @"\Pagos\in\" + RFC);
        System.IO.File.WriteAllText(@"" + RutaCFDI + @"\Pagos\in\" + RFC + @"\" + RefID + ".xml", Xml);

        string encode = Base64.Encode(Xml);

        JObject Request      = new JObject();
        JObject Credenciales = new JObject();
        JObject Issuer       = new JObject();
        JObject Receivers    = new JObject();
        JObject Document     = new JObject();

        Credenciales.Add("id", Id);
        Credenciales.Add("token", Token);

        Issuer.Add("rfc", RFC);

        Document.Add("ref-id", RefID);
        Document.Add("certificate-number", NoCertificado);
        Document.Add("section", "all");
        Document.Add("format", Formato);
        Document.Add("template", "letter");
        Document.Add("type", "application/vnd.diverza.cfdi_3.3_complemento+xml");
        Document.Add("content", encode);

        Request.Add("credentials", Credenciales);
        Request.Add("issuer", Issuer);
        Request.Add("receiver", Conector.ObtenerDestinatarios(Correos.Split(',').ToList()));
        Request.Add("document", Document);
        string response = Conector.Pago(Request);
        //return response.ToString();
        Dictionary <string, object> Response = (Dictionary <string, object>)JSON.Parse(response);
        //return Response.ToString();
        string uuid    = "";
        string ref_id  = "";
        string content = "";
        string message = "Error en el timbrado";
        int    Error   = 0;

        if (!Response.ContainsKey("message"))
        {
            try
            {
                message = "";

                uuid    = (Response.ContainsKey("uuid")) ? (string)Response["uuid"] : "";
                ref_id  = (Response.ContainsKey("uuid")) ? (string)Response["ref_id"] : "";
                content = (Response.ContainsKey("content")) ? (string)Response["content"] : "";

                // Save file ZIP out
                GuardarContenido(RutaCFDI, content, comprobante.Receptor.RFC, comprobante.Serie, comprobante.Folio);
            }
            catch (Exception ex)
            {
                message = ex.Message;
                Error   = 1;
            }
        }
        else
        {
            message = (string)Response["message"];
            Error   = 1;
        }

        Respuesta.Add("Error", Error);
        Respuesta.Add("message", message);
        Respuesta.Add("uuid", uuid);
        Respuesta.Add("ref_id", ref_id);
        Respuesta.Add("content", content);
        Respuesta.Add("request", Request);
        Respuesta.Add("response", response);
        Respuesta.Add("certificado", NoCertificado);
        Respuesta.Add("serie", Convert.ToString(Comprobante["Serie"]));
        Respuesta.Add("folio", Convert.ToString(Comprobante["Folio"]));
        Respuesta.Add("rfc", RFC);

        return(Respuesta.ToString());
    }
示例#6
0
    private static CPago GenerarComprobante(Dictionary <string, object> Comprobante)
    {
        CPago comprobante = new CPago();

        comprobante.Serie             = Convert.ToString(Comprobante["Serie"]);
        comprobante.Folio             = Convert.ToString(Comprobante["Folio"]);
        comprobante.Fecha             = Comprobante["Fecha"].ToString();
        comprobante.LugarExpedicion   = Convert.ToString(Comprobante["LugarExpedicion"]);
        comprobante.Moneda            = Convert.ToString(Comprobante["Moneda"]);
        comprobante.TipoDeComprobante = Convert.ToString(Comprobante["TipoDeComprobante"]);
        comprobante.Subtotal          = Convert.ToDecimal(Comprobante["SubTotal"]);
        comprobante.Total             = Convert.ToDecimal(Comprobante["Total"]);
        comprobante.NoCertificado     = Convert.ToString(Comprobante["NoCertificado"]);
        comprobante.Certificado       = Convert.ToString(Comprobante["Certificado"]);
        comprobante.Sello             = Convert.ToString(Comprobante["Sello"]);

        Dictionary <string, object> Emisor   = (Dictionary <string, object>)Comprobante["Emisor"];
        Dictionary <string, object> Receptor = (Dictionary <string, object>)Comprobante["Receptor"];

        comprobante.Emisor.RFC           = Convert.ToString(Emisor["RFC"]);
        comprobante.Emisor.Nombre        = Convert.ToString(Emisor["Nombre"]);
        comprobante.Emisor.RegimenFiscal = Convert.ToString(Emisor["RegimenFiscal"]);

        comprobante.Receptor.RFC     = Convert.ToString(Receptor["RFC"]);
        comprobante.Receptor.Nombre  = Convert.ToString(Receptor["Nombre"]);
        comprobante.Receptor.UsoCFDI = Convert.ToString(Receptor["UsoCFDI"]);

        Dictionary <string, object> Concepto = (Dictionary <string, object>)Comprobante["Concepto"];

        comprobante.Concepto.ClaveProdServ = Convert.ToString(Concepto["ClaveProdServ"]);
        comprobante.Concepto.Cantidad      = Convert.ToDecimal(Concepto["Cantidad"]);
        comprobante.Concepto.ClaveUnidad   = Convert.ToString(Concepto["ClaveUnidad"]);
        comprobante.Concepto.Descripcion   = Convert.ToString(Concepto["Descripcion"]);
        comprobante.Concepto.ValorUnitario = Convert.ToDecimal(Concepto["ValorUnitario"]);
        comprobante.Concepto.Importe       = Convert.ToDecimal(Concepto["Importe"]);

        Dictionary <string, object> Complemento = (Dictionary <string, object>)Comprobante["Complemento"];

        comprobante.Complementos.FechaPago       = Complemento["FechaPago"].ToString();
        comprobante.Complementos.FormaDePagoP    = Convert.ToString(Complemento["FormaDePagoP"]);
        comprobante.Complementos.MonedaP         = Convert.ToString(Complemento["MonedaP"]);
        comprobante.Complementos.TipoCambioP     = Convert.ToString(Complemento["TipoCambioP"]);
        comprobante.Complementos.Monto           = Convert.ToDecimal(Complemento["Monto"]);
        comprobante.Complementos.NumOperacion    = Convert.ToString(Complemento["NumOperacion"]);
        comprobante.Complementos.RfcEmisorCtaOrd = Convert.ToString(Complemento["RfcEmisorCtaOrd"]);
        comprobante.Complementos.CtaOrdenante    = Convert.ToString(Complemento["CtaOrdenante"]);
        comprobante.Complementos.NomBancoOrdExt  = Convert.ToString(Complemento["NomBancoOrdExt"]);
        comprobante.Complementos.RfcEmisorCtaBen = Convert.ToString(Complemento["RfcEmisorCtaBen"]);
        comprobante.Complementos.CtaBeneficiario = Convert.ToString(Complemento["CtaBeneficiario"]);
        //comprobante.Complementos.TipoCadPago = Convert.ToString(Complemento["TipoCadPago"]);
        //comprobante.Complementos.CertPago = Convert.ToString(Complemento["CertPago"]);
        //comprobante.Complementos.CadPago = Convert.ToString(Complemento["CadPago"]);
        //comprobante.Complementos.SelloPago = Convert.ToString(Complemento["SelloPago"]);

        Object[] Documentos = (Object[])Complemento["DoctosRelacionados"];

        if (Documentos.Length > 0)
        {
            int i = 0;
            CDoctoRelacionado[] docto = new CDoctoRelacionado[Documentos.Length];

            foreach (Dictionary <string, object> documento in Documentos)
            {
                docto[i] = new CDoctoRelacionado
                {
                    IdDocumento      = Convert.ToString(documento["IdDocumento"]),
                    Serie            = Convert.ToString(documento["Serie"]),
                    Folio            = Convert.ToString(documento["Folio"]),
                    MonedaDR         = Convert.ToString(documento["MonedaDR"]),
                    TipoCambioDR     = Convert.ToString(documento["TipoCambioDR"]),
                    MetodoDePagoDR   = Convert.ToString(documento["MetodoDePagoDR"]),
                    NumParcialidad   = Convert.ToString(documento["NumParcialidad"]),
                    ImpSaldoAnt      = Convert.ToDecimal(documento["ImpSaldoAnt"]),
                    ImpPagado        = Convert.ToDecimal(documento["ImpPagado"]),
                    ImpSaldoInsoluto = Convert.ToDecimal(documento["ImpSaldoInsoluto"])
                };

                docto[i].IdDocumento      = Convert.ToString(documento["IdDocumento"]);
                docto[i].Serie            = Convert.ToString(documento["Serie"]);
                docto[i].Folio            = Convert.ToString(documento["Folio"]);
                docto[i].MonedaDR         = Convert.ToString(documento["MonedaDR"]);
                docto[i].TipoCambioDR     = Convert.ToString(documento["TipoCambioDR"]);
                docto[i].MetodoDePagoDR   = Convert.ToString(documento["MetodoDePagoDR"]);
                docto[i].NumParcialidad   = Convert.ToString(documento["NumParcialidad"]);
                docto[i].ImpSaldoAnt      = Convert.ToDecimal(documento["ImpSaldoAnt"]);
                docto[i].ImpPagado        = Convert.ToDecimal(documento["ImpPagado"]);
                docto[i].ImpSaldoInsoluto = Convert.ToDecimal(documento["ImpSaldoInsoluto"]);

                i++;
            }
            comprobante.Complementos.DoctoRelacionados = docto;
        }
        else
        {
        }

        return(comprobante);
    }
示例#7
0
    public static string XML(CPago Comprobante)
    {
        string xml =
            "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + System.Environment.NewLine +
            "<cfdi:Comprobante" + System.Environment.NewLine +
            "    Certificado=\"\"" + System.Environment.NewLine +
            "    NoCertificado=\"" + Comprobante.NoCertificado + "\"" + System.Environment.NewLine +
            "    Sello=\"" + Comprobante.Sello + "\"" + System.Environment.NewLine +
            "    Fecha=\"" + Comprobante.Fecha + "\"" + System.Environment.NewLine +
            "    Folio=\"" + Comprobante.Folio + "\"" + System.Environment.NewLine +
            "    Serie=\"" + Comprobante.Serie + "\"" + System.Environment.NewLine +
            "    Version=\"3.3\"" + System.Environment.NewLine +
            "    LugarExpedicion=\"" + Comprobante.LugarExpedicion + "\"" + System.Environment.NewLine +
            "    TipoDeComprobante=\"" + Comprobante.TipoDeComprobante + "\"" + System.Environment.NewLine +
            "    Total=\"" + Comprobante.Total.ToString("0.##") + "\"" + System.Environment.NewLine +
            "    SubTotal=\"" + Comprobante.Subtotal.ToString("0.##") + "\"" + System.Environment.NewLine +
            "    Moneda=\"" + Comprobante.Moneda + "\"" + System.Environment.NewLine +
            "    xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\"" + System.Environment.NewLine +
            "    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + System.Environment.NewLine +
            "    xmlns:pago10 = \"http://www.sat.gob.mx/Pagos\"" + System.Environment.NewLine +
            "    xsi:schemaLocation=\"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd\" > " + System.Environment.NewLine +
            "    <cfdi:Emisor" + System.Environment.NewLine +
            "        Nombre=\"" + Comprobante.Emisor.Nombre + "\"" + System.Environment.NewLine +
            "        Rfc=\"" + Comprobante.Emisor.RFC + "\"" + System.Environment.NewLine +
            "        RegimenFiscal=\"" + Comprobante.Emisor.RegimenFiscal + "\"/>" + System.Environment.NewLine +
            "    <cfdi:Receptor" + System.Environment.NewLine +
            "        Nombre=\"" + Comprobante.Receptor.Nombre + "\"" + System.Environment.NewLine +
            "        Rfc=\"" + Comprobante.Receptor.RFC + "\"" + System.Environment.NewLine +
            "        UsoCFDI=\"" + Comprobante.Receptor.UsoCFDI + "\"/>" + System.Environment.NewLine +

            "    <cfdi:Conceptos>" + System.Environment.NewLine +
            "        <cfdi:Concepto" + System.Environment.NewLine +
            "            Importe=\"" + Comprobante.Concepto.Importe.ToString("0.##") + "\"" + System.Environment.NewLine +
            "            ValorUnitario=\"" + Comprobante.Concepto.ValorUnitario.ToString("0.##") + "\"" + System.Environment.NewLine +
            "            Descripcion=\"" + Comprobante.Concepto.Descripcion + "\"" + System.Environment.NewLine +
            "            ClaveUnidad=\"" + Comprobante.Concepto.ClaveUnidad + "\"" + System.Environment.NewLine +
            "            Cantidad=\"" + Comprobante.Concepto.Cantidad.ToString("0.######") + "\"" + System.Environment.NewLine +
            "            ClaveProdServ=\"" + Comprobante.Concepto.ClaveProdServ + "\" />" + System.Environment.NewLine +
            "    </cfdi:Conceptos>" + System.Environment.NewLine +

            "    <cfdi:Complemento > " + System.Environment.NewLine +
            "        <pago10:Pagos Version = \"1.0\" > " + System.Environment.NewLine +
            "            <pago10:Pago " + System.Environment.NewLine +
            "                FechaPago = \"" + Comprobante.Complementos.FechaPago + "\" " + System.Environment.NewLine +
            "                FormaDePagoP = \"" + Comprobante.Complementos.FormaDePagoP + "\" " + System.Environment.NewLine +
            "                MonedaP = \"" + Comprobante.Complementos.MonedaP + "\" " + System.Environment.NewLine +
            "                Monto = \"" + Comprobante.Complementos.Monto + "\" " + System.Environment.NewLine;

        if (Comprobante.Complementos.NumOperacion != "")
        {
            xml +=
                "            NumOperacion = \"" + Comprobante.Complementos.NumOperacion + "\" " + System.Environment.NewLine;
        }
        if (Comprobante.Complementos.TipoCambioP != "")
        {
            xml +=
                "           TipoCambioP = \"" + Comprobante.Complementos.TipoCambioP + "\" " + System.Environment.NewLine;
        }
        if (Comprobante.Complementos.RfcEmisorCtaOrd != "")
        {
            xml +=
                "           RfcEmisorCtaOrd = \"" + Comprobante.Complementos.RfcEmisorCtaOrd + "\" " + System.Environment.NewLine +
                "           CtaOrdenante = \"" + Comprobante.Complementos.CtaOrdenante + "\" " + System.Environment.NewLine;
        }
        if (Comprobante.Complementos.NomBancoOrdExt != "")
        {
            xml +=
                "           NomBancoOrdExt = \"" + Comprobante.Complementos.NomBancoOrdExt + "\" " + System.Environment.NewLine;
        }
        if (Comprobante.Complementos.RfcEmisorCtaBen != "")
        {
            xml +=
                "           RfcEmisorCtaBen = \"" + Comprobante.Complementos.RfcEmisorCtaBen + "\" " + System.Environment.NewLine +
                "           CtaBeneficiario = \"" + Comprobante.Complementos.CtaBeneficiario + "\" ";
        }
        //"                NomBancoOrdExt = \"" + Comprobante.Complementos.NomBancoOrdExt + "\" " + System.Environment.NewLine +
        //"                TipoCadPago = \"" + Comprobante.Complementos.TipoCadPago + "\" " + System.Environment.NewLine +
        //"                CertPago = \"" + Comprobante.Complementos.CertPago + "\" " + System.Environment.NewLine +
        //"                CadPago = \"" + Comprobante.Complementos.CadPago + "\" " + System.Environment.NewLine +
        //"                SelloPago = \"" + Comprobante.Complementos.SelloPago + "\" " + System.Environment.NewLine +
        xml +=
            "> " + System.Environment.NewLine;
        foreach (CDoctoRelacionado Documento in Comprobante.Complementos.DoctoRelacionados)
        {
            xml +=
                "               <pago10:DoctoRelacionado " + System.Environment.NewLine +
                "                   IdDocumento = \"" + Documento.IdDocumento + "\" " + System.Environment.NewLine +
                "                   Serie = \"" + Documento.Serie + "\" " + System.Environment.NewLine +
                "                   Folio = \"" + Documento.Folio + "\" " + System.Environment.NewLine +
                "                   MonedaDR = \"" + Documento.MonedaDR + "\" " + System.Environment.NewLine;
            if (Documento.TipoCambioDR != "")
            {
                xml +=
                    "               TipoCambioDR = \"" + Documento.TipoCambioDR + "\" " + System.Environment.NewLine;
            }
            xml +=
                "                   MetodoDePagoDR = \"" + Documento.MetodoDePagoDR + "\" " + System.Environment.NewLine +
                "                   NumParcialidad = \"" + Documento.NumParcialidad + "\" " + System.Environment.NewLine;
            if (Documento.MetodoDePagoDR != "PUE")
            {
                xml +=
                    "                   ImpSaldoAnt = \"" + Documento.ImpSaldoAnt + "\" " + System.Environment.NewLine;
            }
            xml +=
                "                   ImpPagado = \"" + Documento.ImpPagado + "\" " + System.Environment.NewLine;
            if (Documento.MetodoDePagoDR != "PUE")
            {
                xml +=
                    "               ImpSaldoInsoluto = \"" + Documento.ImpSaldoInsoluto + "\" ";
            }
            xml +=
                " /> " + System.Environment.NewLine;
        }
        xml +=
            "           </pago10:Pago > " + System.Environment.NewLine +
            "        </pago10:Pagos > " + System.Environment.NewLine +
            "    </cfdi:Complemento > " + System.Environment.NewLine +
            "</cfdi:Comprobante>";

        return(xml);
    }