Exemplo n.º 1
0
        public ActionResult DeleteConfirmed(int id)
        {
            Venta venta  = db.Ventas.Find(id);
            Orden pedido = db.Ordenes.Find(venta.ordenId);

            db.Ventas.Remove(venta);
            if (venta.Ordenes != null)
            {
                foreach (var item in venta.Ordenes)
                {
                    if (item.Estados.Where(a => a.EstadoOrden.nombre == "Con Guia").Count() > 0)
                    {
                        item.estadoOrdenId = db.EstadosOrden.Single(p => p.nombre == "Con Guia").estadoOrdenId;
                    }
                    else
                    {
                        item.estadoOrdenId = db.EstadosOrden.Single(p => p.nombre == "Creado").estadoOrdenId;
                    }

                    OrdenEstadoOrden pedidoEstado = new OrdenEstadoOrden();
                    pedidoEstado = item.Estados.Where(p => p.EstadoOrden.nombre == "Con Factura").FirstOrDefault();
                    db.OrdenesEstadoOrden.Remove(pedidoEstado);
                }
            }



            db.SaveChanges();
            //return RedirectToAction("Index");
            return(RedirectToAction("Index", "Orden"));
        }
Exemplo n.º 2
0
        public ActionResult EditPayment([Bind(Include = "ventaId, fechaPagoReal, ordenIds")] Venta venta)
        {
            if (ModelState.IsValid)
            {
                db.Entry(venta).State = EntityState.Modified;
                db.Entry(venta).Property(x => x.ordenId).IsModified             = false;
                db.Entry(venta).Property(x => x.estadoVentaId).IsModified       = false;
                db.Entry(venta).Property(x => x.serie).IsModified               = false;
                db.Entry(venta).Property(x => x.numero).IsModified              = false;
                db.Entry(venta).Property(x => x.tipoDocumentoId).IsModified     = false;
                db.Entry(venta).Property(x => x.fecha).IsModified               = false;
                db.Entry(venta).Property(x => x.formaPagoId).IsModified         = false;
                db.Entry(venta).Property(x => x.fechaPagoProgramado).IsModified = false;

                if (venta.fechaPagoReal != null)
                {
                    DateTime     timeUtc = DateTime.UtcNow;
                    TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                    DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                    ////1. Actualiza estados de Pedido
                    //var estadoOrden = db.EstadosOrden.Single(p => p.nombre == "Cobrado");
                    //var ordenOriginal = db.Ordenes.Find(venta.ordenId);
                    //ordenOriginal.estadoOrdenId = estadoOrden.estadoOrdenId;
                    //venta.Ordenes.Add(ordenOriginal);

                    //Get VentaOriginal
                    var ventaOriginal = db.Ventas.Where(a => a.ventaId == venta.ventaId).Include(a => a.Ordenes);
                    //1. Actualiza estados de Pedido
                    var estadoOrden = db.EstadosOrden.Single(p => p.nombre == "Cobrado");
                    foreach (var orden in ventaOriginal.FirstOrDefault().Ordenes)
                    {
                        //var ordenOriginal = db.Ordenes.Find(orden.ordenId);
                        orden.estadoOrdenId = estadoOrden.estadoOrdenId;
                    }

                    //2. Grabar Estado de Pedido
                    var ordenEstadoOrden = new OrdenEstadoOrden();
                    foreach (var orden in ventaOriginal.FirstOrDefault().Ordenes)
                    {
                        ordenEstadoOrden.ordenId         = orden.ordenId;
                        ordenEstadoOrden.estadoOrdenId   = estadoOrden.estadoOrdenId;
                        ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                        ordenEstadoOrden.fechaCreacion   = cstTime;

                        db.OrdenesEstadoOrden.Add(ordenEstadoOrden);
                    }

                    db.SaveChanges();
                }

                return(RedirectToAction("Index", "Venta"));
            }

            venta = db.Ventas.Find(venta.ventaId);
            return(View(venta));
        }
Exemplo n.º 3
0
        public ActionResult DeleteConfirmed(int id)
        {
            GuiaSalida guiasalida = db.GuiaSalidas.Find(id);

            db.GuiaSalidas.Remove(guiasalida);

            Orden pedido = db.Ordenes.Find(guiasalida.ordenId);

            pedido.estadoOrdenId = db.EstadosOrden.Single(p => p.nombre == "Creado").estadoOrdenId;

            OrdenEstadoOrden pedidoEstado = new OrdenEstadoOrden();

            pedidoEstado = pedido.Estados.Where(p => p.EstadoOrden.nombre == "Con Guía").FirstOrDefault();
            db.OrdenesEstadoOrden.Remove(pedidoEstado);

            db.SaveChanges();
            //return RedirectToAction("Index");
            return(RedirectToAction("Index", "Orden"));
        }
Exemplo n.º 4
0
        public ActionResult CrearOrden(Orden orden)
        {
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            if (ModelState.IsValid)
            {
                DateTime     timeUtc = DateTime.UtcNow;
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                orden.fechaCreacion       = cstTime;
                orden.usuarioCreacion     = User.Identity.Name;
                orden.fechaModificacion   = cstTime;
                orden.usuarioModificacion = User.Identity.Name;

                var estadoOrden = db.EstadosOrden.Single(p => p.nombre == "Creado");

                orden.estadoOrdenId = estadoOrden.estadoOrdenId;

                db.Ordenes.Add(orden);


                // Grabar Estado de Orden
                var ordenEstadoOrden = new OrdenEstadoOrden();

                ordenEstadoOrden.ordenId         = orden.ordenId;
                ordenEstadoOrden.estadoOrdenId   = estadoOrden.estadoOrdenId;
                ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                ordenEstadoOrden.fechaCreacion   = cstTime;

                db.OrdenesEstadoOrden.Add(ordenEstadoOrden);

                db.SaveChanges();

                return(RedirectToAction("Index", "Orden"));
            }
            else
            {
                var errorText = errors.FirstOrDefault().ErrorMessage;
                return(View(errorText));
            }
        }
Exemplo n.º 5
0
        public ActionResult RetornoGuiaMasivo(List <Orden> ordenes)
        {
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            if (ModelState.IsValid)
            {
                DateTime     timeUtc = DateTime.UtcNow;
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                var estadoOrden = db.EstadosOrden.Single(p => p.nombre == "Guía Retornada");


                foreach (var orden in ordenes)
                {
                    //0. Save Guia Documents
                    var guia = db.GuiaSalidas.Where(a => a.ordenId == orden.ordenId).ToList().FirstOrDefault();
                    guia.retorno1 = orden.GuiasSalida.FirstOrDefault().retorno1;
                    guia.retorno2 = orden.GuiasSalida.FirstOrDefault().retorno2;
                    guia.retorno3 = orden.GuiasSalida.FirstOrDefault().retorno3;


                    if (guia.retorno1 == true && guia.retorno2 == true && guia.retorno3 == true)
                    {
                        //1. Cambia Estado de Orden

                        var ordenOriginal = db.Ordenes.Find(orden.ordenId);
                        ordenOriginal.estadoOrdenId       = estadoOrden.estadoOrdenId;
                        ordenOriginal.usuarioModificacion = User.Identity.Name;
                        ordenOriginal.fechaModificacion   = cstTime;

                        //2. Grabar Estado de Orden
                        var ordenEstadoOrden = new OrdenEstadoOrden();

                        ordenEstadoOrden.ordenId         = ordenOriginal.ordenId;
                        ordenEstadoOrden.estadoOrdenId   = estadoOrden.estadoOrdenId;
                        ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                        ordenEstadoOrden.fechaCreacion   = cstTime;

                        db.OrdenesEstadoOrden.Add(ordenEstadoOrden);
                    }

                    db.SaveChanges();
                }

                //db.Pedidos.Add(pedidos);
                //db.SaveChanges();
                return(RedirectToAction("Index"));
            }



            var estadoList = new string[] { "Con Factura", "Con Guía", "Cobrado" };
            var ordenes2   = db.Ordenes.Where(a => estadoList.Contains(a.EstadoOrden.nombre));

            return(View(ordenes2.ToList()));


            //var pedidosNew = db.Ordenes.Where(a => a.Ventas.Where(x => x.FormaPago.nombre == "Credito").Select(x => x.pedidoId).Contains(a.pedidoId));
            ////.Include(v => v.EstadoPedido).Include(v => v.Ventas);
            //return View(pedidosNew.ToList());
        }
Exemplo n.º 6
0
        public FileResult DocumentBoletaEmptyPrint(int?id)
        {
            if (id == null)
            {
                return(null);
            }
            DateTime     timeUtc = DateTime.UtcNow;
            TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
            DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

            //1. Cambia Estado
            var pedidoOriginal = db.Ordenes.Find(id);
            var estadoPedido   = db.EstadosOrden.Single(p => p.nombre == "Con Factura");

            pedidoOriginal.estadoOrdenId       = estadoPedido.estadoOrdenId;
            pedidoOriginal.usuarioModificacion = User.Identity.Name;
            pedidoOriginal.fechaModificacion   = cstTime;

            //2. Grabar Estado de Pedido
            var pedidoEstadoPedido = new OrdenEstadoOrden();

            pedidoEstadoPedido.ordenId         = pedidoOriginal.ordenId;
            pedidoEstadoPedido.estadoOrdenId   = estadoPedido.estadoOrdenId;
            pedidoEstadoPedido.usuarioCreacion = User.Identity.Name;
            pedidoEstadoPedido.fechaCreacion   = cstTime;

            db.OrdenesEstadoOrden.Add(pedidoEstadoPedido);

            db.SaveChanges();



            List <Venta> venta = db.Ventas.Where(a => a.ordenId == id).ToList();
            DataTable    dt    = new DataTable();

            dt.Clear();
            dt.Columns.Add("Cliente");
            dt.Columns.Add("Direccion");
            dt.Columns.Add("RUC");
            dt.Columns.Add("SerieF");
            dt.Columns.Add("NumeroF");
            dt.Columns.Add("SubTotal");
            dt.Columns.Add("IGV");
            dt.Columns.Add("Total");
            dt.Columns.Add("SerieG");
            dt.Columns.Add("NumeroG");
            dt.Columns.Add("FechaF");
            dt.Columns.Add("FechaG");
            dt.Columns.Add("PuntoDestinoG");
            dt.Columns.Add("PuntoPartidaG");
            dt.Columns.Add("Cantidad");
            dt.Columns.Add("DescripcionP");
            dt.Columns.Add("PrecioUnitario");
            dt.Columns.Add("PrecioTotal");
            dt.Columns.Add("TotalTexto");

            foreach (var item in venta[0].Ordenes.FirstOrDefault().Detalles.OrderBy(a => a.Producto.nombre))
            {
                DataRow _ravi = dt.NewRow();
                _ravi["Cliente"]   = venta[0].Ordenes.FirstOrDefault().ClienteOrigen.razonSocial;
                _ravi["Direccion"] = venta[0].Ordenes.FirstOrDefault().ClienteOrigen.Direcciones[0].Direccion.descripcion;
                _ravi["RUC"]       = venta[0].Ordenes.FirstOrDefault().ClienteOrigen.ruc;
                _ravi["SerieF"]    = venta[0].serie;
                _ravi["NumeroF"]   = venta[0].numero;
                _ravi["SubTotal"]  = string.Format("{0:0,0.00}", venta[0].Ordenes.FirstOrDefault().subTotal);
                _ravi["IGV"]       = string.Format("{0:0,0.00}", venta[0].Ordenes.FirstOrDefault().igv);

                _ravi["Total"] = string.Format("{0:0,0.00}", venta[0].Ordenes.FirstOrDefault().Total);

                string fullMonthName = venta[0].fecha.ToString("MMMM", CultureInfo.CreateSpecificCulture("es")).ToUpper();
                _ravi["FechaF"] = "Lima, " + venta[0].fecha.Day + " de " + fullMonthName + "  del " + venta[0].fecha.Year;

                if (venta[0].Ordenes.FirstOrDefault().GuiasSalida.Count >= 1)
                {
                    string fechaTraslado = "";
                    //fechaTraslado = "Lima, " + venta[0].Orden.GuiasSalida.SingleOrDefault().fechaTraslado.Day + " de Agosto del" + venta[0].Orden.GuiasSalida.SingleOrDefault().fechaTraslado.Year;

                    _ravi["SerieG"]  = venta[0].Ordenes.FirstOrDefault().GuiasSalida.SingleOrDefault().serie;
                    _ravi["NumeroG"] = venta[0].Ordenes.FirstOrDefault().GuiasSalida.SingleOrDefault().numero;
                    //_ravi["FechaG"] = venta[0].Orden.GuiasSalida.SingleOrDefault().fechaTraslado;
                }
                else
                {
                    _ravi["SerieG"]  = "";
                    _ravi["NumeroG"] = "";
                    _ravi["FechaG"]  = "";
                }
                _ravi["PuntoDestinoG"]  = venta[0].Ordenes.FirstOrDefault().ClienteOrigen.Direcciones[0].Direccion.descripcion;
                _ravi["PuntoPartidaG"]  = "CALLE AURELIO FERNANDEZ CONCHA 298-MIRAFLORES";
                _ravi["Cantidad"]       = item.cantidad;
                _ravi["DescripcionP"]   = item.Producto.nombre + " - " + item.Producto.UnidadMedida.nombre;
                _ravi["PrecioUnitario"] = string.Format("{0:0,0.00}", item.precioUnitario);
                _ravi["PrecioTotal"]    = string.Format("{0:0,0.00}", item.precioTotal);
                _ravi["TotalTexto"]     = "CIENTO OCHENTA Y OCHO y 10/100";

                dt.Rows.Add(_ravi);
            }


            Microsoft.Reporting.WebForms.LocalReport localreport = new LocalReport();
            ReportDataSource reportdatasource1 = new ReportDataSource("dsMaestroDetalle");

            reportdatasource1.Name  = "dsMaestroDetalle";
            localreport.ReportPath  = Server.MapPath("~/Reports/BoletaEmpty.rdlc");
            reportdatasource1.Value = dt;
            localreport.DataSources.Add(reportdatasource1);

            string reportType = "pdf";
            string encoding;
            string fileNameExtension;

            Warning[] warnings;
            string[]  streams;
            byte[]    renderedBytes;
            string    mimeType;

            renderedBytes = localreport.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings);
            return(File(renderedBytes, mimeType));
        }
Exemplo n.º 7
0
        public ActionResult Create([Bind(Include = "ventaId,serie,numero,tipoDocumentoId,fecha, formaPagoId, spot,OrdenIds")] Venta venta)
        {
            if (ModelState.IsValid)
            {
                if (venta.OrdenIds != null)
                {
                    venta.Ordenes = db.Ordenes.Where(a => venta.OrdenIds.Contains(a.ordenId)).ToList();
                }



                DateTime     timeUtc = DateTime.UtcNow;
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                //Estado Venta
                var estadoVenta = db.EstadoVentas.Single(p => p.nombre == "Creado");
                venta.estadoVentaId = estadoVenta.estadoVentaId;

                var formaPago = db.FormaPagos.Find(venta.formaPagoId);

                switch (formaPago.nombre)
                {
                case "Factura a 7 días":
                    venta.fechaPagoProgramado = cstTime.AddDays(7);
                    break;

                case "Factura a 15 días":
                    venta.fechaPagoProgramado = cstTime.AddDays(15);
                    break;

                case "Factura a 30 días":
                    venta.fechaPagoProgramado = cstTime.AddDays(30);
                    break;

                case "Factura a 90 días":
                    venta.fechaPagoProgramado = cstTime.AddDays(90);
                    break;

                default:
                    venta.fechaPagoProgramado = cstTime;
                    break;
                }



                //Actualiza estados de Ordenes
                var estadoFactura = db.EstadosOrden.Single(p => p.nombre == "Con Factura");

                foreach (var item in venta.Ordenes)
                {
                    item.estadoOrdenId = estadoFactura.estadoOrdenId;
                }

                //var orden = db.Ordenes.Find(venta.ordenId);
                //orden.estadoOrdenId = estadoFactura.estadoOrdenId;
                //Identificador 1fact >1Guia
                //venta.Orden = orden;
                //venta.Ordenes.Add(orden);


                //2. Grabar Estado de Pedido
                var ordenEstadoOrden = new OrdenEstadoOrden();

                foreach (var item in venta.Ordenes)
                {
                    ordenEstadoOrden.ordenId         = item.ordenId;
                    ordenEstadoOrden.estadoOrdenId   = estadoFactura.estadoOrdenId;
                    ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                    ordenEstadoOrden.fechaCreacion   = cstTime;
                    db.OrdenesEstadoOrden.Add(ordenEstadoOrden);
                }


                db.SaveChanges();



                db.Ventas.Add(venta);
                db.SaveChanges();
                //return RedirectToAction("Index");
                return(RedirectToAction("Index", "Venta"));
            }

            ViewBag.estadoVentaId   = new SelectList(db.EstadoVentas, "estadoVentaId", "nombre", venta.estadoVentaId);
            ViewBag.ordenId         = new SelectList(db.Ordenes, "ordenId", "numero", venta.ordenId);
            ViewBag.tipoDocumentoId = new SelectList(db.TipoDocumentos, "tipoDocumentoId", "nombre", venta.tipoDocumentoId);
            ViewBag.formaPagoId     = new SelectList(db.FormaPagos, "formaPagoId", "nombre", venta.formaPagoId);
            ViewBag.Ordenes         = db.Ordenes.Where(a => a.Ventas.Count() == 0 && a.GuiasSalida.Count() > 0 && a.Envios.Count() > 0).Include(e => e.ClientePago).Include(e => e.DireccionOrigen).Include(e => e.DireccionDestino).Include(e => e.GuiasSalida);

            Envio model = new Envio
            {
                OrdenIds = new int[0]
            };

            return(View(venta));
            //return RedirectToAction("Index", "Pedido");
        }
Exemplo n.º 8
0
        public FileResult DocumentVentaPrint(int?id, byte empty, int type, bool resumen)
        {
            if (id == null)
            {
                return(null);
            }


            if (empty == 1)
            {
                DateTime     timeUtc = DateTime.UtcNow;
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                //1. Cambia Estado de Orden
                List <Orden> ordenesOriginal = db.Ordenes.Where(a => a.Ventas.FirstOrDefault().ventaId == id).ToList();
                var          estadoOrden     = db.EstadosOrden.Single(p => p.nombre == "Con Guía");

                foreach (var ordenOriginal in ordenesOriginal)
                {
                    ordenOriginal.estadoOrdenId       = estadoOrden.estadoOrdenId;
                    ordenOriginal.usuarioModificacion = User.Identity.Name;
                    ordenOriginal.fechaModificacion   = cstTime;
                    //2. Grabar Estado de Pedido
                    var ordenEstadoOrden = new OrdenEstadoOrden();

                    ordenEstadoOrden.ordenId         = ordenOriginal.ordenId;
                    ordenEstadoOrden.estadoOrdenId   = estadoOrden.estadoOrdenId;
                    ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                    ordenEstadoOrden.fechaCreacion   = cstTime;

                    db.OrdenesEstadoOrden.Add(ordenEstadoOrden);

                    db.SaveChanges();
                }
            }

            Venta venta = db.Ventas.Find(id);
            //List<GuiaSalida> guias = db.GuiaSalidas.Where(a => a.ordenId == id).ToList();

            DataTable dt = new DataTable();

            dt.Clear();
            dt.Columns.Add("Serie");
            dt.Columns.Add("Numero");
            dt.Columns.Add("SerieFactura");
            dt.Columns.Add("NumeroFactura");
            dt.Columns.Add("FechaEmision");
            dt.Columns.Add("FechaTraslado");
            dt.Columns.Add("Remitente");
            dt.Columns.Add("Destinatario");
            dt.Columns.Add("direccionRemitente");
            dt.Columns.Add("direccionDestinatario");
            dt.Columns.Add("ciudadRemitente");
            dt.Columns.Add("ciudadDestinatario");
            dt.Columns.Add("RUCRemitente");
            dt.Columns.Add("RUCDestinatario");
            dt.Columns.Add("PuntoPartida");
            dt.Columns.Add("PuntoLlegada");
            dt.Columns.Add("Cod");
            dt.Columns.Add("Cantidad");
            dt.Columns.Add("UnidadMedida");
            dt.Columns.Add("Descripcion");
            dt.Columns.Add("MarcaVehiculo");
            dt.Columns.Add("PlacaVehiculo");
            dt.Columns.Add("ConfiguracionVehicularVehiculo");
            dt.Columns.Add("CertificadoInscripcionVehiculo");
            dt.Columns.Add("LicenciaConductorVehiculo");
            dt.Columns.Add("RazonSocialSubcontratada");
            dt.Columns.Add("RUCSubcontratada");
            dt.Columns.Add("ChoferSubcontratada");
            dt.Columns.Add("Referencia");
            dt.Columns.Add("DireccionFiscalClientePago");
            dt.Columns.Add("RucClientePago");
            dt.Columns.Add("Importe");
            dt.Columns.Add("Flete");
            dt.Columns.Add("IGV");
            dt.Columns.Add("Total");
            dt.Columns.Add("TotalTexto");
            dt.Columns.Add("FechaEmisionF");
            dt.Columns.Add("Comentario");
            dt.Columns.Add("SPOT");
            dt.Columns.Add("NumeroGuiaIndividual");

            double?subTotal = 0;
            double?igv      = 0;
            double?total    = 0;
            string guias    = "";

            subTotal = venta.Ordenes.AsEnumerable().Sum(a => a.subTotal);
            igv      = venta.Ordenes.AsEnumerable().Sum(a => a.igv);
            total    = venta.Ordenes.AsEnumerable().Sum(a => a.Total);

            foreach (var orden in venta.Ordenes)
            {
                guias += orden.GuiasSalida.FirstOrDefault().serie + "-" + orden.GuiasSalida.FirstOrDefault().numero + ", ";
            }

            foreach (var orden in venta.Ordenes)
            {
                List <OrdenDetalle> detalles = new List <OrdenDetalle>();

                //if (resumen == true && orden.resumen != null)
                //{
                //    resumen = false;
                //}



                if (resumen == true && orden.resumen != null)
                {
                    detalles.Add(orden.Detalles.FirstOrDefault());
                }
                else if (resumen == false)
                {
                    detalles = orden.Detalles;
                }

                //foreach (var detalle in orden.Detalles)
                foreach (var detalle in detalles)
                {
                    DataRow _ravi = dt.NewRow();
                    //_ravi["Serie"] = orden.GuiasSalida[0].serie;
                    _ravi["Numero"]        = guias;
                    _ravi["SerieFactura"]  = orden.Ventas.FirstOrDefault().serie;
                    _ravi["NumeroFactura"] = orden.Ventas.FirstOrDefault().numero;
                    //_ravi["FechaEmision"] = ((DateTime)(orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().fechaCreacion)).ToShortDateString();
                    _ravi["FechaEmision"]  = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().fechaCreacion.ToString();
                    _ravi["FechaTraslado"] = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().fechaTraslado.ToShortDateString();
                    _ravi["Remitente"]     = orden.GuiasSalida[0].Orden.ClientePago.razonSocial;
                    _ravi["Destinatario"]  = orden.GuiasSalida[0].Orden.ClienteDestinatario.razonSocial;
                    if (orden.GuiasSalida[0].Orden.ClienteOrigen.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").Count() > 0)
                    {
                        _ravi["direccionRemitente"] = orden.GuiasSalida[0].Orden.ClienteOrigen.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").FirstOrDefault().Direccion.direccionCompleta;
                    }
                    else
                    {
                        _ravi["direccionRemitente"] = "";
                    }

                    if (orden.GuiasSalida[0].Orden.ClienteDestinatario.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").Count() > 0)
                    {
                        _ravi["direccionDestinatario"] = orden.GuiasSalida[0].Orden.ClienteDestinatario.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").FirstOrDefault().Direccion.direccionCompleta;
                    }
                    else
                    {
                        _ravi["direccionDestinatario"] = "";
                    }

                    _ravi["ciudadRemitente"]    = orden.GuiasSalida[0].Orden.DireccionOrigen.Ubigeo.descripcion;
                    _ravi["ciudadDestinatario"] = orden.GuiasSalida[0].Orden.DireccionDestino.Ubigeo.descripcion;
                    _ravi["RUCRemitente"]       = orden.GuiasSalida[0].Orden.ClienteOrigen.ruc;
                    _ravi["RUCDestinatario"]    = orden.GuiasSalida[0].Orden.ClienteDestinatario.ruc;
                    _ravi["PuntoPartida"]       = orden.GuiasSalida[0].Orden.DireccionOrigen.descripcion;
                    _ravi["PuntoLlegada"]       = orden.GuiasSalida[0].Orden.DireccionDestino.descripcion;
                    _ravi["Cod"] = detalle.Producto.productoId;

                    _ravi["Comentario"] = detalle.comentario;

                    if (resumen == true && orden.resumen != null)
                    {
                        _ravi["Cantidad"]     = 1;
                        _ravi["UnidadMedida"] = "Unidad";
                        _ravi["Descripcion"]  = orden.resumen;
                    }
                    else if (resumen == false)
                    {
                        _ravi["Cantidad"]     = detalle.cantidad;
                        _ravi["UnidadMedida"] = detalle.Producto.UnidadMedida.nombre;
                        _ravi["Descripcion"]  = "POR EL SERVICIO DE TRASLADO DE " + orden.DireccionOrigen.Ubigeo.descripcion + " A " + orden.DireccionDestino.Ubigeo.descripcion + " SEGÚN DETALLE: " + detalle.Producto.nombre;
                    }
                    _ravi["MarcaVehiculo"] = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Vehiculo.Marca;
                    _ravi["PlacaVehiculo"] = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Vehiculo.placaUnidad;
                    _ravi["ConfiguracionVehicularVehiculo"] = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Vehiculo.placaCarretera;
                    _ravi["CertificadoInscripcionVehiculo"] = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Vehiculo.certificadoInscripcion1;
                    _ravi["LicenciaConductorVehiculo"]      = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Chofer.numeroBrevete;
                    _ravi["RazonSocialSubcontratada"]       = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Proveedor.razonSocial;
                    _ravi["RUCSubcontratada"]     = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Proveedor.ruc;
                    _ravi["ChoferSubcontratada"]  = orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Chofer.apellidos + ", " + orden.GuiasSalida[0].Orden.Envios.FirstOrDefault().Chofer.nombres;
                    _ravi["NumeroGuiaIndividual"] = orden.GuiasSalida[0].serie.Trim() + "-" + orden.GuiasSalida[0].numero.Trim();
                    //type2: Factura o BOleta
                    if (type == 2 || type == 3)
                    {
                        _ravi["Referencia"] = orden.GuiasSalida[0].serie + " " + orden.GuiasSalida[0].numero;;
                        //_ravi["DireccionFiscalClientePago"] = orden.GuiasSalida[0].Orden.ClientePago.Direcciones.FirstOrDefault().Direccion.descripcion;
                        if (orden.GuiasSalida[0].Orden.ClientePago.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").Count() > 0)
                        {
                            _ravi["DireccionFiscalClientePago"] = orden.GuiasSalida[0].Orden.ClientePago.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").FirstOrDefault().Direccion.direccionCompleta;
                        }
                        else
                        {
                            _ravi["DireccionFiscalClientePago"] = "";
                        }
                        _ravi["RucClientePago"] = orden.GuiasSalida[0].Orden.ClientePago.ruc;
                        if (resumen == true && orden.resumen != null)
                        {
                            _ravi["Importe"] = string.Format("{0:0,0.00}", orden.subTotal);
                        }
                        else if (resumen == false)
                        {
                            _ravi["Importe"] = string.Format("{0:0,0.00}", detalle.precioTotal);
                        }

                        _ravi["Flete"]         = string.Format("{0:0,0.00}", subTotal);
                        _ravi["IGV"]           = string.Format("{0:0,0.00}", igv);
                        _ravi["Total"]         = string.Format("{0:0,0.00}", total);
                        _ravi["FechaEmisionF"] = orden.GuiasSalida[0].Orden.Ventas.FirstOrDefault().fecha.ToString("dd/M/yyyy", CultureInfo.InvariantCulture);



                        ConvertirNumero conv = new ConvertirNumero();
                        //String numero = orden.GuiasSalida[0].Orden.Total.ToString();
                        _ravi["TotalTexto"] = conv.Convertir(total.ToString(), true);// "CIENTO OCHENTA Y OCHO y 10/100";

                        if (orden.GuiasSalida[0].Orden.Ventas.FirstOrDefault().spot == true)
                        {
                            _ravi["SPOT"] = "OPERACIÓN SUJETA A PAGO DE SPOT";
                        }
                        else
                        {
                            _ravi["SPOT"] = "OPERACIÓN NO SUJETA A PAGO DE SPOT";
                        }
                    }

                    dt.Rows.Add(_ravi);
                }
            }


            Microsoft.Reporting.WebForms.LocalReport localreport = new LocalReport();
            ReportDataSource reportdatasource1 = new ReportDataSource("dsMaestroDetalle");

            reportdatasource1.Name = "dsMaestroDetalle";
            if (empty == 0 && type == 1) //type =1 guia
            {
                localreport.ReportPath = Server.MapPath("~/Reports/Guia.rdlc");
            }
            else if (empty == 1 && type == 1)
            {
                localreport.ReportPath = Server.MapPath("~/Reports/GuiaEmpty.rdlc");
            }
            else if (empty == 0 && type == 2)
            {
                localreport.ReportPath = Server.MapPath("~/Reports/Factura.rdlc");
            }
            else if (empty == 0 && type == 3)
            {
                localreport.ReportPath = Server.MapPath("~/Reports/Boleta.rdlc");
            }

            reportdatasource1.Value = dt;
            localreport.DataSources.Add(reportdatasource1);

            string reportType = "pdf";
            string encoding;
            string fileNameExtension;

            Warning[] warnings;
            string[]  streams;
            byte[]    renderedBytes;
            string    mimeType;

            renderedBytes = localreport.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings);
            return(File(renderedBytes, mimeType));
        }
Exemplo n.º 9
0
        // GET: /Venta/
        public FileResult DocumentGuiaPrint(int?id, byte empty, int type)
        {
            if (id == null)
            {
                return(null);
            }


            if (empty == 1)
            {
                DateTime     timeUtc = DateTime.UtcNow;
                TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
                DateTime     cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);

                //1. Cambia Estado de Orden
                var ordenOriginal = db.Ordenes.Find(id);
                var estadoOrden   = db.EstadosOrden.Single(p => p.nombre == "Con Guía");

                ordenOriginal.estadoOrdenId       = estadoOrden.estadoOrdenId;
                ordenOriginal.usuarioModificacion = User.Identity.Name;
                ordenOriginal.fechaModificacion   = cstTime;

                //2. Grabar Estado de Pedido
                var ordenEstadoOrden = new OrdenEstadoOrden();

                ordenEstadoOrden.ordenId         = ordenOriginal.ordenId;
                ordenEstadoOrden.estadoOrdenId   = estadoOrden.estadoOrdenId;
                ordenEstadoOrden.usuarioCreacion = User.Identity.Name;
                ordenEstadoOrden.fechaCreacion   = cstTime;

                db.OrdenesEstadoOrden.Add(ordenEstadoOrden);

                db.SaveChanges();
            }

            //List<Venta> venta = db.Ventas.Where(a => a.ventaId == id).ToList();
            List <GuiaSalida> guia = db.GuiaSalidas.Where(a => a.ordenId == id).ToList();

            DataTable dt = new DataTable();

            dt.Clear();
            dt.Columns.Add("Serie");
            dt.Columns.Add("Numero");
            dt.Columns.Add("FechaEmision");
            dt.Columns.Add("FechaTraslado");
            dt.Columns.Add("Remitente");
            dt.Columns.Add("Destinatario");
            dt.Columns.Add("direccionRemitente");
            dt.Columns.Add("direccionDestinatario");
            dt.Columns.Add("ciudadRemitente");
            dt.Columns.Add("ciudadDestinatario");
            dt.Columns.Add("RUCRemitente");
            dt.Columns.Add("RUCDestinatario");
            dt.Columns.Add("PuntoPartida");
            dt.Columns.Add("PuntoLlegada");
            dt.Columns.Add("Cod");
            dt.Columns.Add("Cantidad");
            dt.Columns.Add("UnidadMedida");
            dt.Columns.Add("Descripcion");
            dt.Columns.Add("MarcaVehiculo");
            dt.Columns.Add("PlacaVehiculo");
            dt.Columns.Add("ConfiguracionVehicularVehiculo");
            dt.Columns.Add("CertificadoInscripcionVehiculo");
            dt.Columns.Add("LicenciaConductorVehiculo");
            dt.Columns.Add("RazonSocialSubcontratada");
            dt.Columns.Add("RUCSubcontratada");
            dt.Columns.Add("ChoferSubcontratada");
            dt.Columns.Add("Referencia");
            dt.Columns.Add("DireccionFiscalClientePago");
            dt.Columns.Add("RucClientePago");
            dt.Columns.Add("Importe");
            dt.Columns.Add("Flete");
            dt.Columns.Add("IGV");
            dt.Columns.Add("Total");
            dt.Columns.Add("TotalTexto");
            dt.Columns.Add("FechaEmisionF");
            dt.Columns.Add("Comentario");



            foreach (var item in guia[0].Orden.Detalles.OrderBy(a => a.Producto.nombre))
            {
                DataRow _ravi = dt.NewRow();
                _ravi["Serie"]  = guia[0].serie;
                _ravi["Numero"] = guia[0].numero;
                //_ravi["FechaEmision"] = ((DateTime)(guia[0].Orden.Envios.FirstOrDefault().fechaCreacion)).ToShortDateString();
                _ravi["FechaTraslado"]         = guia[0].Orden.Envios.FirstOrDefault().fechaTraslado.ToShortDateString();
                _ravi["Remitente"]             = guia[0].Orden.ClienteOrigen.razonSocial;
                _ravi["Destinatario"]          = guia[0].Orden.ClienteDestinatario.razonSocial;
                _ravi["direccionRemitente"]    = guia[0].Orden.ClienteOrigen.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").FirstOrDefault().Direccion.descripcion;
                _ravi["direccionDestinatario"] = guia[0].Orden.ClienteDestinatario.Direcciones.Where(a => a.TipoDireccion.nombre == "Fiscal").FirstOrDefault().Direccion.descripcion;
                _ravi["ciudadRemitente"]       = guia[0].Orden.DireccionOrigen.Ubigeo.UbigeoParent.descripcion + " - " + guia[0].Orden.DireccionOrigen.Ubigeo.descripcion;
                _ravi["ciudadDestinatario"]    = guia[0].Orden.DireccionDestino.Ubigeo.UbigeoParent.descripcion + " - " + guia[0].Orden.DireccionDestino.Ubigeo.descripcion;;
                _ravi["RUCRemitente"]          = guia[0].Orden.ClienteOrigen.ruc;
                _ravi["RUCDestinatario"]       = guia[0].Orden.ClienteDestinatario.ruc;
                _ravi["PuntoPartida"]          = guia[0].Orden.DireccionOrigen.direccionCompleta;
                _ravi["PuntoLlegada"]          = guia[0].Orden.DireccionDestino.direccionCompleta;
                _ravi["Cod"]           = item.Producto.productoId;
                _ravi["Cantidad"]      = item.cantidad;
                _ravi["Comentario"]    = item.comentario;
                _ravi["UnidadMedida"]  = item.Producto.UnidadMedida.nombre;
                _ravi["Descripcion"]   = item.Producto.nombre;
                _ravi["MarcaVehiculo"] = guia[0].Orden.Envios.FirstOrDefault().Vehiculo.Marca;
                _ravi["PlacaVehiculo"] = guia[0].Orden.Envios.FirstOrDefault().Vehiculo.placaUnidad;
                _ravi["ConfiguracionVehicularVehiculo"] = guia[0].Orden.Envios.FirstOrDefault().Vehiculo.placaCarretera;
                _ravi["CertificadoInscripcionVehiculo"] = guia[0].Orden.Envios.FirstOrDefault().Vehiculo.certificadoInscripcion1;
                _ravi["LicenciaConductorVehiculo"]      = guia[0].Orden.Envios.FirstOrDefault().Chofer.numeroBrevete;
                _ravi["RazonSocialSubcontratada"]       = guia[0].Orden.Envios.FirstOrDefault().Proveedor.razonSocial;
                _ravi["RUCSubcontratada"]    = guia[0].Orden.Envios.FirstOrDefault().Proveedor.ruc;
                _ravi["ChoferSubcontratada"] = guia[0].Orden.Envios.FirstOrDefault().Chofer.apellidos + ", " + guia[0].Orden.Envios.FirstOrDefault().Chofer.nombres;

                if (type == 2)
                {
                    _ravi["Referencia"] = guia[0].serie + " " + guia[0].numero;;
                    _ravi["DireccionFiscalClientePago"] = guia[0].Orden.ClientePago.Direcciones.FirstOrDefault().Direccion.descripcion;
                    _ravi["RucClientePago"]             = guia[0].Orden.ClientePago.ruc;
                    _ravi["Importe"]       = string.Format("{0:0,0.00}", item.precioTotal);
                    _ravi["Flete"]         = string.Format("{0:0,0.00}", guia[0].Orden.subTotal);
                    _ravi["IGV"]           = string.Format("{0:0,0.00}", guia[0].Orden.igv);
                    _ravi["Total"]         = string.Format("{0:0,0.00}", guia[0].Orden.Total);
                    _ravi["FechaEmisionF"] = guia[0].Orden.Ventas.FirstOrDefault().fecha.ToShortDateString();
                    ConvertirNumero conv   = new ConvertirNumero();
                    String          numero = guia[0].Orden.Total.ToString();
                    _ravi["TotalTexto"] = conv.Convertir(numero, true);// "CIENTO OCHENTA Y OCHO y 10/100";
                }
                dt.Rows.Add(_ravi);
            }


            Microsoft.Reporting.WebForms.LocalReport localreport = new LocalReport();
            ReportDataSource reportdatasource1 = new ReportDataSource("dsMaestroDetalle");

            reportdatasource1.Name = "dsMaestroDetalle";
            if (empty == 0 && type == 1) //type =1 guia
            {
                localreport.ReportPath = Server.MapPath("~/Reports/Guia.rdlc");
            }
            else if (empty == 1 && type == 1)
            {
                localreport.ReportPath = Server.MapPath("~/Reports/GuiaEmpty.rdlc");
            }
            else if (empty == 0 && type == 2)
            {
                localreport.ReportPath = Server.MapPath("~/Reports/Factura.rdlc");
            }
            reportdatasource1.Value = dt;
            localreport.DataSources.Add(reportdatasource1);

            string reportType = "pdf";
            string encoding;
            string fileNameExtension;

            Warning[] warnings;
            string[]  streams;
            byte[]    renderedBytes;
            string    mimeType;

            renderedBytes = localreport.Render(reportType, null, out mimeType, out encoding, out fileNameExtension, out streams, out warnings);
            return(File(renderedBytes, mimeType));
        }