예제 #1
0
        /// <summary>
        /// Almacena el registro de una ENTIDAD de registro de Tipo ListaDePrecioDetalle
        /// En la BASE de DATO la Tabla : [GestionComercial.ListaDePrecioDetalle]
        /// <summary>
        /// <param name="listaListaDePrecioDetalle"></param>
        /// <param name="listaProductoPrecio"></param>
        /// <returns></returns>
        public ReturnValor InsertDetalle(List <BEListaDePrecioDetalle> lstListaDePrecioDetalle, List <BEProductoPrecio> lstProductoPrecio)
        {
            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    int indPRECIO_UPDATE = -1;
                    foreach (BEListaDePrecioDetalle listaPrecioDetalle in lstListaDePrecioDetalle)
                    {
                        returnValor.codRetorno = listaDePrecioDetalleData.Insert(listaPrecioDetalle);
                        if (returnValor.codRetorno != 0)
                        {
                            returnValor.Exitosa = true;
                        }
                        ProductoPrecioData productoPrecioData = new ProductoPrecioData();
                        lstProductoPrecio = productoPrecioData.List(new BaseFiltro {
                            codProducto = listaPrecioDetalle.codProducto, codRegMoneda = string.Empty, codListaPrecio = null, codPerEmpresa = listaPrecioDetalle.CodigoPersonaEmpre, codPuntoVenta = listaPrecioDetalle.CodigoPuntoVenta, indEstado = true
                        });
                        if (lstProductoPrecio.Count == 1)
                        {
                            if (listaPrecioDetalle.refEsParaVenta)
                            {
                                lstProductoPrecio[0].ValorVenta = listaPrecioDetalle.PrecioUnitario;
                            }
                            else
                            {
                                lstProductoPrecio[0].ValorCosto = listaPrecioDetalle.PrecioUnitario;
                            }
                            lstProductoPrecio[0].SegUsuarioCrea  = listaPrecioDetalle.segUsuarioEdita;
                            lstProductoPrecio[0].SegUsuarioEdita = listaPrecioDetalle.segUsuarioEdita;

                            lstProductoPrecio[0].CodigoArguMoneda  = listaPrecioDetalle.CodigoArguMoneda;
                            lstProductoPrecio[0].codProducto       = listaPrecioDetalle.codProducto;
                            lstProductoPrecio[0].CodigoPuntoVenta  = listaPrecioDetalle.CodigoPuntoVenta;
                            lstProductoPrecio[0].CodigoListaPrecio = listaPrecioDetalle.CodigoLista;
                            lstProductoPrecio[0].Estado            = true;

                            indPRECIO_UPDATE = productoPrecioData.Insert(lstProductoPrecio[0]);
                        }
                    }
                    if (returnValor.Exitosa && indPRECIO_UPDATE != 0)
                    {
                        returnValor.Message = HelpEventos.MessageEvento(HelpEventos.Process.NEW);
                        tx.Complete();
                    }
                }
            }
            catch (Exception ex)
            {
                returnValor = HelpException.mTraerMensaje(ex);
            }
            return(returnValor);
        }
예제 #2
0
        /// <summary>
        /// Almacena el registro de una ENTIDAD de registro de Tipo ListaDePrecioDetalle
        /// En la BASE de DATO la Tabla : [GestionComercial.ListaDePrecioDetalle]
        /// <summary>
        /// <param name="itemListaDePrecioDetalle"></param>
        /// <param name="listaProductoPrecio"></param>
        /// <returns></returns>
        public ReturnValor UpdateDetalle(BEListaDePrecioDetalle itemListaDePrecioDetalle, List <BEProductoPrecio> listaProductoPrecio)
        {
            DTOResponseProcedure objProductoPrecio = null;

            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    int indPrecioUpdate = -1;
                    returnValor.Exitosa = listaDePrecioDetalleData.Update(itemListaDePrecioDetalle);

                    ProductoPrecioData productoPrecioData = new ProductoPrecioData();
                    //listaProductoPrecio = oProductoPrecioData.List(itemListaDePrecioDetalle.CodigoProducto, string.Empty, null, itemListaDePrecioDetalle.CodigoPersonaEmpre, itemListaDePrecioDetalle.CodigoPuntoVenta, true);
                    if (listaProductoPrecio.Count == 1)
                    {
                        if (itemListaDePrecioDetalle.refEsParaVenta)
                        {
                            listaProductoPrecio[0].ValorVenta = itemListaDePrecioDetalle.PrecioUnitario;
                        }
                        else
                        {
                            listaProductoPrecio[0].ValorCosto = itemListaDePrecioDetalle.PrecioUnitario;
                        }
                        listaProductoPrecio[0].segUsuarioCrea  = itemListaDePrecioDetalle.segUsuarioEdita;
                        listaProductoPrecio[0].segUsuarioEdita = itemListaDePrecioDetalle.segUsuarioEdita;
                        objProductoPrecio = productoPrecioData.InsertUpdate(listaProductoPrecio[0]);
                    }
                    if (returnValor.Exitosa && objProductoPrecio.ErrorCode > 0)
                    {
                        returnValor.Message = HelpEventos.MessageEvento(HelpEventos.Process.EDIT);
                        tx.Complete();
                    }
                }
            }
            catch (Exception ex)
            {
                returnValor = HelpException.mTraerMensaje(ex);
            }
            return(returnValor);
        }
예제 #3
0
        public List <BEListaDePrecioDetalle> ListDesdeStock(BaseFiltro filtro) //, string prm_CodigoPersonaEmpre, string prm_CodigoPuntoVenta, string prm_codDeposito, string prm_CodigoArguMoneda, bool prm_EsParaVentas, string prm_CodigoLista, string prm_UsuarioLogin)
        {
            List <BEListaDePrecioDetalle> lstListaDePrecioDetalle = new List <BEListaDePrecioDetalle>();
            List <BEProducto>             lstProducto             = new List <BEProducto>();
            List <BEProducto>             lstProductoDep          = new List <BEProducto>();
            List <BEProductoPrecio>       lstProductoPrecio       = new List <BEProductoPrecio>();
            BETipoDeCambio itemTiposDeCambio = new BETipoDeCambio();

            try
            {
                ProductoLogic      productoLogic       = new ProductoLogic();
                ProductoPrecioData oProductoPrecioData = new ProductoPrecioData();
                TipoDeCambioLogic  oTiposdeCambioLogic = new TipoDeCambioLogic();
                lstProducto = productoLogic.List(new BaseFiltroAlmacen
                {
                    codPerEmpresa       = filtro.codPerEmpresa,
                    codDeposito         = string.Empty,
                    codProductoRefer    = string.Empty,
                    codProducto         = null,
                    desNombre           = string.Empty,
                    desComercial        = string.Empty,
                    codRegMarca         = string.Empty,
                    codRegTipo          = string.Empty,
                    indDestinoCompra    = true,
                    indDestinaVenta     = true,
                    codRegCentroProducc = string.Empty,
                    codRegCategoria     = string.Empty,
                    codRegUnidadMedida  = string.Empty,
                    indEstado           = true,
                    desPalabraClave     = string.Empty,
                    indTodos            = true
                });
                itemTiposDeCambio = oTiposdeCambioLogic.Find(new BaseFiltro
                {
                    fecInicioDate = DateTime.Now,
                    codRegMoneda  = ConfigCROM.AppConfig(ConfigTool.DEFAULT_MonedaInt)
                });
                foreach (BEProducto xProducto in lstProducto)
                {
                    if (xProducto.EsListaPrecio)
                    {
                        BEProducto productoNew = new BEProducto();
                        filtro.codProducto = xProducto.codProducto;
                        BaseFiltroAlmacen filtroAlmacen = new BaseFiltroAlmacen
                        {
                            codProductoRefer = filtro.codProductoRefer,
                            codProducto      = filtro.codProducto.Value
                        };
                        productoNew = productoLogic.Find(filtroAlmacen);
                        productoNew.itemProductoPrecio.codProducto          = xProducto.codProducto;
                        productoNew.itemProductoPrecio.CodigoProductoNombre = productoNew.Descripcion;
                        lstProductoPrecio.Add(productoNew.itemProductoPrecio);
                    }
                }
                filtro.codProducto = null;
                foreach (BEProductoPrecio itemproductoPrecio in lstProductoPrecio)
                {
                    BEListaDePrecioDetalle itemlistaDePrecioDetalle = new BEListaDePrecioDetalle
                    {
                        CodigoArguMoneda     = filtro.codRegMoneda,
                        codProducto          = itemproductoPrecio.codProducto,
                        CodigoProducto       = itemproductoPrecio.CodigoProducto,
                        Estado               = itemproductoPrecio.Estado,
                        segFechaEdita        = DateTime.Now,
                        segUsuarioEdita      = filtro.segUsuarioEdita,
                        CodigoProductoNombre = itemproductoPrecio.CodigoProductoNombre,
                        CodigoLista          = filtro.codListaPrecio,
                        segUsuarioCrea       = filtro.segUsuarioEdita,
                        segFechaCrea         = DateTime.Now,
                        CodigoPersonaEmpre   = filtro.codPerEmpresa,
                        CodigoPuntoVenta     = filtro.codPuntoVenta,
                    };
                    decimal PRECIO_A_TOMAR = 0;
                    if (filtro.indParaVenta.Value)
                    {
                        PRECIO_A_TOMAR = itemproductoPrecio.ValorVenta;
                    }
                    else
                    {
                        PRECIO_A_TOMAR = itemproductoPrecio.ValorCosto;
                    }

                    if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                    {
                        itemlistaDePrecioDetalle.PrecioUnitario = PRECIO_A_TOMAR;
                    }
                    else
                    {
                        if (filtro.codRegMoneda == ConfigCROM.AppConfig(ConfigTool.DEFAULT_MonedaNac))
                        {
                            if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                            {
                                itemlistaDePrecioDetalle.PrecioUnitario = PRECIO_A_TOMAR;
                            }
                            else
                            {
                                itemlistaDePrecioDetalle.PrecioUnitario = Helper.DecimalRound(PRECIO_A_TOMAR * itemTiposDeCambio.CambioVentasPRL, 2);
                            }
                        }
                        if (filtro.codRegMoneda == ConfigCROM.AppConfig(ConfigTool.DEFAULT_MonedaInt))
                        {
                            if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                            {
                                itemlistaDePrecioDetalle.PrecioUnitario = PRECIO_A_TOMAR;
                            }
                            else
                            {
                                itemlistaDePrecioDetalle.PrecioUnitario = Helper.DecimalRound(PRECIO_A_TOMAR / itemTiposDeCambio.CambioVentasPRL, 2);
                            }
                        }
                    }
                    lstListaDePrecioDetalle.Add(itemlistaDePrecioDetalle);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(lstListaDePrecioDetalle);
        }
예제 #4
0
 public ProductoPrecioLogic()
 {
     productoPrecioData = new ProductoPrecioData();
     oReturnValor       = new ReturnValor();
 }
예제 #5
0
        public List <BEListaDePrecioDetalle> ListDesdeStockCompras(BaseFiltro filtro) // string prm_CodigoPersonaEmpre, string prm_CodigoPuntoVenta, string prm_codDeposito, string prm_CodigoArguMoneda, bool prm_ParaCompras, bool prm_ParaVentas, string prm_CodigoLista, string prm_UsuarioLogin)
        {
            List <BEListaDePrecioDetalle> lstListaDePrecioDetalle = new List <BEListaDePrecioDetalle>();
            List <DTOProductoResponse>    lstProducto             = new List <DTOProductoResponse>();
            List <BEProducto>             lstProductoDep          = new List <BEProducto>();
            List <BEProductoPrecio>       lstProductoPrecio       = new List <BEProductoPrecio>();
            BETipoDeCambio tipoDeCambio = new BETipoDeCambio();

            try
            {
                ProductoLogic      oProductoLogic      = new ProductoLogic();
                ProductoPrecioData oProductoPrecioData = new ProductoPrecioData();
                TipoDeCambioLogic  oTiposdeCambioLogic = new TipoDeCambioLogic();
                lstProducto = oProductoLogic.List(new BaseFiltroProducto
                {
                    codEmpresaRUC       = filtro.codEmpresaRUC,
                    codDeposito         = string.Empty,
                    codProductoRefer    = string.Empty,
                    desNombre           = string.Empty,
                    desComercial        = string.Empty,
                    codMarca            = null,
                    codRegTipo          = string.Empty,
                    indDestinoCompra    = true,
                    indDestinaVenta     = true,
                    codRegCentroProducc = string.Empty,
                    codRegCategoria     = string.Empty,
                    codRegUnidadMedida  = string.Empty,
                    indEstado           = true,
                    desPalabraClave     = string.Empty,
                    indTodos            = true
                });

                tipoDeCambio = oTiposdeCambioLogic.Find(new BaseFiltroTipoCambio
                {
                    codEmpresa    = filtro.codEmpresa,
                    fecInicioDate = DateTime.Now,
                    codRegMoneda  = ConfigCROM.AppConfig(filtro.codEmpresa, ConfigTool.DEFAULT_MonedaInt)
                });

                foreach (DTOProductoResponse xProducto in lstProducto)
                {
                    if (xProducto.EsListaPrecio)
                    {
                        BEProducto productoNew = new BEProducto();
                        productoNew = oProductoLogic.Find(new BaseFiltroAlmacen
                        {
                            codEmpresa  = filtro.codEmpresa,
                            codProducto = xProducto.codProducto
                        });

                        productoNew.itemProductoPrecio.CodigoProductoNombre = productoNew.Descripcion;
                        lstProductoPrecio.Add(productoNew.itemProductoPrecio);
                    }
                }
                filtro.codProducto = null;
                foreach (BEProductoPrecio itemproductoPrecio in lstProductoPrecio)
                {
                    BEListaDePrecioDetalle xlstListaDePrecioDetalle = new BEListaDePrecioDetalle
                    {
                        CodigoArguMoneda     = filtro.codRegMoneda,
                        codProducto          = itemproductoPrecio.codProducto,
                        CodigoProducto       = itemproductoPrecio.CodigoProducto,
                        Estado               = itemproductoPrecio.Estado,
                        segFechaEdita        = DateTime.Now,
                        segUsuarioEdita      = filtro.segUsuarioEdita,
                        CodigoProductoNombre = itemproductoPrecio.CodigoProductoNombre,
                        CodigoLista          = filtro.codListaPrecio,
                        segUsuarioCrea       = filtro.segUsuarioEdita,
                        segFechaCrea         = DateTime.Now,
                        CodigoPersonaEmpre   = filtro.codEmpresaRUC,
                        CodigoPuntoVenta     = filtro.codPuntoVenta,
                    };
                    if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                    {
                        xlstListaDePrecioDetalle.PrecioUnitario = itemproductoPrecio.ValorVenta;
                    }
                    else
                    {
                        if (filtro.codRegMoneda == ConfigCROM.AppConfig(filtro.codEmpresa, ConfigTool.DEFAULT_MonedaNac))
                        {
                            if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                            {
                                xlstListaDePrecioDetalle.PrecioUnitario = itemproductoPrecio.ValorVenta;
                            }
                            else
                            {
                                xlstListaDePrecioDetalle.PrecioUnitario = Helper.DecimalRound(itemproductoPrecio.ValorVenta * tipoDeCambio.CambioVentasPRL, 2);
                            }
                        }
                        if (filtro.codRegMoneda == ConfigCROM.AppConfig(filtro.codEmpresa, ConfigTool.DEFAULT_MonedaInt))
                        {
                            if (itemproductoPrecio.CodigoArguMoneda == filtro.codRegMoneda)
                            {
                                xlstListaDePrecioDetalle.PrecioUnitario = itemproductoPrecio.ValorVenta;
                            }
                            else
                            {
                                xlstListaDePrecioDetalle.PrecioUnitario = Helper.DecimalRound(itemproductoPrecio.ValorVenta / tipoDeCambio.CambioVentasPRL, 2);
                            }
                        }
                    }
                    lstListaDePrecioDetalle.Add(xlstListaDePrecioDetalle);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(lstListaDePrecioDetalle);
        }