public void Writeoff(WriteoffWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - не появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToWriteoff(waybill, user); // списание товара waybill.Writeoff(user, currentDateTime); // пометка товара как окончательно перемещенного articleMovementService.FinallyMoveAcceptedArticles(waybill); writeoffWaybillRepository.Save(waybill); // Пересчет показателей проведенного исходящего и точного наличия articleAvailabilityService.WriteoffWaybillWrittenOff(waybill); // пересчет финансовых показателей factualFinancialArticleMovementService.WriteoffWaybillWrittenOff(waybill); // пересчитываем счетчики количеств операций articleMovementOperationCountService.WaybillFinalized(waybill); // уменьшение показателя точной переоценки articleRevaluationService.WriteoffWaybillFinalized(waybill); }
/// <summary> /// Принять /// </summary> public virtual void Receipt(MovementWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - не появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToReceipt(waybill, user); // приемка товара waybill.Receipt(user, currentDateTime); movementWaybillRepository.Save(waybill); // пометка товара как окончательно перемещенного articleMovementService.FinallyMoveShippedArticles(waybill); // Пересчет показателей точного и проведенного наличия articleAvailabilityService.MovementWaybillReceipted(waybill); // пересчет финансовых показателей factualFinancialArticleMovementService.MovementWaybillReceipted(waybill); // пересчет счетчиков количеств операций articleMovementOperationCountService.WaybillFinalized(waybill); // расчет переоценок по принятым позициям articleRevaluationService.MovementWaybillFinalized(waybill); movementWaybillRepository.Save(waybill); articleMovementService.UpdateOutgoingWaybillsStates(waybill, waybill.ReceiptDate); }
/// <summary> /// Приемка накладной /// </summary> /// <param name="waybill">Накладная</param> public void Receipt(ReturnFromClientWaybill waybill, User user, DateTime currentDateTime) { // регулярная проверка - появились ли РЦ для переоценки articleRevaluationService.CheckAccountingPriceListWithoutCalculatedRevaluation(currentDateTime); CheckPossibilityToReceipt(waybill, user); waybill.Receipt(user, currentDateTime); returnFromClientWaybillRepository.Save(waybill); // Пересчет показателей входящего проведенного и точного наличия articleAvailabilityService.ReturnFromClientWaybillReceipted(waybill); // пересчет показателей возвратов от клиента returnFromClientService.ReturnFromClientWaybillFinalized(waybill); // пересчет финансового показателя factualFinancialArticleMovementService.ReturnFromClientWaybillReceipted(waybill); // расчет переоценок по принятым позициям articleRevaluationService.ReturnFromClientWaybillFinalized(waybill); // Пересчитываем счетчики количеств операций articleMovementOperationCountService.WaybillFinalized(waybill); returnFromClientWaybillRepository.Save(waybill); //Т.к. для метода ReturnPaymentToSales необходимы строки накладной возврата. dealPaymentDocumentDistributionService.ReturnPaymentToSales(waybill, currentDateTime); //Возвращаем оплаты returnFromClientWaybillRepository.Save(waybill); //для того, чтобы сохранились изменения в оплатах //Обновляем признак полной оплаты для реализаций UpdateFullyPaidPropertyForSales(waybill); returnFromClientWaybillRepository.Save(waybill); articleMovementService.UpdateOutgoingWaybillsStates(waybill, waybill.ReceiptDate); }