public JsonResult ConsultarInformeTrazabilidad(string Codigo, string codigoTraza)
        {
            filtro = new Parametro();
            filtro.codProducto = Codigo;
            filtro.p_codigoTraza = codigoTraza;
            trazabilidadLogic = new TrazabilidadLogic();
            TrazabilidadDTO informe = trazabilidadLogic.Listar(filtro);
            if(informe!=null)
            filtro.p_codigoTraza = informe.codigoTraza;

            //Obtener Detalle Trazabilidad
            objVentaLogic = new InformeVentaLogic();
            objKardexLogic = new KardexLogic();
            objMermaLogic = new HojaMermaLogic();
            objCompraLogic = new OrdenDeCompraLogic();
            objDespachoLogic = new OrdendeDespachoLogic();
            objRecetaLogic = new LibroRecetaLogic();
            var ventas = objVentaLogic.ListarInformeVentaTrazabilidad(filtro);
            var kardex = objKardexLogic.ListarKardexTrazabilidad(filtro);
            var ordenes_compra = objCompraLogic.ListarOrdenDeCompraTrazabilidad(filtro);
            var ordenes_pedido = objDespachoLogic.ListarOrdenDeDespachoTrazabilidad(filtro);
            var recetas = objRecetaLogic.ListarRecetaTrazabilidad(filtro);
            var hoja_merma = objMermaLogic.ListarMermaTrazabilidad(filtro);            

            return Json(new
            {
                codigoTraza=informe.codigoTraza,
                fechaTraza= Convert.ToDateTime(informe.fechaTraza).ToShortDateString(),
                nombreProducto=informe.nombreProducto,
                estado = informe.estado,                                                                       
                estadoinformetrazabilidad=informe.estadoinformetrazabilidad,
                InformeVenta = ventas,
                Kardex = kardex,
                OrdenesCompra = ordenes_compra,
                OrdenesPedido = ordenes_pedido,
                Recetas = recetas,
                HojaMerma = hoja_merma
            }, JsonRequestBehavior.AllowGet);
        }
        public void Reporte(string codigoInformTrazabilidad, string codigoproducto, string codigotraza)
        {
            //FilterReport filter = JsonConvert.DeserializeObject<FilterReport>(id);
            //List<StockProductoAlmacenReport> datos = movimientoBL.ReporteStockProductoAlmacen(filter.TipoFamilia, filter.SubFamilia, filter.TipoCorte, filter.TipoProducto, filter.Gramos, filter.AlmacenId, filter.IncluyeStockCero, filter.NombreProducto, filter.EmpresaId);
//            DataSet ds = new DataSet();
            //ds.Tables.Add();
             filtro = new Parametro();
             InformeTrazabilidadDTOReporte InformeTrazabilidad = new InformeTrazabilidadDTOReporte();

             objVentaLogic = new InformeVentaLogic();
             objKardexLogic = new KardexLogic();
             objCompraLogic = new OrdenDeCompraLogic();
             objDespachoLogic = new OrdendeDespachoLogic();
             objMermaLogic = new HojaMermaLogic();
             objRecetaLogic = new LibroRecetaLogic();
            filtro.codigoInformeTrazabilidad=codigoInformTrazabilidad;
            filtro.codProducto = codigoproducto;
            filtro.p_codigoTraza = codigotraza;

            InformeTrazabilidad = objInfTrazabilidadLogic.Listar(filtro);
            //Detalle
            List<InformeVentaDTO> venta=  objVentaLogic.ListarInformeVentaTrazabilidad(filtro);
            List<KardexDTO> kardex = objKardexLogic.ListarKardexTrazabilidad(filtro);
            List<OrdenDeCompraDTO> ordendecompra = objCompraLogic.ListarOrdenDeCompraTrazabilidad(filtro);
            List<OrdendeDespachoDTO> pedido = objDespachoLogic.ListarOrdenDeDespachoTrazabilidad(filtro);
            List<HojaMermaDTO> merma = objMermaLogic.ListarMermaTrazabilidad(filtro);
            List<LibroRecetaDTO> libroreceta = objRecetaLogic.ListarRecetaTrazabilidad(filtro);
            List<InformeTrazabilidadDTOReporte> milista = new List<InformeTrazabilidadDTOReporte>();

            milista.Add(InformeTrazabilidad);
           
            //lista.  (InformeTrazabilidad);
            RenderReportImpresion("Reporte", "InformeTrazabilidad", milista, "Venta", venta, "Kardex", kardex, "Compra", ordendecompra, "Pedido", pedido, "Merma", merma, "Libro", libroreceta, "PDF", "11in");
        }
        public JsonResult ConsultarTrazabilidad(string Codigo, string FechaInicio, string FechaFin, string NombreProducto)
        {
            DateTime fecha_ini = DateTime.Parse(FechaInicio);
            DateTime fecha_fin = DateTime.Parse(FechaFin);
            filtro = new Parametro();
            filtro.codProducto = Codigo;
            filtro.fechaFin = fecha_fin;
            filtro.fechaIni = fecha_ini;

            objVentaLogic = new InformeVentaLogic();
            objKardexLogic = new KardexLogic();
            objMermaLogic = new HojaMermaLogic();
            objCompraLogic = new OrdenDeCompraLogic();
            objDespachoLogic = new OrdendeDespachoLogic();
            objRecetaLogic = new LibroRecetaLogic();
            var ventas = objVentaLogic.ListarInformeVenta(filtro);
            var kardex = objKardexLogic.Listar(filtro);
            var ordenes_compra = objCompraLogic.Listar(filtro);
            var ordenes_pedido = objDespachoLogic.Listar(filtro);
            var recetas = objRecetaLogic.Listar(filtro);
            var hoja_merma = objMermaLogic.Listar(filtro);

            if (ventas.Count == 0 && kardex.Count == 0 && ordenes_compra.Count == 0 && ordenes_pedido.Count == 0 && recetas.Count == 0 && hoja_merma.Count==0)
            {
                objEmpleadoLogic = new EmpleadoLogic();
                filtro = new Parametro();
                filtro.p_codArea = Convert.ToInt32(ConfigurationManager.AppSettings["CODAREA"]);
                filtro.p_codCargo = Convert.ToInt32(ConfigurationManager.AppSettings["CODCARGO"]); ;
                var emailTrazabilidad = objEmpleadoLogic.UsuarioTrazabilidad(filtro);
                //if (emailTrazabilidad != null)
                //{
                    EnvioCorreoPregunta(ConfigurationManager.AppSettings["EMAIL_DESTINO"], NombreProducto);
              // }
            } 
            return Json(new
            {
                Producto = "",
                InformeVenta = ventas,
                Kardex = kardex,
                OrdenesCompra = ordenes_compra,
                OrdenesPedido = ordenes_pedido,
                Recetas = recetas,
                HojaMerma = hoja_merma
            }, JsonRequestBehavior.AllowGet);
        }