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); }
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); }