public IOrganizationProvider CreateOrderOrganizationProvider()
        {
            var organizationParametersProvider = new OrganizationParametersProvider(ParametersProvider.Instance);
            var orderParametersProvider        = new OrderParametersProvider(ParametersProvider.Instance);

            return(new Stage2OrganizationProvider(organizationParametersProvider, orderParametersProvider));
        }
Ejemplo n.º 2
0
        public void CreateFuelExpenseOperationTest()
        {
            // arrange

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => expenseCategoryMock;

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = null;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelDocument, Is.SameAs(fuelDocument), "Документ в операции должен совпадать с документом выдачи топлива"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelTransferDocument, Is.Null, "Документ перемещения топлива не должен быть заполнен"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.RelatedToSubdivision, Is.SameAs(fuelDocument.RouteList.ClosingSubdivision), "Подразделение в операции должно совпадать с подразделением в маршрутном листе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelLiters, Is.EqualTo(fuelDocument.FuelCoupons), "Списанное топливо должно совпадать с топливом выданным талонами в документе выдачи"))
            .Release();
        }
Ejemplo n.º 3
0
        public void CreateFuelCashExpenseTest__Without_ExpenseCategory__Thrown_InvalidProgrammException_and_FuelCashExpense_must_be_null()
        {
            // arrange
            // имитация того что нужной статьи не было найдено
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => { return(null); };
            var             fuelDocument       = new FuelDocument();
            FuelType        fuelTypeMock       = Substitute.For <FuelType>();
            IUnitOfWork     uowMock            = Substitute.For <IUnitOfWork>();
            Subdivision     subdivisionMock    = Substitute.For <Subdivision>();
            Organization    organisationMock   = Substitute.For <Organization>();
            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            // act, assert
            Assert.Throws(typeof(InvalidProgramException), () => fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock));

            // additional assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null, "При исключении в момент создания операций, операции оплаты топлива не должно быть создано");
        }
Ejemplo n.º 4
0
        public ExportData(IUnitOfWork uow, Export1cMode mode, DateTime dateStart, DateTime dateEnd)
        {
            this.Objects    = new List <ObjectNode>();
            this.UoW        = uow;
            this.ExportMode = mode;

            this.Version           = "2.0";
            this.ExportDate        = DateTime.Now;
            this.StartPeriodDate   = dateStart;
            this.EndPeriodDate     = dateEnd;
            this.SourceName        = "Торговля+Склад, редакция 9.2";
            this.DestinationName   = "БухгалтерияПредприятия";
            this.ConversionRulesId = "70e9dbac-59df-44bb-82c6-7d4f30d37c74";
            this.Comment           = "";

            this.AccountCatalog           = new AccountCatalog(this);
            this.BankCatalog              = new BankCatalog(this);
            this.ContractCatalog          = new ContractCatalog(this);
            this.CounterpartyCatalog      = new CounterpartyCatalog(this);
            this.CurrencyCatalog          = new CurrencyCatalog(this);
            this.MeasurementUnitCatalog   = new MeasurementUnitsCatalog(this);
            this.NomenclatureCatalog      = new NomenclatureCatalog(this);
            this.NomenclatureTypeCatalog  = new NomenclatureType1cTypeCatalog(this);
            this.NomenclatureGroupCatalog = new NomenclatureGroupCatalog(this);
            this.OrganizationCatalog      = new OrganizationCatalog(this);
            this.WarehouseCatalog         = new WarehouseCatalog(this);
            this.ExchangeRules            = new RulesNode();
            var orgProvider = new OrganizationParametersProvider(new ParametersProvider());

            this.cashlessOrganization = UoW.GetById <Organization>(orgProvider.GetCashlessOrganisationId);
        }
Ejemplo n.º 5
0
        public void CreateFuelCashExpenseTest()
        {
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            VodovozRouteList routeListMock      = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock    = Substitute.For <Subdivision>();
            IUnitOfWork      uowMock            = Substitute.For <IUnitOfWork>();
            IFuelRepository  fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            routeListMock.ClosingSubdivision = subdivisionMock;

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver          = Substitute.For <Employee>();
            fuelDocument.FuelPaymentType = FuelPaymentType.Cash;
            fuelDocument.Car             = carMock;
            fuelDocument.Date            = DateTime.Now;
            fuelDocument.LastEditDate    = DateTime.Now;
            fuelDocument.Fuel            = fuelTypeMock;
            fuelDocument.RouteList       = routeListMock;
            fuelDocument.UoW             = uowMock;
            fuelDocument.FuelCoupons     = 40;
            fuelDocument.PayedForFuel    = 500;
            fuelDocument.Subdivision     = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.Casher, Is.SameAs(fuelDocument.Author)))
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.Employee, Is.SameAs(fuelDocument.Driver)))
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.RelatedToSubdivision, Is.SameAs(fuelDocument.RouteList.ClosingSubdivision)))
            .Release();
        }
Ejemplo n.º 6
0
        public void CreateFuelCashExpenseTest_Money(decimal payedForFuel, decimal result)
        {
            // arrange
            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => expenseCategoryMock;

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            organisationParametersProviderMock.CommonCashDistributionOrganisationId.ReturnsForAll(2);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver          = Substitute.For <Employee>();
            fuelDocument.Car             = carMock;
            fuelDocument.FuelPaymentType = FuelPaymentType.Cash;
            fuelDocument.Date            = DateTime.Now;
            fuelDocument.LastEditDate    = DateTime.Now;
            fuelDocument.Fuel            = fuelTypeMock;
            fuelDocument.RouteList       = routeListMock;
            fuelDocument.UoW             = uowMock;
            fuelDocument.FuelCoupons     = 40;
            fuelDocument.PayedForFuel    = payedForFuel;
            fuelDocument.Subdivision     = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock);

            // assert
            Assert.That(fuelDocument.FuelCashExpense.Money, Is.EqualTo(result));
        }
Ejemplo n.º 7
0
        public void CreateFuelCashExpenseTest__With_Zero_PayedFor_Fuel__FuelCashExpense_must_be_null()
        {
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = 0;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock);

            // assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null);
        }
Ejemplo n.º 8
0
        public void CreateFuelCashExpenseTest__Incorrect_FuelCoupons_and_PayedForFuel__Thrown_ValidationException_and_FuelCashExpense_must_be_null()
        {
            // arrange
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.PayedForFuel = 0;

            // act, assert
            Assert.Throws(typeof(ValidationException),
                          () => fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock));

            // additional assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null, "При исключении в момент создания операций, операции оплаты топлива не должно быть создано");
        }
Ejemplo n.º 9
0
        public IOrganizationProvider CreateOrderOrganizationProvider()
        {
            var parametersProvider                = new ParametersProvider();
            var organizationParametersProvider    = new OrganizationParametersProvider(parametersProvider);
            var orderParametersProvider           = new OrderParametersProvider(parametersProvider);
            var geographicGroupParametersProvider = new GeographicGroupParametersProvider(parametersProvider);

            return(new Stage2OrganizationProvider(
                       organizationParametersProvider,
                       orderParametersProvider,
                       geographicGroupParametersProvider));
        }
Ejemplo n.º 10
0
        private void Export(Export1cMode mode)
        {
            var dateStart = dateperiodpicker1.StartDate;
            var dateEnd   = dateperiodpicker1.EndDate;

            int?organizationId = null;

            if (mode == Export1cMode.BuhgalteriaOOONew)
            {
                organizationId = (comboOrganization.SelectedItem as Organization)?.Id;
            }
            else if (mode == Export1cMode.BuhgalteriaOOO)
            {
                organizationId = new OrganizationParametersProvider(_parametersProvider).VodovozOrganizationId;
            }

            using (var exportOperation = new ExportOperation(
                       mode,
                       new OrderParametersProvider(_parametersProvider),
                       dateStart,
                       dateEnd,
                       organizationId
                       ))
            {
                this.exportInProgress = true;
                UpdateExportSensitivity();
                LongOperationDlg.StartOperation(exportOperation.Run, "", 1, false);
                this.exportInProgress = false;
                UpdateExportSensitivity();
                exportData = exportOperation.Result;
            }

            labelTotalCounterparty.Text = exportData.Objects
                                          .OfType <CatalogObjectNode>()
                                          .Count(node => node.Type == Common1cTypes.ReferenceCounterparty)
                                          .ToString();

            labelTotalNomenclature.Text = exportData.Objects
                                          .OfType <CatalogObjectNode>()
                                          .Count(node => node.Type == Common1cTypes.ReferenceNomenclature)
                                          .ToString();

            labelTotalSales.Text = (exportData.Objects
                                    .OfType <SalesDocumentNode>()
                                    .Count()
                                    + exportData.Objects.OfType <RetailDocumentNode>().Count())
                                   .ToString();

            labelTotalSum.Text = exportData.OrdersTotalSum.ToString("C", CultureInfo.GetCultureInfo("ru-RU"));

            labelExportedSum.Markup =
                $"<span foreground=\"{(exportData.ExportedTotalSum == exportData.OrdersTotalSum ? "green" : "red")}\">" +
                $"{exportData.ExportedTotalSum.ToString("C", CultureInfo.GetCultureInfo("ru-RU"))}</span>";

            labelTotalInvoices.Text = exportData.Objects
                                      .OfType <InvoiceDocumentNode>()
                                      .Count()
                                      .ToString();

            GtkScrolledWindowErrors.Visible = exportData.Errors.Count > 0;
            if (exportData.Errors.Count > 0)
            {
                TextTagTable textTags = new TextTagTable();
                var          tag      = new TextTag("Red");
                tag.Foreground = "red";
                textTags.Add(tag);
                TextBuffer tempBuffer = new TextBuffer(textTags);
                TextIter   iter       = tempBuffer.EndIter;
                tempBuffer.InsertWithTags(ref iter, String.Join("\n", exportData.Errors), tag);
                textviewErrors.Buffer = tempBuffer;
            }

            buttonSave.Sensitive = exportData != null && exportData.Errors.Count == 0;
        }
Ejemplo n.º 11
0
        public void CreateFuelOperationTest_Car_IsCompanyHavings()
        {
            // arrange

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => expenseCategoryMock;

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = null;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.LitersGived, Is.EqualTo(fuelDocument.FuelCoupons), "Количество топлива в операции не совпадает с количеством в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.PayedLiters, Is.EqualTo(fuelDocument.PayedLiters), "Количество топлива оплаченного деньгами не совпадает с количеством топлива оплаченного деньгами в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Car, Is.SameAs(fuelDocument.Car), "Автомобиль в операции не совпадает с автомобилем в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Driver, Is.Null, "Водитель не должен быть заполнен"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Fuel, Is.SameAs(fuelDocument.Fuel), "Тип топлива в операции не совпадает с типом топлива в документе"))
            .Release();
        }