protected void imbAgregarDetalle_Click(object sender, ImageClickEventArgs e) { //Evitar mandar valores nullos para las conversiones //int iCantidad; decimal dCantidad, dIeps, dImp1 = 0, dImp2 = 0, dIva, dPrecio, dTotal; if (txbCant.Text.Equals("")) dCantidad = 0; else dCantidad = int.Parse(txbCant.Text); //Calcular el total dPrecio = decimal.Parse(cmbPrecios.SelectedValue); dTotal = dCantidad * dPrecio; //IEPS if (txbIeps.Text.Equals("")) dIeps = 0; else dIeps = dTotal * (decimal.Parse(txbIeps.Text) / 100); ////Imp1 //if (txbImp1.Text.Equals("")) // dImp1 = 0; //else // dImp1 = dTotal * (decimal.Parse(txbImp1.Text) / 100); /////Imp2 //if (txbImp2.Text.Equals("")) // dImp2 = 0; //else // dImp2 = dTotal * (decimal.Parse(txbImp2.Text) / 100); ///Iva if (txbIva.Text.Equals("")) dIva = 0; else dIva = dTotal * (decimal.Parse(txbIva.Text) / 100); //Agregar los impuestos al total dTotal += dIeps + dImp1 + dImp2 + dIva; //Recuperar el id del producto para ya tenerlo en la lista MedNeg.Productos.BlProductos oblProducto = new MedNeg.Productos.BlProductos(); int iIdProducto = oblProducto.RecuperarIdProducto(txbClave.Text); //Crear el objeto ya con sus parametros oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( iIdProducto, txbClave.Text, txbProducto.Text, dCantidad, dIeps, //dImp1, //dImp2, dIva, dPrecio, txbObservaciones.Text, dTotal); //Agregar el objeto detalle partida al objeto lstDetallePartida ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Add(oblDetallePartida); dgvPartidaDetalle.DataBind(); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + dTotal; lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); LimpiarDatosDetalle(); txbClave.Focus(); }
/// <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; if (bDatos) { //Objeto que contiene el id del pedido oblFacturas = new MedNeg.Facturas.BlFacturas(); oFactura = new MedDAL.DAL.facturas(); oFactura = (MedDAL.DAL.facturas)oblFacturas.BuscarFactura(int.Parse(dgvDatos.SelectedDataKey[0].ToString())); //Llenar los campos del pedido txbFolio.Text = oFactura.Folio; txbFecha.Text = oFactura.Fecha.ToShortDateString(); int iContador = 0; cmbEstatus.SelectedIndex = -1; foreach (ListItem elemento in cmbEstatus.Items) { if (elemento.Value.Equals(oFactura.Estatus.ToString())) { elemento.Selected = true; } iContador++; } cmbTipoFactura.SelectedIndex = -1; iContador = 0; foreach (ListItem elemento in cmbTipoFactura.Items) { if (elemento.Value.Equals(oFactura.TipoFactura.ToString())) { elemento.Selected = true; } iContador++; } //Llenar los campos del cliente txbCliente.Text = oFactura.clientes.Nombre + " " + oFactura.clientes.Apellidos; txbDireccion.Text = oFactura.clientes.Calle + " " + oFactura.clientes.NumeroExt; if (oFactura.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oFactura.clientes.NumeroInt; } txbPoblacion.Text = oFactura.clientes.poblaciones.Nombre.ToString() + ", " + oFactura.clientes.municipios.Nombre.ToString() + ", " + oFactura.clientes.estados.Nombre.ToString(); //Lenar los datos de la partida del detalle oblFacturas = new MedNeg.Facturas.BlFacturas(); //Recuperar la partida del pedido var oQuery = oblFacturas.RecuperarPartidaFactura(oFactura.idFactura); //Session["lstDetallePartida"] = new List<MedNeg.Facturas.BlDetallePartida>(); if (((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Count() > 0) { ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Clear(); } //Recorrer el resultado y meterlo al datagridview Session["sTotalFactura"] = 0; foreach (MedDAL.DAL.facturas_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(); ////si el estatus es 1 (Pedido) aun se pueden agregar articulos de lo contario ya no //if (oFactura.Estatus == "3") //{ // HabilitaRemision(); // Deshabilita(); //} //else //{ DeshabilitaRemision(); Deshabilita(); //cmbEstatus.Enabled = true; //} } else { //Limpia(); //Deshabilita(); } }
/// <summary> /// Cargar los detalles de la remisión /// </summary> private void CargaRemision(string sFolioRemision) { //Objeto que contiene la remisión MedDAL.DAL.remisiones oRemision = new MedDAL.DAL.remisiones(); MedNeg.Remisiones.BlRemisiones oblRemision = new MedNeg.Remisiones.BlRemisiones(); oRemision = oblRemision.BuscarRemisionFolio(sFolioRemision); //Llenar los campos del pedido Session["sIdPedido"] = oRemision.idPedido; Session["sIdCliente"] = oRemision.idCliente; Session["sIdRemision"] = oRemision.idRemision; //Llenar los campos del cliente txbCliente.Text = oRemision.clientes.Nombre + " " + oRemision.clientes.Apellidos; txbDireccion.Text = oRemision.clientes.Calle + " " + oRemision.clientes.NumeroExt; if (oRemision.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oRemision.clientes.NumeroInt; } txbPoblacion.Text = oRemision.clientes.poblaciones.Nombre.ToString() + ", " + oRemision.clientes.municipios.Nombre.ToString() + ", " + oRemision.clientes.estados.Nombre.ToString(); //Llenar los datos de la partida de la remisión oblRemision = new MedNeg.Remisiones.BlRemisiones(); //Recuperar la partida del pedido var oQuery = oblRemision.RecuperarPartidaRemision(oRemision.idRemision); //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.remisiones_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> /// 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(); }
/// <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(); } }
protected void imbAgregarDetalle_Click(object sender, ImageClickEventArgs e) { lblAviso.Text = ""; //Evitar mandar valores nullos para las conversiones decimal dCantidad, dIeps, dImp1 = 0, dImp2 = 0, dIva, dPrecio, dTotal; bool bEsEnsamble; if (txbCant.Text.Equals("")) dCantidad = 0; else dCantidad = int.Parse(txbCant.Text); //Calcular el total dPrecio = decimal.Parse(cmbPrecios.SelectedValue); dTotal = dCantidad * dPrecio; //IEPS if (txbIeps.Text.Equals("")) dIeps = 0; else dIeps = dTotal * (decimal.Parse(txbIeps.Text) / 100); ////Imp1 //if (txbImp1.Text.Equals("")) // dImp1 = 0; //else // dImp1 = dTotal * (decimal.Parse(txbImp1.Text) / 100); /////Imp2 //if (txbImp2.Text.Equals("")) // dImp2 = 0; //else // dImp2 = dTotal * (decimal.Parse(txbImp2.Text) / 100); ///Iva if (txbIva.Text.Equals("")) dIva = 0; else dIva = dTotal * (decimal.Parse(txbIva.Text) / 100); //Agregar los impuestos al total dTotal += dIeps + dImp1 + dImp2 + dIva; //Recuperar el id del producto para ya tenerlo en la lista MedNeg.Productos.BlProductos oblProducto = new MedNeg.Productos.BlProductos(); int iIdProducto = oblProducto.RecuperarIdProducto(txbClave.Text); MedNeg.Usuarios.BlUsuarios oblUsuarios = new MedNeg.Usuarios.BlUsuarios(); MedDAL.DAL.usuarios oUsuario = new MedDAL.DAL.usuarios(); oUsuario = (MedDAL.DAL.usuarios)oblUsuarios.Buscar(int.Parse(Session["usuarioid"].ToString())); List<MedDAL.DAL.productos_almacen> lstProductosAlmacen = new List<MedDAL.DAL.productos_almacen>(); lstProductosAlmacen.AddRange(oblProducto.ObtenerExistenciaProducto(iIdProducto, oUsuario.idAlmacen)); string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml"); MedNeg.Configuracion.BlConfiguracion oblConfiguracion = new MedNeg.Configuracion.BlConfiguracion(); MedDAL.Configuracion.DALConfiguracion objConfiguracion = new MedDAL.Configuracion.DALConfiguracion(); objConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivoConfig); if (lstProductosAlmacen.Count != 0) { if (lstProductosAlmacen[0].Cantidad >= dCantidad || (objConfiguracion.iVentasNegativas == 1 && lstProductosAlmacen[0].Cantidad < dCantidad)) { if ((int)Session["sBolEsEnsamble"] == 1) bEsEnsamble = true; else bEsEnsamble = false; //Crear el objeto ya con sus parametros oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( iIdProducto, txbClave.Text, txbProducto.Text, dCantidad, dIeps, //dImp1, //dImp2, dIva, dPrecio, txbObservaciones.Text, dTotal, txbProducto.Text, bEsEnsamble); //Agregar el objeto detalle partida al objeto lstDetallePartidaPedidos ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartidaPedidos"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + dTotal; lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); dgvPartidaDetalle.DataBind(); LimpiarDatosDetalle(); txbClave.Focus(); } else if (objConfiguracion.iVentasNegativas == 0 && lstProductosAlmacen[0].Cantidad < dCantidad) { lblAviso.Text = "El producto que desea agregar no cuenta con suficientes existencias"; } } }
/// <summary> /// Cargar los detalles de la remisión /// </summary> private void CargaRemision(string sFolioRemision) { //Objeto que contiene la remisión MedDAL.DAL.remisiones oRemision = new MedDAL.DAL.remisiones(); MedNeg.Remisiones.BlRemisiones oblRemision = new MedNeg.Remisiones.BlRemisiones(); oRemision = oblRemision.BuscarRemisionFolio(sFolioRemision); //Llenar los campos del pedido Session["sIdPedido"] = oRemision.idPedido; Session["sIdCliente"] = oRemision.idCliente; Session["sIdRemision"] = oRemision.idRemision; //Llenar los campos del cliente txbCliente.Text = oRemision.clientes.Nombre + " " + oRemision.clientes.Apellidos; txbDireccion.Text = oRemision.clientes.Calle + " " + oRemision.clientes.NumeroExt; if (oRemision.clientes.NumeroInt != null) { txbDireccion.Text += "Int: " + oRemision.clientes.NumeroInt; } txbPoblacion.Text = oRemision.clientes.poblaciones.Nombre.ToString() + ", " + oRemision.clientes.municipios.Nombre.ToString() + ", " + oRemision.clientes.estados.Nombre.ToString(); //Llenar los datos de la partida de la remisión oblRemision = new MedNeg.Remisiones.BlRemisiones(); //Recuperar la partida del pedido List<MedDAL.DAL.remisiones_partida> oQuery = new List<MedDAL.DAL.remisiones_partida>(); oQuery.AddRange(oblRemision.RecuperarPartidaRemision(oRemision.idRemision)); //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.remisiones_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 Identificar si es un producto o un 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> /// Agregar detalle a la partida /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void imbAgregarDetalle_Click(object sender, ImageClickEventArgs e) { lblAviso.Text = ""; //Evitar mandar valores nullos para las conversiones //int iCantidad; decimal dCantidad,dIeps, dImp1=0, dImp2=0, dIva, dPrecio, dTotal; if (txbCant.Text.Equals("")) dCantidad = 0; else dCantidad = int.Parse(txbCant.Text); //Calcular el total dPrecio = decimal.Parse(cmbPrecios.SelectedValue); dTotal = dCantidad * dPrecio; //IEPS if (txbIeps.Text.Equals("")) dIeps = 0; else dIeps = dTotal * (decimal.Parse(txbIeps.Text) / 100); ////Imp1 //if (txbImp1.Text.Equals("")) // dImp1 = 0; //else // dImp1 = dTotal * (decimal.Parse(txbImp1.Text) / 100); /////Imp2 //if (txbImp2.Text.Equals("")) // dImp2 = 0; //else // dImp2 = dTotal * (decimal.Parse(txbImp2.Text) / 100); ///Iva if (txbIva.Text.Equals("")) dIva = 0; else dIva = dTotal * (decimal.Parse(txbIva.Text) / 100); //Agregar los impuestos al total dTotal += dIeps + dImp1 + dImp2 + dIva; //Recuperar el id del producto para ya tenerlo en la lista MedNeg.Productos.BlProductos oblProducto = new MedNeg.Productos.BlProductos(); int iIdProducto = oblProducto.RecuperarIdProducto(txbClave.Text); MedNeg.Usuarios.BlUsuarios oblUsuarios = new MedNeg.Usuarios.BlUsuarios(); MedDAL.DAL.usuarios oUsuario = new MedDAL.DAL.usuarios(); oUsuario = (MedDAL.DAL.usuarios)oblUsuarios.Buscar(int.Parse(Session["usuarioid"].ToString())); List<MedDAL.DAL.productos_almacen> lstProductosAlmacen = new List<MedDAL.DAL.productos_almacen>(); lstProductosAlmacen.AddRange(oblProducto.ObtenerExistenciaProducto(iIdProducto, oUsuario.idAlmacen)); string sRutaArchivoConfig = Server.MapPath("~/Archivos/Configuracion.xml"); MedNeg.Configuracion.BlConfiguracion oblConfiguracion = new MedNeg.Configuracion.BlConfiguracion(); MedDAL.Configuracion.DALConfiguracion objConfiguracion = new MedDAL.Configuracion.DALConfiguracion(); objConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivoConfig); if (lstProductosAlmacen.Count != 0) { if (lstProductosAlmacen[0].Cantidad >= dCantidad || (objConfiguracion.iVentasNegativas == 1 && lstProductosAlmacen[0].Cantidad < dCantidad) || lstProductosAlmacen[0].FechaCaducidad.Value > DateTime.Today) { // 0087 Datos del ensamble bool bEsEnsamble; if ((int)Session["sBolEsEnsamble"] == 1) bEsEnsamble = true; else bEsEnsamble = false; //Crear el objeto ya con sus parametros oblDetallePartida = new MedNeg.Facturas.BlDetallePartida( iIdProducto, txbClave.Text, txbProducto.Text, dCantidad, dIeps, //dImp1, //dImp2, dIva, dPrecio, txbObservaciones.Text, dTotal, txbProducto.Text, // 0087 Datos del ensamble bEsEnsamble); // 0087 Datos del ensamble //Agregar el objeto detalle partida al objeto lstDetallePartida ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstDetallePartida"]).Add(oblDetallePartida); dgvPartidaDetalle.DataBind(); //GT: Agregar los nuevos detalles a una lista alterna para poder modificar sus existencias sin duplicar las de los productos ya existentes if ((int)Session["accion"] == 2) ((List<MedNeg.Facturas.BlDetallePartida>)Session["lstremisionespartidaedicion"]).Add(oblDetallePartida); Session["sTotalFactura"] = Convert.ToDecimal(Session["sTotalFactura"]) + dTotal; lblTotal.Text = "TOTAL:$" + Session["sTotalFactura"].ToString(); LimpiarDatosDetalle(); txbClave.Focus(); if (lstProductosAlmacen[0].FechaCaducidad.Value <= DateTime.Today.AddDays(objConfiguracion.iCaducidad)) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarCaducidad(2);", true); } } else if (objConfiguracion.iVentasNegativas == 0 && lstProductosAlmacen[0].Cantidad < dCantidad) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarStock(2);", true); } else if (lstProductosAlmacen[0].FechaCaducidad.Value <= DateTime.Today) { ScriptManager.RegisterStartupScript(pnlFormulario, pnlFormulario.GetType(), "alertstock", "alertarCaducidad(3);", true); } } }
/// <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; //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 //0087 ); ((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(); }