/// <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> /// 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"; } }
/// <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> /// 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(); }