/// <summary> /// args[0] = Tipo (enum) /// args[1] = deposito /// args[2] = proveedor /// args[3] = orden de compra (varias) /// </summary> /// <param name="args"></param> /// <returns></returns> public override CreadorCarrier <Servicios.DTO.Stock.Ingreso> Crear(params int[] args) { ParameterOverride[] parameters = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", "OrdenDeCompra") }; var creadorCarrier = new CreadorCarrier <Servicios.DTO.Stock.Ingreso>(); var creadorOrdenDeCompra = (ICreador <Modelo.Proveedores.OrdenDeCompra>)FabricaNegocios.Instancia.Resolver(typeof(ICreador <Modelo.Proveedores.OrdenDeCompra>), parameters); var result = new Modelo.Stock.Ingreso(); //dasdasdsadsa parameters[1] = new ParameterOverride("entidad", "Articulo"); var buscadorArticulo = (IBuscadorArticulo)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorArticulo), parameters); parameters[1] = new ParameterOverride("entidad", "Deposito"); var buscaDeposito = (IBuscadorDTO <Inteldev.Core.Modelo.Stock.Deposito, Core.DTO.Stock.Deposito>)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorDTO <Inteldev.Core.Modelo.Stock.Deposito, Core.DTO.Stock.Deposito>), parameters); parameters[1] = new ParameterOverride("entidad", "Proveedor"); var buscaProveedor = (IBuscadorDTO <Modelo.Proveedores.Proveedor, Servicios.DTO.Proveedores.Proveedor>)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorDTO <Modelo.Proveedores.Proveedor, Servicios.DTO.Proveedores.Proveedor>), parameters); if (args[0] == 1) { List <int> ordenesDeCompra = new List <int>(); for (int i = 3; i < args.Length; i++) { ordenesDeCompra.Add(args[i]); } parameters[1] = new ParameterOverride("entidad", "OrdenDeCompra"); var buscadorOrdenDeCompra = (IBuscadorOrdenDeCompra)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorOrdenDeCompra), parameters); parameters[1] = new ParameterOverride("entidad", "OrdenDeCompraDetalle"); var buscadorOrdenDeCompraDetalle = (IBuscadorOrdenDeCompraDetalle)FabricaNegocios.Instancia.Resolver(typeof(IBuscadorOrdenDeCompraDetalle), parameters); var articulos = buscadorOrdenDeCompraDetalle.buscaArticulosIngresoStock(ordenesDeCompra); foreach (var articulo in articulos) { var item = new Modelo.Stock.ItemIngreso(); //articulos es un diccionario que tiene articulos - orden de compra item.Articulo = articulo.Key; item.OrdenDeCompra = articulo.Value; result.Items.Add(item); } result.OrdenesDeCompra = buscadorOrdenDeCompra.BuscarOrdenes(ordenesDeCompra); } else { var articulos = buscadorArticulo.obtenerArticulosProveedor(args[2]); foreach (var articulo in articulos) { var item = new Inteldev.Fixius.Modelo.Stock.ItemIngreso(); item.Articulo = articulo; result.Items.Add(item); } } if (result.OrdenesDeCompra.Count == 0) { result.OrdenesDeCompra.Add(creadorOrdenDeCompra.Crear()); } var dto = this.Mapeador.EntidadToDto(result); dto.Proveedor = buscaProveedor.BuscarSimple(args[2], Core.CargarRelaciones.NoCargarNada); dto.Deposito = buscaDeposito.BuscarSimple(args[1], Core.CargarRelaciones.NoCargarNada); creadorCarrier.SetEntidad(dto); return(creadorCarrier); }
protected override void sincronizarDetalle(DataTable dataTable, PropertyInfo propiedadEntidad, object entidad) { var listadetalle = (propiedadEntidad.GetValue(entidad) as IEnumerable <object>).Cast <Modelo.Stock.ItemIngreso>().ToList(); var buscaArticulo = FabricaNegocios._Resolver <IBuscador <Articulo> >(); buscaArticulo.CargarEntidadesRelacionadas = CargarRelaciones.NoCargarNada; var buscaOrdenDeCompra = FabricaNegocios._Resolver <IBuscador <OrdenDeCompra> >(); foreach (DataRow row in dataTable.Rows) { var detalle = new Modelo.Stock.ItemIngreso(); var articuloCod = row.Field <string>("Articulo"); foreach (DataColumn Columna in dataTable.Columns) { switch (Columna.ColumnName) { case "Articulo": var articulo = buscaArticulo.BuscarPorCodigo <Articulo>((string)row[Columna.ColumnName]); detalle.Articulo = articulo; if (articulo != null) { detalle.ArticuloId = articulo.Id; } else { detalle.ArticuloId = 0; } break; case "Bultos": detalle.Bultos = (int)row[Columna.ColumnName]; break; case "Orden De Compra": var ordenDeCompra = buscaOrdenDeCompra.BuscarPorCodigo <OrdenDeCompra>((string)row[Columna.ColumnName]); detalle.OrdenDeCompra = ordenDeCompra; detalle.OrdenDeCompraId = ordenDeCompra.Id; break; } } listadetalle.Add(detalle); } propiedadEntidad.SetValue(entidad, listadetalle); }