Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <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);
 }