/// <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> /// 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; } }