예제 #1
0
        protected void imgBtnEntradaSalida_Click(object sender, ImageClickEventArgs e)
        {
            EntradaSalida.Visible     = true;
            pnlCatalogo.Visible       = false;
            pnlFiltroReportes.Visible = false;

            MedDAL.DAL.inventario oInventario = blInventarios.ObtenerUltimoMovimiento();
            string sPedimento = oInventario != null ? oInventario.Pedimento : "";

            txbPedimento.Text = sPedimento != "" ? (Convert.ToInt32(oInventario.Pedimento) + 1).ToString() : "1";
        }
예제 #2
0
 void imbCancelarMovimiento_Click(object sender, ImageClickEventArgs e)
 {
     if (pnlCatalogo.Visible)
     {
         int idMovimiento = (int)gdvDatos.SelectedValue;
         MedDAL.DAL.inventario oInventario = blInventarios.BuscarPorId(idMovimiento);
         if (oInventario.Concepto.ToUpper() == "ENTRADA")
         {
             oInventario.Concepto = "Entrada Cancelada";
         }
         else if (oInventario.Concepto.ToUpper() == "SALIDA")
         {
             oInventario.Concepto = "Salida Cancelada";
         }
         blInventarios = new BlInventarios();
         if (blInventarios.EditarRegistro(oInventario))
         {
             //GestionarExistenciasPorPartida
             decimal dPrecioTotal = 0;
             foreach (MedDAL.DAL.inventario_partida oInventarioPartida in oInventario.inventario_partida)
             {
                 blInventarios.GestionarCancelacion(oInventario.idAlmacen, oInventarioPartida.idProducto, oInventarioPartida.Lote, oInventarioPartida.NoSerie, Convert.ToDecimal(oInventarioPartida.Cantidad), oInventario.Concepto);
                 dPrecioTotal += Convert.ToDecimal(oInventarioPartida.Cantidad) * oInventarioPartida.Precio;
             }
             //Si el concepto era de entrada, hay que ponerle el credito a la linea
             if (oInventario.Concepto == "Entrada Cancelada")
             {
                 blInventarios.AumentarCreditoALinea(oInventario.idLineaCredito, dPrecioTotal);
             }
             //Checar si los lotes quedan en 0 y eliminarlos
             Buscar(txbBuscar.Text);
         }
     }
     else
     {
         EntradaSalida.Visible     = false;
         pnlFiltroReportes.Visible = false;
         pnlCatalogo.Visible       = true;
     }
 }
예제 #3
0
        public void FinalizaEntradaSalida()
        {
            if (grvEntSalArticulos.Rows.Count > 0)
            {
                decimal costoTotal = 0M;
                foreach (Producto p in ((List<MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
                {
                    costoTotal += p.costo;
                }
                if (costoTotal <= blInventarios.BuscarCantCreditoLineaCredito(int.Parse(ddlEntSalLineasDeCredito.SelectedValue)))
                {
                    try
                    {
                        int idAlmacen = int.Parse(ddlEntSalAlmacenes.SelectedValue);
                        foreach (Producto p in ((List<MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
                        {
                            blInventarios.GestionarExistenciaProducto(idAlmacen, p.dbProducto.idProducto, p.lote, p.serie, p.fechaCaducidad, p.cantidad, ddlEntSalConceptoMov.SelectedValue, Convert.ToInt32(ddlEntSalLineasDeCredito.SelectedValue.ToString()));
                        }

                        MedDAL.DAL.inventario inventario = new MedDAL.DAL.inventario();
                        inventario.idLineaCredito = int.Parse(ddlEntSalLineasDeCredito.SelectedValue);
                        inventario.idTipoMovimiento = int.Parse(ddlEntSalTiposMovimiento.SelectedValue);
                        inventario.idAlmacen = idAlmacen;
                        inventario.Observaciones = txtEntSalComentarios.Text;
                        inventario.Fecha = DateTime.Now;
                        inventario.Concepto = ddlEntSalConceptoMov.SelectedValue;
                        inventario.Pedimento = txbPedimento.Text;
                        if (inventario.Concepto == "Salida")
                        {
                            inventario.idAlmacenSalida = int.Parse(ddlEntSalAlmacenSalida.SelectedValue);
                        }

                        List<MedDAL.DAL.inventario_partida> lpartida = new List<MedDAL.DAL.inventario_partida>(); ;
                        MedDAL.DAL.inventario_partida partida;
                        costoTotal = 0M;
                        foreach (Producto p in ((List<MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
                        {
                            partida = new MedDAL.DAL.inventario_partida();
                            partida.idProducto = p.dbProducto.idProducto;
                            partida.Cantidad = p.cantidad.ToString();
                            partida.Precio = p.costo;
                            partida.Lote = p.lote;
                            partida.NoSerie = p.serie;

                            costoTotal += p.costo;
                            lpartida.Add(partida);
                        }

                        blInventarios.agregarRegistroInventario(inventario, lpartida);
                        
                        foreach (MedDAL.DAL.inventario_partida oInventarioPartida in lpartida)
                        {
                            if (!blInventarios.BuscarAlmacenProductoStocks(idAlmacen, oInventarioPartida.idProducto))
                            {
                                MedDAL.DAL.productos_almacen_stocks oProductoAlmacenStock = new MedDAL.DAL.productos_almacen_stocks();
                                oProductoAlmacenStock.idAlmacen = idAlmacen;
                                oProductoAlmacenStock.idProducto = oInventarioPartida.idProducto;
                                oProductoAlmacenStock.StockMax = 0;
                                oProductoAlmacenStock.StockMin = 0;
                                blInventarios.NuevoProductosAlmacenStock(oProductoAlmacenStock);
                            }

                            List<MedDAL.DAL.recetas_partida_faltantes> lstRetecasPartidaFaltantes = oblRecetasPartidaFaltantes.BuscarPorProductoAlmacen(oInventarioPartida.idProducto, idAlmacen);

                            if (lstRetecasPartidaFaltantes.Count > 0)
                            {
                                foreach (MedDAL.DAL.recetas_partida_faltantes oRecetaPartidaFaltante in lstRetecasPartidaFaltantes)
                                {
                                    oblRecetasPartidaFaltantes.EliminarRegistro(oRecetaPartidaFaltante);
                                }
                            }
                        }

                        if (ddlEntSalConceptoMov.SelectedValue.Equals("Entrada"))
                            blInventarios.DescontarCreditoALinea(int.Parse(ddlEntSalLineasDeCredito.SelectedValue), costoTotal);

                        lbEntSalAvisos.Text = "Proceso finalizado con éxito";

                        Session["invEntSalLsProductos"] = new List<MedNeg.Inventarios.Producto>();

                        LimpiarPantallaEntradaSalida();                        
                    }
                    catch (Exception ex)
                    {
                        lbEntSalAvisos.Text = ex.Message;
                    }
                }
                else
                    lbEntSalAvisos.Text = "Fondos insuficientes en Línea de crédito: " + ddlEntSalLineasDeCredito.SelectedItem.Text;
            }
            else
            {
                if (ddlEntSalConceptoMov.SelectedIndex == 0)
                {
                    lbEntSalAvisos.Text = "La entrada no tiene productos registrados";
                }
                else if (ddlEntSalConceptoMov.SelectedIndex == 1)
                {
                    lbEntSalAvisos.Text = "La salida no tiene productos registrados";
                }
            }
        }
예제 #4
0
        public void FinalizaEntradaSalida()
        {
            decimal costoTotal = 0M;

            foreach (Producto p in ((List <MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
            {
                costoTotal += p.costo;
            }
            if (costoTotal <= blInventarios.BuscarCantCreditoLineaCredito(int.Parse(ddlEntSalLineasDeCredito.SelectedValue)))
            {
                try
                {
                    int idAlmacen = int.Parse(ddlEntSalAlmacenes.SelectedValue);
                    foreach (Producto p in ((List <MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
                    {
                        blInventarios.GestionarExistenciaProducto(idAlmacen, p.dbProducto.idProducto, p.lote, p.serie, p.fechaCaducidad, p.cantidad, ddlEntSalConceptoMov.SelectedValue, Convert.ToInt32(ddlEntSalLineasDeCredito.SelectedValue.ToString()));
                    }

                    MedDAL.DAL.inventario inventario = new MedDAL.DAL.inventario();
                    inventario.idLineaCredito   = int.Parse(ddlEntSalLineasDeCredito.SelectedValue);
                    inventario.idTipoMovimiento = int.Parse(ddlEntSalTiposMovimiento.SelectedValue);
                    inventario.idAlmacen        = idAlmacen;
                    inventario.Observaciones    = txtEntSalComentarios.Text;
                    inventario.Fecha            = DateTime.Now;
                    inventario.Concepto         = ddlEntSalConceptoMov.SelectedValue;
                    inventario.Pedimento        = txbPedimento.Text;

                    List <MedDAL.DAL.inventario_partida> lpartida = new List <MedDAL.DAL.inventario_partida>();;
                    MedDAL.DAL.inventario_partida        partida;
                    costoTotal = 0M;
                    foreach (Producto p in ((List <MedNeg.Inventarios.Producto>)Session["invEntSalLsProductos"]))
                    {
                        partida            = new MedDAL.DAL.inventario_partida();
                        partida.idProducto = p.dbProducto.idProducto;
                        partida.Cantidad   = p.cantidad.ToString();
                        partida.Precio     = p.costo;
                        partida.Lote       = p.lote;
                        partida.NoSerie    = p.serie;

                        costoTotal += p.costo;
                        lpartida.Add(partida);
                    }

                    blInventarios.agregarRegistroInventario(inventario, lpartida);

                    //Codigo Renard, para que funcione el modulo de inventarios.
                    foreach (MedDAL.DAL.inventario_partida oInventarioPartida in lpartida)
                    {
                        if (!blInventarios.BuscarAlmacenProductoStocks(idAlmacen, oInventarioPartida.idProducto))
                        {
                            MedDAL.DAL.productos_almacen_stocks oProductoAlmacenStock = new MedDAL.DAL.productos_almacen_stocks();
                            oProductoAlmacenStock.idAlmacen  = idAlmacen;
                            oProductoAlmacenStock.idProducto = oInventarioPartida.idProducto;
                            oProductoAlmacenStock.StockMax   = 0;
                            oProductoAlmacenStock.StockMin   = 0;
                            blInventarios.NuevoProductosAlmacenStock(oProductoAlmacenStock);
                        }

                        List <MedDAL.DAL.recetas_partida_faltantes> lstRetecasPartidaFaltantes = oblRecetasPartidaFaltantes.BuscarPorProductoAlmacen(oInventarioPartida.idProducto, idAlmacen);

                        if (lstRetecasPartidaFaltantes.Count > 0)
                        {
                            foreach (MedDAL.DAL.recetas_partida_faltantes oRecetaPartidaFaltante in lstRetecasPartidaFaltantes)
                            {
                                oblRecetasPartidaFaltantes.EliminarRegistro(oRecetaPartidaFaltante);
                            }
                        }
                    }

                    if (ddlEntSalConceptoMov.SelectedValue.Equals("Entrada"))
                    {
                        blInventarios.DescontarCreditoALinea(int.Parse(ddlEntSalLineasDeCredito.SelectedValue), costoTotal);
                    }

                    lbEntSalAvisos.Text = "Proceso finalizado con éxito";
                }
                catch (Exception ex)
                {
                    lbEntSalAvisos.Text = ex.Message;
                }
            }
            else
            {
                lbEntSalAvisos.Text = "Fondos insuficientes en Línea de crédito: " + ddlEntSalLineasDeCredito.SelectedItem.Text;
            }
        }