/// <summary>
        /// Registrar nuevo pedido
        /// </summary>
        private void Nuevo()
        {

            string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml");
            string sRutaCertificados = Server.MapPath("~/Archivos/");

            oFactura = new MedDAL.DAL.facturas();
            oblFacturas = new MedNeg.Facturas.BlFacturas();
            oFactura.idCliente = (int)Session["sIdCliente"];

            if ((bool)Session["sEsDePedido"] == true)
                oFactura.idPedido = (int)Session["sIdPedido"];

            if ((bool)Session["sEsDeRemision"] == true)
                oFactura.idRemision = (int)Session["sIdRemision"];

            if ((bool)Session["sEsDeReceta"] == true)
                oFactura.idReceta = (int)Session["sIdReceta"];

            oFactura.TipoFactura = cmbTipoFactura.SelectedValue.ToString();
            oFactura.Fecha = DateTime.Now;
            oFactura.Estatus = cmbEstatus.SelectedValue;

            //Validar Folio Repetido
            if (ValidaFolioRepetido())
            {

                //Validar si se esta respetando el folio automatico y verificar si aun es el mismo o cambio su valor
                if (Session["iFolioAutomatico"].Equals(txbFolio.Text))
                {
                    oFactura.Folio = oblFacturas.RecuperaFolioAutomatico(sRutaArchivoConfig).ToString();
                }
                else
                {
                    oFactura.Folio = txbFolio.Text;
                }

                if (oblFacturas.NuevoRegistro(oFactura))
                {
                    //Datos de la bitacora
                    string sDatosBitacora = string.Empty;
                    sDatosBitacora += "Tipo:" + cmbTipoFactura.SelectedValue.ToString() + " ";
                    sDatosBitacora += "Folio:" + txbFolio.Text + " ";
                    sDatosBitacora += "Fecha:" + txbFecha.Text + " ";
                    sDatosBitacora += "Estatus:" + cmbEstatus.SelectedItem.ToString() + " ";
                    sDatosBitacora += "Cliente:" + txbCliente.Text + " ";


                    // Registrar la partida de la remision
                    oFactura = new MedDAL.DAL.facturas();
                    oFactura = oblFacturas.BuscarFacturasFolio(txbFolio.Text);
                    int iIdFactura = oFactura.idFactura;
                    bool bRegistroFallido = false;

                    //Recorrer el objeto de sesion lstDetallePartida que contiene los datos de la partida
                    foreach (MedNeg.Facturas.BlDetallePartida facturaDetalle in (List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"])
                    {
                        oblFacturas = new MedNeg.Facturas.BlFacturas();
                        MedDAL.DAL.facturas_partida oFacturaPartida = new MedDAL.DAL.facturas_partida();

                        oFacturaPartida.idFactura = iIdFactura;
                        oFacturaPartida.idProducto = facturaDetalle.iIdProducto;
                        oFacturaPartida.Cantidad = facturaDetalle.dCantidad;
                        oFacturaPartida.IEPS = facturaDetalle.dIeps;
                        oFacturaPartida.Iva = facturaDetalle.dIva;
                        oFacturaPartida.Precio = facturaDetalle.dPrecio;
                        oFacturaPartida.Descripcion = facturaDetalle.SProducto;

                        //Registrar el detalle del pedido
                        if (!oblFacturas.NuevoDetallePartida(oFacturaPartida))
                        {
                            bRegistroFallido = true;
                        }
                        else
                        {
                            sDatosBitacora += "Producto:" + facturaDetalle.iIdProducto.ToString() + " ";
                            sDatosBitacora += "Cant:" + facturaDetalle.dCantidad.ToString() + " ";
                            sDatosBitacora += "IEPS:" + facturaDetalle.dIeps.ToString() + " ";
                            sDatosBitacora += "Iva:" + facturaDetalle.dIva.ToString() + " ";
                            sDatosBitacora += "Precio:" + facturaDetalle.dPrecio.ToString() + " ";
                            sDatosBitacora += "Total:" + Convert.ToDecimal((facturaDetalle.dCantidad * facturaDetalle.dPrecio) + facturaDetalle.dIeps + facturaDetalle.dIva) + ", ";
                        }
                    }

                    //Registrar datos de la remision en la bitacora
                    //lblAviso.Text = "El usuario se ha registrado con éxito";
                    oBitacora = new MedDAL.DAL.bitacora();
                    oblBitacora = new MedNeg.Bitacora.BlBitacora();
                    oBitacora.FechaEntradaSrv = DateTime.Now;
                    oBitacora.FechaEntradaCte = DateTime.Now;//Linea Temporal
                    oBitacora.Modulo = "Factura";
                    oBitacora.Usuario = Session["usuario"].ToString();
                    oBitacora.Nombre = Session["nombre"].ToString();
                    oBitacora.Accion = "Nueva Factura";
                    oBitacora.Descripcion = sDatosBitacora;
                    if (!oblBitacora.NuevoRegistro(oBitacora))
                    {
                        lblDatos.Text = "El evento no pudo ser registrado en la bitácora";
                    }

                    //Actualizar el consecutivo en la bitacora
                    oblFacturas.ActualizarFolioFactura(sRutaArchivoConfig);

                    //Generar la factura electronica
                    if (cmbModoFactura.SelectedValue == "2")
                    {
                        oblFacturas = new MedNeg.Facturas.BlFacturas();
                        oblFacturas.GenerarFacturaElectronica(iIdFactura, sRutaCertificados, Session["usuario"].ToString(), (int)Session["sIdCliente"], txbFolio.Text);

                        System.IO.FileInfo fFactura = new System.IO.FileInfo(Server.MapPath("~/Archivos/FacturasElectronicas/FacturaE-" + txbFolio.Text + ".xml"));

                        Response.Clear();
                        Response.AddHeader("Content-Disposition", "attachment; filename=" + fFactura.Name);
                        Response.AddHeader("Content-Length", fFactura.Length.ToString());
                        Response.ContentType = "application/....";
                        Response.WriteFile(fFactura.FullName);
                        Response.End();
                    }

                    //Saber si se va a actualizar el estatus del pedido
                    if ((bool)Session["sEsDePedido"] == true)
                    {
                        //Actualizar el estatus del pedido en caso de que se haya hecho la remision a partir de un pedido
                        MedDAL.DAL.pedidos oPedido = new MedDAL.DAL.pedidos();
                        MedNeg.Pedidos.BlPedidos oblPedido = new MedNeg.Pedidos.BlPedidos();

                        //Actualizar el estatus del pedido
                        oPedido = oblPedido.BuscarPedido((int)Session["sIdPedido"]);
                        oPedido.Estatus = "3";

                        if (!oblPedido.EditarRegistro(oPedido))
                        {
                            lblDatos.Text = "No se pudo cambiar el estatus del pedido, contacte al administrador";
                        }
                    }

                    //Saber si se va a actualizar el estatus de la remision
                    if ((bool)Session["sEsDeRemision"] == true)
                    {
                        //Actualizar el estatus del pedido
                        MedDAL.DAL.remisiones oRemision = new MedDAL.DAL.remisiones();
                        MedNeg.Remisiones.BlRemisiones oblRemision = new MedNeg.Remisiones.BlRemisiones();

                        oRemision = oblRemision.BuscarRemision((int)Session["sIdRemision"]);
                        oRemision.Estatus = "3";

                        if (!oblRemision.EditarRegistro(oRemision))
                        {
                            lblDatos.Text = "No se pudo cambiar el estatus de la remisión, contacte al administrador";
                        }
                    }

                    //Saber si se va a actualizar el estatus de la remision
                    if ((bool)Session["sEsDeReceta"] == true)
                    {
                        //Actualizar el estatus del pedido
                        MedDAL.DAL.remisiones oRemision = new MedDAL.DAL.remisiones();
                        MedNeg.Remisiones.BlRemisiones oblRemision = new MedNeg.Remisiones.BlRemisiones();

                        MedDAL.DAL.recetas oReceta = new MedDAL.DAL.recetas();
                        MedNeg.Recetas.BlRecetas oblRecetas = new MedNeg.Recetas.BlRecetas();

                        oReceta = oblRecetas.BuscarReceta((int)Session["sIdReceta"]);
                        oReceta.Estatus = "2";

                        if (!oblRecetas.EditarRegistro(oReceta))
                        {
                            lblDatos.Text = "No se pudo cambiar el estatus de la receta, contacte al administrador";
                        }
                    }

                }
                else
                {

                }

            }
            else  //si es folio repetido
            {
                lblDatos.Text = "Folio Repetido, no se puede generar el pedido";

            }
        }
        /// <summary>
        /// PAGE LOAD
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {

            #region Interfaz
            Hashtable htbPermisos = (Hashtable)Session["permisos"];
            char cPermiso = 'N';

            try
            {
                cPermiso = (char)htbPermisos["facturas"];

                Master.FindControl("btnNuevo").Visible = false;
                Master.FindControl("btnEliminar").Visible = false;
                Master.FindControl("btnAceptar").Visible = false;
                Master.FindControl("btnCancelar").Visible = false;
                Master.FindControl("btnImprimir").Visible = false;
                //Master.FindControl("imgBtnReportes").Visible = false;
                //Master.FindControl("btnMostrar").Visible = false;
                //Master.FindControl("btnReportes").Visible = false;
                //Master.FindControl("rdbFiltro1").Visible = false;
                //Master.FindControl("rdbFiltro2").Visible = false;
                //Master.FindControl("rdbFiltro3").Visible = false;
                //Master.FindControl("btnBuscar").Visible = false;
                //Master.FindControl("txtBuscar").Visible = false;
                //Master.FindControl("lblBuscar").Visible = false;


                //imbNuevo = (ImageButton)Master.FindControl("imgBtnNuevo");
                //imbNuevo.Click += new ImageClickEventHandler(this.imbNuevo_Click);
                imbEditar = (ImageButton)Master.FindControl("imgBtnEditar");
                imbEditar.Click += new ImageClickEventHandler(this.imbEditar_Click);
                //imbEliminar = (ImageButton)Master.FindControl("imgBtnEliminar");
                //imbEliminar.Click += new ImageClickEventHandler(this.imbEliminar_Click);
                imbMostrar = (ImageButton)Master.FindControl("imgBtnMostrar");
                imbMostrar.Click += new ImageClickEventHandler(this.imbMostrar_Click);
                imbAceptar = (ImageButton)Master.FindControl("imgBtnAceptar");
                imbAceptar.Click += new ImageClickEventHandler(this.imbAceptar_Click);
                //imbCancelar = (ImageButton)Master.FindControl("imgBtnCancelar");
                //imbCancelar.Click += new ImageClickEventHandler(this.imbCancelar_Click);
                imbReportes = (ImageButton)Master.FindControl("imgBtnReportes");
                imbReportes.Click += new ImageClickEventHandler(this.imbReportes_Click);

                rdbTodos = (RadioButton)Master.FindControl("rdbFiltro1");
                rdbTodos.Text = "Folio";
                rdbClave = (RadioButton)Master.FindControl("rdbFiltro2");
                rdbClave.Text = "Cliente";
                rdbNombre = (RadioButton)Master.FindControl("rdbFiltro3");
                rdbNombre.Text = "Fecha";

                btnBuscar = (Button)Master.FindControl("btnBuscar");
                btnBuscar.Click += new EventHandler(this.btnBuscar_Click);
                txbBuscar = (TextBox)Master.FindControl("txtBuscar");


                lblNombreModulo = (Label)Master.FindControl("lblNombreModulo");
                lblNombreModulo.Text = "Cuentas Por Cobrar";
                lblEditar = (Label)Master.FindControl("lblEditar");
                lblEditar.Text = "Aplicación";




                switch (cPermiso)
                {
                    case 'T':
                        break;
                    case 'E':
                        DesactivarEdicionEliminacion();
                        break;
                    case 'L':
                        DesactivarEdicionEliminacion();
                        DesactivarNuevo();
                        break;
                }
            #endregion

                dgvPartidaDetalle.Visible = true;
                dgvPartidaDetalle.ShowHeader = true;
                dgvPartidaDetalle.EmptyDataText = "Sin Detalle";
                dgvPartidaDetalle.DataSource = ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]);
                dgvPartidaDetalle.DataBind();
                txbClave.TextChanged += new EventHandler(txbClave_TextChanged);

                if (!IsPostBack)
                {

                    // Saber si estan activados los folios automaticos y poner su valor por default
                    // Se almacena en una variable de sesión para comparar que se esta respetando el formato automatico
                    // y validar que no haya cambiado el folio de pedidos debido a otro registro mientras se hacia el actual 
                    oblFacturas = new MedNeg.Facturas.BlFacturas();
                    Session["iFolioAutomatico"] = oblFacturas.RecuperaFolioAutomatico(Server.MapPath("~/Archivos/Configuracion.xml"));
                    txbFolio.Text = Session["iFolioAutomatico"].ToString();
                    Session["sEsDePedido"] = false;
                    Session["sEsDeRemision"] = false;
                    Session["sEsDeReceta"] = false;
                    Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>();
                    pnlCatalogo.Visible = false;
                    pnlFormulario.Visible = false;
                    //pnlReporte.Visible = false;
                    Session["sTotalFactura"] = 0;
                    Session["resultadoquery"] = "";
                    ViewState["direccionsorting"] = System.Web.UI.WebControls.SortDirection.Ascending;

                    pnlFiltroReportes.Visible = false;
                }
            }
            catch (NullReferenceException)
            {
                if (!ClientScript.IsStartupScriptRegistered("alertsession"))
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(),
                        "alertsession", "alertarSesion();", true);
                }
                pnlCatalogo.Visible = false;
                pnlFormulario.Visible = false;
                Site1 oPrincipal = (Site1)this.Master;
                oPrincipal.DeshabilitarControles(this);
                oPrincipal.DeshabilitarControles();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// PAGE LOAD
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            Hashtable htbPermisos = (Hashtable)Session["permisos"];
            char cPermiso = 'N';
            
            try
            {
                #region Interfaz
                cPermiso = (char)htbPermisos["facturas"];

                Master.FindControl("btnAlertaStock").Visible = true;

                imbNuevo = (ImageButton)Master.FindControl("imgBtnNuevo");
                imbNuevo.Click += new ImageClickEventHandler(this.imbNuevo_Click);
                imbEditar = (ImageButton)Master.FindControl("imgBtnEditar");
                imbEditar.Click += new ImageClickEventHandler(this.imbEditar_Click);
                imbEliminar = (ImageButton)Master.FindControl("imgBtnEliminar");
                imbEliminar.Click += new ImageClickEventHandler(this.imbEliminar_Click);
                imbMostrar = (ImageButton)Master.FindControl("imgBtnMostrar");
                imbMostrar.Click += new ImageClickEventHandler(this.imbMostrar_Click);
                imbAceptar = (ImageButton)Master.FindControl("imgBtnAceptar");
                imbAceptar.Click += new ImageClickEventHandler(this.imbAceptar_Click);
                imbCancelar = (ImageButton)Master.FindControl("imgBtnCancelar");
                imbCancelar.Click += new ImageClickEventHandler(this.imbCancelar_Click);
                imbImprimir = (ImageButton)Master.FindControl("imgBtnImprimir");
                imbImprimir.Click += new ImageClickEventHandler(this.imbImprimir_Click);
                imbReimprimir = (ImageButton)Master.FindControl("imgBtnPrecios");
                imbReimprimir.Click += new ImageClickEventHandler(this.imbReimprimir_Click);
                imbReimprimir.ImageUrl = "~/Icons/reports32.png";
                lblReimprimir = (Label)Master.FindControl("lblPrecios");
                lblReimprimir.Text = "Reenviar";
                imbTimbrar = (ImageButton)Master.FindControl("imgBtnAlertas");                
                imbTimbrar.Click += new ImageClickEventHandler(this.imbTimbrar_Click);
                imbTimbrar.ImageUrl = "~/Icons/up_32.png";
                lblTimbrar = (Label)Master.FindControl("lblAlertas");
                lblTimbrar.Text = "Timbrar";

                rdbTodos = (RadioButton)Master.FindControl("rdbFiltro1");
                rdbTodos.Text = "Folio";
                rdbClave = (RadioButton)Master.FindControl("rdbFiltro2");
                rdbClave.Text = "Cliente";
                rdbNombre = (RadioButton)Master.FindControl("rdbFiltro3");
                rdbNombre.Text = "Fecha";

                btnBuscar = (Button)Master.FindControl("btnBuscar");
                btnBuscar.Click += new EventHandler(this.btnBuscar_Click);
                txbBuscar = (TextBox)Master.FindControl("txtBuscar");
                Master.FindControl("btnReportes").Visible = true;
                Master.FindControl("btnPrecios").Visible = true;

                lblNombreModulo = (Label)Master.FindControl("lblNombreModulo");
                lblNombreModulo.Text = "Facturas";

                //GT 0175
                imbReportes = (ImageButton)Master.FindControl("imgBtnReportes");
                imbReportes.Click += new ImageClickEventHandler(this.imbReportes_Click);

                //2013/03/14 JID Se ocultan un par de campos
                cmbModoFactura.Visible = false;
                Label25.Visible = false;

                switch (cPermiso)
                {
                    case 'T':
                        break;
                    case 'E':
                        DesactivarEdicionEliminacion();
                        break;
                    case 'L':
                        DesactivarEdicionEliminacion();
                        DesactivarNuevo();
                        break;
                }
            #endregion

                if (!IsPostBack)
                {
                    Session["editarpartidas"] = 0;

                    Session["reporteactivo"] = 0;
                    Session["reportdocument"] = "";
                    Session["titulo"] = "";
                    Session["resultadoquery"] = "";
                    ViewState["direccionsorting"] = System.Web.UI.WebControls.SortDirection.Ascending;

                    //GT: Lista donde se guardan los productos que se agregan en una edicion de remisiones a los ya existentes
                    Session["lstremisionespartidaedicion"] = new List<MedNeg.Facturas.BlDetallePartida>();
                    Session["accion"] = 0;

                }

                if (int.Parse(Session["editarpartidas"].ToString()) == 1)
                {
                    Session["editarpartidas"] = 0;
                }
                else
                {
                    dgvPartidaDetalle.Visible = true;
                    dgvPartidaDetalle.ShowHeader = true;
                    dgvPartidaDetalle.EmptyDataText = "Sin Detalle";
                    dgvPartidaDetalle.DataSource = ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]);
                    dgvPartidaDetalle.DataBind();
                    txbClave.TextChanged += new EventHandler(txbClave_TextChanged);
                }

                if (!IsPostBack)
                {

                    // Saber si estan activados los folios automaticos y poner su valor por default
                    // Se almacena en una variable de sesión para comparar que se esta respetando el formato automatico
                    // y validar que no haya cambiado el folio de pedidos debido a otro registro mientras se hacia el actual 
                    oblFacturas = new MedNeg.Facturas.BlFacturas();
                    Session["iFolioAutomatico"] = oblFacturas.RecuperaFolioAutomatico(Server.MapPath("~/Archivos/Configuracion.xml"));
                    txbFolio.Text = Session["iFolioAutomatico"].ToString();
                    Session["sEsDePedido"] = false;
                    Session["sEsDeRemision"] = false;
                    Session["sEsDeReceta"] = false;
                    Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>();
                    pnlCatalogo.Visible = false;
                    pnlFormulario.Visible = false;
                    //pnlReportes.Visible = false;   
                    Session["sTotalFactura"] = 0;

                    //Variable de sesion para saber si es un ensamble al momento de registrar el detalle de la partida
                    // 0 = False, 1 = True
                    Session["sBolEsEnsamble"] = 0;

                    //GT 0175
                    ConfigurarMenuBotones(true, true, false, false, false, false, true, true);

                    pnlFiltroReportes.Visible = false;
                }
            }
            catch (NullReferenceException)
            {
                if (!ClientScript.IsStartupScriptRegistered("alertsession"))
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(),
                        "alertsession", "alertarSesion();", true);
                }
                pnlFormulario.Visible = false;
                pnlCatalogo.Visible = false;
                Site1 oPrincipal = (Site1)this.Master;
                oPrincipal.DeshabilitarControles(this);
                oPrincipal.DeshabilitarControles();
            }
        }