Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }