/// <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"; } }
private void Eliminar(int iIdPedido) { //Eliminar primero la partida para la integridad referencial oblPedido = new MedNeg.Pedidos.BlPedidos(); string sDatosBitacora= string.Empty; //Guardar los datos del pedido para la bitacora oPedido = new MedDAL.DAL.pedidos(); oPedido = oblPedido.BuscarPedido(iIdPedido); sDatosBitacora += "Folio:" + oPedido.Folio.ToString()+" "; sDatosBitacora += "Fecha:" + oPedido.Fecha.ToShortDateString()+" "; switch (oPedido.Estatus) { case "1": sDatosBitacora += "Estatus:Pedido "; break; case "2": sDatosBitacora +="Estatus:Remitido "; break; case "3": sDatosBitacora +="Estatus:Facturado "; break; case "4": sDatosBitacora += "Estatus:Cancelado "; break; } //Recuperar la partida del pedido oblPedido = new MedNeg.Pedidos.BlPedidos(); var oQuery = oblPedido.RecuperarPartidaPedido(iIdPedido); //Recorrer el resultado y meterlo al datagridview foreach (MedDAL.DAL.pedidos_partida oDetalle in oQuery) { sDatosBitacora += "Producto:" + oDetalle.productos.Nombre.ToString()+" "; sDatosBitacora += "Cantidad:" + oDetalle.Cantidad.ToString()+ " "; sDatosBitacora += "IEPS:" + oDetalle.IEPS.ToString() + " "; sDatosBitacora += "Iva:" + oDetalle.Iva.ToString() + " "; sDatosBitacora += "Precio:" + oDetalle.Precio.ToString()+ " "; sDatosBitacora += "Total:" + Convert.ToDecimal((oDetalle.Cantidad * oDetalle.Precio) + oDetalle.IEPS + oDetalle.Iva)+ ", "; sDatosBitacora += "Obs:" + oDetalle.Observaciones; } if(oblPedido.EliminarPedidoPartida(iIdPedido)) { oblPedido= new MedNeg.Pedidos.BlPedidos(); if (oblPedido.EliminarRegistro(iIdPedido)) { //lblAviso.Text = "El usuario se ha eliminado con éxito"; MedDAL.DAL.bitacora oBitacora = new MedDAL.DAL.bitacora(); MedNeg.Bitacora.BlBitacora 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 = "Eliminación de Pedido"; oBitacora.Descripcion = sDatosBitacora; if (!oblBitacora.NuevoRegistro(oBitacora)) { lblDatos.Text = "El evento no pudo ser registrado en la bitácora"; } } else { lblDatos.Text = "No se pudo eliminar el pedido, por favor vuelva a intentarlo"; } } else { lblDatos.Text = "No se pudo eliminar el pedido, por favor vuelva a intentarlo"; } }
/// <summary> /// Cargar los datos del pedido del cual se va a generar la remisión /// </summary> /// <param name="sFolioPedido"></param> private void CargaPedido(string sFolioPedido) { //Objeto que contiene el id del pedido MedNeg.Pedidos.BlPedidos oblPedido = new MedNeg.Pedidos.BlPedidos(); MedDAL.DAL.pedidos oPedido = new MedDAL.DAL.pedidos(); oPedido = oblPedido.BuscarPedidoFolio(sFolioPedido); //Llenar los campos del pedido Session["sIdPedido"] = oPedido.idPedido; Session["sIdCliente"] = oPedido.idCliente; //txbFolio.Text = oPedido.Folio; //txbFecha.Text = oPedido.Fecha.ToShortDateString(); //Llenar los campos del cliente txbCliente.Text = oPedido.clientes.Nombre + " " + oPedido.clientes.Apellidos; txbDireccion.Text = oPedido.clientes.Calle + " " + oPedido.clientes.NumeroExt; if (oPedido.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oPedido.clientes.NumeroInt; } txbPoblacion.Text = oPedido.clientes.poblaciones.Nombre.ToString() + ", " + oPedido.clientes.municipios.Nombre.ToString() + ", " + oPedido.clientes.estados.Nombre.ToString(); //Lenar los datos de la partida del detalle oblPedido = new MedNeg.Pedidos.BlPedidos(); //Recuperar la partida del pedido var oQuery = oblPedido.RecuperarPartidaPedido(oPedido.idPedido); //Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>(); if (((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Count() > 0) { ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Clear(); } Session["sTotalFactura"] = 0; //Recorrer el resultado y meterlo al datagridview foreach (MedDAL.DAL.pedidos_partida oDetalle in oQuery) { oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( Convert.ToInt32(oDetalle.idProducto), oDetalle.productos.Clave1, oDetalle.productos.Nombre, oDetalle.Cantidad, Convert.ToDecimal(oDetalle.IEPS), Convert.ToDecimal(oDetalle.Iva), Convert.ToDecimal(oDetalle.Precio), oDetalle.Observaciones, Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad) + oDetalle.IEPS + oDetalle.Iva)); ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad) + oDetalle.IEPS + oDetalle.Iva); } //Hacer el binding de la data al dgvDatos lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); dgvPartidaDetalle.DataBind(); }
/// <summary> /// Cargar los datos del pedido y su partida /// </summary> /// <param name="bDatos"></param> protected void CargarFormulario(bool bDatos) { pnlFormulario.Visible = true; pnlCatalogo.Visible = false; //pnlReportes.Visible = false; if (bDatos) { //Objeto que contiene el id del pedido oblPedido = new MedNeg.Pedidos.BlPedidos(); oPedido = new MedDAL.DAL.pedidos(); oPedido = (MedDAL.DAL.pedidos)oblPedido.BuscarPedido(int.Parse(dgvDatos.SelectedDataKey[0].ToString())); //Llenar los campos del pedido txbFolio.Text = oPedido.Folio; txbFecha.Text = oPedido.Fecha.ToShortDateString(); int iContador = 0; cmbEstatus.SelectedIndex = -1; foreach (ListItem elemento in cmbEstatus.Items) { if (elemento.Value.Equals(oPedido.Estatus.ToString())) { elemento.Selected = true; } iContador++; } //Llenar los campos del cliente txbCliente.Text = oPedido.clientes.Nombre + " " + oPedido.clientes.Apellidos; txbDireccion.Text = oPedido.clientes.Calle + " " + oPedido.clientes.NumeroExt; if (oPedido.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oPedido.clientes.NumeroInt; } txbPoblacion.Text = oPedido.clientes.poblaciones.Nombre.ToString() + ", " + oPedido.clientes.municipios.Nombre.ToString() +", " + oPedido.clientes.estados.Nombre.ToString(); //Lenar los datos de la partida del detalle oblPedido = new MedNeg.Pedidos.BlPedidos(); //Recuperar la partida del pedido var oQuery = oblPedido.RecuperarPartidaPedido(oPedido.idPedido); //Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>(); if (((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]).Count() > 0) { ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]).Clear(); } Session["sTotalFactura"] = 0; //0087 Variables para gestionar la carga de datos del producto o del ensamble string sClave; string sNombre; bool bEsEnsamble; //Recorrer el resultado y meterlo al datagridview foreach (MedDAL.DAL.pedidos_partida oDetalle in oQuery) { //Identificar si es un producto o un ensamble if (oDetalle.idEnsamble.Equals(null)) { //Datos del producto sClave = oDetalle.productos.Clave1; sNombre = oDetalle.productos.Nombre; bEsEnsamble = false; } else { //Datos del ensamble sClave = oDetalle.ensamble.ClaveBom; sNombre = oDetalle.ensamble.Descripcion; bEsEnsamble = true; } oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( Convert.ToInt32(oDetalle.idProducto), //0087 Comentar para enviar las variables correspondientes que tienen la info del producto o ensamble //oDetalle.productos.Clave1, //oDetalle.productos.Nombre, sClave, sNombre, oDetalle.Cantidad, Convert.ToDecimal(oDetalle.IEPS), Convert.ToDecimal(oDetalle.Iva), Convert.ToDecimal(oDetalle.Precio), oDetalle.Observaciones, Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad)+oDetalle.IEPS+oDetalle.Iva), oDetalle.Descripcion, bEsEnsamble); ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad) + oDetalle.IEPS + oDetalle.Iva); } //Hacer el binding de la data al dgvDatos lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); dgvPartidaDetalle.DataBind(); //si el estatus es 1 (Pedido) aun se pueden agregar articulos de lo contario ya no if (oPedido.Estatus == "1") { HabilitaPedido(); Deshabilita(); } else { DeshabilitaPedido(); Deshabilita(); } } else { Session["lstDetallePartidaPedidos"] = new List<MedNeg.Facturas.BlDetallePartida>(); dgvPartidaDetalle.DataSource = ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]); dgvPartidaDetalle.DataBind(); //Limpia(); //Deshabilita(); } }
/// <summary> /// Editar /// </summary> private void Editar() { oPedido = new MedDAL.DAL.pedidos(); oblPedido = new MedNeg.Pedidos.BlPedidos(); //oPedido.idPedido = int.Parse(dgvDatos.SelectedDataKey.Value.ToString()); //oPedido.Estatus = cmbEstatus.SelectedValue.ToString(); oPedido = oblPedido.BuscarPedidoFolio(txbFolio.Text); oPedido.Estatus = cmbEstatus.SelectedValue.ToString(); if(oblPedido.EditarRegistro(oPedido)) { //Datos de la bitacora string sDatosBitacora = string.Empty; sDatosBitacora += "Folio:" + txbFolio.Text + " "; sDatosBitacora += "Fecha:" + txbFecha.Text + " "; sDatosBitacora += "Estatus:" + cmbEstatus.SelectedItem.ToString() + " "; sDatosBitacora += "Cliente:" + txbCliente.Text + " "; oblPedido = new MedNeg.Pedidos.BlPedidos(); if (oblPedido.EliminarPedidoPartida(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 = oPedido.idPedido; oPedidoPartida.idProducto = pedidoDetalle.iIdProducto; oPedidoPartida.Cantidad = pedidoDetalle.dCantidad; oPedidoPartida.IEPS = pedidoDetalle.dIeps; oPedidoPartida.Iva = pedidoDetalle.dIva; oPedidoPartida.Precio = pedidoDetalle.dPrecio; oPedidoPartida.Observaciones = pedidoDetalle.sObservaciones; //Registrar el detalle del pedido if (!oblPedido.NuevoDetallePartida(oPedidoPartida)) { bRegistroFallido = true; } else { sDatosBitacora += "Producto:" + oPedidoPartida.idProducto.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; } } } //Anotar en la bitacora la modificación al pedido //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 = "Pedidos"; oBitacora.Usuario = Session["usuario"].ToString(); oBitacora.Nombre = Session["nombre"].ToString(); oBitacora.Accion = "Edición de Pedido"; oBitacora.Descripcion = sDatosBitacora; if (!oblBitacora.NuevoRegistro(oBitacora)) { lblDatos.Text = "El evento no pudo ser registrado en la bitácora"; } } } }
/// <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> /// Buscar /// </summary> /// <param name="sCadena"></param> protected void Buscar(string sCadena) { int iTipo = 1; if (rdbFolio.Checked) { iTipo = 1; } else if (rdbCliente.Checked) { iTipo = 2; } else if (rdbFecha.Checked) { iTipo = 3; DateTime dCadena; try { dCadena = Convert.ToDateTime(sCadena); } catch { dCadena = DateTime.Now; txbBuscar.Text = dCadena.ToShortDateString(); } sCadena = dCadena.Year.ToString() + "-" + dCadena.Month.ToString() + "-" + dCadena.Day.ToString(); } oblPedido = new MedNeg.Pedidos.BlPedidos(); var oQuery = oblPedido.Buscar(sCadena, iTipo); Session["resultadoquery"] = oQuery; ViewState["direccionsorting"] = System.Web.UI.WebControls.SortDirection.Ascending; var result = (IQueryable<MedDAL.Pedidos.PedidosView>)Session["resultadoquery"]; DataTable dt = MedNeg.Utilidades.DataSetLinqOperators.CopyToDataTable(result); DataView dv = new DataView(dt); dv.Sort = "Nombre ASC"; try { dgvDatos.DataSource = dv; dgvDatos.DataKeyNames = new string[] { "idPedido" }; dgvDatos.DataBind(); CargarCatalogo(); if (dgvDatos.Rows.Count == 0 && txbBuscar.Text == "") { dgvDatos.EmptyDataText = "No existen pedidos"; } else { dgvDatos.EmptyDataText = "No existen pedidos que coincidan con la búsqueda"; } dgvDatos.ShowHeader = true; } catch (Exception ex) { Response.Write(ex.Message); } }
/// <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"; } }
protected void MostrarReporte(string sFolio) { //Obtener pedido con detalle MedNeg.Pedidos.BlPedidos oblPedidos = new MedNeg.Pedidos.BlPedidos(); var oQuery = oblPedido.Buscar(sFolio,1); Session["reportdocumentPedidos"] = "rptRecetas.rpt"; Session["titulo"] = "Medicamentos por localidad"; rptReportes.rptPedidos rptPedido = new rptReportes.rptPedidos(); Session["reportePedidosDS"] = oQuery; //Session["reportePedidoSub"] = rptPedido.SetDataSource((IQueryable)Session["reportePedidosDS"]); //rptPedido.Subreports[0].SetDataSource(); //pnlReportes.Visible = true; //crvReporte.Visible = true; //crvReporte.ReportSource = rptPedido; }
/// <summary> /// Validar que el folio no exista en el sistema /// </summary> /// <returns>False si existe</returns> private bool ValidaFolioRepetido() { oblPedido = new MedNeg.Pedidos.BlPedidos(); if (!oblPedido.ValidarFolioRepetido(txbFolio.Text)) return false; else return true; }
/// <summary> /// Mostrar la lista de todos los pedidos /// </summary> protected void MostrarLista() { oblPedido = new MedNeg.Pedidos.BlPedidos(); var oQuery = oblPedido.MostrarLista(); Session["resultadoquery"] = oQuery; ViewState["direccionsorting"] = System.Web.UI.WebControls.SortDirection.Ascending; var result = (IQueryable<MedDAL.Pedidos.PedidosView>)Session["resultadoquery"]; DataTable dt = MedNeg.Utilidades.DataSetLinqOperators.CopyToDataTable(result); DataView dv = new DataView(dt); dv.Sort = "Nombre ASC"; try { dgvDatos.DataSource = dv; dgvDatos.DataKeyNames = new string[] { "idPedido" }; dgvDatos.DataBind(); CargarCatalogo(); if (dgvDatos.Rows.Count == 0 && txbBuscar.Text == "") { dgvDatos.EmptyDataText = "No existen pedidos registrados aun"; } else { dgvDatos.EmptyDataText = "No existen pedidos que coincidan con la búsqueda"; } dgvDatos.ShowHeader = true; } catch (Exception ex) { Response.Write(ex.Message); } }
/// <summary> /// Metodo que que desgloza los ensambles en sus productos para registrarlo en la partida /// </summary> protected void AgregarDetalleEnsamble(MedNeg.Facturas.BlDetallePartida renglonEnsamble,int iIdPedido) { //Recuperar los datos del ensamble MedDAL.DAL.ensamble oEnsamble = new MedDAL.DAL.ensamble(); MedDAL.DAL.ensamble_productos oEnsambleProductos = new MedDAL.DAL.ensamble_productos(); MedNeg.Ensambles.BlEnsambles oblEnsamble = new MedNeg.Ensambles.BlEnsambles(); oEnsamble = oblEnsamble.BuscarNombre(renglonEnsamble.sProducto); oblEnsamble = new MedNeg.Ensambles.BlEnsambles(); oEnsambleProductos = oblEnsamble.RecuperarProducto(oEnsamble.ClaveBom); //Para registrar el detalle del pedido oblPedido = new MedNeg.Pedidos.BlPedidos(); MedDAL.DAL.pedidos_partida oPedidoPartida = new MedDAL.DAL.pedidos_partida(); oPedidoPartida.idPedido = iIdPedido; oPedidoPartida.idEnsamble = oEnsamble.idEnsamble; oPedidoPartida.idProducto = oEnsambleProductos.idProducto; oPedidoPartida.Cantidad = renglonEnsamble.dCantidad; oPedidoPartida.IEPS = 0; oPedidoPartida.Iva = 0; oPedidoPartida.Precio = renglonEnsamble.dPrecio; oPedidoPartida.Observaciones = renglonEnsamble.sObservaciones; oPedidoPartida.Descripcion = oEnsamble.Descripcion; //Registrar el detalle del pedido if (!oblPedido.NuevoDetallePartida(oPedidoPartida)) { //bRegistroFallido = true; } else { sDatosBitacora += "Producto:" + renglonEnsamble.sProducto.ToString() + " "; sDatosBitacora += "Cant:" + renglonEnsamble.dCantidad.ToString() + " "; sDatosBitacora += "IEPS:" + renglonEnsamble.dIeps.ToString() + " "; sDatosBitacora += "Iva:" + renglonEnsamble.dIva.ToString() + " "; sDatosBitacora += "Precio:" + renglonEnsamble.dPrecio.ToString() + " "; sDatosBitacora += "Total:" + Convert.ToDecimal((renglonEnsamble.dCantidad * renglonEnsamble.dPrecio) + renglonEnsamble.dIeps + renglonEnsamble.dIva) + ", "; sDatosBitacora += "Obs:" + renglonEnsamble.sObservaciones; } }
/// <summary> /// Cargar los datos del pedido del cual se va a generar la remisión /// </summary> /// <param name="sFolioPedido"></param> private void CargaPedido(string sFolioPedido) { //Objeto que contiene el id del pedido MedNeg.Pedidos.BlPedidos oblPedido = new MedNeg.Pedidos.BlPedidos(); MedDAL.DAL.pedidos oPedido = new MedDAL.DAL.pedidos(); oPedido = oblPedido.BuscarPedidoFolio(sFolioPedido); //Llenar los campos del pedido Session["sIdPedido"] = oPedido.idPedido; Session["sIdCliente"] = oPedido.idCliente; //txbFolio.Text = oPedido.Folio; //txbFecha.Text = oPedido.Fecha.ToShortDateString(); //Llenar los campos del cliente txbCliente.Text = oPedido.clientes.Nombre + " " + oPedido.clientes.Apellidos; txbDireccion.Text = oPedido.clientes.Calle + " " + oPedido.clientes.NumeroExt; if (oPedido.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oPedido.clientes.NumeroInt; } txbPoblacion.Text = oPedido.clientes.poblaciones.Nombre.ToString() + ", " + oPedido.clientes.municipios.Nombre.ToString() + ", " + oPedido.clientes.estados.Nombre.ToString(); //Lenar los datos de la partida del detalle oblPedido = new MedNeg.Pedidos.BlPedidos(); //Recuperar la partida del pedido List<MedDAL.DAL.pedidos_partida> oQuery = new List<MedDAL.DAL.pedidos_partida>(); oQuery.AddRange(oblPedido.RecuperarPartidaPedido(oPedido.idPedido)); //Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>(); if (((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Count()>0) { ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Clear(); } Session["sTotalFactura"] = 0; //0087 Variables para gestionar la carga de datos del producto o del ensamble string sClave; string sNombre; bool bEsEnsamble; //Recorrer el resultado y meterlo al datagridview foreach (MedDAL.DAL.pedidos_partida oDetalle in oQuery) { //0087 Identificar si es un producto o un ensamble if (oDetalle.idEnsamble.Equals(null)) { //Datos del producto sClave = oDetalle.productos.Clave1; sNombre = oDetalle.productos.Nombre; bEsEnsamble = false; } else { //Datos del ensamble sClave = oDetalle.ensamble.ClaveBom; sNombre = oDetalle.ensamble.Descripcion; bEsEnsamble = true; } oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( Convert.ToInt32(oDetalle.idProducto), //0087 Comentar para enviar las variables correspondientes que tienen la info del producto o ensamble //oDetalle.productos.Clave1, //oDetalle.productos.Nombre, sClave, sNombre, oDetalle.Cantidad, Convert.ToDecimal(oDetalle.IEPS), Convert.ToDecimal(oDetalle.Iva), Convert.ToDecimal(oDetalle.Precio), oDetalle.Observaciones, Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad) + oDetalle.IEPS + oDetalle.Iva), oDetalle.Descripcion, bEsEnsamble); ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + Convert.ToDecimal((oDetalle.Precio * oDetalle.Cantidad) + oDetalle.IEPS + oDetalle.Iva); } //Hacer el binding de la data al dgvDatos lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); dgvPartidaDetalle.DataBind(); }
/// <summary> /// Registrar nuevo pedido /// </summary> private void Nuevo() { string sRutaArchivoConfig=Server.MapPath("~/Archivos/Configuracion.xml"); oRemision = new MedDAL.DAL.remisiones(); oblRemision = new MedNeg.Remisiones.BlRemisiones(); if (Session["sIdCliente"] != null) { oRemision.idCliente = (int)Session["sIdCliente"]; oRemision.Fecha = DateTime.Now; oRemision.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)) { oRemision.Folio = oblRemision.RecuperaFolioAutomatico(sRutaArchivoConfig).ToString(); } else { oRemision.Folio = txbFolio.Text; } if ((bool)Session["sEsDePedido"] == true) { oRemision.idPedido = (int)Session["sIdPedido"]; } if (oblRemision.NuevoRegistro(oRemision)) { //Datos de la bitacora string sDatosBitacora = string.Empty; sDatosBitacora += "Tipo:" + cmbTipoRemision.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 oRemision = new MedDAL.DAL.remisiones(); oRemision = oblRemision.BuscarRemisionFolio(txbFolio.Text); int iIdRemision = oRemision.idRemision; bool bRegistroFallido = false; //Recorrer el objeto de sesion lstDetallePartida que contiene los datos de la partida foreach (MedNeg.Facturas.BlDetallePartida pedidoDetalle in (List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]) { //0087 Saber si es un ensamble el que se esta registrando if (pedidoDetalle.bEsEnsamble == true) { AgregarDetalleEnsamble(pedidoDetalle, iIdRemision); } else { oblRemision = new MedNeg.Remisiones.BlRemisiones(); MedDAL.DAL.remisiones_partida oRemisionPartida = new MedDAL.DAL.remisiones_partida(); oRemisionPartida.idRemision = iIdRemision; oRemisionPartida.idProducto = pedidoDetalle.iIdProducto; oRemisionPartida.Cantidad = pedidoDetalle.dCantidad; oRemisionPartida.IEPS = pedidoDetalle.dIeps; oRemisionPartida.Iva = pedidoDetalle.dIva; oRemisionPartida.Precio = pedidoDetalle.dPrecio; oRemisionPartida.Observaciones = pedidoDetalle.sObservaciones; oRemisionPartida.Descripcion = pedidoDetalle.sDescripcion; //Registrar el detalle del pedido if (!oblRemision.NuevoDetallePartida(oRemisionPartida)) { 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) + ", "; } } } if (!bRegistroFallido) { //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 = "Remisiones"; oBitacora.Usuario = Session["usuario"].ToString(); oBitacora.Nombre = Session["nombre"].ToString(); oBitacora.Accion = "Nueva Remisión"; oBitacora.Descripcion = sDatosBitacora; if (!oblBitacora.NuevoRegistro(oBitacora)) { lblDatos.Text = "El evento no pudo ser registrado en la bitácora"; } //Actualizar el consecutivo en configuracion (la validacion de si esta activa o no la opcion se hace dentro de la misma funcion) oblRemision.ActualizarFolioRemision(sRutaArchivoConfig); Session["sIdCliente"] = null; 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 = "2"; if (!oblPedido.EditarRegistro(oPedido)) { lblDatos.Text = "No se pudo cambiar el estatus del pedido, contacte al administrador"; } } /******* Realizar la resta de las existencias ***********/ MedNeg.Productos.BlProductos oblProductos = new MedNeg.Productos.BlProductos(); MedNeg.Usuarios.BlUsuarios oblUsuario = new MedNeg.Usuarios.BlUsuarios(); MedDAL.DAL.usuarios oUsuario = new MedDAL.DAL.usuarios(); oUsuario = (MedDAL.DAL.usuarios)oblUsuario.Buscar(Session["usuario"].ToString()); MedNeg.Remisiones.BlRemisiones oblRemisiones; bool bModificarExistenciasError = false; bool bStockMin = false; //Recorrer el objeto de sesion lstDetallePartida que contiene los datos de la partida //Checar la existencia del producto despues de extraer la cantidad marcada en el detalle y alertar en caso necesario sobre stock bajo foreach (MedNeg.Facturas.BlDetallePartida oPedidoDetalle in (List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]) { oblRemisiones = new MedNeg.Remisiones.BlRemisiones(); if (!oblRemisiones.ModificarExistenciaProducto(oUsuario.idAlmacen, oPedidoDetalle.iIdProducto, oPedidoDetalle.dCantidad, 1)) bModificarExistenciasError = true; else { //Si el proceso de extraer se da exitosamente, se revisa ahora las existencias de todos los lotes de ese almacen //Posteriormente se revisa si la existencia esta por igual o debajo del Stock Minimo requerido decimal dCantidad = 0; foreach (MedDAL.DAL.productos_almacen oProductoAlmacen in oblProductos.ObtenerExistenciaProducto(oPedidoDetalle.iIdProducto, oUsuario.idAlmacen)) { dCantidad += oProductoAlmacen.Cantidad; } MedDAL.DAL.productos_almacen_stocks oProductoAlmacenStocks = oblProductos.ObtenerProductoAlmacenStock(oUsuario.idAlmacen, oPedidoDetalle.iIdProducto); if (dCantidad <= oProductoAlmacenStocks.StockMin) { bStockMin = true; } } } if (bModificarExistenciasError == true) { lblDatos.Text = "No se pudo modificar la existencia de los productos, por favor contacte al administrador"; } if (bStockMin) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarStock(1);", true); } /****** Termina resta de las existencias ***************************/ Session["sTotalFactura"] = 0; } else { //Eliminar la remisión, su partida e indicar al usuario que lo intente de nuevo, limpiar la cadena de bitacora Eliminar(iIdRemision); sDatosBitacora = ""; lblDatos.Text = "No se pudo registrar la remisión, por favor verifique los datos y vuelva a intentarlo"; } } else { //Fallo esl registro de la remisión lblDatos.Text = "No se pudo registrar la remisión, por favor verifique los datos y vuelva a intentarlo"; } } else //si es folio repetido { lblDatos.Text = "Folio Repetido, no se puede generar la remisión."; } } else { lblDatos.Text = "Por favor, elija a un Cliente"; } }