Esempio n. 1
0
        public RespuestaCreacionDoc CrearDocumentoXML(DocumentoParametros docParams, Boolean isFirmar)
        {
            var respuesta    = new RespuestaCreacionDoc();
            var rutaGuardado = "";

            try
            {
                docParams.Encabezado.FechaEmision = DateTime.Now;
                docParams.Encabezado.Emisor       = _configuracion.EmisorInformacion;

                docParams.Encabezado.NumeroConsecutivo = GenerarConsecutivo(docParams.Sucursal, docParams.Terminal,
                                                                            docParams.ConsecutivoSistema, docParams.TipoDocumento);
                docParams.Encabezado.Clave = GenerarClave(docParams.Encabezado.NumeroConsecutivo, docParams.Encabezado.FechaEmision,
                                                          GeneraTokenSeguridad(8), docParams.EsUnReproceso);

                var creadorXml = new GeneradorXML();


                creadorXml.Encabezado     = docParams.Encabezado;
                creadorXml.DocsReferencia = docParams.DocumentosReferencia == null ? null : docParams.DocumentosReferencia.ToArray();
                creadorXml.Detalles       = new LineasDetalleParser().ParsearLineas(docParams.LineasDetalle);
                creadorXml.Resumen        = docParams.Resumen;
                creadorXml.SeccionOtros   = docParams.SeccionOtros;

                var xml = creadorXml.CrearXML(docParams.TipoDocumento);

                rutaGuardado = GuardarElXMlParaFirmarlo(docParams.Encabezado.Clave, xml);
                if (isFirmar == true)
                {
                    respuesta.XmlDocCreado = _firmadorElectronico.FirmarDocumento(rutaGuardado);   // FIRMADOR DE DOCUMENTO
                }
                respuesta.ConsecutivoDocCreado    = docParams.Encabezado.NumeroConsecutivo;
                respuesta.ClaveDocCreada          = docParams.Encabezado.Clave;
                respuesta.EstadoDocumento         = RespuestaCreacionDoc.enmEstadoDocumento.CreadoCorrectamente;
                respuesta.NuevoConsecutivoSistema = docParams.ConsecutivoSistema + 1;
                respuesta.archivo      = rutaGuardado;
                respuesta.FechaEmision = docParams.Encabezado.FechaEmision;
            }
            catch (Exception ex)
            {
                respuesta.ErrorMensaje            = ex.Message;
                respuesta.EstadoDocumento         = RespuestaCreacionDoc.enmEstadoDocumento.NoCreado;
                respuesta.NuevoConsecutivoSistema = docParams.ConsecutivoSistema;
                File.Delete(rutaGuardado);
            }
            return(respuesta);
        }
Esempio n. 2
0
        private DocumentoParametros obtenerInfoDoc()
        {
            var param = new DocumentoParametros
            {
                ConsecutivoSistema = 2,
                Encabezado         = new Encabezado {
                    CondicionVenta  = "02",
                    MediosPago      = new string[] { "01", "02" },
                    PlazoCredito    = "30 dias",
                    NormativaFecha  = "07-10-2016 12:00:00",
                    NormativaNombre = "DGT-R-48-2016",
                },
                Sucursal      = 1,
                Terminal      = 1,
                TipoDocumento = Shared.EnumeradoresFEL.enmTipoDocumento.Tiquete,
                LineasDetalle = new List <LineaDetalleSistema>(),
                Resumen       = new ResumenFactura {
                    CodigoMoneda     = ResumenFactura.Moneda.CRC,
                    TipoCambio       = 1,
                    TotalComprobante = 12
                }
            };

            param.Encabezado.Receptor = new Receptor();
            param.LineasDetalle.Add(new LineaDetalleSistema {
                Cantidad            = 1,
                Codigo              = "121",
                Detalle             = "nanzana",
                PrecioUnitario      = 100,
                MontoTotal          = 100,
                MontoDescuento      = 0,
                MontoTotalLinea     = 100,
                UnidadMedida        = "Unid",
                TipoCodigo          = "1",
                SubTotal            = 100,
                Impuesto            = getImpuestos(),
                NaturalezaDescuento = ""
            });



            return(param);
        }