示例#1
0
        /// <summary>
        /// Evento disparado al Descargar el Link
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void link_descarga_Click(object sender, EventArgs e)
        {
            //Creamos lista de rutas y errrores
            List <KeyValuePair <string, byte[]> > rutas = new List <KeyValuePair <string, byte[]> >();
            List <string> errores = new List <string>();

            //Declarando Archivo Final
            byte[] final_file = null;
            //Validando que este disponible la Descarga
            if (validaDescarga())
            {   //Instanciando Link de Descarga
                using (LinkDescarga link = new LinkDescarga(10))
                {
                    //Obtenemos Id de Comprobantes
                    using (DataTable mit = DetalleLinkDescarga.RecuperaIdComprobantes(link.idLinkDescarga))
                    {
                        //Validamos Origen de Datos
                        if (Validacion.ValidaOrigenDatos(mit))
                        {
                            //Rrecorremos los Comprobantes
                            foreach (DataRow r in mit.Rows)
                            {
                                //Instanciando Comprobante
                                using (SAT_CL.FacturacionElectronica.Comprobante cfdi = new SAT_CL.FacturacionElectronica.Comprobante(r.Field <int>("IdComprobante")))
                                {     //validando si Existe la Ruta
                                    if (File.Exists(cfdi.ruta_xml))
                                    { //Añadiendo Archivo al Arreglo de Bytes
                                        rutas.Add(new KeyValuePair <string, byte[]>(cfdi.serie + cfdi.folio.ToString(), File.ReadAllBytes(cfdi.ruta_xml)));
                                    }
                                    //Asignando la Ruta al primer nivel del Arreglo
                                    rutas.Add(new KeyValuePair <string, byte[]>(cfdi.serie + cfdi.folio.ToString() + ".pdf", cfdi.GeneraPDFComprobante()));
                                }
                            }

                            //Añadimos archivos al Zip
                            final_file = TSDK.Base.Archivo.ConvirteArchivoZIP(rutas, out errores);

                            if (final_file != null)
                            {
                                //Guardando Archivo en Session
                                Session["ZIP"] = final_file;
                                //Declarando variable a Enviar
                                String url;
                                url = String.Format("../../UserControls/Prueba.aspx?id={0}", link.idLinkDescarga);
                                //Abre Nueva Ventana
                                TSDK.ASP.ScriptServer.AbreNuevaVentana(url, "AbreVentana", 200, 200, false, false, false, true, true, Page);
                                //Recarga la Forma
                                inicializaPagina();
                            }
                        }
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Método encargado de Descarga el Archivo
 /// </summary>
 private void inicializaForma()
 {     //Instanciando Link de Descarga
     using (LinkDescarga link = new LinkDescarga(Convert.ToInt32(Request.QueryString["id"])))
     { //Decrementa 1 a las descargas restantes
         link.EditaLinkDescarga(link.idContacto, link.fechaGeneracion, link.fechaCaducidad, link.descargasRestantes - 1, link.requierePDF, link.id_usuario);
         //Generando el Script de cierre de ventana
         string script_ventana = "<script language= \"javascript\" type=\"text/javascript\">window.close(); window.opener.focus();</script>";
         //Si no se ha registrado el script en la ventana de apretura
         if (!Page.ClientScript.IsStartupScriptRegistered("CierraVentana"))
         {
             //Registrando nuevo script
             Page.ClientScript.RegisterStartupScript(Page.GetType(), "CierraVentana", script_ventana);
         }
         //Descargando Archivo de Bytes
         Archivo.DescargaArchivo((byte[])Session["ZIP"], "FacturasCFDI.zip", Archivo.ContentType.binary_octetStream);
     }
 }
示例#3
0
        /// <summary>
        /// Método que verifica
        /// </summary>
        private bool validaDescarga()
        {   //Variable de Resultado
            bool result = false;

            //Validando que exista un ID
            if (Request["id"] != null)
            {     //Convirtiendo a entero
                if (Convert.ToInt32(Request["id"]) != 0)
                { //Instanciando Link de Descarga
                    using (LinkDescarga link = new LinkDescarga
                                                   (Convert.ToInt32(Request["id"])))
                    {             //Verificando que exista un Contacto (puede ser '-1' o 'n')
                        if (link.idContacto != 0)
                        {         //Verficando que la fecha de Caducidad sea mayor al dia actual
                            if (link.fechaCaducidad >= TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro())
                            {     //Verificando que Existan descargas disponibles
                                if (link.descargasRestantes != 0)
                                { //Muestra Descargas Restantes
                                    lblDescRest.Text = link.descargasRestantes.ToString();
                                    //Resultado Positivo
                                    result = true;
                                }
                                else//Mensaje de Fecha Caducada
                                {
                                    lblAviso.Text = "Ha Llegado al Limite de las Descargas Permitidas";
                                }
                            }
                            else//Mensaje de Fecha Caducada
                            {
                                lblAviso.Text = "La Fecha de Caducidad a Expirado";
                            }
                        }
                        else//Mensaje de Link Invalido
                        {
                            lblAviso.Text = "El Link de Descarga es Invalido";
                        }
                    }
                }
            }
            return(result);
        }