protected void btnEliminar_Command(object sender, CommandEventArgs e)
        {
            try
            {
                ValidaVariables();

                //Obtiene indice de la linea a actualizar
                int index = Convert.ToInt32(e.CommandArgument);

                string cert = grdFacturas.DataKeys[index].Value.ToString();

                NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];

                //Busca la factura a eliminar
                foreach (DataRow r in oFacturas.Datos.Tables[0].Rows)
                {
                    if (r["UUID"].ToString() == cert)
                    {
                        oFacturas.Datos.Tables[0].Rows.Remove(r);
                        break;
                    }
                }

                Session["oFacturas"] = oFacturas;

                grdFacturas.DataSource = oFacturas.Datos;
                grdFacturas.DataBind();
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            string sProveedor = "";

            try
            {
                //Ocultar los botones
                ReportViewer1.ShowPageNavigationControls       = false;
                ReportViewer1.ShowBackButton                   = false;
                ReportViewer1.ShowFindControls                 = false;
                ReportViewer1.ShowPrintButton                  = true;
                ReportViewer1.ShowExportControls               = true;
                ReportViewer1.LocalReport.EnableExternalImages = true;
                //ReportViewer1.LocalReport.ExecuteReportInCurrentAppDomain(AppDomain.CurrentDomain.Evidence);

                ReportViewer1.Reset();
                ReportViewer1.LocalReport.Dispose();
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.ReportPath = "Reports\\RepFacXFolio_" + ((Usuario)Session["oUsuario"]).Idioma + ".rdlc";
                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;

                //Si el usuario es un usuario del proveedor, agrega el proveedor a los filtros
                NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor(((Usuario)Session["oUsuario"]).Id);
                oProveedor.Cargar();
                if (oProveedor.Nombre != "" && oProveedor.Nombre != null)
                {
                    sProveedor = "'" + oProveedor.Id + "'";
                }

                DateTime fecFacIni = new DateTime(1900, 1, 1);
                DateTime fecFacFin = new DateTime(1900, 1, 1);
                DateTime fecIni    = new DateTime(1900, 1, 1);
                DateTime fecFin    = new DateTime(1900, 1, 1);

                NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();
                oFacturas.Cargar(sProveedor, "", "", "", fecFacIni, fecFacFin, fecIni, fecFin, 0, 0, "", txtOrden.Text, "");

                string subtitulo = ((Idioma)Session["oIdioma"]).Texto("OrdenDeCompra") + ":" + txtOrden.Text;

                ReportParameter[] reportParameter = new ReportParameter[2];
                reportParameter[0] = new ReportParameter("Titulo", ((Idioma)Session["oIdioma"]).Texto("FacXODC"));
                reportParameter[1] = new ReportParameter("Subtitulo", subtitulo);
                ReportViewer1.LocalReport.SetParameters(reportParameter);
                ReportViewer1.LocalReport.Refresh();

                ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DsFactReg_DsFactReg", oFacturas.Datos.Tables[0]));
                ReportViewer1.Visible = true;
                ReportViewer1.LocalReport.Refresh();
                divReporte.Visible = true;
                lblTitulo.Visible  = false;
                divFiltros.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    ValidaVariables();
                    EstableceIdioma((Idioma)Session["oIdioma"]);

                    NegocioPF.Sociedades oSociedades = new NegocioPF.Sociedades();
                    oSociedades.Cargar();
                    cboSociedades.DataSource     = oSociedades.Datos;
                    cboSociedades.DataTextField  = "Nombre";
                    cboSociedades.DataValueField = "id_sociedad";
                    cboSociedades.DataBind();
                    cboSociedades.Items.Insert(0, new ListItem(((Idioma)Session["oIdioma"]).Texto("Seleccionar") + " ...", "0"));

                    //Monedas
                    NegocioPF.Monedas oMonedas = new NegocioPF.Monedas();
                    oMonedas.Cargar();
                    cboMoneda.DataSource     = oMonedas.Datos;
                    cboMoneda.DataTextField  = "Id_moneda";
                    cboMoneda.DataValueField = "MonedaSAP";
                    cboMoneda.DataBind();
                    cboMoneda.Items.Insert(0, new ListItem(((Idioma)Session["oIdioma"]).Texto("Seleccionar") + " ...", "0"));

                    //Unidades de medida
                    NegocioPF.UnidadesMedida oUnidades = new NegocioPF.UnidadesMedida();
                    oUnidades.Cargar();
                    cboUnidad.DataSource     = oUnidades.Datos;
                    cboUnidad.DataTextField  = "Id_unidad";
                    cboUnidad.DataValueField = "UnidadSAP";
                    cboUnidad.DataBind();
                    cboUnidad.Items.Insert(0, new ListItem(((Idioma)Session["oIdioma"]).Texto("Seleccionar") + " ...", "0"));

                    NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();
                    oFacturas.Cargar(0);
                    Session["oFacturas"] = oFacturas;

                    txtFecha.Attributes.Add("onclick", "scwShow(this,event);");
                    txtTotal.Attributes.Add("readonly", "readonly");

                    divDetalle.Visible  = false;
                    divVisor.Visible    = false;
                    btnAceptar.Visible  = false;
                    btnCancelar.Visible = false;
                    btnAceptar.Attributes.Add("onclick", "document.body.style.cursor = 'wait';");
                }
                catch (Exception ex)
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
                }
            }

            //txtOrden.Text = txtOrdenHdn.Text;
            AgregaScriptCliente();
        }
Example #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    ValidaVariables();
                    EstableceIdioma((Idioma)Session["oIdioma"]);

                    //Si el usuario es un usuario del proveedor, por defautl se muestran todas sus facturas
                    NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor(((Usuario)Session["oUsuario"]).Id);
                    oProveedor.Cargar();
                    if (oProveedor.Nombre != "" && oProveedor.Nombre != null)
                    {
                        DateTime fecNull = new DateTime(1900, 1, 1);

                        NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();
                        //oFacturas.ValidarStatus(oProveedor.RFC);
                        oFacturas.Cargar("'" + oProveedor.Id + "'", "", "", "", fecNull, fecNull, fecNull, fecNull, 0, 0, "", "", "");
                        grdFacturas.DataSource = oFacturas.Datos;
                        grdFacturas.DataBind();
                    }


                    NegocioPF.Sociedades oSociedades = new NegocioPF.Sociedades();
                    oSociedades.Cargar();
                    cboFilSociedad.DataSource     = oSociedades.Datos;
                    cboFilSociedad.DataTextField  = "Nombre";
                    cboFilSociedad.DataValueField = "id_sociedad";
                    cboFilSociedad.DataBind();
                    cboFilSociedad.Items.Insert(0, new ListItem(((Idioma)Session["oIdioma"]).Texto("Seleccionar") + " ...", "0"));

                    Perfil   oPerfil  = new Perfil();
                    Permisos permisos = oPerfil.CargarPermisos(((Usuario)Session["oUsuario"]).Id, "ConsultaFacturas.aspx");
                    btnImportar.Visible = (permisos.Importar);

                    btnBuscar.Visible = true;

                    txtFecFacIni.Attributes.Add("onmouseover", "scwShow(this,event);");
                    txtFecFacFin.Attributes.Add("onmouseover", "scwShow(this,event);");
                    txtFecRegIni.Attributes.Add("onmouseover", "scwShow(this,event);");
                    txtFecRegFin.Attributes.Add("onmouseover", "scwShow(this,event);");

                    divFiltros.Visible  = true;
                    divImportar.Visible = false;
                }
                catch (Exception ex)
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
                }
            }

            AgregaScriptCliente();
        }
Example #5
0
        protected void btnAceptarImportar_Click(object sender, EventArgs e)
        {
            int registros = 0;

            try
            {
                ValidaVariables();
                //NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();

                if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
                {
                    string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);

                    string SaveLocation = Server.MapPath("") + "\\Data\\ESTATUS_FACT." + fn.Substring(fn.Length - 3, 3);

                    try
                    {
                        File1.PostedFile.SaveAs(SaveLocation);
                    }
                    catch (Exception ex)
                    {
                        MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgErrorCopiarArchivo"));
                    }

                    try
                    {
                        NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();

                        registros = oFacturas.ImportarStatusFact(((Usuario)Session["oUsuario"]).Id, SaveLocation);

                        divImportar.Visible = false;

                        btnBuscar_Click(null, null);

                        MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgRegActInsertados") + registros.ToString());
                    }
                    catch (Exception ex)
                    {
                        MessageBox(sender, e, "Error:" + ((Idioma)Session["oIdioma"]).Texto(ex.Message));
                    }
                }
                else
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgSeleccioneArchivo"));
                }
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnAceptarSubir_Click(object sender, EventArgs e)
        {
            int folio = 0;

            try
            {
                NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];
                folio = oFacturas.Guardar(((Usuario)Session["oUsuario"]).Id, Server.MapPath("") + "\\Facturas\\");

                //Mueve los archivos por FTP
                try
                {
                    oFacturas.MueveArchivos(((Usuario)Session["oUsuario"]).Id, Server.MapPath("") + "\\Facturas\\");
                }
                catch (Exception ex)
                {
                    //Maneja el error, pendiente de definir si se manda correo a alguien técnico o de soporte
                }

                //Manda el correo
                try
                {
                    EnviaRelFacRegXCorreo(ref oFacturas, folio);
                }
                catch (Exception ex)
                {
                    /* Se maneja el error */
                    oFacturas = new NegocioPF.Facturas();
                    oFacturas.Cargar(0);
                    Session["oFacturas"]   = oFacturas;
                    grdFacturas.DataSource = oFacturas.Datos;
                    grdFacturas.DataBind();
                }

                divFacturas.Visible = false;
                divImportar.Visible = true;

                oFacturas = new NegocioPF.Facturas();
                oFacturas.Cargar(0);
                Session["oFacturas"]   = oFacturas;
                grdFacturas.DataSource = oFacturas.Datos;
                grdFacturas.DataBind();

                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgFactsGuardadas") + " " + folio.ToString());
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnVerPDF_Command(object sender, CommandEventArgs e)
        {
            string archivo = "";

            try
            {
                ValidaVariables();

                //Obtiene indice de la factura a consultar
                int index = Convert.ToInt32(e.CommandArgument);

                string cert = grdFacturas.DataKeys[index][0].ToString();

                //Busca el nombre de la factura
                NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];

                //Busca el nombre del archivo
                foreach (DataRow r in oFacturas.Datos.Tables[0].Rows)
                {
                    if (r["UUID"].ToString() == cert)
                    {
                        archivo = r["pdf"].ToString();
                        break;
                    }
                }

                if (archivo.Length > 0)
                {
                    Session["archivo"] = "Facturas/" + archivo;

                    string newWin = "OpenPopupCenter('VisorPDF.aspx','Factura',670,700,0);";

                    ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);
                }
                else
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgPDFInexistente"));
                }
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnGenerarFin_Click(object sender, EventArgs e)
        {
            int    registros = 0;
            string nomFile   = "";

            try
            {
                ValidaVariables();

                NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();

                string dirDestino = Server.MapPath("") + "\\Facturas\\";


                registros = oFacturas.GenerarTXTFinancieras(((Usuario)Session["oUsuario"]).Id,
                                                            NegocioPF.Rutinas.ConvierteTextToFecha(txtFinFecIni.Text),
                                                            NegocioPF.Rutinas.ConvierteTextToFecha(txtFinFecFin.Text),
                                                            dirDestino,
                                                            ref nomFile);

                if (registros > 0)
                {
                    string txtPath = dirDestino + nomFile;
                    Response.ContentType = "text/plain";
                    Response.AppendHeader("content-disposition",
                                          "attachment; filename=" + nomFile);
                    Response.TransmitFile(txtPath);
                    Response.End();
                }

                if (registros == 0)
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgNoHayFactPend"));
                }
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, "Error:" + ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnCancelarAgregar_Click(object sender, EventArgs e)
        {
            divDetalle.Visible  = false;
            divVisor.Visible    = false;
            divFacturas.Visible = false;

            NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];
            if (oFacturas.Datos == null)
            {
                divImportar.Visible = true;
            }
            else
            {
                if (oFacturas.Datos.Tables[0].Rows.Count > 0)
                {
                    divFacturas.Visible = true;
                }
                else
                {
                    divImportar.Visible = true;
                }
            }
        }
Example #10
0
        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            string proveedor;

            try
            {
                ValidaVariables();

                NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();

                NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor(((Usuario)Session["oUsuario"]).Id);
                oProveedor.Cargar();
                if (oProveedor.Nombre != "" && oProveedor.Nombre != null)
                {
                    proveedor = oProveedor.Id;
                }
                else
                {
                    proveedor = txtProveedor.Text;
                }

                DateTime fecFacIni = new DateTime(1900, 1, 1);
                if (txtFecFacIni.Text != "")
                {
                    fecFacIni = ConvierteTextToFecha(txtFecFacIni.Text);
                }

                DateTime fecFacFin = new DateTime(1900, 1, 1);
                if (txtFecFacIni.Text != "")
                {
                    fecFacFin = ConvierteTextToFecha(txtFecFacIni.Text);
                }

                DateTime fecRegIni = new DateTime(1900, 1, 1);
                if (txtFecRegIni.Text != "")
                {
                    fecRegIni = ConvierteTextToFecha(txtFecRegIni.Text);
                }

                DateTime fecRegFin = new DateTime(1900, 1, 1);
                if (txtFecRegFin.Text != "")
                {
                    fecRegFin = ConvierteTextToFecha(txtFecRegFin.Text);
                }

                string sociedad = "";
                if (cboFilSociedad.SelectedValue != "0")
                {
                    sociedad = "'" + cboFilSociedad.SelectedValue + "'";
                }

                int folInicial = 0;
                if (txtFolIni.Text != "")
                {
                    folInicial = Convert.ToInt32(txtFolIni.Text);
                }

                int folFinal = 0;
                if (txtFolFin.Text != "")
                {
                    folFinal = Convert.ToInt32(txtFolFin.Text);
                }

                //oFacturas.ValidarStatus(txtEmisor.Text);

                oFacturas.Cargar("'" + proveedor.Trim() + "'", txtEmisor.Text, txtNombre.Text, txtFactura.Text,
                                 fecFacIni, fecFacFin, fecRegIni, fecRegFin, folInicial, folFinal, sociedad, txtOrden.Text, txtEntrega.Text);

                grdFacturas.DataSource = oFacturas.Datos;
                grdFacturas.DataBind();
                divImportar.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            //string sProveedor = "";
            string sProveedores = "";
            string sNomProv     = "";
            int    iNumProv     = 0;

            try
            {
                //Ocultar los botones
                ReportViewer1.ShowPageNavigationControls       = false;
                ReportViewer1.ShowBackButton                   = false;
                ReportViewer1.ShowFindControls                 = false;
                ReportViewer1.ShowPrintButton                  = true;
                ReportViewer1.ShowExportControls               = true;
                ReportViewer1.LocalReport.EnableExternalImages = true;
                //ReportViewer1.LocalReport.ExecuteReportInCurrentAppDomain(AppDomain.CurrentDomain.Evidence);

                ReportViewer1.Reset();
                ReportViewer1.LocalReport.Dispose();
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.ReportPath = "Reports\\RepFacXFolio_" + ((Usuario)Session["oUsuario"]).Idioma + ".rdlc";
                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;

                NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor(((Usuario)Session["oUsuario"]).Id);
                oProveedor.Cargar();
                iNumProv = 0;
                if (oProveedor.Nombre != "" && oProveedor.Nombre != null)
                {
                    sProveedores = "'" + oProveedor.Id + "'";
                    sNomProv     = oProveedor.Nombre;
                }
                else
                {
                    //Recupera los proveedores seleccionados
                    int cont = 0;
                    foreach (ListItem item in DropDownCheckBoxes1.Items)
                    {
                        if (item.Selected)
                        {
                            sProveedores += "'" + item.Value + "',";

                            if (cont <= 3)
                            {
                                sNomProv += item.Text + ",";
                            }
                            else
                            {
                                sNomProv = ((Idioma)Session["oIdioma"]).Texto("Varios") + ",";
                            }

                            cont++;
                        }
                    }

                    if (sProveedores.Length > 0)
                    {
                        sProveedores = sProveedores.Substring(0, sProveedores.Length - 1);
                        sNomProv     = sNomProv.Substring(0, sNomProv.Length - 1);
                    }

                    //Si se seleccionan a todos los proveedores
                    if (DropDownCheckBoxes1.Items.Count == cont)
                    {
                        sProveedores = "";
                        sNomProv     = ((Idioma)Session["oIdioma"]).Texto("Todos");
                    }
                }

                DateTime fecFact = new DateTime(1900, 1, 1);
                DateTime fecIni  = new DateTime(1900, 1, 1);
                DateTime fecFin  = new DateTime(1900, 1, 1);

                NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();
                oFacturas.Cargar(sProveedores, "", "", "", fecFact, fecFact, fecIni, fecFin, 0, 0, "", "", "");

                string subtitulo = ((Idioma)Session["oIdioma"]).Texto("Proveedor") + ":" + (iNumProv > 5 ? ((Idioma)Session["oIdioma"]).Texto("Varios") : sNomProv);

                ReportParameter[] reportParameter = new ReportParameter[2];
                reportParameter[0] = new ReportParameter("Titulo", ((Idioma)Session["oIdioma"]).Texto("RepFacXProveedor"));
                reportParameter[1] = new ReportParameter("Subtitulo", subtitulo);
                ReportViewer1.LocalReport.SetParameters(reportParameter);
                ReportViewer1.LocalReport.Refresh();

                ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DsFactReg_DsFactReg", oFacturas.Datos.Tables[0]));
                ReportViewer1.Visible = true;
                ReportViewer1.LocalReport.Refresh();

                divReporte.Visible = true;
                lblTitulo.Visible  = false;
                divFiltros.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
Example #12
0
        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            string sProveedor  = "";
            string sSociedades = "";
            string sNomSoc     = "";

            try
            {
                //Ocultar los botones
                ReportViewer1.ShowPageNavigationControls       = false;
                ReportViewer1.ShowBackButton                   = false;
                ReportViewer1.ShowFindControls                 = false;
                ReportViewer1.ShowPrintButton                  = true;
                ReportViewer1.ShowExportControls               = true;
                ReportViewer1.LocalReport.EnableExternalImages = true;
                //ReportViewer1.LocalReport.ExecuteReportInCurrentAppDomain(AppDomain.CurrentDomain.Evidence);

                ReportViewer1.Reset();
                ReportViewer1.LocalReport.Dispose();
                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.ReportPath = "Reports\\RepFacXFolio_" + ((Usuario)Session["oUsuario"]).Idioma + ".rdlc";
                ReportViewer1.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;

                //Si el usuario es un usuario del proveedor, agrega el proveedor a los filtros
                NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor(((Usuario)Session["oUsuario"]).Id);
                oProveedor.Cargar();
                if (oProveedor.Nombre != "" && oProveedor.Nombre != null)
                {
                    sProveedor = "'" + oProveedor.Id + "'";
                }

                //Recupera las sociedades seleccionadas
                foreach (ListItem item in cboSociedades.Items)
                {
                    if (item.Selected)
                    {
                        sSociedades += "'" + item.Value + "',";
                        sNomSoc     += item.Text + ",";
                    }
                }
                if (sSociedades.Length > 0)
                {
                    sSociedades = sSociedades.Substring(0, sSociedades.Length - 1);
                    sNomSoc     = sNomSoc.Substring(0, sNomSoc.Length - 1);
                }

                DateTime fecFact = new DateTime(1900, 1, 1);
                DateTime fecIni  = new DateTime(1900, 1, 1);
                DateTime fecFin  = new DateTime(1900, 1, 1);

                NegocioPF.Facturas oFacturas = new NegocioPF.Facturas();
                oFacturas.Cargar(sProveedor, "", "", "", fecFact, fecFact, fecIni, fecFin, 0, 0, sSociedades, "", "");

                string subtitulo = ((Idioma)Session["oIdioma"]).Texto("Sociedades") + ":" + sNomSoc;

                ReportParameter[] reportParameter = new ReportParameter[2];
                reportParameter[0] = new ReportParameter("Titulo", ((Idioma)Session["oIdioma"]).Texto("RepFacXSociedad"));
                reportParameter[1] = new ReportParameter("Subtitulo", subtitulo);
                ReportViewer1.LocalReport.SetParameters(reportParameter);
                ReportViewer1.LocalReport.Refresh();

                ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DsFactReg_DsFactReg", oFacturas.Datos.Tables[0]));
                ReportViewer1.Visible = true;
                ReportViewer1.LocalReport.Refresh();

                divReporte.Visible = true;
                lblTitulo.Visible  = false;
                divFiltros.Visible = false;
            }
            catch (Exception ex)
            {
                MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
            }
        }
        private void EnviaRelFacRegXCorreo(ref NegocioPF.Facturas oFacturas, int folio)
        {
            try
            {
                NegocioPF.Proveedor oProveedor = new NegocioPF.Proveedor();
                oProveedor.Cargar(txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" ")));

                string sHtml = "<html>";
                sHtml += "<table style='font-family:arial;color:black;font-size:12px; text-align:justify' border='0' width=\"800\">";
                sHtml += "<tr><td><p>" + ((Idioma)Session["oIdioma"]).Texto("MsgSaludo") + "</p></td></tr>";
                sHtml += "<tr><td></td></tr>";
                sHtml += "<tr><td><p>" + ((Idioma)Session["oIdioma"]).Texto("MsgRelFacReg") + " " + folio.ToString() + ":</p></td></tr>";
                sHtml += "<tr><td></td></tr>";

                if (oFacturas.Datos.Tables[0].Rows.Count > 0)
                {
                    sHtml += "<tr><td><table style='font-family:arial;color:black;font-size:12px; text-align:justify' border='1' cellspacing='0' cellpadding='2' width=\"800\">";
                    sHtml += "<tr>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=80px'> " + grdFacturas.Columns[0].HeaderText + "</td>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=150px'>" + grdFacturas.Columns[1].HeaderText + "</td>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=100px'>" + grdFacturas.Columns[2].HeaderText + "</td>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=100px'>" + grdFacturas.Columns[3].HeaderText + "</td>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=50px'>" + grdFacturas.Columns[4].HeaderText + "</td>";
                    sHtml += "<td style='background:#F8EFFB; text-align:center; width=80px'>" + grdFacturas.Columns[5].HeaderText + "</td>";
                    //sHtml += "<td style='background:#F8EFFB; text-align:center; width=100px'>" + grdFacturas.Columns[6].HeaderText + "</td>";
                    //sHtml += "<td style='background:#F8EFFB; text-align:center; width=100px'>" + grdFacturas.Columns[7].HeaderText + "</td>";
                    sHtml += "</tr>";

                    foreach (GridViewRow r in grdFacturas.Rows)
                    {
                        sHtml += "<tr>";
                        sHtml += "<td style='width=80px;'>" + r.Cells[0].Text + "</td>";
                        sHtml += "<td style='width=150px;'>" + r.Cells[1].Text + "</td>";
                        sHtml += "<td style='width=100px;'>" + r.Cells[2].Text + "</td>";
                        sHtml += "<td style='width=100px;'>" + r.Cells[3].Text + "</td>";
                        sHtml += "<td style='width=50px;'>" + r.Cells[4].Text + "</td>";
                        sHtml += "<td style='width=80px;'>" + r.Cells[5].Text + "</td>";
                        //sHtml += "<td style='width=100px;'>" + r.Cells[6].Text + "</td>";
                        //sHtml += "<td style='width=100px;'>" + r.Cells[7].Text + "</td>";
                        sHtml += "</tr>";
                    }
                    sHtml += "</table></td></tr>";
                }
                sHtml += "<tr><td></td></tr>";
                sHtml += "<tr><td>" + ((Idioma)Session["oIdioma"]).Texto("Saludos") + "</td></tr>";
                sHtml += "<tr><td></td></tr>";
                sHtml += "<tr><td><img src=cid:FirmaPF></td></tr>";
                sHtml += "</table>";
                sHtml += "</Html>";

                EmailTemplate oEmail = new EmailTemplate("");

                oEmail.To.Add(oProveedor.eMail);

                oEmail.From    = new MailAddress(@System.Configuration.ConfigurationSettings.AppSettings["EmailFrom"], "PortalFacturas", System.Text.Encoding.UTF8);
                oEmail.Subject = ((Idioma)Session["oIdioma"]).Texto("FacturasRegistradas") + " " + ((Idioma)Session["oIdioma"]).Texto("ConElFolio").ToLower() + " " + folio.ToString();

                //Agrega Logo
                AlternateView altView = AlternateView.CreateAlternateViewFromString(sHtml, null, MediaTypeNames.Text.Html);

                string         imageSource = (Server.MapPath("") + "\\Images\\FirmaPF.jpg");
                LinkedResource PictureRes  = new LinkedResource(imageSource, MediaTypeNames.Image.Jpeg);
                PictureRes.ContentId = "FirmaPF";
                altView.LinkedResources.Add(PictureRes);

                oEmail.AlternateViews.Add(altView);

                try
                {
                    oEmail.Send();
                }
                catch (Exception ex)
                {
                    throw new Exception("MsgFacRegEnvCorreo");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        protected void btnAceptarAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                NegocioPF.Factura oFactura = (Factura)Session["oFactura"];
                if (oFactura.Existe())
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgFactYaRegistrada"));
                    return;
                }

                oFactura.Moneda = cboMoneda.SelectedValue;

                //Valida si existe el Emisor en el catálogo de proveedores
                NegocioPF.Proveedor oProveedor = new Proveedor();
                oProveedor.Cargar(txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" ")));
                if (oProveedor.Nombre == "" || oProveedor.Nombre == null)
                {
                    throw new Exception("MsgEmisorInexistente");
                }

                //Valida que el receptor corresponda a la sociedad seleccionada
                NegocioPF.Sociedad oSociedad = new NegocioPF.Sociedad(cboSociedades.SelectedValue);
                oSociedad.Cargar();

                if (oSociedad.RFC != txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" ")))
                {
                    throw new Exception("MsgErrFactNoCorrSociedad");
                }

                //Valida que la sociedad esté activa para el proveedor
                bool existe = false;
                foreach (string sociedad in oProveedor.Sociedades)
                {
                    if (sociedad == cboSociedades.SelectedValue)
                    {
                        existe = true;
                    }
                }

                if (!existe)
                {
                    throw new Exception("MsgSocNoActProv");
                }

                //Valida la fecha de la factura
                NegocioPF.Configuracion oConfig = new NegocioPF.Configuracion();
                oConfig.Cargar();

                DateTime dFechaMinima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                dFechaMinima = dFechaMinima.AddMonths(oConfig.MesesAtras * -1);

                DateTime dFechaMaxima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                dFechaMaxima = dFechaMaxima.AddMonths(oConfig.MesesAdelante);

                DateTime dFecha = new DateTime(Convert.ToInt32(txtFecha.Text.Substring(0, 4)),
                                               Convert.ToInt32(txtFecha.Text.Substring(5, 2)),
                                               Convert.ToInt32(txtFecha.Text.Substring(8, 2)));

                if (dFecha < dFechaMinima)
                {
                    throw new Exception("MsgErrFactMuyAtrasada");
                }

                if (dFecha > dFechaMaxima)
                {
                    throw new Exception("MsgErrFactFecMuyAdelantada");
                }

                if (oProveedor.RFC != oFactura.Emisor)
                {
                    throw new Exception("MsgErrPedDifProv");
                }

                //Establece el tipo de factura
                oFactura.TipoFactura = "NFI";

                NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];
                DataRow            r         = oFacturas.Datos.Tables[0].NewRow();
                r["id_sociedad"] = cboSociedades.SelectedValue;
                r["folio"]       = 0;
                r["UUID"]        = txtUUID.Text;
                r["folioFact"]   = txtFactura.Text;
                r["emisor"]      = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" "));
                r["receptor"]    = txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" "));
                r["ordenCompra"] = "";
                r["fecha"]       = txtFecha.Text;
                r["importe"]     = txtImporte.Text;
                r["id_moneda"]   = cboMoneda.SelectedValue;
                r["pdf"]         = Session["pdf"].ToString();
                r["xml"]         = Session["xml"].ToString();
                oFacturas.Datos.Tables[0].Rows.Add(r);
                oFacturas.Relacion.Add(oFactura);
                Session["oFacturas"] = oFacturas;

                grdFacturas.DataSource = oFacturas.Datos;
                grdFacturas.DataBind();

                oViewer.Visible     = false;
                divDetalle.Visible  = false;
                divFacturas.Visible = true;

                btnAceptar.Visible  = (oFacturas.Datos.Tables[0].Rows.Count > 0);
                btnCancelar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0);

                divImportar.Visible = true;

                //ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", "<script>confirmation();</script>", false);
            }
            catch (Exception ex)
            {
                if (ex.Message.Substring(0, 3) == "Msg")
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
                }
                else
                {
                    MessageBox(sender, e, ex.Message);
                }
            }
        }
        protected void btnAceptarAgregar_Click(object sender, EventArgs e)
        {
            bool existe = false;

            try
            {
                if (txtMaterial.Text != "")
                {
                    btnAceptarItem_Click(null, null);
                }

                NegocioPF.Factura oFactura = (Factura)Session["oFactura"];

                NegocioPF.Proveedor oProveedor = new Proveedor(((Usuario)Session["oUsuario"]).Id);
                oProveedor.Cargar();

                //Recupera el emisor
                string emisor;
                if (txtEmisor.Text.IndexOf(" ") >= 0)
                {
                    emisor = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" "));
                }
                else
                {
                    emisor = txtEmisor.Text.Trim();
                }

                //Si es un proveedor, valida si puede subir la factura, propia o de un tercero
                if (oProveedor.RFC != "")
                {
                    if (oProveedor.RFC != emisor)
                    {
                        if (oProveedor.Intermediario == false)
                        {
                            throw new Exception("MsgErrFacDifProv");
                        }
                    }
                }

                //Carga al emisor
                oProveedor.Cargar(emisor);

                //Valida que el proveedor exista
                if (oProveedor.RFC == "")
                {
                    throw new Exception("MsgProvInexistente");
                }
                else
                {
                    txtEmisor.Text = oProveedor.RFC + " " + oProveedor.Nombre;
                }

                //Valida que el Emisor pueda facturar en la sociedad seleccionada
                existe = false;
                foreach (string sociedad in oProveedor.Sociedades)
                {
                    if (sociedad == cboSociedades.SelectedValue)
                    {
                        existe = true;
                    }
                }

                if (!existe)
                {
                    throw new Exception("MsgSocNoActProv");
                }

                //Establece el emisor en la factura
                oFactura.Emisor = emisor;

                //Valida si la factura ya fue registrada
                oFactura.UUID = txtFactura.Text;

                if (oFactura.Existe())
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto("MsgFactYaRegistrada"));
                    return;
                }

                //Valida la fecha de la factura
                NegocioPF.Configuracion oConfig = new NegocioPF.Configuracion();
                oConfig.Cargar();

                DateTime dFechaMinima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                dFechaMinima = dFechaMinima.AddMonths(oConfig.MesesAtras * -1);

                DateTime dFechaMaxima = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                dFechaMaxima = dFechaMaxima.AddMonths(oConfig.MesesAdelante);

                DateTime dFecha = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text);

                if (dFecha < dFechaMinima)
                {
                    throw new Exception("MsgErrFactMuyAtrasada");
                }

                if (dFecha > dFechaMaxima)
                {
                    throw new Exception("MsgErrFactFecMuyAdelantada");
                }

                //Establece los datos de la factura
                oFactura.Sociedad    = cboSociedades.SelectedValue;
                oFactura.NumFactura  = txtFactura.Text;
                oFactura.Fecha       = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text);
                oFactura.Importe     = Convert.ToDouble(txtImpSinIva.Text);
                oFactura.Impuestos   = Convert.ToDouble(txtImpuestos.Text);
                oFactura.Moneda      = cboMoneda.SelectedValue;
                oFactura.TipoFactura = "EFI";

                //Determina el indicador de impuestos
                if (oFactura.Impuestos > 0)
                {
                    oFactura.Tasa = Convert.ToInt32((Convert.ToDouble(txtImpuestos.Text) / Convert.ToDouble(txtImpSinIva.Text)) * 100);
                    NegocioPF.Indicador oIndicador = new Indicador();
                    oIndicador.Buscar(oFactura.Tasa);
                    if (oIndicador.ID != "")
                    {
                        oFactura.IndImpuestos = oIndicador.ID;
                    }
                    else
                    {
                        throw new Exception("MsgErrImpuestos");
                    }
                }

                //Agrega la factura a la colección de facturas
                NegocioPF.Facturas oFacturas = (NegocioPF.Facturas)Session["oFacturas"];
                DataRow            r         = oFacturas.Datos.Tables[0].NewRow();
                r["id_sociedad"] = cboSociedades.SelectedValue;
                r["folio"]       = 0;
                r["UUID"]        = txtFactura.Text;
                r["folioFact"]   = txtFactura.Text;
                r["emisor"]      = txtEmisor.Text.Substring(0, txtEmisor.Text.IndexOf(" "));
                r["receptor"]    = txtReceptor.Text.Substring(0, txtReceptor.Text.IndexOf(" "));
                r["ordenCompra"] = "";
                r["fecha"]       = NegocioPF.Rutinas.ConvierteTextToFecha(txtFecha.Text);
                r["importe"]     = txtTotal.Text;
                r["id_moneda"]   = cboMoneda.SelectedValue;
                r["pdf"]         = Session["pdf"].ToString();
                oFacturas.Datos.Tables[0].Rows.Add(r);
                oFacturas.Relacion.Add(oFactura);
                Session["oFacturas"] = oFacturas;

                grdFacturas.DataSource = oFacturas.Datos;
                grdFacturas.DataBind();

                oViewer.Visible     = false;
                divDetalle.Visible  = false;
                divFacturas.Visible = true;

                btnAceptar.Visible  = (oFacturas.Datos.Tables[0].Rows.Count > 0);
                btnCancelar.Visible = (oFacturas.Datos.Tables[0].Rows.Count > 0);

                divImportar.Visible = true;

                //ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", "<script>confirmation();</script>", false);
            }
            catch (Exception ex)
            {
                if (ex.Message.Substring(0, 3) == "Msg")
                {
                    MessageBox(sender, e, ((Idioma)Session["oIdioma"]).Texto(ex.Message));
                }
                else
                {
                    MessageBox(sender, e, ex.Message);
                }
            }
        }