public Modelo.Proveedores.OrdenDeCompra DtoToEntidad(Servicios.DTO.Proveedores.OrdenDeCompra dto, Modelo.Proveedores.OrdenDeCompra entidad)
		{
			entidad.Id = dto.Id;
			entidad.Nombre = dto.Nombre;
			entidad.Codigo = dto.Codigo;
			entidad.CondicionDePago = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Proveedores.CondicionDePagoProveedor, Modelo.Proveedores.CondicionDePagoProveedor>(dto.CondicionDePago);
			entidad.Deposito = Mapeador.Instancia.DtoToEntidad<Inteldev.Core.DTO.Stock.Deposito, Inteldev.Core.Modelo.Stock.Deposito>(dto.Deposito);
			entidad.Estado = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Proveedores.EstadoOrdenDeCompra, Modelo.Proveedores.EstadoOrdenDeCompra>(dto.Estado);			;
			entidad.FechaEntrega = dto.FechaEntrega;
			entidad.ImporteFinal = dto.ImporteFinal;
			entidad.Marca = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Articulos.Marca, Modelo.Articulos.Marca>(dto.Marca);
			entidad.TipoOrden = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Proveedores.TipoOrden, Modelo.Proveedores.TipoOrden>(dto.TipoOrden);
			entidad.TotalBultos = dto.TotalBultos;
			entidad.Proveedor = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Proveedores.Proveedor, Modelo.Proveedores.Proveedor>(dto.Proveedor);
			entidad.ListaDePrecios = Mapeador.Instancia.DtoToEntidad<Servicios.DTO.Proveedores.ListaDePrecios, Modelo.Proveedores.ListaDePrecios>(dto.ListaDePrecios);
			this.sincronizarDetalle(dto.Detalle, entidad.Detalle);
			return entidad;
		}
		public Servicios.DTO.Proveedores.OrdenDeCompra EntidadToDto(OrdenDeCompra entidad, Servicios.DTO.Proveedores.OrdenDeCompra dto)
		{
			throw new NotImplementedException();
		}
		public Servicios.DTO.Proveedores.OrdenDeCompra EntidadToDto(Modelo.Proveedores.OrdenDeCompra entidad, List<Articulo> articulos, ObjetivosDeCompra objetivos)
		{
			var listaDto = new Servicios.DTO.Proveedores.OrdenDeCompra();
			return this.EntidadToDto(entidad, listaDto,articulos, objetivos);
		}
		public Servicios.DTO.Proveedores.OrdenDeCompra EntidadToDto(Modelo.Proveedores.OrdenDeCompra entidad, Servicios.DTO.Proveedores.OrdenDeCompra dto,List<Articulo> articulos,ObjetivosDeCompra objetivos)
		{
			var plantilla = this.cargarPlantilla(entidad.Proveedor.Id);

			dto.Id = entidad.Id;
			dto.Nombre = entidad.Nombre;
			dto.Codigo = entidad.Codigo;
            
			dto.CondicionDePago = Mapeador.Instancia.EntidadToDto<Modelo.Proveedores.CondicionDePagoProveedor, Servicios.DTO.Proveedores.CondicionDePagoProveedor>(entidad.CondicionDePago);
			dto.Deposito = Mapeador.Instancia.EntidadToDto<Inteldev.Core.Modelo.Stock.Deposito, Inteldev.Core.DTO.Stock.Deposito>(entidad.Deposito);
			dto.Estado = Mapeador.Instancia.EntidadToDto<Modelo.Proveedores.EstadoOrdenDeCompra, Servicios.DTO.Proveedores.EstadoOrdenDeCompra>(entidad.Estado);
			dto.FechaEntrega = entidad.FechaEntrega;
			dto.ImporteFinal = entidad.ImporteFinal;
			dto.Marca = Mapeador.Instancia.EntidadToDto<Modelo.Articulos.Marca, Servicios.DTO.Articulos.Marca>(entidad.Marca);
			dto.TipoOrden = Mapeador.Instancia.EntidadToDto<Modelo.Proveedores.TipoOrden, Servicios.DTO.Proveedores.TipoOrden>(entidad.TipoOrden);
			dto.TotalBultos = entidad.TotalBultos;
			dto.Proveedor = Mapeador.Instancia.EntidadToDto<Modelo.Proveedores.Proveedor, Servicios.DTO.Proveedores.Proveedor>(entidad.Proveedor);
			dto.ListaDePrecios = Mapeador.Instancia.EntidadToDto<Modelo.Proveedores.ListaDePrecios, Servicios.DTO.Proveedores.ListaDePrecios>(entidad.ListaDePrecios);
            if (plantilla != null)
            {
                dto.Columnas = this.getColumnas(plantilla);
                dto.Detalle = this.crearDataTable(plantilla);
                this.cargarDataTable(dto.Detalle, entidad, articulos, objetivos);
            }
			if (dto.Id != 0)
			{
				foreach (DataRow row in dto.Detalle.Rows)
				{
					var neto = (int)row["Cantidad"];
					if (neto != 0)
						row.SetModified();
				}
			}
			return dto;

		}
		public Modelo.Proveedores.OrdenDeCompra DtoToEntidad(Servicios.DTO.Proveedores.OrdenDeCompra dto)
		{
			return this.DtoToEntidad(dto, new Modelo.Proveedores.OrdenDeCompra());
		}