/// <summary> /// Проводка накладной /// </summary> /// <param name="changeOwnerWaybill"></param> public void Accept(ChangeOwnerWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToAccept(waybill, user); // получение текущих позиций реестров цен var priceLists = articlePriceService.GetArticleAccountingPrices(waybill.Storage.Id, changeOwnerWaybillRepository.GetArticlesSubquery(waybill.Id), currentDateTime); waybill.Accept(priceLists, UseReadyToAcceptState, user, currentDateTime); // резервирование товаров при проводке var reservationInfoList = articleMovementService.AcceptArticles(waybill); // Пересчет показателей входящего и исходящего проведенного наличия articleAvailabilityService.ChangeOwnerWaybillAccepted(waybill, reservationInfoList); changeOwnerWaybillRepository.Save(waybill); if (waybill.State == ChangeOwnerWaybillState.ReadyToChangeOwner) //Если накладная готова к смене собственника, ... { ChangeOwner(waybill, currentDateTime); // ... то меняем собственника накладной } }
public IDictionary <Guid, ChangeOwnerWaybillRowMainIndicators> GetMainRowsIndicators(ChangeOwnerWaybill waybill, User user, bool calculateValueAddedTaxSum = false) { return(GetMainIndicatorsForRowList(waybill, waybill.Rows, changeOwnerWaybillRepository.GetArticlesSubquery(waybill.Id), user, calculateValueAddedTaxSum)); }