// GET: /OrdenCompraViewModel/

        public ActionResult Index(int?id)
        {
            var formasPago = db.FormaPagos;

            var proveedores = db.Proveedores;


//            var requerimiento = db.Requerimientos.Single(p => p.requerimientoId == 11);
//            var requerimiento = db.Requerimientos.First();

            Requerimiento req = new Requerimiento();

            var requerimiento = req;

            var ordenesCompra = db.Ordenes.Where(p => p.Requerimiento.tipoCompraId == id);

            var tipoCompra = db.TipoCompra.Find(id);

            var monedas = db.Monedas;

            var OrdenCompraViewModels = new OrdenCompraViewModel(formasPago.ToList(), proveedores.ToList(), requerimiento, ordenesCompra.ToList(), monedas.ToList(), tipoCompra);


            return(View(OrdenCompraViewModels));
        }
        // GET: Pedidos/Create
        public ActionResult Create()
        {
            OrdenCompraViewModel orden = new OrdenCompraViewModel(db);

            if (AppViewModel.PedidosEnProceso == null)
            {
                AppViewModel.PedidosEnProceso = new Dictionary <long, List <GestionProductoPedidoViewModel> >();
            }
            AppViewModel.PedidosEnProceso.Add(orden.Token, new List <GestionProductoPedidoViewModel>());
            return(View(orden));
        }
        public ActionResult Create([Bind(Include = "Token, Pedido")] OrdenCompraViewModel orden)
        {
            orden.Pedido.ProductosPedido = new List <PedidoProducto>();
            ICollection <ValidationResult> resultado = new List <ValidationResult>(); // Will contain the results of the validation

            List <GestionProductoPedidoViewModel> productos = AppViewModel.PedidosEnProceso[orden.Token];

            if (productos != null)
            {
                foreach (var item in productos)
                {
                    PedidoProducto objeto = new PedidoProducto();
                    objeto.Pedido        = orden.Pedido;
                    objeto.Pedido.ID     = orden.Pedido.ID;
                    objeto.Producto      = db.Productos.Find(item.Id);
                    objeto.ProductoId    = objeto.Producto.ID;
                    objeto.ValorUnitario = item.ValorUnitario;
                    objeto.Cantidad      = item.Cantidad;

                    ValidationContext vc = new ValidationContext(objeto);
                    bool isValid         = Validator.TryValidateObject(objeto, vc, resultado, true);


                    if (!isValid)
                    {
                        var    precios    = db.ProductoValores.Where(x => x.ProductoId == objeto.ProductoId).First();
                        string validacion = string.Format("El precio de {0} debe estar entre {1} y {2}", objeto.Producto.Descripcion, precios.ValorMinimo, precios.ValorMaximo);
                        ModelState.AddModelError("", validacion);
                    }
                    orden.Pedido.ProductosPedido.Add(objeto);
                }
            }
            if (ModelState.IsValid)
            {
                if (productos != null)
                {
                    AppViewModel.PedidosEnProceso.Remove(orden.Token);
                }
                orden.Pedido.EstadoPedido = EstadoPedido.Creado;
                db.Pedidos.Add(orden.Pedido);
                foreach (var i in orden.Pedido.ProductosPedido)
                {
                    db.PedidoProductos.Add(i);
                }
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            orden.SetearBases(db);

            return(View(orden));
        }
Exemple #4
0
        public ActionResult OrdenCompraFormulario()
        {
            var formaPagos  = _context.FormasPago.ToList();
            var proveedores = _context.Proveedores.ToList();
            var viewModel   = new OrdenCompraViewModel()
            {
                FormaPagos  = formaPagos,
                Proveedores = proveedores
            };

            return(View(viewModel));
        }
        //public ActionResult IndexApprove()
        //{
        //    var formasPago = db.FormaPagos;

        //    var proveedores = db.Proveedores;

        //    var requerimiento = db.Requerimientos.Single(p => p.requerimientoId == 1);

        //    var ordenesCompra = db.Ordenes;

        //    var monedas = db.Monedas;

        //    var OrdenCompraViewModels = new OrdenCompraViewModel(formasPago.ToList(), proveedores.ToList(), requerimiento, ordenesCompra.ToList(), monedas.ToList());


        //    return View(OrdenCompraViewModels);
        //}



        // GET: /RequerimientoViewModel/Create
        public ActionResult Create(int?id)
        {
            var formasPago = db.FormaPagos;

            var proveedores = db.Proveedores;

            var estadoRequerimientoDetalle = db.EstadoRequerimientoDetalle.Where(p => p.nombre == "Aprobado").SingleOrDefault();;

            var requerimiento = db.Requerimientos.Single(p => p.requerimientoId == id);

            requerimiento.Detalles = requerimiento.Detalles.Where(p => p.estadoRequerimientoDetalleId == estadoRequerimientoDetalle.estadoRequerimientoDetalleId).ToList();

            var ordenesCompra = db.Ordenes;

            var monedas = db.Monedas;

            var tipoCompra = db.TipoCompra.Find(requerimiento.tipoCompraId);

            var OrdenCompraViewModels = new OrdenCompraViewModel(formasPago.ToList(), proveedores.ToList(), requerimiento, ordenesCompra.ToList(), monedas.ToList(), tipoCompra);


            return(View(OrdenCompraViewModels));
        }
        // GET: /RequerimientoViewModel/Create
        public ActionResult Edit(int?id)
        {
            var formasPago  = db.FormaPagos;
            var proveedores = db.Proveedores;

            var estadoRequerimientoDetalle = db.EstadoRequerimientoDetalle.Where(p => p.nombre == "Aprobado").SingleOrDefault();

            var ordenesCompra = db.Ordenes.Where(p => p.ordenCompraId == id).Single();

            var requerimiento = db.Requerimientos.Single(p => p.requerimientoId == ordenesCompra.requerimientoId);

            var estadosRequerimientoDetalle = new string[] { "Aprobado", "Con OC" };

            //var ordenes = db.Ordenes.Where(p => estadoList.Contains(p.EstadoOrden.nombre)).Include(o => o.EstadoOrden).Include(o => o.FormaPago).Include(o => o.Moneda).Include(o => o.Obra).Include(o => o.Proveedor).Include(o => o.Requerimiento);


            requerimiento.Detalles = requerimiento.Detalles.Where((p => estadosRequerimientoDetalle.Contains(p.EstadoRequerimientoDetalle.nombre))).ToList();


            var monedas = db.Monedas;

            var tipoCompra = db.TipoCompra.Find(requerimiento.tipoCompraId);

            List <OrdenCompra> oc = new List <OrdenCompra>();

            oc.Add(ordenesCompra);

            var OrdenCompraViewModels = new OrdenCompraViewModel(formasPago.ToList(), proveedores.ToList(), requerimiento, oc.ToList(), monedas.ToList(), tipoCompra);


            ViewBag.proveedor = new SelectList(db.Proveedores, "proveedorId", "razonSocial", ordenesCompra.proveedorId);
            ViewBag.formaPago = new SelectList(db.FormaPagos, "formapagoId", "nombre", ordenesCompra.formaPagoId);
            ViewBag.moneda    = new SelectList(db.Monedas, "monedaId", "nombre", ordenesCompra.monedaId);


            return(View(OrdenCompraViewModels));
        }
 public OrdenCompraPage()
 {
     InitializeComponent();
     BindingContext = new OrdenCompraViewModel();
 }