public string GetUnidadDeMedidaEnItem(int idItem)
        {
            if (!this.currentUser() || !isAdministrator()) { return "-"; }

            ItemBL objBL = new ItemBL();
            ItemDTO obj = objBL.getItemEnEmpresa(getCurrentUser().IdEmpresa, idItem);
            if (obj != null) { return obj.UnidadMedida; }
            return "-";
        }
        public ActionResult GenerarRep_Movimiento_De_Inventarios(int? idItem, DateTime? FechaInicio, DateTime? FechaFin)
        {
            if (FechaInicio == null || FechaFin == null)
            {
                return RedirectToAction("ReportesInventarios", new { message = 1 });
            }

            EmpresaDTO objEmpresa = (new EmpresaBL()).getEmpresa(getCurrentUser().IdEmpresa);
            
            Reportes_InventariosBL repBL = new Reportes_InventariosBL();
            ItemBL itemBL = new ItemBL();
            ItemDTO item = itemBL.getItemEnEmpresa(objEmpresa.IdEmpresa, idItem.GetValueOrDefault());
            List<MovimientoInvDTO> lstMovs = repBL.Get_Reporte_De_Movimientos_De_Inventarios(idItem.GetValueOrDefault(), objEmpresa.IdEmpresa, FechaInicio.GetValueOrDefault(), FechaFin.GetValueOrDefault());

            if (lstMovs == null)
                return RedirectToAction("ReportesInventarios", new { message = 2 });

            System.Data.DataTable dt = new System.Data.DataTable();
            dt.Clear();

            dt.Columns.Add("Fecha");
            dt.Columns.Add("Movimiento");
            dt.Columns.Add("Tipo");
            dt.Columns.Add("Numero Documento");
            dt.Columns.Add("Guia de Remision");
            dt.Columns.Add("Proveedor");
            dt.Columns.Add("Cantidad");
            dt.Columns.Add("Unid Med");
            dt.Columns.Add("Ubicacion");
            dt.Columns.Add("Lote");
            dt.Columns.Add("Stock por Lote");
            dt.Columns.Add("Vencimiento");
            dt.Columns.Add("Comentario");
            dt.Columns.Add("Usuario");

            foreach (var obj in lstMovs)
            {
                DataRow row = dt.NewRow();
                row["Fecha"] = obj.FechaInicial.ToString("dd/MMM/yyyy", CultureInfo.CreateSpecificCulture("en-GB"));
                row["Movimiento"] = obj.nTipo;
                row["Tipo"] = obj.nForma;
                row["Numero Documento"] = obj.NroDocumento;
                row["Guia de Remision"] = obj.GuiaRemision;
                row["Proveedor"] = obj.nEntidadResponsable;
                row["Cantidad"] = obj.Cantidad;
                row["Unid Med"] = obj.UnidadMedida;
                row["Ubicacion"] = obj.nUbicacion;
                row["Lote"] = obj.SerieLote;
                row["Stock por Lote"] = obj.StockLote;
                row["Vencimiento"] = obj.FechaFin != null ? obj.FechaFin.GetValueOrDefault().ToString("dd/MMM/yyyy", CultureInfo.CreateSpecificCulture("en-GB")) : "-";
                row["Comentario"] = obj.Comentario;
                row["Usuario"] = obj.nUsuario;
                dt.Rows.Add(row);
            }

            GenerarPdf3(dt, "Movimiento por item", "MovimientoPorItem", item.Codigo, item.Nombre, objEmpresa, FechaInicio, FechaFin, Response);

            return RedirectToAction("ReportesInventarios", new { message = 2 });
        }
        public ActionResult Item(int? id = null)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            if (!this.isAdministrator()) { return RedirectToAction("Index"); }
            ViewBag.Title = "Item";
            MenuNavBarSelected(10, 0);

            UsuarioDTO user = getCurrentUser();

            ItemBL objBL = new ItemBL();
            ViewBag.lstCategoriaItm = objBL.getCategoriasEnEmpresa(user.IdEmpresa);

            MonedaBL monedaBL = new MonedaBL();
            ViewBag.lstMonedas = monedaBL.getListaMonedas();

            var objSent = TempData["Item"];
            if (objSent != null) { TempData["Item"] = null; return View(objSent); }

            ItemDTO obj;
            if (id != null && id != 0)
            {
                obj = objBL.getItemEnEmpresa((int)user.IdEmpresa, (int)id);
                if (obj == null) return RedirectToAction("Items");
                if (obj.IdEmpresa != user.IdEmpresa) return RedirectToAction("Items");
                return View(obj);
            }
            obj = new ItemDTO();
            obj.IdEmpresa = user.IdEmpresa;

            return View(obj);
        }