예제 #1
0
 public cProductosGenerico(cProductos pProducto)
 {
     base.pro_codigo                     = pProducto.pro_codigo;
     base.pro_nombre                     = pProducto.pro_nombre;
     base.PrecioFinal                    = pProducto.PrecioFinal;
     base.pro_codigoalfabeta             = pProducto.pro_codigoalfabeta;
     base.pro_codigobarra                = pProducto.pro_codigobarra;
     base.pro_codtpopro                  = pProducto.pro_codtpopro;
     base.pro_descuentoweb               = pProducto.pro_descuentoweb;
     base.pro_laboratorio                = pProducto.pro_laboratorio;
     base.pro_monodroga                  = pProducto.pro_monodroga;
     base.pro_codtpovta                  = pProducto.pro_codtpovta;
     base.pro_neto                       = pProducto.pro_neto;
     base.pro_ofeporcentaje              = pProducto.pro_ofeporcentaje;
     base.pro_ofeunidades                = pProducto.pro_ofeunidades;
     base.pro_precio                     = pProducto.pro_precio;
     base.pro_preciofarmacia             = pProducto.pro_preciofarmacia;
     base.pro_isTrazable                 = pProducto.pro_isTrazable;
     base.pro_NoTransfersEnClientesPerf  = pProducto.pro_NoTransfersEnClientesPerf;
     base.pro_Familia                    = pProducto.pro_Familia;
     base.pro_AceptaVencidos             = pProducto.pro_AceptaVencidos;
     base.pro_PackDeVenta                = pProducto.pro_PackDeVenta;
     base.pro_PrecioBase                 = pProducto.pro_PrecioBase;
     base.pro_PorcARestarDelDtoDeCliente = pProducto.pro_PorcARestarDelDtoDeCliente;
     base.pro_ProductoRequiereLote       = pProducto.pro_ProductoRequiereLote;
     listaSucursalStocks                 = new List <cSucursalStocks>();
     isProductoNoEncontrado              = false;
 }
        public static List <cCarrito> RecuperarCarritosPorSucursalYProductos_generica(int pIdCliente, string pTipo)
        {
            if (WebService.VerificarPermisos(WebService.CredencialAutenticacion))
            {
                cClientes objClientes       = WebService.RecuperarClientePorId(pIdCliente);
                DataSet   dsProductoCarrito = new DataSet();
                if (pTipo == Constantes.cTipo_Carrito)
                {
                    dsProductoCarrito = capaCAR.RecuperarCarritosPorSucursalYProductos(pIdCliente);
                }
                else if (pTipo == Constantes.cTipo_CarritoDiferido)
                {
                    dsProductoCarrito = capaCAR.RecuperarCarritosDiferidosPorCliente(pIdCliente);
                }

                List <cCarrito> listaSucursal = (from item in dsProductoCarrito.Tables[1].AsEnumerable()
                                                 select new cCarrito {
                    car_id = item.Field <int>("car_id"), lrc_id = item.Field <int>("car_id"), codSucursal = item.Field <string>("car_codSucursal")
                }).ToList();

                foreach (cCarrito item in listaSucursal)
                {
                    item.proximoHorarioEntrega = FuncionesPersonalizadas.ObtenerHorarioCierre(objClientes.cli_codsuc, item.codSucursal, objClientes.cli_codrep);
                    List <cProductosGenerico> listaProductoCarrtios = new List <cProductosGenerico>();
                    foreach (DataRow itemProductoCarrtio in dsProductoCarrito.Tables[0].Select("cad_codCarrito = " + item.lrc_id))
                    {
                        cProductos         objProducto          = WebService.ConvertToProductos(itemProductoCarrtio);
                        cProductosGenerico objProductosGenerico = new cProductosGenerico(objProducto);
                        if (itemProductoCarrtio.Table.Columns.Contains("stk_stock") && itemProductoCarrtio["stk_stock"] != DBNull.Value)
                        {
                            objProductosGenerico.stk_stock = itemProductoCarrtio["stk_stock"].ToString();
                        }
                        if (itemProductoCarrtio.Table.Columns.Contains("cad_codProducto") && itemProductoCarrtio["cad_codProducto"] != DBNull.Value)
                        {
                            objProductosGenerico.codProducto = itemProductoCarrtio["cad_codProducto"].ToString();
                        }
                        if (itemProductoCarrtio.Table.Columns.Contains("cad_cantidad") && itemProductoCarrtio["cad_cantidad"] != DBNull.Value)
                        {
                            objProductosGenerico.cantidad = Convert.ToInt32(itemProductoCarrtio["cad_cantidad"]);
                        }
                        listaProductoCarrtios.Add(objProductosGenerico);
                    }
                    /// Nuevo
                    List <cTransferDetalle> listaTransferDetalle = null;
                    if (dsProductoCarrito.Tables.Count > 2)
                    {
                        listaTransferDetalle = new List <cTransferDetalle>();
                        DataTable tablaTransferDetalle = dsProductoCarrito.Tables[2];
                        foreach (DataRow itemTransferDetalle in tablaTransferDetalle.Rows)
                        {
                            cTransferDetalle objTransferDetalle = WebService.ConvertToTransferDetalle(itemTransferDetalle);
                            objTransferDetalle.CargarTransfer(WebService.ConvertToTransfer(itemTransferDetalle));
                            listaTransferDetalle.Add(objTransferDetalle);
                        }
                    }
                    /// FIN Nuevo
                    for (int iPrecioFinal = 0; iPrecioFinal < listaProductoCarrtios.Count; iPrecioFinal++)
                    {
                        listaProductoCarrtios[iPrecioFinal].PrecioFinal = FuncionesPersonalizadas.ObtenerPrecioFinal(objClientes, listaProductoCarrtios[iPrecioFinal]);
                        /// Nuevo
                        listaProductoCarrtios[iPrecioFinal].isProductoFacturacionDirecta = false;
                        if (listaTransferDetalle != null)
                        {
                            List <cTransferDetalle> listaAUXtransferDetalle = listaTransferDetalle.Where(x => x.tde_codpro == listaProductoCarrtios[iPrecioFinal].pro_nombre).ToList();
                            if (listaAUXtransferDetalle.Count > 0)
                            {
                                listaProductoCarrtios[iPrecioFinal].isProductoFacturacionDirecta = true;
                                listaProductoCarrtios[iPrecioFinal].CargarTransferYTransferDetalle(listaAUXtransferDetalle[0]);
                                listaProductoCarrtios[iPrecioFinal].PrecioFinalTransfer = FuncionesPersonalizadas.ObtenerPrecioFinalTransferBase(objClientes, listaProductoCarrtios[iPrecioFinal].tfr_deshab, listaProductoCarrtios[iPrecioFinal].tfr_pordesadi, listaProductoCarrtios[iPrecioFinal].pro_neto, listaProductoCarrtios[iPrecioFinal].pro_codtpopro, listaProductoCarrtios[iPrecioFinal].pro_descuentoweb, listaProductoCarrtios[iPrecioFinal].tde_predescuento == null ? 0 : (decimal)listaProductoCarrtios[iPrecioFinal].tde_predescuento, listaProductoCarrtios[iPrecioFinal].tde_PrecioConDescuentoDirecto, listaProductoCarrtios[iPrecioFinal].tde_PorcARestarDelDtoDeCliente);
                            }
                        }
                        /// FIN Nuevo
                    }
                    item.listaProductos = listaProductoCarrtios;
                }
                listaSucursal.RemoveAll(x => x.listaProductos.Count == 0);
                return(listaSucursal);
            }
            // sin no valida la credencial
            return(null);
        }