/// <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["pedidos"]; 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); rdbFolio = (RadioButton)Master.FindControl("rdbFiltro1"); rdbFolio.Text = "Folio"; rdbCliente = (RadioButton)Master.FindControl("rdbFiltro2"); rdbCliente.Text = "Cliente"; rdbFecha = (RadioButton)Master.FindControl("rdbFiltro3"); rdbFecha.Text = "Fecha"; btnBuscar = (Button)Master.FindControl("btnBuscar"); btnBuscar.Click += new EventHandler(this.btnBuscar_Click); txbBuscar = (TextBox)Master.FindControl("txtBuscar"); //Master.FindControl("btnReportes").Visible = false; lblNombreModulo = (Label)Master.FindControl("lblNombreModulo"); lblNombreModulo.Text = "Pedidos"; //GT 0175 imbReportes = (ImageButton)Master.FindControl("imgBtnReportes"); imbReportes.Click += new ImageClickEventHandler(this.imbReportes_Click); 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; } 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["lstDetallePartidaPedidos"]); 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 oblPedido = new MedNeg.Pedidos.BlPedidos(); Session["iFolioAutomatico"] = oblPedido.RecuperaFolioAutomatico(Server.MapPath("~/Archivos/Configuracion.xml")); txbFolio.Text = Session["iFolioAutomatico"].ToString(); Session["lstDetallePartidaPedidos"] = new List<MedNeg.Facturas.BlDetallePartida>(); pnlFormulario.Visible = false; pnlCatalogo.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); } } 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(); } }
/// <summary> /// Registrar nuevo pedido /// </summary> private void Nuevo() { string sRutaArchivoConfig=Server.MapPath("~/Archivos/Configuracion.xml"); oPedido = new MedDAL.DAL.pedidos(); oblPedido = new MedNeg.Pedidos.BlPedidos(); if (Session["sIdCliente"] != null) { oPedido.idCliente = (int)Session["sIdCliente"]; oPedido.Fecha = DateTime.Now; oPedido.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)) { oPedido.Folio = oblPedido.RecuperaFolioAutomatico(sRutaArchivoConfig).ToString(); } else { oPedido.Folio = txbFolio.Text; } if (oblPedido.NuevoRegistro(oPedido)) { //Datos de la bitacora sDatosBitacora += "Folio:" + txbFolio.Text + " "; sDatosBitacora += "Fecha:" + txbFecha.Text + " "; sDatosBitacora += "Estatus:" + cmbEstatus.SelectedItem.ToString() + " "; sDatosBitacora += "Cliente:" + txbCliente.Text + " "; // Registrar la partida del pedido oPedido = new MedDAL.DAL.pedidos(); oPedido = oblPedido.BuscarPedidoFolio(txbFolio.Text); int iIdPedido = oPedido.idPedido; bool bRegistroFallido = false; //Recorrer el objeto de sesion lstDetallePartidaPedidos que contiene los datos de la partida foreach (MedNeg.Facturas.BlDetallePartida pedidoDetalle in (List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]) { //Saber si es un ensamble el que se esta registrando if (pedidoDetalle.bEsEnsamble == true) { AgregarDetalleEnsamble(pedidoDetalle, oPedido.idPedido); } else { oblPedido = new MedNeg.Pedidos.BlPedidos(); MedDAL.DAL.pedidos_partida oPedidoPartida = new MedDAL.DAL.pedidos_partida(); oPedidoPartida.idPedido = iIdPedido; oPedidoPartida.idProducto = pedidoDetalle.iIdProducto; oPedidoPartida.Cantidad = pedidoDetalle.dCantidad; oPedidoPartida.IEPS = pedidoDetalle.dIeps; oPedidoPartida.Iva = pedidoDetalle.dIva; oPedidoPartida.Precio = pedidoDetalle.dPrecio; oPedidoPartida.Observaciones = pedidoDetalle.sObservaciones; oPedidoPartida.Descripcion = pedidoDetalle.sProducto; //Registrar el detalle del pedido if (!oblPedido.NuevoDetallePartida(oPedidoPartida)) { bRegistroFallido = true; } else { sDatosBitacora += "Producto:" + pedidoDetalle.iIdProducto.ToString() + " "; sDatosBitacora += "Cant:" + pedidoDetalle.dCantidad.ToString() + " "; sDatosBitacora += "IEPS:" + pedidoDetalle.dIeps.ToString() + " "; sDatosBitacora += "Iva:" + pedidoDetalle.dIva.ToString() + " "; sDatosBitacora += "Precio:" + pedidoDetalle.dPrecio.ToString() + " "; sDatosBitacora += "Total:" + Convert.ToDecimal((pedidoDetalle.dCantidad * pedidoDetalle.dPrecio) + pedidoDetalle.dIeps + pedidoDetalle.dIva) + ", "; sDatosBitacora += "Obs:" + pedidoDetalle.sObservaciones; } } } //Si un registro de la partida se debe de eliminar todo if (!bRegistroFallido) { oBitacora = new MedDAL.DAL.bitacora(); oblBitacora = new MedNeg.Bitacora.BlBitacora(); oBitacora.FechaEntradaSrv = DateTime.Now; oBitacora.FechaEntradaCte = DateTime.Now;//Linea Temporal oBitacora.Modulo = "Pedidos"; oBitacora.Usuario = Session["usuario"].ToString(); oBitacora.Nombre = Session["nombre"].ToString(); oBitacora.Accion = "Nuevo Pedido"; 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 oblPedido.ActualizarFolioPedido(sRutaArchivoConfig); Session["sIdCliente"] = null; //Proceso que mande reporte con los datos del pedido acabado de hacer. //Pedidos, Pedidos_Partida //MostrarReporte(txbFolio.Text); } else { //Eliminar el pedido, su partida e indicar al usuario que lo intente de nuevo, limpiar la cadena de bitacora Eliminar(iIdPedido); sDatosBitacora = ""; lblDatos.Text = "No se pudo registrar el pedido, por favor verifique los datos y vuelva a intentarlo"; } } else //Fallo el registro del pedido { lblDatos.Text = "No se pudo registrar el pedido, por favor vuelva a intentarlo"; } } else //si es folio repetido { lblDatos.Text = "Folio Repetido, no se puede generar el pedido"; } } else { lblDatos.Text = "Por favor, elija a un Cliente"; } }