Beispiel #1
0
        public ActionResult Edit(Factura factura)
        {
            if (ModelState.IsValid)
            {
                if (factura.EstadoActual == (int)Estado.Valores.Cobrada && factura.FechaCobro == null)
                {
                    factura.FechaCobro = DateTime.Today;
                }

                db.Entry(factura).State = EntityState.Modified;
                db.SaveChanges();

                #region Notificación y Bitácora
                Notificacion.CrearNotificacionFactura(factura);

                var bitacora = new Bitacora
                {
                    EstadoId      = factura.EstadoActual,
                    ComprobanteId = factura.ComprobanteId,
                    Fecha         = DateTime.Today
                };

                db.Bitacoras.Add(bitacora);
                db.SaveChanges();
                #endregion

                return(RedirectToAction("Index"));
            }

            ViewBag.EstadoActual = new SelectList(db.Estados, "Id", "Nombre", factura.EstadoActual);

            return(View(factura));
        }
Beispiel #2
0
        public ActionResult DeleteConfirmed(long id)
        {
            Factura factura = db.Facturas.Find(id);

            factura.EstadoActual = (int)Estado.Valores.Anulada;

            #region Notificación y Bitácora
            Notificacion.CrearNotificacionFactura(factura);

            var bitacora = new Bitacora
            {
                EstadoId      = factura.EstadoActual,
                ComprobanteId = factura.ComprobanteId,
                Fecha         = DateTime.Today
            };

            db.Bitacoras.Add(bitacora);
            db.SaveChanges();
            #endregion

            db.Entry(factura).State = EntityState.Modified;
            db.SaveChanges();


            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public ActionResult Create(Factura factura)
        {
            if (ModelState.IsValid)
            {
                List <FacturaDetalleDtoAjax> detalles = (List <FacturaDetalleDtoAjax>)Session["factura_detalles"] ?? new List <FacturaDetalleDtoAjax>();
                factura.FacturaDetalles = detalles.Select(FacturaDetalleDtoAjax.ModelFromDto).ToList();

                Cliente clienteSeleccionado = db.Clientes.Find(factura.ClienteId);
                factura.FechaVencimiento = factura.Fecha.AddDays(factura.DiasPagoFactura);
                factura.MonotributistaId = Monotributista.IdUsuarioActual;
                factura.NombreArchivo    = factura.MonotributistaId + "_Fact" + factura.Numero.ToString("0000") + ".pdf";

                factura.EstadoActual = (int)Estado.Valores.Emitida;

                db.Comprobantes.Add(factura);
                db.SaveChanges();

                clienteSeleccionado.TotalFacturado += factura.Importe;

                #region Notificación y Bitácora
                Notificacion.CrearNotificacionFactura(factura);

                var bitacora = new Bitacora
                {
                    EstadoId      = factura.EstadoActual,
                    ComprobanteId = factura.ComprobanteId,
                    Fecha         = DateTime.Today
                };

                factura.Comprobante.Bitacoras.Add(bitacora);

                db.Entry(factura).State = EntityState.Modified;
                db.SaveChanges();
                #endregion

                Session.Remove("factura_detalles");

                return(RedirectToAction("Index"));
            }

            ViewBag.ClienteId = new SelectList(db.Clientes, "Id", "Nombre", factura.ClienteId);
            //ViewBag.MonotributistaId = new SelectList(db.Monotributistas, "Id", "CUIT", factura.MonotributistaId);
            //ViewBag.ComprobanteId = new SelectList(db.Comprobantes, "Id", "EstadoActual", factura.ComprobanteId);
            ViewBag.FormaPagoId   = new SelectList(db.FormasPago, "Id", "Nombre", factura.FormaPagoId);
            ViewBag.PresupuestoId = new SelectList(db.Comprobantes, "Id", "Numero", factura.PresupuestoId);
            //ViewBag.RecorridoCobranzaId = new SelectList(db.RecorridosCobranzas, "Id", "Descripcion", factura.RecorridoCobranzaId);
            return(View(factura));
        }
Beispiel #4
0
        public async Task <ActionResult> Enviar(Email email)
        {
            if (ModelState.IsValid)
            {
                email.Html = email.Text;

                Comprobante comprobante = db.Comprobantes.Find(email.ComprobanteId);
                if (comprobante == null)
                {
                    return(HttpNotFound());
                }

                Factura factura = db.Facturas.Find(comprobante.Id);
                if (factura == null)
                {
                    return(HttpNotFound());
                }

                var builder = new FacturaPdfSender(factura, email);
                await builder.GetPdf();

                #region Notificación y Bitácora
                factura.EstadoActual = (int)Estado.Valores.Enviada;

                db.Entry(factura).State = EntityState.Modified;
                db.SaveChanges();

                Notificacion.CrearNotificacionFactura(factura);

                var bitacora = new Bitacora
                {
                    EstadoId      = factura.EstadoActual,
                    ComprobanteId = factura.ComprobanteId,
                    Fecha         = DateTime.Today
                };

                db.Bitacoras.Add(bitacora);
                db.SaveChanges();
                #endregion

                db.Emails.Add(email);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(email));
        }