public DTO.Proveedores.DocumentoCompra BuscarOCrearDocumentoDeCompra(string empresa, string sucursal, int provId, int tipoDoc, string preNro, string nro) { try { Modelo.Proveedores.DocumentoCompra doc = null; ParameterOverride[] para = { new ParameterOverride("empresa", empresa), new ParameterOverride("entidad", "DocumentoCompra") }; var buscador = (BuscadorDocumentoDeCompra)FabricaNegocios.Instancia.Resolver(typeof(BuscadorDocumentoDeCompra), para); if (buscador != null) { doc = buscador.ObtenerDocumento(empresa, sucursal, provId, tipoDoc, preNro, nro).FirstOrDefault(); } if (doc == null) { var servicioCreador = (CreadorDocumentoCompra)FabricaNegocios.Instancia.Resolver(typeof(ICreadorDTO <Modelo.Proveedores.DocumentoCompra, DTO.Proveedores.DocumentoCompra>), para); var nuevoDoc = servicioCreador.Crear(new string[] { empresa, sucursal, provId.ToString(), tipoDoc.ToString(), preNro, nro }); if (!nuevoDoc.GetError()) { return(nuevoDoc.GetEntidad()); } } //doc = new Modelo.Proveedores.DocumentoCompra(); return(AutoMapper.Mapper.Map <DTO.Proveedores.DocumentoCompra>(doc)); } catch (Exception ex) { throw new FaultException(ex.Message); } }
protected override void sincronizarDetalle(DataTable dataTable, PropertyInfo propiedadEntidad, object entidad) { var listadetalle = (propiedadEntidad.GetValue(entidad) as IEnumerable <object>).Cast <Modelo.Proveedores.Aplicacion>().ToList(); foreach (Modelo.Proveedores.Aplicacion item in listadetalle) { listadetalle.Add(item); } Modelo.Proveedores.Aplicacion aplicacion = null; foreach (DataRow row in dataTable.Rows) { if (row.RowState != DataRowState.Unchanged) { aplicacion = new Modelo.Proveedores.Aplicacion(); //aca tengo que poner el detalle en aplicaciones y en esas cosas var tipo = (TipoDocumento)Enum.Parse(typeof(TipoDocumento), row.Field <String>("Tipo")); switch (tipo) { case TipoDocumento.Factura: var detalle = new Modelo.Proveedores.DocumentoCompra(); detalle.Importe = row.Field <decimal>("Importe"); detalle.Aplicado = row.Field <decimal>("Aplicado"); detalle.Fecha = row.Field <DateTime>("Fecha"); detalle.Prenumero = row.Field <string>("Prenumero"); detalle.Numero = row.Field <string>("Numero"); aplicacion.DocumentoCompra = detalle; listadetalle.Add(aplicacion); break; case TipoDocumento.NotaDeCredito: break; case TipoDocumento.NotaDeDebito: break; case TipoDocumento.OrdenDePago: if (row.Field <int>("Numero") != 0) { var detalleOrdenDePago = new Modelo.Proveedores.OrdenDePago(); detalleOrdenDePago.Importe = row.Field <decimal>("Importe") * -1; detalleOrdenDePago.Aplicado = row.Field <decimal>("Aplicado") * -1; aplicacion.OrdenDePago = detalleOrdenDePago; listadetalle.Add(aplicacion); } break; default: break; } } //aca tengo que setear de alguna forma la lista. Pero, como me afecta esto? } propiedadEntidad.SetValue(entidad, listadetalle); }