public object CreateProveedor(Dtos.Proveedor dto) { ValidateProveedor(dto); var empresa = CdpContext.Empresas.Single(e => e.Id == CDPSession.Current.Usuario.CurrentEmpresa.Id); var idSapOrganizacionDeVenta = int.Parse(empresa.IdSapOrganizacionDeVenta); var lastProveedor = CdpContext.Proveedores.OrderByDescending(c => c.SapId).FirstOrDefault(c => c.IdSapOrganizacionDeVenta == idSapOrganizacionDeVenta && c.EsProspecto); var currentId = long.Parse(lastProveedor != null ? lastProveedor.SapId : "9300000000"); var entity = new Entities.Proveedor { SapId = (++currentId).ToString(), Nombre = dto.Nombre, TipoDocumento = CdpContext.TiposDocumentoSap.Single(e => e.SapId == "80"), NumeroDocumento = dto.NumeroDocumento, EsProspecto = true, Enabled = true, CreateDate = DateTime.Now, Calle = string.Empty, Cp = string.Empty, Numero = string.Empty, Piso = string.Empty, IdSapOrganizacionDeVenta = string.IsNullOrEmpty(empresa.IdSapOrganizacionDeVenta) ? 0 : idSapOrganizacionDeVenta }; CdpContext.Proveedores.Add(entity); CdpContext.SaveChanges(); return(Mapper.Map <Entities.Proveedor, Dtos.Proveedor>(entity)); }
private void ValidateProveedor(Dtos.Proveedor dto) { var entity = CdpContext.Proveedores.FirstOrDefault(c => string.Equals(c.NumeroDocumento, dto.NumeroDocumento)); if (entity != null && entity.Id != dto.Id) { throw new Exception(string.Format("El {0} ya se encuentra asignado a otro proveedor", CDPSession.Current.Usuario.CurrentEmpresaLabelCuit)); } }