Beispiel #1
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GenerarReporte_Click(object sender, EventArgs e)
        {
            var Reporte = new FacturaGlobalWeb.FacturaGlobalWeb();

            _fechacreacion = Localization.Now.ToString("yyyyMMddHHmmss");
            Ex             = null;
            _db            = new BasesDatos((Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE"));
            var _connectionString = _db.CadenaConexion.ToString();

            if (string.IsNullOrEmpty(tbsucursal.Text))
            {
                (Master as SiteMaster).MostrarAlerta(this, "Inserte la serie de la sucursal", 4, null);
                return;
            }

            if (!string.IsNullOrEmpty(tbFecha.Text) || !string.IsNullOrEmpty(FechaFin.Text) || !string.IsNullOrEmpty(tbsucursal.Text))
            {
                var where = "";
                var sql     = @"SELECT Trama from log_trama";
                var fechain = tbFecha.Text + "-" + FechaFin.Text;
                if (!string.IsNullOrEmpty(tbsucursal.Text))
                {
                    where += (!string.IsNullOrEmpty(where) ? " AND " : " WHERE ") + "serie = " + "'" + tbsucursal.Text + "'";
                }
                where += (!string.IsNullOrEmpty(where) ? " AND " : " WHERE ") + " Trama like '%" + fechain.ToString() + "%'" + " AND " + " observaciones = " + "'ExtranetOK'" + " AND " + "tipo= " + "4";
                _db.Conectar();
                _db.CrearComando(sql + where);
                var dr  = _db.EjecutarConsulta();
                var val = new List <string[]>();
                while (dr.Read())
                {
                    string[] valor = new string[3];
                    valor[0] = dr[0].ToString();
                    val.Add(valor);
                }
                _db.Desconectar();
                var directorio = AppDomain.CurrentDomain.BaseDirectory;
                var rfc        = Session["IDENTEMI"].ToString();
                var cfdi       = Session["CfdiVersion"].ToString();
                if (val.Count > 0)
                {
                    new System.Threading.Thread(() =>
                    {
                        Reporte.GenerarReporteAsync(tbFecha.Text, FechaFin.Text, tbsucursal.Text, rfc.ToString(), cfdi, directorio);
                    }).Start();
                }
                else
                {
                    (Master as SiteMaster).MostrarAlerta(this, "No se encontraron registros", 4, null);
                    return;
                }
                gvFacGlobWeb.DataBind();
                (Master as SiteMaster).MostrarAlerta(this, "El reporte se está generando, favor de actualizar los registros nuevamente en unos minutos", 4);
            }
        }
Beispiel #2
0
        protected void GenerarTickets_Click(object sender, EventArgs e)
        {
            _db = new BasesDatos((Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE"));
            if (ddlSerie.SelectedItem.Text.Equals("Todas") || string.IsNullOrEmpty(tbsucursal.Text))
            {
                (Master as SiteMaster).MostrarAlerta(this, ddlSerie.SelectedItem.Text.Equals("Todas") ? "Seleccione la serie" : "Inserte la sucursal", 4, null);
                return;
            }
            if (!string.IsNullOrEmpty(tbFecha.Text) || !string.IsNullOrEmpty(FechaFin.Text) || !string.IsNullOrEmpty(tbsucursal.Text))
            {
                var where = "";
                var sql     = @"SELECT DISTINCT CONVERT(VARCHAR(MAX), Trama) AS Trama,serie,noTicket from log_trama";
                var fechain = tbFecha.Text + "-" + FechaFin.Text;
                if (!string.IsNullOrEmpty(tbsucursal.Text))
                {
                    where += (!string.IsNullOrEmpty(where) ? " AND " : " WHERE ") + "serie = " + "'" + tbsucursal.Text + "'";
                }
                where += (!string.IsNullOrEmpty(where) ? " AND " : " WHERE ") + " Trama like '%" + fechain.ToString() + "%'" + " AND " + " observaciones = " + "'ExtranetOK'" + " AND " + "tipo= " + "4";
                _db.Conectar();
                _db.CrearComando(sql + where);
                var dr  = _db.EjecutarConsulta();
                var val = new List <string[]>();
                while (dr.Read())
                {
                    string[] valor = new string[3];
                    valor[0] = dr[0].ToString();
                    valor[1] = dr[1].ToString();
                    valor[2] = dr[2].ToString();
                    val.Add(valor);
                }
                _db.Desconectar();
                List <KeyValuePair <string, string> > errores;
                var tbLugarExp       = "";
                var tbTotalFac       = "";
                var tbTotal          = "";
                var tbCodDoc         = "";
                var tbISH            = "";
                var tbFormaPago      = "";
                var tbSubtotal       = "";
                var tbPropina        = "";
                var tbOtrosCargos    = "";
                var tbCantLetra      = "";
                var tbIva16          = "";
                var ddlMetodoPago    = "";
                var serie            = "";
                var tbNumCtaPago     = "";
                var tbObservaciones  = "";
                var facturas         = new List <object[]>();
                var tramas           = tramasChecked(out errores, val);
                var tramasFacturadas = GetFacturadas(tramas);
                if (tramas.Count < 1)
                {
                    (Master as SiteMaster).MostrarAlerta(this, "No se encontraron registros", 4, null);
                    return;
                }

                else if (tramasFacturadas.Count > 0)
                {
                    var html = "<ul><li>" + string.Join("</li></li>", tramasFacturadas.Select(x => Session["CfdiVersion"].ToString().Equals("3.3") ? x.Resumen33.CurrentReferenceNumber : x.Resumen.NoReferenciaAct)) + "</li></ul>";
                    (Master as SiteMaster).MostrarAlerta(this, "Los siguientes tickets ya fueron facturados, actualice la busqueda:<br/>" + html, 4, null);
                    return;
                }
                else
                {
                    try
                    {
                        var     numLetra     = new NumerosALetras();
                        decimal _subTotal    = 0;
                        decimal _iva16       = 0;
                        decimal _totalFac    = 0;
                        decimal _propina     = 0;
                        decimal _otrosCargos = 0;
                        decimal _aPagar      = 0;
                        decimal _descuentos  = 0;
                        dataTableConceptos = new DataTable();
                        if (dataTableConceptos.Columns.Count == 0)
                        {
                            dataTableConceptos.Columns.Add("cantidad", typeof(string));
                            dataTableConceptos.Columns.Add("descripcion", typeof(string));
                            dataTableConceptos.Columns.Add("valorUnitario", typeof(string));
                            dataTableConceptos.Columns.Add("iva", typeof(string));
                            dataTableConceptos.Columns.Add("importe", typeof(string));
                            dataTableConceptos.Columns.Add("propina", typeof(string));
                            dataTableConceptos.Columns.Add("total", typeof(string));
                            dataTableConceptos.Columns.Add("unidad", typeof(string));
                            dataTableConceptos.Columns.Add("descuento", typeof(string));
                        }
                        foreach (var tramaMicros in tramas)
                        {
                            string  descripcion = "";
                            decimal subTotal    = 0;
                            decimal iva         = 0;
                            decimal totalFac    = 0;
                            decimal propina     = 0;
                            decimal otrosCargos = 0;
                            decimal aPagar      = 0;
                            decimal descuentos  = 0;
                            //requerido por parroquia
                            decimal MontoNeto = 0;

                            if (Session["CfdiVersion"].ToString().Equals("3.3"))
                            {
                                if (tramaMicros.Resumen33.CurrentReferenceNumber.Equals("21913756180557"))
                                {
                                    // Do Nothing
                                }

                                try { descripcion = tramaMicros.Resumen33.CurrentReferenceNumber; } catch { }
                                try { subTotal = tramaMicros.Detalles33.Sum(x => Convert.ToDecimal(x.NetAmount)); } catch { }
                                //try { iva = tramaMicros.Impuestos33.Sum(x => Convert.ToDecimal(x.GrossAmount.Replace("-", ""))); } catch { }
                                #region Impuestos por Concepto

                                iva = 0;
                                foreach (var concepto in tramaMicros.Detalles33)
                                {
                                    var taxDetails = concepto.TaxBaseFactorAmountCode.Split(';');
                                    foreach (var taxDetail in taxDetails)
                                    {
                                        if (!string.IsNullOrEmpty(taxDetail))
                                        {
                                            decimal dtaxAmount = 0;
                                            var     taxAmount  = taxDetail.Split(' ')[2];
                                            decimal.TryParse(taxAmount, out dtaxAmount);
                                            iva += dtaxAmount;
                                        }
                                    }
                                }

                                #endregion
                                try { totalFac = tramaMicros.Detalles33.Sum(x => Convert.ToDecimal(x.GrossAmount)); } catch { }
                                try { propina = Convert.ToDecimal(tramaMicros.Propinas33 != null ? tramaMicros.Propinas33.NetAmount : "0.00"); } catch { }
                                try { otrosCargos = Convert.ToDecimal("0.00"); } catch { }
                                try { aPagar = Convert.ToDecimal(tramaMicros.Resumen33.GrossAmountGroupedP); } catch { }
                                descuentos = tramaMicros.Descuentos33 == null ? 0 : tramaMicros.Descuentos33.Sum(x => Convert.ToDecimal(x.NetAmount.Replace("-", "")));
                                totalFac   = subTotal - descuentos + iva;
                                aPagar     = totalFac + propina;
                            }
                            else
                            {
                                if (tramaMicros.Resumen.NoReferenciaAct.Equals("21913756180557"))
                                {
                                    // Do Nothing
                                }

                                try { descripcion = tramaMicros.Resumen.NoReferenciaAct; } catch { }
                                try { subTotal = tramaMicros.Detalles.Sum(x => Convert.ToDecimal(x.MontoNetoAgrupado)); } catch { }
                                try { iva = tramaMicros.Impuestos.Sum(x => Convert.ToDecimal(x.MontoNetoi)); } catch { }
                                try { totalFac = tramaMicros.Detalles.Sum(x => Convert.ToDecimal(x.MontoBrutoagrupadom)); } catch { }
                                try { propina = Convert.ToDecimal(tramaMicros.Propinas != null ? tramaMicros.Propinas.MontoNetos : "0.00"); } catch { }
                                try { otrosCargos = Convert.ToDecimal("0.00"); } catch { }
                                try { aPagar = Convert.ToDecimal(tramaMicros.Resumen.MontoBruto); } catch { }
                                if (tramaMicros.Descuentos != null)
                                {
                                    try { descuentos = tramaMicros.Descuentos.Sum(x => Math.Abs(Convert.ToDecimal(x.MontoNetod, new CultureInfo("en-US")))); } catch { }
                                }
                                MontoNeto = Convert.ToDecimal(tramaMicros.Resumen.MontoNeto);//
                                totalFac  = MontoNeto - propina;
                                aPagar    = MontoNeto;
                            }

                            _subTotal += subTotal;
                            _iva16    += iva;
                            _totalFac += totalFac;
                            //_totalFac += MontoNeto;
                            _propina     += propina;
                            _otrosCargos += otrosCargos;
                            _aPagar      += aPagar;
                            _descuentos  += descuentos;

                            var NewRow = dataTableConceptos.NewRow();
                            NewRow[0] = "1";                 // CANTIDAD
                            NewRow[1] = descripcion;         // DESCRIPCION
                            NewRow[2] = subTotal.ToString(); // VAL. UNITARIO
                            NewRow[3] = iva.ToString();      // IVA
                            NewRow[4] = subTotal.ToString(); // IMPORTE
                            NewRow[5] = propina.ToString();  // PROPINA
                            NewRow[6] = aPagar.ToString();   // TOTAL
                            NewRow[7] = "NO APLICA";         // UNIDAD
                            NewRow[8] = descuentos;          // DESCUENTOS
                            dataTableConceptos.Rows.Add(NewRow);
                            facturas.Add(NewRow.ItemArray);
                        }
                        if (Session["CfdiVersion"].ToString().Equals("3.3"))
                        {
                            var claveSucursalTramas = "";
                            var tramasGrouped       = tramas.GroupBy(trama => Session["CfdiVersion"].ToString().Equals("3.3") ? (trama.Resumen33.PropertyName) : (trama.Resumen.NombrePropiedad));
                            if (tramasGrouped.Count() == 1)
                            {
                                claveSucursalTramas = tramasGrouped.FirstOrDefault().Key;
                            }
                            if (!string.IsNullOrEmpty(claveSucursalTramas))
                            {
                                _db.Conectar();
                                _db.CrearComando(@"select codigoPostal from cat_sucursalesemisor where clave = @claveSucursal AND RFC = @RFCEMI");
                                _db.AsignarParametroCadena("@RFCEMI", Session["IDENTEMI"].ToString());
                                _db.AsignarParametroCadena("@claveSucursal", claveSucursalTramas);
                                dr = _db.EjecutarConsulta();
                                if (dr.Read())
                                {
                                    tbLugarExp = dr[0].ToString();
                                }
                                _db.Desconectar();
                            }
                            else
                            {
                                _db.Conectar();
                                _db.CrearComando(@"select codigoPostal FROM Cat_Emisor where RFCEMI=@RFCEMI");
                                _db.AsignarParametroCadena("@RFCEMI", Session["IDENTEMI"].ToString());
                                dr = _db.EjecutarConsulta();
                                while (dr.Read())
                                {
                                    tbLugarExp = dr[0].ToString();
                                }
                                _db.Desconectar();
                            }
                        }
                        else
                        {
                            _db.Conectar();
                            _db.CrearComando(@"select RFCEMI,NOMEMI,dirMatriz,noExterior,noInterior,colonia,referencia,municipio,
                                 estado,pais,codigoPostal,regimenFiscal FROM Cat_Emisor where RFCEMI=@RFCEMI");
                            _db.AsignarParametroCadena("@RFCEMI", Session["IDENTEMI"].ToString());
                            dr = _db.EjecutarConsulta();
                            if (dr.Read())
                            {
                                tbLugarExp = dr[9].ToString() + ", " + dr[8].ToString();
                            }
                            _db.Desconectar();
                        }
                        tbTotalFac = _totalFac.ToString();
                        tbTotal    = _aPagar.ToString();
                        //tbAmbiente.Text = "PRODUCCIÓN";
                        tbCodDoc      = "FACTURA";
                        tbISH         = "0.00";
                        tbFormaPago   = "PAGO EN UNA SOLA EXIBICION";
                        tbSubtotal    = _subTotal.ToString();
                        tbPropina     = _propina.ToString();
                        tbOtrosCargos = _otrosCargos.ToString();
                        tbCantLetra   = numLetra.ConvertirALetras(tbTotal, "MXN");
                        //rowPropina.Visible = !string.IsNullOrEmpty(tbPropina.Trim());
                        //trOtrosCargos.Visible = !string.IsNullOrEmpty(tbOtrosCargos.Trim());
                        tbIva16         = _iva16.ToString();
                        ddlMetodoPago   = "NA";
                        serie           = (ddlSerie.SelectedItem.Text);;
                        tbObservaciones = $"Factura global {FechaFin.SelectedItem.Text} {tbFecha.Text}";
                    }
                    catch { }
                }
                var comprobante = serie + '|' + tbFormaPago + '|' + tbSubtotal + '|' + tbTotalFac + '|' + ddlMetodoPago + '|' + tbLugarExp + '|' + tbNumCtaPago + '|' + tbOtrosCargos + '|' + tbTotal + '|' + tbObservaciones + '|' + tbPropina;;
                var daterecep   = ("PUBLICO GENERAL" + "|" + "XAXX010101000" + "|" + "" + "|" + "-" + "|" + "" + "|" + "" + "|" + "-" + "|" + "" + "|" + "" + "|" + "MEX" + "|" + "00000" + "|" + tbIva16);

                var json = Newtonsoft.Json.JsonConvert.SerializeObject(facturas);
                _idUser = Session["idUser"].ToString();
                var FGWeb = new FacturaGlobalWeb.FacturaGlobalWeb();
                new System.Threading.Thread(() =>
                {
                    FGWeb.FacuraGlobalAsync(Session["IDENTEMI"].ToString(), Session["IDGIRO"].ToString(), json, _idUser, serie, daterecep, comprobante);
                }).Start();
                (Master as SiteMaster).MostrarAlerta(this, "El comprobante se esta generando", 2, null);
            }
            else
            {
                (Master as SiteMaster).MostrarAlerta(this, "Debe sellecionar ambas fechas", 2, null);
                return;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Handles the Click event of the bGenerar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void bGenerar_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                var where = "";
                try
                {
                    _count = 0;
                    if (!ddlReporte.SelectedValue.Equals("0"))
                    {
                        if (!string.IsNullOrEmpty(tbFechaInicial.Text) && !string.IsNullOrEmpty(tbFechaFinal.Text))
                        {
                            if (!Convert.ToDateTime(tbFechaInicial.Text).ToString("yyyyMMdd").Equals("00010101") && !Convert.ToDateTime(tbFechaFinal.Text).ToString("yyyyMMdd").Equals("00010101"))
                            {
                                if (Convert.ToDateTime(tbFechaInicial.Text) <= Convert.ToDateTime(tbFechaFinal.Text))
                                {
                                    _fecha         = Convert.ToDateTime(tbFechaInicial.Text).ToString("yyyyMMdd");
                                    _fechanom      = Convert.ToDateTime(tbFechaFinal.Text).ToString("yyyyMMdd");
                                    _fechacreacion = Localization.Now.ToString("yyyyMMddHHmmss");
                                    where         += " CONVERT(VARCHAR(MAX),g.FECHA,112) >= " + Convert.ToDateTime(tbFechaInicial.Text).ToString("yyyyMMdd") + " AND CONVERT(VARCHAR(MAX),g.FECHA,112) <=" + Convert.ToDateTime(tbFechaFinal.Text).ToString("yyyyMMdd") + " AND ";

                                    if (ddlPtoEmi.SelectedValue != "0")
                                    {
                                        where += " g.serie='" + ddlPtoEmi.SelectedItem.Text + "' AND ";
                                    }
                                    if (ddlEstado.SelectedValue != "0")
                                    {
                                        where += " (g.tipo +g.estado) =  '" + ddlEstado.SelectedValue + "' AND ";
                                    }
                                    if (ddlTipDoc.SelectedValue != "0")
                                    {
                                        where += " g.codDoc='" + ddlTipDoc.SelectedValue + "' AND ";
                                    }
                                    if (ddlEmisor.SelectedValue != "0" && ddlEmisor.SelectedValue != "Todos")
                                    {
                                        where += " cem.RFCEMI='" + ddlEmisor.SelectedItem.Text + "' AND ";
                                    }
                                    if (ddlReceptor.SelectedValue != "0" && ddlReceptor.SelectedValue != "Todos")
                                    {
                                        where += " cr.RFCREC='" + ddlReceptor.SelectedItem.Text + "' AND ";
                                    }
                                    where = where.Substring(0, where.Length - 5);
                                    if (!ddlReporte.SelectedValue.Equals("Contabilidad"))
                                    {
                                        _virtualDir = @"docs\" + (Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE") + _fechacreacion + "_" + ddlReporte.SelectedValue + ".xlsx";
                                    }
                                    else
                                    {
                                        if (Session["IDENTEMI"].ToString() == "HRP880129QX5")
                                        {
                                            _virtualDir = @"docs\Conta\";
                                            //   _virtualDirConta = @"docs\" + "U" + new string((Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE").Take(3).ToArray()) + _fechacreacion + "_" + ddlReporte.SelectedValue + ".zip";
                                            _sesion = new string((Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE").Take(3).ToArray());
                                        }
                                        else
                                        {
                                            _virtualDir = @"docs\Conta\" + "U" + new string((Session["IDENTEMI"] != null ? Session["IDENTEMI"].ToString() : "CORE").Take(3).ToArray()) + _fecha + ".txt";
                                        }
                                    }
                                    _dir = AppDomain.CurrentDomain.BaseDirectory + @"reportes\" + _virtualDir;
                                    Directory.CreateDirectory(Path.GetDirectoryName(_dir));
                                    var periodo  = tbFechaInicial.Text + " - " + tbFechaFinal.Text;
                                    var informes = new Informes(_dir, _db.CadenaConexion, periodo, Session["IDGIRO"].ToString());
                                    if (ddlReporte.SelectedValue.Equals("General"))
                                    {
                                        _db.Conectar();
                                        _db.CrearComando(@"SELECT  count(g.idComprobante)
                                            FROM            Dat_GENERAL g INNER JOIN
                                                Cat_Emisor cem ON g.id_Emisor = cem.IDEEMI LEFT OUTER JOIN
                                                Cat_RECEPTOR cr ON g.id_Receptor = cr.IDEREC
                                            WHERE " + where);

                                        var dr = _db.EjecutarConsulta();
                                        if (dr.Read())
                                        {
                                            _count = Convert.ToInt32(dr[0]);
                                        }
                                        _db.Desconectar();
                                        if (_count > 0)
                                        {
                                            if (informes.General(where, Session["IDENTEMI"].ToString()))
                                            {
                                                var js = "downloadFile('" + _virtualDir.Replace(@"\", "/") + "');";
                                                ScriptManager.RegisterStartupScript(this, GetType(), "downloadViaJS", js, true);
                                            }
                                            else
                                            {
                                                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                            }
                                        }
                                        else
                                        {
                                            ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('No hay registros de acuerdo a los criterios de busqueda', 4);", true);
                                        }
                                    }
                                    else if (ddlReporte.SelectedValue.Equals("Email"))
                                    {
                                        _db.Conectar();
                                        _db.CrearComando(@"SELECT  COUNT(g.idComprobante)
                                              FROM   Cat_emailEnvio mail inner join
			                                       Dat_general g on g.idComprobante = mail.id_general INNER JOIN
                                                   Cat_Emisor cem ON g.id_Emisor = cem.IDEEMI LEFT OUTER JOIN
			                                       Cat_RECEPTOR cr ON cr.IDEREC = g.id_Receptor
                                             WHERE " + where);
                                        var dr = _db.EjecutarConsulta();
                                        if (dr.Read())
                                        {
                                            _count = Convert.ToInt32(dr[0]);
                                        }
                                        _db.Desconectar();
                                        if (_count > 0)
                                        {
                                            if (informes.Mail(where, Session["IDENTEMI"].ToString()))
                                            {
                                                var js = "downloadFile('" + _virtualDir.Replace(@"\", "/") + "');";
                                                ScriptManager.RegisterStartupScript(this, GetType(), "downloadViaJS", js, true);
                                            }
                                            else
                                            {
                                                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                            }
                                        }
                                        else
                                        {
                                            ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('No hay registros de acuerdo a los criterios de busqueda', 4);", true);
                                        }
                                    }
                                    else if (ddlReporte.SelectedValue.Equals("Conceptos"))
                                    {
                                        _db.Conectar();
                                        _db.CrearComando(@"SELECT  COUNT(g.idComprobante)
                                              FROM   Dat_Detalles dd inner join
			                                       Dat_general g on g.idComprobante = dd.id_Comprobante INNER JOIN
                                                   Cat_Emisor cem ON g.id_Emisor = cem.IDEEMI LEFT OUTER JOIN
			                                       Cat_RECEPTOR cr ON cr.IDEREC = g.id_Receptor
                                             WHERE " + where);
                                        var dr = _db.EjecutarConsulta();
                                        if (dr.Read())
                                        {
                                            _count = Convert.ToInt32(dr[0]);
                                        }
                                        _db.Desconectar();
                                        if (_count > 0)
                                        {
                                            if (informes.Conceptos(where, Session["IDENTEMI"].ToString()))
                                            {
                                                var js = "downloadFile('" + _virtualDir.Replace(@"\", "/") + "');";
                                                ScriptManager.RegisterStartupScript(this, GetType(), "downloadViaJS", js, true);
                                            }
                                            else
                                            {
                                                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                            }
                                        }
                                        else
                                        {
                                            ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('No hay registros de acuerdo a los criterios de busqueda', 4);", true);
                                        }
                                    }
                                    else if (ddlReporte.SelectedValue.Equals("Contabilidad"))
                                    {
                                        if (Session["IDENTEMI"].ToString() == "HRP880129QX5")
                                        {
                                            //obtener rango

                                            var whereC = "";
                                            if (ddlPtoEmi.SelectedValue != "0")
                                            {
                                                whereC += " g.serie='" + ddlPtoEmi.SelectedItem.Text + "' AND ";
                                            }
                                            if (ddlEstado.SelectedValue != "0")
                                            {
                                                whereC += " (g.tipo +g.estado) =  '" + ddlEstado.SelectedValue + "' AND ";
                                            }
                                            if (ddlTipDoc.SelectedValue != "0")
                                            {
                                                whereC += " g.codDoc='" + ddlTipDoc.SelectedValue + "' AND ";
                                            }
                                            if (ddlEmisor.SelectedValue != "0")
                                            {
                                                whereC += " cem.RFCEMI='" + ddlEmisor.SelectedItem.Text + "' AND ";
                                            }
                                            if (ddlReceptor.SelectedValue != "0")
                                            {
                                                whereC += " cr.RFCREC='" + ddlReceptor.SelectedItem.Text + "' AND ";
                                            }

                                            var yearS    = Convert.ToDateTime(tbFechaInicial.Text).ToString("yyyy");
                                            var yearE    = Convert.ToDateTime(tbFechaInicial.Text).ToString("yyyy");
                                            var monthS   = Convert.ToDateTime(tbFechaInicial.Text).ToString("MM");
                                            var monthE   = Convert.ToDateTime(tbFechaInicial.Text).ToString("MM");
                                            int dayStart = Convert.ToInt32(Convert.ToDateTime(tbFechaInicial.Text).ToString("dd"));
                                            int dayEnd   = Convert.ToInt32(Convert.ToDateTime(tbFechaFinal.Text).ToString("dd"));
                                            var j        = dayStart - 1;
                                            for (var i = dayStart; i <= dayEnd; i++)
                                            {
                                                where = "";
                                                j    += 1;
                                                var dateS = yearS + "/" + monthS + "/" + j;
                                                var dateE = yearE + "/" + monthE + "/" + i;
                                                where = " CONVERT(VARCHAR(MAX),g.FECHA,112) >= " + Convert.ToDateTime(dateS).ToString("yyyyMMdd") + " AND CONVERT(VARCHAR(MAX),g.FECHA,112) <=" + Convert.ToDateTime(dateE).ToString("yyyyMMdd") + " AND " + whereC;
                                                where = where.Substring(0, where.Length - 5);
                                                //fin repCon
                                                _db.Conectar();
                                                _db.CrearComando(@"SELECT  COUNT(g.idComprobante)
                                              FROM   Dat_Detalles inner join
			                                       Dat_general g on g.idComprobante = Dat_Detalles.id_Comprobante INNER JOIN
                                                   Cat_Emisor cem ON g.id_Emisor = cem.IDEEMI LEFT OUTER JOIN
			                                       Cat_RECEPTOR cr ON cr.IDEREC = g.id_Receptor
                                             WHERE " + where);
                                                var dr = _db.EjecutarConsulta();
                                                if (dr.Read())
                                                {
                                                    _count = Convert.ToInt32(dr[0]);
                                                }
                                                _db.Desconectar();


                                                if (_count > 0)
                                                {
                                                    if (informes.ContabilidadC(where, _sesion))
                                                    {
                                                    }
                                                    else
                                                    {
                                                        ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                                    }
                                                }
                                                else
                                                {
                                                }
                                            }//for reporte por dias
                                            Zip_Download(_dir);
                                        }
                                        else
                                        {
                                            _db.Conectar();
                                            _db.CrearComando(@"SELECT  COUNT(g.idComprobante)
                                              FROM   Dat_Detalles inner join
			                                       Dat_general g on g.idComprobante = Dat_Detalles.id_Comprobante INNER JOIN
                                                   Cat_Emisor cem ON g.id_Emisor = cem.IDEEMI LEFT OUTER JOIN
			                                       Cat_RECEPTOR cr ON cr.IDEREC = g.id_Receptor
                                             WHERE " + where);
                                            var dr = _db.EjecutarConsulta();
                                            if (dr.Read())
                                            {
                                                _count = Convert.ToInt32(dr[0]);
                                            }
                                            _db.Desconectar();


                                            if (_count > 0)
                                            {
                                                if (informes.Contabilidad(where, "", Session["IDENTEMI"].ToString()))
                                                {
                                                    var js = "downloadFile('" + _virtualDir.Replace(@"\", "/") + "');";
                                                    ScriptManager.RegisterStartupScript(this, GetType(), "downloadViaJS", js, true);
                                                }
                                                else
                                                {
                                                    ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                                }
                                            }
                                            else
                                            {
                                                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('No hay registros de acuerdo a los criterios de busqueda', 4);", true);
                                            }
                                        }
                                    }
                                    else if (ddlReporte.SelectedValue.Equals("Tickets"))
                                    {
                                        var date      = Convert.ToDateTime(tbFechaInicial.Text);
                                        var year      = date.ToString("yyyy");
                                        var month     = date.ToString("MM");
                                        var serie     = "";
                                        var rfcEmisor = "";
                                        var count     = -1;
                                        if (!ddlPtoEmi.SelectedValue.Equals("0"))
                                        {
                                            serie = ddlPtoEmi.SelectedItem.Text;
                                        }
                                        if (!ddlEmisor.SelectedValue.Equals("0"))
                                        {
                                            rfcEmisor = ddlEmisor.SelectedItem.Text;
                                        }
                                        var Reptikets = new FacturaGlobalWeb.FacturaGlobalWeb();
                                        var RutBase   = AppDomain.CurrentDomain.BaseDirectory;
                                        Reptikets.TicketsAsync(where, Session["CfdiVersion"].ToString(), month, year, serie, rfcEmisor, _dir, RutBase, Session["IDENTEMI"].ToString());
                                        (Master as SiteMaster).MostrarAlerta(this, "El reporte se esta generando", 4);
                                        gvRepTickets.DataBind();
                                        //if (informes.Tickets(where, Session["CfdiVersion"].ToString(), month, year, serie, rfcEmisor, out count))
                                        //{
                                        //    if (count <= 0)
                                        //    {
                                        //        ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('No hay registros de acuerdo a los criterios de busqueda', 4);", true);
                                        //        return;
                                        //    }
                                        //    var js = "downloadFile('" + _virtualDir.Replace(@"\", "/") + "');";
                                        //    ScriptManager.RegisterStartupScript(this, GetType(), "downloadViaJS", js, true);
                                        //    Response.Redirect("~/download.aspx?file=" + "reportes/" + _virtualDir.Replace(@"\", "/"));
                                        //}
                                        //else
                                        //{
                                        //    ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + informes.Ex.Message + "', 4);", true);
                                        //}
                                    }
                                }
                                else
                                {
                                    ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('Selecciona fecha inicial y fecha final', 4);", true);
                                }
                            }
                            else
                            {
                                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('Tienes que seleccionar ambas fechas', 4);", true);
                            }
                        }
                        else
                        {
                            ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('Tienes que seleccionar ambas fechas', 4);", true);
                        }
                    }
                    else
                    {
                        ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('Tienes que seleccionar un tipo de Reporte', 4);", true);
                    }
                }
                catch (Exception ea)
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('" + ea.Message + "', 4);", true);
                }
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "alertBootBox", "alertBootBox('Verifique que los datos sean correctos', 4);", true);
            }
        }