예제 #1
0
        public ActionResult ActualizarEntrega([Bind(Include = "OrdenDeCompraGeneralID")] OrdenDeCompraGeneral ordenDeCompraGeneral,
                                              FormCollection post)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {
                return(RedirectToAction("Index", "Home"));
            }

            //Se marca como ENTEGADA la OC
            ordenDeCompraGeneral        = OrdenDeCompraGeneral.obtener(int.Parse(post["OrdenDeCompraGeneralID"]));
            ordenDeCompraGeneral.estado = "ENTREGADA";
            ordenDeCompraGeneral.guardar();

            //Se guardan los datos de entrega
            datosEntregaOrdenCompraGeneral datosEntrega = new datosEntregaOrdenCompraGeneral();

            datosEntrega.datosEntregaOrdenCompraGeneralID = int.Parse(post["IDEntrega"].ToString());

            string fechaEntregaReal = post["fechaEntregaReal"].ToString();

            datosEntrega.fechaEntregaReal = new DateTime(int.Parse(fechaEntregaReal.Split('/')[2]),
                                                         int.Parse(fechaEntregaReal.Split('/')[1]), int.Parse(fechaEntregaReal.Split('/')[0]));

            datosEntrega.notaRecibo             = post["NotaRecibo"].ToString();
            datosEntrega.OrdenDeCompraGeneralID = ordenDeCompraGeneral.OrdenDeCompraGeneralID;

            datosEntrega.guardar();

            //Se guarda el detalle:

            datosEntrega.eliminarDetalle();

            string[] IDDetalle         = Request.Form.GetValues("IDDetalle");
            string[] cantidadEntregada = Request.Form.GetValues("cantidadEntregadaDetalle");
            string[] cantidadDetalle   = Request.Form.GetValues("cantidadDetalle");

            bool enviarCorreo = false;

            for (int i = 0; i < IDDetalle.Length; i++)
            {
                DetalleEntregaOrdenCompraGeneral detalle = new DetalleEntregaOrdenCompraGeneral();

                detalle.obtenerID();
                detalle.DetalleOrdenCompraID = int.Parse(IDDetalle[i]);
                detalle.CantidadEntregada    = int.Parse(cantidadEntregada[i]);

                detalle.guardar();

                if (detalle.CantidadEntregada < int.Parse(cantidadDetalle[i]))
                {
                    enviarCorreo = true;
                }
            }

            if (enviarCorreo)
            {
                OrdenDeCompraGeneral.enviarCorreo(ordenDeCompraGeneral.OrdenDeCompraGeneralID);
            }

            return(RedirectToAction("Index"));
        }