/// <summary>
        /// Recupera los comentarios asociados a un producto.
        /// </summary>
        /// <param name="resourceId"></param>
        /// <returns></returns>
        public InvoiceItemSupport GetByInoiceItem(int invoiceItemId)
        {
            UserManager              userManager              = new UserManager();
            InvoiceItemSupport       invoiceItemSupport       = new InvoiceItemSupport();
            InvoiceItemMapper        invoiceItemMapper        = new InvoiceItemMapper();
            ItemCommentSupportMapper itemCommentSupportMapper = new ItemCommentSupportMapper();

            InvoiceItem invoiceItem = invoiceItemMapper.Get(invoiceItemId);

            if (invoiceItem == null)
            {
                string errorDescription = "No se ha podido recuperar el artículo comprado con id " + invoiceItemId + ".";
                log.AddLogCritical("GetByInoiceItem", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.NULL, errorDescription));
                return(null);
            }

            List <ItemCommentSupport> comments = itemCommentSupportMapper.GetByInvoiceItem(invoiceItemId);

            if (comments != null)
            {
                foreach (ItemCommentSupport comment in comments)
                {
                    comment.User = userManager.Get(comment.User.Id);
                }
            }

            invoiceItemSupport.InvoiceItem = invoiceItem;
            invoiceItemSupport.Comments    = comments;

            return(invoiceItemSupport);
        }
Beispiel #2
0
        /// <summary>
        /// Recupera el listado de todos los elementos.
        /// </summary>
        /// <returns></returns>
        public List <Tracking> Get(User user)
        {
            MapManager        mapManager        = new MapManager();
            InvoiceItemMapper invoiceItemMapper = new InvoiceItemMapper();
            TrackingMapper    trackingMapper    = new TrackingMapper();
            List <Tracking>   trakings          = trackingMapper.Get(user);

            if (trakings != null)
            {
                foreach (Tracking tracking in trakings)
                {
                    //Sería más óptimo se si buscaran por invoice
                    tracking.InvoiceItem          = invoiceItemMapper.Get(tracking.InvoiceItem.Id);
                    tracking.InvoiceItem.Resource = mapManager.Get(tracking.InvoiceItem.Resource.Id);
                }
            }
            return(trakings);
        }
Beispiel #3
0
        /// <summary>
        /// Genera el PDF para la descarga de la factura
        /// </summary>
        public string DownloadInvoice(int id)
        {
            AddressManager    addressManager    = new AddressManager();
            UserManager       userManager       = new UserManager();
            CreditNoteManager creditNoteManager = new CreditNoteManager();
            CreditCardManager creditCardmanager = new CreditCardManager();
            InvoiceItemMapper invoiceItemMapper = new InvoiceItemMapper();
            InvoiceMapper     invoiceMapper     = new InvoiceMapper();

            Invoice invoice = invoiceMapper.Get(id);

            invoice.BillingAddress = addressManager.Get(invoice.BillingAddress.Id);
            invoice.User           = userManager.Get(invoice.User.Id);
            invoice.InvoiceItems   = invoiceItemMapper.Get(invoice);

            foreach (InvoiceItem invoiceItem in invoice.InvoiceItems)
            {
                invoiceItem.Resource = new MapManager().Get(invoiceItem.Resource.Id);
            }

            invoice.CreditNotes = creditNoteManager.GetUsedByInvoice(invoice);
            invoice.CreditCard  = creditCardmanager.Get(invoice);

            if (invoice.CreditCard != null)
            {
                invoice.CreditCard.Field1 = SecurityHelper.RDesencrypt(invoice.CreditCard.Field1);
                invoice.CreditCard.Field4 = SecurityHelper.RDesencrypt(invoice.CreditCard.Field4);
            }

            string fullPath = PDFHelper.CreateInvoice(invoice);

            if (String.IsNullOrEmpty(fullPath))
            {
                string errorDescription = "Se ha producido un error al generar el archivo de la factura.";
                log.AddLogCritical("DownloadInvoice", errorDescription, this);
                AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription));
            }

            return(fullPath);
        }