public void CancelWriteoff(WriteoffWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - не появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); // Пересчет показателей проведенного исходящего и точного наличия articleAvailabilityService.WriteoffWaybillWriteoffCanceled(waybill); CheckPossibilityToCancelWriteoff(waybill, user); // пересчет финансовых показателей factualFinancialArticleMovementService.WriteoffWaybillWriteoffCancelled(waybill); // пересчитываем счетчики количеств операций articleMovementOperationCountService.WaybillFinalizationCancelled(waybill); // увеличение показателя точной переоценки articleRevaluationService.WriteoffWaybillFinalizationCancelled(waybill); // отменяем списание waybill.CancelWriteoff(); // помечаем товар как проведенный articleMovementService.CancelArticleFinalMoving(waybill); }
/// <summary> /// Отмена приемки /// </summary> public virtual void CancelReceipt(MovementWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - не появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToCancelReceipt(waybill, user); // Пересчет показателей точного и проведенного наличия articleAvailabilityService.MovementWaybillReceiptCanceled(waybill, articleMovementService.GetOutgoingWaybillRows(movementWaybillRepository.GetRowsSubQuery(waybill.Id))); // пересчет показателей переоценки articleRevaluationService.MovementWaybillReceiptCancelled(waybill); // пересчет финансовых показателей factualFinancialArticleMovementService.MovementWaybillReceiptCancelled(waybill); //Пересчитываем счетчики количеств операций articleMovementOperationCountService.WaybillFinalizationCancelled(waybill); waybill.CancelReceipt(); articleMovementService.CancelArticleFinalMoving(waybill); movementWaybillRepository.Save(waybill); articleMovementService.UpdateOutgoingWaybillsStates(waybill, waybill.ReceiptDate); }
/// <summary> /// Отмена приемки накладной /// </summary> /// <param name="waybill">Накладная</param> public void CancelReceipt(ReturnFromClientWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToCancelReceipt(waybill, user); // Пересчет показателей входящего проведенного и точного наличия articleAvailabilityService.ReturnFromClientWaybillReceiptCanceled(waybill, articleMovementService.GetOutgoingWaybillRows(returnFromClientWaybillRepository.GetRowsSubQuery(waybill.Id))); // пересчет показателей возвратов от клиента returnFromClientService.ReturnFromClientWaybillFinalizationCancelled(waybill); // пересчет показателей переоценки articleRevaluationService.ReturnFromClientWaybillReceiptCancelled(waybill); // пересчет финансового показателя factualFinancialArticleMovementService.ReturnFromClientWaybillReceiptCancelled(waybill); // Пересчитываем счетчики количеств операций articleMovementOperationCountService.WaybillFinalizationCancelled(waybill); var receiptDate = waybill.ReceiptDate.Value; //Сохраняем дату принятия для индикаторов waybill.CancelReceipt(); returnFromClientWaybillRepository.Save(waybill); // Отменяем возврат оплаты по возвращенным позициям dealPaymentDocumentDistributionService.CancelPaymentReturnToSales(waybill, receiptDate); returnFromClientWaybillRepository.Save(waybill); //для того, чтобы сохранились изменения в оплатах // Обновляем признак полной оплаты для реализаций UpdateFullyPaidPropertyForSales(waybill); returnFromClientWaybillRepository.Save(waybill); articleMovementService.UpdateOutgoingWaybillsStates(waybill, waybill.ReceiptDate); }