//
        // GET: /GuiaRemision/Edit/5
        public ActionResult Edit(int id)
        {
            var ordenWS     = new OrdenCompraWS();
            var ordenCompra = ordenWS.Obtener(id);

            var articulo = new ArticuloWS();

            ViewBag.Articulos = articulo.Listar();

            var usuario   = ((UserBE)Session["Usuario"]);
            var proveedor = new ProveedorWS().Obtener(usuario.EmpleadoId);

            ViewBag.RazonSocial       = proveedor.RazonSocial;
            ViewBag.Direccion         = proveedor.Direccion;
            ViewBag.IdEstablecimiento = ordenCompra.Establecimiento.IdEstablecimiento;
            ViewBag.IdOrdenCompra     = ordenCompra.IdOrdenCompra;
            ViewBag.Estado            = ordenCompra.Estado;
            var ordendetalleWS = new OrdenCompraArticuloWS();

            ViewBag.Detalle = JsonConvert.SerializeObject(ordendetalleWS.ObtenerporOrden(id));

            ViewBag.IdGuia = 0;
            if (ordenCompra.Estado == (int)ConstantesBE.EstadoOrden.Aprobada ||
                ordenCompra.Estado == (int)ConstantesBE.EstadoOrden.Atendida)
            {
                var guiaremisionWS = new GuiaRemisionWS();
                var guiabe         = guiaremisionWS.ObtenerporOrden(id);
                ViewBag.IdGuia = guiabe.IdGuiaRemision;
            }


            return(View(ordenCompra));
        }
        //
        // GET: /OrdenCompra/Create

        public ActionResult Create(int?IdOrden)
        {
            var db = new ProveedorWS();

            ViewBag.Proveedores = db.Listar();
            var articulo = new ArticuloWS();

            ViewBag.Articulos = articulo.Listar();
            int IdEstablecimiento = ((UserBE)Session["Usuario"]).EmpleadoId;
            var OrdenCompra       = new OrdenCompraBE();
            var EstablecimientoWS = new EstablecimientoWS();

            OrdenCompra.Establecimiento = EstablecimientoWS.Obtener(IdEstablecimiento);
            Session["detalle"]          = null;

            if (IdOrden != null)
            {
                OrdenCompra = new OrdenCompraWS().Obtener((int)IdOrden);
            }
            else
            {
                OrdenCompra.Proveedor = new ProveedorBE()
                {
                    IdProveedor = 0,
                    RUC         = "",
                    RazonSocial = ""
                };
            }
            //var detalle = (List<ArticuloBE>)Session["detalle"];
            //OrdenCompraBE orden = new OrdenCompraBE();
            return(View(OrdenCompra));
        }
        //
        // POST: /OrdenCompra/Create

        public CrystalReportPdfResult Imprimir(int IdOrden)
        {
            ReportDocument rd            = new ReportDocument();
            var            ordencompraWS = new OrdenCompraWS();
            var            guias         = ordencompraWS.Imprimir(7);
            string         reportPath    = Path.Combine(Server.MapPath("~/Reports/ReportOrdenCompra.rpt"));

            return(new CrystalReportPdfResult(reportPath, guias));
        }
        public JsonResult Buscar(string RazonSocial, int Estado, string FechaInicio, string FechaFin)
        {
            var      daoOrden          = new OrdenCompraWS();
            DateTime Fechaf            = DateTime.Parse(FechaFin).AddDays(1);
            UserBE   usuario           = ((UserBE)Session["Usuario"]);
            int      IdEstablecimiento = 0;

            if (usuario.Rol.RolId == (int)ConstantesBE.Rol.Establecimiento)
            {
                IdEstablecimiento = usuario.EmpleadoId;
            }
            var lista        = daoOrden.Listar(RazonSocial, Estado, DateTime.Parse(FechaInicio), Fechaf, IdEstablecimiento);
            var daoParametro = new ParametroWS();

            ViewBag.ListaEstado = daoParametro.Listar((int)ConstantesBE.Dominio.EstadoOrdenCompra);
            return(Json(lista, JsonRequestBehavior.AllowGet));
        }
        //
        // GET: /GuiaRemision/
        public ActionResult Index()
        {
            var    daoOrden = new OrdenCompraWS();
            UserBE usuario  = ((UserBE)Session["Usuario"]);


            var firstDayOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            var lastDayOfMonth  = firstDayOfMonth.AddMonths(1);
            var lista           = daoOrden.Listar("", 0, firstDayOfMonth, lastDayOfMonth, 0);

            var daoParametro = new ParametroWS();

            ViewBag.ListaEstado = daoParametro.Listar((int)ConstantesBE.Dominio.EstadoOrdenCompra);



            return(View(lista));
        }
        public ActionResult GuardarOrden(OrdenCompraBE orden, string Direccion, string Articulos)
        {
            try
            {
                //var order = orden.ToObject<OrdenCompraBE>();
                var ordenws = new OrdenCompraWS();
                List <ArticuloBE> articulos = new JavaScriptSerializer().Deserialize <List <ArticuloBE> >(Articulos);
                orden.IdEstablecimiento = ((UserBE)Session["Usuario"]).EmpleadoId;
                orden.Articulos         = articulos;
                orden.SubTotal          = articulos.Sum(t => t.SubTotal);
                orden.IGV   = 0;
                orden.Total = orden.SubTotal;
                ordenws.Insertar(orden);

                // TODO: Add insert logic here

                return(Json(new { success = true }));
            }
            catch
            {
                return(View());
            }
        }