/// <summary> /// funcion que crea una factura nueva sin gastos de administracion /// </summary> /// <param name="sFolio"></param> /// <param name="iTipo">1-Tradicional, 2-Electronica</param> /// <returns></returns> private void CrearFactura(List<MedNeg.Facturas.BlDetalleFacturaReceta> lstDetalleFactura, int iTipo) { //TODO: GT Paso 3: Generar la factura con todo lo contabilizado de las recetas que van a conformar esta factura. //objeto que contiene la receta string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml"); string sRutaCertificados = Server.MapPath("~/Archivos/"); string sFacturaAdicional = ""; string sFacturaAdicional2 = ""; MedDAL.DAL.recetas oReceta = new MedDAL.DAL.recetas(); MedNeg.Recetas.BlRecetas oblReceta = new MedNeg.Recetas.BlRecetas(); MedNeg.Configuracion.BlConfiguracion oblConfiguracion = new MedNeg.Configuracion.BlConfiguracion(); MedDAL.Configuracion.DALConfiguracion odalConfiguracion = new MedDAL.Configuracion.DALConfiguracion(); MedDAL.DAL.facturas oFacturas = new MedDAL.DAL.facturas(); MedNeg.Facturas.BlFacturas oblFacturas = new MedNeg.Facturas.BlFacturas(); MedDAL.DAL.FacturacionDeRecetas oFacturacionRecetas = new MedDAL.DAL.FacturacionDeRecetas(); decimal dSubtotal = 0; int idReceta = 0; odalConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivoConfig); //ID Cliente oFacturas.idCliente = (int)Session["sIdCliente"]; //IDRECETA //oFacturas.idReceta = oReceta.idReceta; //Asiganr el folio de la factura if (odalConfiguracion.iFacturasAutomatico == 1) { oFacturas.Folio = odalConfiguracion.iFolioFacturas++.ToString(); } else { string sFolioAux; sFolioAux = "FxR" + DateTime.Now.ToShortDateString() + iContadorFacturas.ToString(); //Validar que no exista el folio while (!ValidaFolioRepetido(sFolioAux)) sFolioAux = "FxR" + DateTime.Now.ToShortDateString() + iContadorFacturas++.ToString(); oFacturas.Folio = sFolioAux; } string sIdFolioFactura=oFacturas.Folio; //Fecha oFacturas.Fecha = DateTime.Now; oFacturas.FechaAplicacion = DateTime.Now; //tipo (4 por que son de receta) oFacturas.TipoFactura = "4"; //Estatus (3 de emitida) oFacturas.Estatus = "3"; //Id del usuario que genero la factura oFacturas.idUsuario = Convert.ToInt32(Session["usuarioid"]); //Nombre del vendedor que en este caso es el usuario oFacturas.Vendedor = Session["nombre"].ToString(); //Registrar la factura if (oblFacturas.NuevoRegistro(oFacturas)) { oFacturas = new MedDAL.DAL.facturas(); oblFacturas = new MedNeg.Facturas.BlFacturas(); ////Recuperar el id de la factura crea| da oFacturas = oblFacturas.BuscarFacturasFolio(sIdFolioFactura); //Actualizar el consecutivo en la configuracion oblFacturas.ActualizarFolioFactura(sRutaArchivoConfig); iContadorFacturas++; //Insertar el detalle de factura //Recorrer el objeto de sesion lstDetallePartida que contiene los datos de la partida foreach (MedNeg.Facturas.BlDetalleFacturaReceta renglon in lstDetalleFactura) { oblFacturas = new MedNeg.Facturas.BlFacturas(); MedDAL.DAL.facturas_partida oFacturaPartida = new MedDAL.DAL.facturas_partida(); oFacturaPartida.idFactura = oFacturas.idFactura; oFacturaPartida.idProducto = renglon.iIdProducto; oFacturaPartida.Cantidad = renglon.dCantidad; oFacturaPartida.IEPS = renglon.dIeps; oFacturaPartida.Iva = renglon.dIva; oFacturaPartida.Precio = renglon.dPrecio; //Registrar el detalle del pedido if (!oblFacturas.NuevoDetallePartida(oFacturaPartida)) { //bRegistroFallido = true; } else { //Guardar el monto de las lineas MedNeg.Facturas.BlFacturacionDeLineas oblFacturacionLinea = new MedNeg.Facturas.BlFacturacionDeLineas(); oblFacturacionLinea.DMonto = oFacturaPartida.Cantidad * oFacturaPartida.Precio; oblFacturacionLinea.DtFecha = DateTime.Now; oblFacturacionLinea.IIdLineaCredito = renglon.IIdLineaCredito; lstTotalFacturadoPorLinea.Add(oblFacturacionLinea); //Guardar el subtotal para cuando sea una facturacion de Gtos. Admon por subtotales dSubtotal += oFacturaPartida.Cantidad * oFacturaPartida.Precio; //Modificar el estatus de la receta if (idReceta != renglon.IIdReceta) { MedDAL.DAL.recetas oRecetaEditar = new MedDAL.DAL.recetas(); MedNeg.Recetas.BlRecetas oblRecetas = new MedNeg.Recetas.BlRecetas(); oRecetaEditar.idReceta = renglon.IIdReceta; oRecetaEditar.Estatus = "2"; oblRecetas = new MedNeg.Recetas.BlRecetas(); oblRecetas.EditarRegistro(oRecetaEditar); idReceta = renglon.IIdReceta; } //TODO: Paso 3.1 Aqui generar la factura electronica de las recetas facturadas } } if (iTipo == 2) { oblFacturas = new MedNeg.Facturas.BlFacturas(); oblFacturas.GenerarFacturaElectronica(oFacturas.idFactura, sRutaCertificados, Session["usuario"].ToString(), (int)Session["sIdCliente"], oFacturas.Folio); } ///TODO /// Mandar a imprimir la de gastos de administración por renglones o por subtotales /// 1 = Renglones, 2 = Sub totales /// //TODO: GT Paso 4: una vez generada una factura y segun como eligio el usuario se debe de hacer una factura de tipo Gasto administrativo o por sub totales A LA PAR DE LA FACTURA EMITIDA, es regla de negocio por eso por cada factura siempre existiran 2 if (chkPanelGtosAdmon.Checked == true) { if (rblGenerarFacturaTipo.SelectedValue == "1") { sFacturaAdicional = CrearFacturaGtoAdministrativo(sIdFolioFactura, lstDetalleFactura); sFacturaAdicional2 = sFacturaAdicional.Replace(".xml", ".pdf"); } if (rblGenerarFacturaTipo.SelectedValue == "2") { //Generar la factura agregandole el monto a la factura sFacturaAdicional = CrearFacturaSubTotales(sIdFolioFactura, dSubtotal); sFacturaAdicional2 = sFacturaAdicional.Replace(".xml", ".pdf"); dSubtotal = 0; } } //Gurdar en la base de datos lo facturado por linea de credito foreach (MedNeg.Facturas.BlFacturacionDeLineas registro in lstTotalFacturadoPorLinea) { oFacturacionRecetas.idLineaCredito = registro.IIdLineaCredito; oFacturacionRecetas.Fecha = registro.DtFecha; oFacturacionRecetas.Monto = registro.dMonto; oblFacturas = new MedNeg.Facturas.BlFacturas(); //MedDAL.DAL.facturas_partida oFacturaPartida = new MedDAL.DAL.facturas_partida(); //Registrar el renglon de lo facturado if(!oblFacturas.NuevoRegistroFacturacionReceta(oFacturacionRecetas)) { //bRegistroFallido = true; } } if (iTipo == 2) { try { oblFacturas.CrearZip(new string[] { Server.MapPath("~/Archivos/FacturasElectronicasTimbradas"), Server.MapPath("~/Archivos/FacturasElectronicasTimbradas/FacturaE-" + oFacturas.Folio + ".zip") }, Server.MapPath("~/Archivos/FacturasElectronicasTimbradas/FacturaE-" + oFacturas.Folio + ".xml"), Server.MapPath("~/Archivos/FacturasElectronicasTimbradas/FacturaE-" + oFacturas.Folio + ".pdf"), sFacturaAdicional, sFacturaAdicional2); ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarFacturas(0);", true); System.IO.FileInfo fFactura = new System.IO.FileInfo(Server.MapPath("~/Archivos/FacturasElectronicasTimbradas/FacturaE-" + oFacturas.Folio + ".zip")); 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(); } catch (Exception) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarExcepcion(0);", true); } } } }
/// <summary> /// Carga los detalles de la receta /// </summary> private void CargaReceta(string sFolio) { ////TODO: GT Paso 2: Cuando se recibe una receta para facturar //objeto que contiene la receta string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml"); MedDAL.DAL.recetas oReceta = new MedDAL.DAL.recetas(); MedNeg.Recetas.BlRecetas oblReceta = new MedNeg.Recetas.BlRecetas(); MedNeg.Configuracion.BlConfiguracion oblConfiguracion = new MedNeg.Configuracion.BlConfiguracion(); MedDAL.Configuracion.DALConfiguracion odalConfiguracion = new MedDAL.Configuracion.DALConfiguracion(); odalConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivoConfig); /**************** Registrar la partida de la factura *****************/ //Llenar los datos de la partida de la remisión oblReceta = new MedNeg.Recetas.BlRecetas(); //Recuperar datos de la receta mediante el folio enviado oReceta = oblReceta.BuscarRecetaFolio(sFolio); //Recuperar la partida del pedido var oQuery = oblReceta.RecuperarPartidaRecetas(oReceta.idReceta); int iIndiceElemento; decimal dGastoAdministracion=0; //Recorrer el resultado y meterlo al datagridview foreach (MedDAL.DAL.recetas_partida oDetalle in oQuery) { //Buscar si ya existe el producto en la lista, si es así entonces solo se modifica la cantidad surtida, //de lo contrario entonces se crea un renglon nuevo y se incrementa el contador iIndiceElemento = lstDetalleReceta.FindIndex(det => det.iIdProducto == oDetalle.idProducto); if (iIndiceElemento > -1) { lstDetalleReceta[iIndiceElemento].dCantidad += Convert.ToDecimal(oDetalle.CantidaSurtida); } else { //Identificar que precio o monto se debe de enviar acorde a los filtros //si es por gasto de admon relacionado al producto se toma el campo 9 if (chkGtoAdmon.Checked == true && rblGenerarFacturaTipo.SelectedValue=="1") dGastoAdministracion = Convert.ToDecimal(oDetalle.productos.Campo9); if (chkMonto.Checked == true && rblGenerarFacturaTipo.SelectedValue == "1") dGastoAdministracion = Convert.ToDecimal(txbMonto.Text); if (chkPorcentaje.Checked == true && rblGenerarFacturaTipo.SelectedValue == "1") dGastoAdministracion = Convert.ToDecimal(oDetalle.Precio * (Convert.ToDecimal(txbPorcentaje.Text) / 100)); MedNeg.Facturas.BlDetalleFacturaReceta oblDetallePartida = new MedNeg.Facturas.BlDetalleFacturaReceta( Convert.ToInt32(oDetalle.idProducto), oDetalle.productos.Clave1, oDetalle.productos.Nombre, Convert.ToDecimal(oDetalle.CantidaSurtida), Convert.ToDecimal(oDetalle.productos.TasaIeps), Convert.ToDecimal(oDetalle.productos.tipo_iva.Iva), dGastoAdministracion, Convert.ToDecimal(oDetalle.Precio), "", Convert.ToDecimal(0), oDetalle.idLineaCredito, oReceta.idReceta); lstDetalleReceta.Add(oblDetallePartida); iContadorRenglones++; } //Saber si ya se va a mandar a facturar if (iContadorRenglones == odalConfiguracion.iNoMaxRenglonesFactura && cmbModoFactura.SelectedValue == "1") { CrearFactura(lstDetalleReceta, 1); //Re iniciar contadores y listas iContadorRenglones = 0; lstDetalleReceta.Clear(); } } //Si al terminar el foreach el contador de renglones es menor a odalConfiguracion.iNoMaxRenglonesFactura //quiere decir que quedan reglones por facturar es por eso que se requiere nuevamente esta validación if (iContadorRenglones < odalConfiguracion.iNoMaxRenglonesFactura && cmbModoFactura.SelectedValue == "1") { CrearFactura(lstDetalleReceta, 1); //Re iniciar contadores y listas iContadorRenglones = 0; lstDetalleReceta.Clear(); } //JID Si el modo de factura es electronico, hace el proceso con la lista completa if (cmbModoFactura.SelectedValue == "2") { CrearFactura(lstDetalleReceta, 2); //Re iniciar contadores y listas iContadorRenglones = 0; lstDetalleReceta.Clear(); } }
/// <summary> /// Buscar las recetas por los diferentes filtros /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnBuscarRec_Click(object sender, EventArgs e) { MedNeg.Recetas.BlRecetas oblRecetas = new MedNeg.Recetas.BlRecetas(); //var oQuery = oblRecetas.RecetasFacturarPorPrograma(); //Por fechas if (chkFecha.Checked==true) { var oQuery = oblRecetas.RecetasFacturarPorProgramaFecha(txbFechaDesde.Text, txbFechaHasta.Text); MostrarLista(oQuery); } //Por fechas con almacen if (chkFecha.Checked == true && chkAlmacen.Checked==true) { var oQuery = oblRecetas.RecetasFacturarPorProgramaFecha(txbFechaDesde.Text, txbFechaHasta.Text); MostrarLista(oQuery); } //Por Folio if (chkFolio.Checked == true) { var oQuery = oblRecetas.RecetasFacturarPorProgramaFolio(txbFolioDesde.Text, txbFolioHasta.Text); MostrarLista(oQuery); } //Por Folio y almacen if (chkFolio.Checked == true && chkAlmacen.Checked==true) { var oQuery = oblRecetas.RecetasFacturarPorProgramaFolio(txbFolioDesde.Text, txbFolioHasta.Text); MostrarLista(oQuery); } //Filtrado solo por almacen if (chkAlmacen.Checked == true && chkFolio.Checked == false && chkFecha.Checked == false) { var oQuery = oblRecetas.RecetasFacturarPorPrograma(Convert.ToInt32(cmbAlmacenes.SelectedValue)); MostrarLista(oQuery); } //Sin filtros if (chkAlmacen.Checked == false && chkFolio.Checked == false && chkFecha.Checked == false) { var oQuery = oblRecetas.RecetasFacturarPorPrograma(); MostrarLista(oQuery); } chkTodas.Visible = true; chkTodas.Checked = false; }
protected void Page_Load(object sender, EventArgs e) { Hashtable htbPermisos = (Hashtable)Session["permisos"]; char cPermiso = 'N'; try { #region Interfaz cPermiso = (char)htbPermisos["reportes"]; Master.FindControl("btnNuevo").Visible = false; Master.FindControl("btnEditar").Visible = false; Master.FindControl("btnEliminar").Visible = false; Master.FindControl("btnReportes").Visible = false; Master.FindControl("btnMostrar").Visible = false; Master.FindControl("btnCancelar").Visible = false; Master.FindControl("btnAceptar").Visible = false; Master.FindControl("lblBuscar").Visible = false; rdbTodos = (RadioButton)Master.FindControl("rdbFiltro1"); rdbTodos.Visible = false; rdbClave = (RadioButton)Master.FindControl("rdbFiltro2"); rdbClave.Visible = false; rdbNombre = (RadioButton)Master.FindControl("rdbFiltro3"); rdbNombre.Visible = false; btnBuscar = (Button)Master.FindControl("btnBuscar"); btnBuscar.Visible = false; txbBuscar = (TextBox)Master.FindControl("txtBuscar"); txbBuscar.Visible = false; lblNombreModulo = (Label)Master.FindControl("lblNombreModulo"); lblNombreModulo.Text = "Reportes"; /*switch (cPermiso) * { * case 'T': * break; * case 'E': * break; * case 'L': * break; * }*/ #endregion oblFacturas = new MedNeg.Facturas.BlFacturas(); oblRecetas = new MedNeg.Recetas.BlRecetas(); oblPoblaciones = new MedNeg.Poblaciones.BlPoblaciones(); if (!IsPostBack) { Session["reporteactivo"] = 0; Session["reportdocument"] = ""; Session["titulo"] = ""; Session["reporte"] = null; pnlFiltroReportes.Visible = true; CargarListaReportes(); } } catch (NullReferenceException) { if (!ClientScript.IsStartupScriptRegistered("alertsession")) { Page.ClientScript.RegisterStartupScript(this.GetType(), "alertsession", "alertarSesion();", true); } 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"); 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"; } }
/// <summary> /// Carga los detalles de la receta /// </summary> private void CargaReceta(string sFolio) { //objeto que contiene la receta MedDAL.DAL.recetas oReceta = new MedDAL.DAL.recetas(); MedNeg.Recetas.BlRecetas oblReceta = new MedNeg.Recetas.BlRecetas(); oReceta = oblReceta.BuscarRecetaFolio(sFolio); //Recuperar el id de la receta y del usuario Session["sIdReceta"] = oReceta.idReceta; //Llenar los campos del cliente try { txbCliente.Text = oReceta.clientes.Nombre + " " + oReceta.clientes.Apellidos; txbDireccion.Text = oReceta.clientes.Calle + " " + oReceta.clientes.NumeroExt; if (oReceta.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oReceta.clientes.NumeroInt; } txbPoblacion.Text = oReceta.clientes.poblaciones.Nombre.ToString() + ", " + oReceta.clientes.municipios.Nombre.ToString() + ", " + oReceta.clientes.estados.Nombre.ToString(); Session["sIdCliente"] = oReceta.idCliente; } catch { //En caso de que no tenga un cliente registrado txbCliente.Text = ""; txbDireccion.Text = ""; txbPoblacion.Text = ""; } //Llenar los datos de la partida de la remisión oblReceta = new MedNeg.Recetas.BlRecetas(); //Recuperar la partida del pedido var oQuery = oblReceta.RecuperarPartidaRecetas(oReceta.idReceta); 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.recetas_partida oDetalle in oQuery) { oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( Convert.ToInt32(oDetalle.idProducto), oDetalle.productos.Clave1, oDetalle.productos.Nombre, Convert.ToDecimal(oDetalle.CantidaSurtida), Convert.ToDecimal(oDetalle.productos.TasaIeps), Convert.ToDecimal(oDetalle.productos.tipo_iva.Iva), Convert.ToDecimal(oDetalle.Precio), "", Convert.ToDecimal((oDetalle.Precio * oDetalle.CantidaSurtida) + oDetalle.productos.tipo_iva.Iva)); ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + Convert.ToDecimal((oDetalle.Precio * oDetalle.CantidaSurtida) + oDetalle.productos.tipo_iva.Iva); } //Hacer el binding de la data al dgvDatos lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); dgvPartidaDetalle.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { Hashtable htbPermisos = (Hashtable)Session["permisos"]; char cPermiso = 'N'; try { #region Interfaz cPermiso = (char)htbPermisos["reportes"]; Master.FindControl("btnNuevo").Visible = false; Master.FindControl("btnEditar").Visible = false; Master.FindControl("btnEliminar").Visible = false; Master.FindControl("btnReportes").Visible = false; Master.FindControl("btnMostrar").Visible = false; Master.FindControl("btnCancelar").Visible = false; Master.FindControl("btnAceptar").Visible = false; Master.FindControl("lblBuscar").Visible = false; rdbTodos = (RadioButton)Master.FindControl("rdbFiltro1"); rdbTodos.Visible = false; rdbClave = (RadioButton)Master.FindControl("rdbFiltro2"); rdbClave.Visible = false; rdbNombre = (RadioButton)Master.FindControl("rdbFiltro3"); rdbNombre.Visible = false; btnBuscar = (Button)Master.FindControl("btnBuscar"); btnBuscar.Visible = false; txbBuscar = (TextBox)Master.FindControl("txtBuscar"); txbBuscar.Visible = false; lblNombreModulo = (Label)Master.FindControl("lblNombreModulo"); lblNombreModulo.Text = "Reportes"; /*switch (cPermiso) { case 'T': break; case 'E': break; case 'L': break; }*/ #endregion oblFacturas = new MedNeg.Facturas.BlFacturas(); oblRecetas = new MedNeg.Recetas.BlRecetas(); oblPoblaciones = new MedNeg.Poblaciones.BlPoblaciones(); if (!IsPostBack) { Session["reporteactivo"] = 0; Session["reportdocument"] = ""; Session["titulo"] = ""; Session["reporte"] = null; pnlFiltroReportes.Visible = true; CargarListaReportes(); } } catch (NullReferenceException) { if (!ClientScript.IsStartupScriptRegistered("alertsession")) { Page.ClientScript.RegisterStartupScript(this.GetType(), "alertsession", "alertarSesion();", true); } Site1 oPrincipal = (Site1)this.Master; oPrincipal.DeshabilitarControles(this); oPrincipal.DeshabilitarControles(); } }