示例#1
0
        static void AddItem(Comprobante cfd, string code, string name, decimal qty, decimal amount)
        {
            int count = 1;

            if (cfd.Conceptos == null) {
                cfd.Conceptos = new ComprobanteConcepto [count];
            } else {
                count = cfd.Conceptos.Length + 1;
                var items = cfd.Conceptos;
                Array.Resize (ref items, count);
                cfd.Conceptos = items;
            }

            cfd.Conceptos[count-1] = new ComprobanteConcepto {
                cantidad = qty,
                unidad = "N/A",
                noIdentificacion = code,
                descripcion = name,
                valorUnitario = amount,
                importe = Math.Round(qty * amount, 2)
            };

            cfd.subTotal = cfd.Conceptos.Sum (x => x.importe);
            cfd.total = Math.Round (cfd.subTotal * 1.16m, 2);

            cfd.Impuestos.Traslados = new ComprobanteImpuestosTraslado[] {
                new ComprobanteImpuestosTraslado {
                    impuesto = ComprobanteImpuestosTrasladoImpuesto.IVA,
                    importe = cfd.total - cfd.subTotal,
                    tasa = 16
                }
            };
        }
示例#2
0
 public TimbreFiscalDigital Stamp(string id, Comprobante cfd)
 {
     return Stamp (id, cfd.ToXmlBytes ());
 }
示例#3
0
        static void AddItems(Comprobante cfd, string prefix, int count)
        {
            var sum = 0m;

            cfd.Conceptos = new ComprobanteConcepto[count];

            for(int i = 1; i <= count; i++) {
                cfd.Conceptos[i-1] = new ComprobanteConcepto {
                    cantidad = i,
                    unidad = "N/A",
                    noIdentificacion = string.Format("P{0:D4}", i),
                    descripcion = string.Format("{0} {1:D4}", prefix, i),
                    valorUnitario = 5m * i,
                    importe = 5m * i * i
                };
                sum += 5m * i * i;
            }

            cfd.subTotal = sum;
            cfd.total = Math.Round(sum * 1.16m, 2);

            cfd.Impuestos.Traslados = new ComprobanteImpuestosTraslado[] {
                new ComprobanteImpuestosTraslado {
                    impuesto = ComprobanteImpuestosTrasladoImpuesto.IVA,
                    importe = cfd.total - cfd.subTotal,
                    tasa = 16
                }
            };
        }
示例#4
0
        static Comprobante CreateCFD()
        {
            var cfd = new Comprobante {
                tipoDeComprobante = ComprobanteTipoDeComprobante.ingreso,
                serie = "A",
                folio = "1",
                fecha = TEST_DATE,
                LugarExpedicion = "México, DF",
                metodoDePago = "Efectivo",
                formaDePago = "PAGO EN UNA SOLA EXHIBICION",
                TipoCambio = (1m).ToString(),
                Moneda = "MXN",
                noCertificado = "20001000000200001428",
                certificado = Convert.ToBase64String (File.ReadAllBytes (CSD_CERTIFICATE_FILE)),
                Emisor = new ComprobanteEmisor {
                    rfc = "AAA010101AAA",
                    nombre = "ACME SC",
                    RegimenFiscal = new ComprobanteEmisorRegimenFiscal[] {
                        new ComprobanteEmisorRegimenFiscal {
                            Regimen = "Régimen General de Ley Personas Morales"
                        }
                    },
                },
                Receptor = new ComprobanteReceptor {
                    rfc = "XAXX010101000",
                    nombre = "DEMO COMPANY SC"
                },
                Impuestos = new ComprobanteImpuestos()
            };

            return cfd;
        }