/// <summary> /// Editar /// </summary> private void Editar() { oFactura = new MedDAL.DAL.facturas(); oblFacturas = new MedNeg.Facturas.BlFacturas(); //oFactura.idFactura = int.Parse(dgvDatos.SelectedDataKey.Value.ToString()); oFactura = oblFacturas.BuscarFacturasFolio(txbFolio.Text); oFactura.Estatus = cmbEstatus.SelectedValue.ToString(); oblFacturas = new MedNeg.Facturas.BlFacturas(); if(oblFacturas.EditarRegistro(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 + " "; oblFacturas = new MedNeg.Facturas.BlFacturas(); if (oblFacturas.EliminarFacturaPartida(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"]) { //Saber si es un ensamble el que se esta registrando if (facturaDetalle.bEsEnsamble == true) { AgregarDetalleEnsamble(facturaDetalle, oFactura.idFactura); } else { oblFacturas = new MedNeg.Facturas.BlFacturas(); MedDAL.DAL.facturas_partida oFacturaPartida = new MedDAL.DAL.facturas_partida(); oFacturaPartida.idFactura = oFactura.idFactura; oFacturaPartida.idProducto = facturaDetalle.iIdProducto; oFacturaPartida.Cantidad = facturaDetalle.dCantidad; oFacturaPartida.IEPS = facturaDetalle.dIeps; oFacturaPartida.Iva = facturaDetalle.dIva; oFacturaPartida.Precio = facturaDetalle.dPrecio; //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) + ", "; } } } /****** GT: Modificar las existencias de los productos nuevos ***************/ 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()); //oblRemision = new MedNeg.Remisiones.BlRemisiones(); oblFacturas = new MedNeg.Facturas.BlFacturas(); foreach (MedNeg.Facturas.BlDetallePartida remisionDetalleNuevos in (List<MedNeg.Facturas.BlDetallePartida>)Session["lstremisionespartidaedicion"]) { oblFacturas.ModificarExistenciaProducto(oUsuario.idAlmacen, remisionDetalleNuevos.iIdProducto, remisionDetalleNuevos.dCantidad, 1); } /****** GT: Modificar las existencias de los productos nuevos ***************/ //Anotar en la bitacora la modificación a la factura oBitacora = new MedDAL.DAL.bitacora(); oblBitacora = new MedNeg.Bitacora.BlBitacora(); oBitacora.FechaEntradaSrv = DateTime.Now; oBitacora.FechaEntradaCte = DateTime.Now;//Linea Temporal oBitacora.Modulo = "Facturas"; oBitacora.Usuario = Session["usuario"].ToString(); oBitacora.Nombre = Session["nombre"].ToString(); oBitacora.Accion = "Edición de Factura"; oBitacora.Descripcion = sDatosBitacora; if (!oblBitacora.NuevoRegistro(oBitacora)) { lblDatos.Text = "El evento no pudo ser registrado en la bitácora"; } if (oFactura.Estatus == "5") { string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml"); string sRutaCertificados = Server.MapPath("~/Archivos/"); string[] sUUID = new string[1]; string sMensaje = ""; bool bEncontrado = false; XmlTextReader oXMLReader = new XmlTextReader(sRutaCertificados + "/FacturasElectronicasTimbradas/FacturaE-" + oFactura.Folio + ".xml"); while (oXMLReader.Read()) { switch (oXMLReader.NodeType) { case XmlNodeType.Element: if (oXMLReader.Name == "tfd:TimbreFiscalDigital") { sUUID[0] = oXMLReader.GetAttribute("UUID"); bEncontrado = true; break; } break; } } if (bEncontrado) { int iResultado = oblFacturas.CancelarFacturaElectronica(sUUID, sRutaCertificados, out sMensaje); if (iResultado == 0) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarCancelacionFacturas(0);", true); System.IO.FileInfo fFactura = new System.IO.FileInfo(Server.MapPath("~/Archivos/FacturasElectronicasTimbradas/FacturaE-" + sUUID[0] + ".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(); } else if (iResultado == 1) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarCancelacionFacturas(1);", true); } } } } } }