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();

        }
Пример #5
0
        /// <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();

            }
        }
Пример #6
0
        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";
                }
            }
        }
Пример #7
0
        /// <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();
        }
Пример #8
0
        /// <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);
                }
            }
        }
Пример #9
0
        /// <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();


        }