/// <summary> /// Devuelve el sobre soap del lote de facturas emitidas. /// </summary> /// <param name="skipErrors">Indica si hay que omitir las excepciones.</param> /// <returns>Sobre SOAP con lote de facturas recibidas.</returns> public Envelope GetEnvelope(bool skipErrors = false) { Envelope envelope = new Envelope(); ISiiLote siiInstance = GetSiiInstance(); if (BatchActionPrefix == BatchActionPrefixes.SuministroLR && BatchType != BatchTypes.PagosRecibidas && BatchType != BatchTypes.CobrosEmitidas) { siiInstance.Cabecera.TipoComunicacion = $"{CommunicationType}"; } siiInstance.Cabecera.Titular.NIF = Titular.TaxIdentificationNumber; siiInstance.Cabecera.Titular.NombreRazon = Titular.PartyName; envelope.Body.GetType().GetProperty(GetSiiTypeName()).SetValue(envelope.Body, siiInstance); IList siiInstanceItems = GetSiiInstanceItems(siiInstance); foreach (var item in BatchItems) { siiInstanceItems.Add(item.ToSIIBatchItem(BatchActionKey, false, skipErrors)); } return(envelope); }
/// <summary> /// Items de un lote del SII. /// </summary> /// <param name="siiInstance"></param> /// <returns></returns> private IList GetSiiInstanceItems(ISiiLote siiInstance) { return(siiInstance.GetType().GetProperty(GetSiiItemsTypeName()).GetValue(siiInstance) as IList); }