public async Task <NonVatDocumentDto> EditNonVatDocumentAsync(NonVatDocumentDto nonVatDocumentDto)
        {
            var document = await NonVatDocumentRepo.GetByIdAsync(nonVatDocumentDto.Id);

            if (document is null)
            {
                nonVatDocumentDto.ErrorMassages.Add($"Грешка, не съществува документ с №{nonVatDocumentDto.Id}!");
                return(nonVatDocumentDto);
            }
            if (nonVatDocumentDto.PartnerId == 0)
            {
                nonVatDocumentDto.ErrorMassages.Add($"Моля въведете контрагент!");
                return(nonVatDocumentDto);
            }

            var companyId = await NonVatDocumentRepo.Context.Companies.OrderBy(c => c.Id).Select(c => c.Id).LastAsync();

            document.CompanyObjectId = await NonVatDocumentRepo.Context.CompanyObjects
                                       .Where(o => o.GUID == userCompanyTemp.CompanyObjectGUID)
                                       .Select(o => o.Id)
                                       .FirstOrDefaultAsync();

            document.PartnerId        = nonVatDocumentDto.PartnerId;
            document.CompanyId        = companyId;
            document.WriterEmployeeId = await employeeService.GetOrSetEmployeeIdByNameAsync(nonVatDocumentDto.WriterEmployee);

            document.RecipientEmployeeId = await partnerEmployeeService.GetOrSetEmployeeIdByNameAsync(nonVatDocumentDto.RecipientEmployee, nonVatDocumentDto.PartnerId);

            document.CreatedDate   = SetDate(nonVatDocumentDto.CreatedDate, nonVatDocumentDto);
            document.VatReasonDate = SetDate(nonVatDocumentDto.VatReasonDate, nonVatDocumentDto);
            document.PaymentTypeId = nonVatDocumentDto.PaymentTypeId;
            document.BankAccountId = await GetBankAccountIdIfRequare(nonVatDocumentDto);

            document.Type        = (Data.CompanyData.Models.Enums.NonVatDocumentTypes)nonVatDocumentDto.Type;
            document.FreeText    = nonVatDocumentDto.FreeText;
            document.Description = nonVatDocumentDto.Description;

            await ProcessingEditSales(nonVatDocumentDto);

            document.SubTottal = nonVatDocumentDto.SubTottal;
            document.Vat       = nonVatDocumentDto.Vat;
            document.Tottal    = nonVatDocumentDto.Tottal;

            if (nonVatDocumentDto.HasErrors)
            {
                return(nonVatDocumentDto);
            }
            NonVatDocumentRepo.Update(document);
            await NonVatDocumentRepo.SaveChangesAsync();

            return(nonVatDocumentDto);
        }
Beispiel #2
0
        public async Task <PartnerDto> GetPartnerByIdAsync(int id)
        {
            if (id != 0)
            {
                var partner = await partnerRepository.GetByIdAsync(id);

                var result = new PartnerDto()
                {
                    Id              = partner.Id,
                    Name            = partner.Name,
                    Country         = partner.Country,
                    City            = partner.City,
                    Address         = partner.Address,
                    EIK             = partner.EIK,
                    IsVatRegistered = partner.IsVatRegistered,
                    IsActive        = partner.IsActive,
                    VatId           = partner.VatId,
                    MOL             = partner.MOL,
                    Email           = partner.Email,
                };
                return(result);
            }
            return(null);
        }