private void TryAddShare(ICollection <ProjectCompanyShare> shares, ProjectCompanyShare share) { var isExist = shares.Any( x => x.OwnerProjectCompanyId == share.OwnerProjectCompanyId && x.DependentProjectCompanyId == share.DependentProjectCompanyId); if (!isExist) { shares.Add(share); } }
public bool CompanyHasMoreThenDomesticFactShare(ProjectCompanyShare share, IList <ProjectCompany> companies, IList <ProjectCompanyFactShare> factShares) { var dependentCompany = companies.Where(c => c.Id == share.DependentProjectCompanyId).First(); if (dependentCompany.State == State.Individual || dependentCompany.State == State.Domestic) { return(false); } var fshare = factShares.Where(f => dependentCompany.DependentProjectCompanyShares.Any(d => d.OwnerProjectCompanyId == f.OwnerProjectCompanyId && d.OwnerProjectCompany.IsResident)).ToList(); var sumShareFactPart = fshare.Sum(f => f.ShareFactPart); return(share.SharePart > 10.0 && sumShareFactPart > 50.0); }
private ProjectCompanyShare GetShare(ProjectCompany owner, ProjectCompany dependent, double sharePart, bool isFounder, bool isControlledBy) { var share = new ProjectCompanyShare { OwnerProjectCompany = owner, DependentProjectCompany = dependent, SharePart = sharePart, CompanyStatus = "Status", ShareType = ShareType.Direct, ControlGrounds = "фактический контроль" }; if (isFounder) { share.IsFounder = isFounder; share.ControlGrounds = "учредитель"; } if (isControlledBy) { share.IsControlledBy = isControlledBy; } return(share); }
private static IEnumerable <ProjectCompanyShare> GetShares() { var part0 = new ProjectCompanyShare() { OwnerProjectCompanyId = 1, DependentProjectCompanyId = 2, SharePart = 55 }; var part1 = new ProjectCompanyShare() { OwnerProjectCompanyId = 2, DependentProjectCompanyId = 3, SharePart = 40 }; var part2 = new ProjectCompanyShare() { OwnerProjectCompanyId = 3, DependentProjectCompanyId = 1, SharePart = 30 }; var part3 = new ProjectCompanyShare() { OwnerProjectCompanyId = 4, DependentProjectCompanyId = 2, SharePart = 45 }; var part4 = new ProjectCompanyShare() { OwnerProjectCompanyId = 5, DependentProjectCompanyId = 1, SharePart = 70 }; var part5 = new ProjectCompanyShare() { OwnerProjectCompanyId = 6, DependentProjectCompanyId = 3, SharePart = 60 }; var part6 = new ProjectCompanyShare() { OwnerProjectCompanyId = 5, DependentProjectCompanyId = 1, SharePart = 70 }; var part7 = new ProjectCompanyShare() { OwnerProjectCompanyId = 6, DependentProjectCompanyId = 5, SharePart = 30 }; return(new List <ProjectCompanyShare> { part0, part1, part2, part3, part4, part5, part6, part7 }); }
private void ProcessListA(int currentSheetNum, int companyNumber, XLWorkbook wb, ProjectCompanyShare share, ProjectCompanyFactShare factShare) { int shareType = 1; double shareResult = share.SharePart; if (factShare.ShareFactPart > 0 && share.SharePart == 0) { shareType = 2; } if (factShare.ShareFactPart > 0 && share.SharePart > 0) { shareType = 3; shareResult += factShare.ShareFactPart; } wb.Worksheet(currentSheetNum).Name = NamedRusSheet + currentSheetNum; WriteStringInTripledCells(13, 52, companyNumber.ToString("D5"), wb, currentSheetNum); WriteMultipleStringInTripledCells(17, 1, share.DependentProjectCompany.ForeignCompany.FullName, wb, currentSheetNum); WriteMultipleStringInTripledCells(25, 1, share.DependentProjectCompany.ForeignCompany.Name, wb, currentSheetNum); WriteStringInTripledCells(33, 44, share.DependentProjectCompany.ForeignCompany.CountryCodeId.ToString("D3") ?? "---", wb, currentSheetNum); WriteMultipleStringInTripledCells(37, 1, share.DependentProjectCompany.ForeignCompany.RegistrationNumber, wb, currentSheetNum); WriteMultipleStringInTripledCells(43, 1, share.DependentProjectCompany.ForeignCompany.TaxPayerCodeId.ToString() ?? "-", wb, currentSheetNum); WriteStringInTripledCells(37, 1, share.DependentProjectCompany.ForeignCompany.RegistrationNumber, wb, currentSheetNum); WriteStringInTripledCells(56, 43, (shareType).ToString(), wb, currentSheetNum); WriteStringInTripledCells(58, 43, share.ShareStartDate.Date.ToString("dd"), wb, currentSheetNum); WriteStringInTripledCells(58, 52, share.ShareStartDate.Month.ToString("D2"), wb, currentSheetNum); WriteStringInTripledCells(58, 61, share.ShareStartDate.Date.Year.ToString("D4"), wb, currentSheetNum); WriteStringInTripledCells(60, 43, Math.Truncate(shareResult).ToString("000"), wb, currentSheetNum); WriteStringInTripledCells(60, 55, ((shareResult - Math.Truncate(shareResult)) * 100000).ToString("00000"), wb, currentSheetNum); var isDateNull = share.ShareFinishDate == null; WriteStringInTripledCells(62, 43, isDateNull ? "--" : share.ShareFinishDate.Value.Date.ToString("dd"), wb, currentSheetNum); WriteStringInTripledCells(62, 52, isDateNull ? "--" : share.ShareFinishDate.Value.Month.ToString("D2"), wb, currentSheetNum); WriteStringInTripledCells(62, 61, isDateNull ? "----" : share.ShareFinishDate.Value.Year.ToString("D4"), wb, currentSheetNum); }
public async Task <byte[]> GetDocumentData(ProjectCompany ownerCompany, IList <ProjectCompanyFactShare> factShares, Signatory signature, string templatePath, int year, int correction, int taxAuthorityCode) { //companyNumberContainer = new CompanyNumberContainer(); this.factShares = factShares; byte[] result; using (var package = new ExcelPackage(new FileInfo(templatePath))) { this.ownerCompany = ownerCompany; ExcelWorkbook workbook = package.Workbook; var sheet1 = workbook.Worksheets["стр 1"]; var sheet2 = workbook.Worksheets["стр 2"]; var sheetA = workbook.Worksheets["А"]; var sheetA1 = workbook.Worksheets["А1"]; var sheetB = workbook.Worksheets["Б"]; //var sheetB1 = workbook.Worksheets["Б1"]; var sheetV = workbook.Worksheets["В"]; var sheetG = workbook.Worksheets["Г"]; var sheetG1 = workbook.Worksheets["Г1"]; var sheetG2 = workbook.Worksheets["Г2"]; FillCell(sheet1, "[correctionnumber]", correction.ToString("D3")); FillCell(sheet1, "[period]", year); FillCell(sheet1, "[taxauthoritycode]", taxAuthorityCode); //Подписант FillCell(sheet1, "[signatorycode]", signature?.SignatoryCode?.Code); FillLongCell(sheet1, "[signatoryname]", $"{signature.LastName} {signature.FirstName} {signature.MiddleName}", 20); FillCell(sheet1, "[signatoryinn]", signature.Inn); FillCell(sheet1, "[signatoryphone]", signature.PhoneNumber); FillCellValue(sheet1, "B55:BH55", signature.Email); FillLongCell(sheet1, "[signatorydocument]", signature?.ConfirmationDocument?.Name, 20); var pageNumber = 3; switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheet1, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheet1, "[kpp]", this.ownerCompany.DomesticCompany.KPP); FillCell(sheet1, "[taxpayercode]", 1); FillLongCell(sheet1, "[information]", this.ownerCompany.DomesticCompany.FullName, 40); workbook.Worksheets.Delete(sheet2); pageNumber--; break; case State.Individual: if (string.IsNullOrEmpty(signature.Inn)) { FillCellValue(sheet2, "P6:CO6", signature.LastName); FillCellValue(sheet2, "CU6:CY6", signature.FirstName[0]); FillCellValue(sheet2, "DE6:DI6", signature.MiddleName[0]); } FillCell(sheet1, "[inn]", this.ownerCompany.IndividualCompany.INN); FillCell(sheet1, "[taxpayercode]", 2); FillLongCell(sheet1, "[information]", $"{this.ownerCompany.IndividualCompany.Surname} {this.ownerCompany.IndividualCompany.Name} {this.ownerCompany.IndividualCompany.MiddleName}", 40); //стр 2 FillCell(sheet2, "[gender]", this.ownerCompany.IndividualCompany.GenderCode); FillCell(sheet2, "[datebirth]", this.ownerCompany.IndividualCompany.BirthDate.Day > 9 ? this.ownerCompany.IndividualCompany.BirthDate.Day.ToString() : "0" + this.ownerCompany.IndividualCompany.BirthDate.Day); FillCell(sheet2, "[monthbirth]", this.ownerCompany.IndividualCompany.BirthDate.Month > 9 ? this.ownerCompany.IndividualCompany.BirthDate.Month.ToString() : "0" + this.ownerCompany.IndividualCompany.BirthDate.Month); FillCell(sheet2, "[yearbirth]", this.ownerCompany.IndividualCompany.BirthDate.Year); FillLongCell(sheet2, "[placeofbirth]", this.ownerCompany.IndividualCompany.BirthPlace, 40); FillCell(sheet2, "[citizenship]", this.ownerCompany.IndividualCompany.CitizenshipCode); FillCell(sheet2, "[countrycode]", this.ownerCompany.IndividualCompany.RegionCode); if (this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo != null) { FillCell(sheet2, "[passportcode]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.DocumentCode?.Code); FillCell(sheet2, "[passportnumber]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.SeriesAndNumber); FillCell(sheet2, "[datepassport]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Day > 9 ? this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Day.ToString() : "0" + this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Day); FillCell(sheet2, "[monthpassport]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Month > 9 ? this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Month.ToString() : "0" + this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Month); FillCell(sheet2, "[yearpassport]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssueDate.Year); FillCell(sheet2, "[issuedbypassport]", this.ownerCompany.IndividualCompany.VerifedPersonalityDocInfo.IssuePlace); } if (this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo != null) { FillCell(sheet2, "[documentcode]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.DocumentCode?.Code); FillCell(sheet2, "[documentnumber]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.SeriesAndNumber); FillCell(sheet2, "[datedocument]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Day > 9 ? this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Day.ToString() : "0" + this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Day); FillCell(sheet2, "[monthdocument]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Month > 9 ? this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Month.ToString() : "0" + this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Month); FillCell(sheet2, "[yeardocument]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssueDate.Year); FillCell(sheet2, "[issuedbydocument]", this.ownerCompany.IndividualCompany.ConfirmedPersonalityDocInfo.IssuePlace); } FillCell(sheet2, "[locationcode]", this.ownerCompany.IndividualCompany.RussianLocationCode); FillCell(sheet2, "[district]", this.ownerCompany.IndividualCompany.District); FillCell(sheet2, "[city]", this.ownerCompany.IndividualCompany.City); FillCell(sheet2, "[locality]", this.ownerCompany.IndividualCompany.CityType); FillCell(sheet2, "[street]", this.ownerCompany.IndividualCompany.Street); FillCell(sheet2, "[housenumber]", this.ownerCompany.IndividualCompany.HouseNumber); FillCell(sheet2, "[hullnumber]", this.ownerCompany.IndividualCompany.BuildingNumber); FillCell(sheet2, "[appartmentnumber]", this.ownerCompany.IndividualCompany.AppartamentNumber); FillCell(sheet2, "[addresscountrycode]", this.ownerCompany.IndividualCompany.ForeignCountryCode); FillLongCell(sheet2, "[address]", this.ownerCompany.IndividualCompany.ForeignAddress, 40); ClearCells(sheet2); break; default: break; } var ACount = 1; var BCount = 1; var VCount = 1; kiks = await shareService.GetAllKIKsByProjectCompanyId(this.ownerCompany.Id); foreach (var kik in kiks) { var company = await projectCompanyService.GetById(kik.Id); var sheetVCopy = workbook.Worksheets.Add("В-" + VCount, sheetV); FillCell(sheetVCopy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; FillCellValue(sheetVCopy, "Q7:CP7", signature.LastName); FillCellValue(sheetVCopy, "CV7:CZ7", signature.FirstName[0]); FillCellValue(sheetVCopy, "DF7:DJ7", signature.MiddleName[0]); FillCell(sheetVCopy, "[profitcode]", 1); switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetVCopy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetVCopy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); break; case State.Individual: FillCell(sheetVCopy, "[inn]", this.ownerCompany.IndividualCompany.INN); break; } ProjectCompanyShare share = null; var shares = await shareService.GetAllByProjectCompanyId(this.ownerCompany.Id); shares = shares.Where(x => x.DependentProjectCompanyId == company.Id).ToList(); if (shares.Count > 0) { share = shares.Where(x => x.DependentProjectCompanyId == company.Id).First(); } switch (company.State) { case State.Foreign: var sheetACopy = workbook.Worksheets.Add("А-" + ACount, sheetA); FillCell(sheetACopy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; var sheetA1Copy = workbook.Worksheets.Add("А1-" + ACount, sheetA1); FillCell(sheetA1Copy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetACopy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetACopy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); FillCell(sheetA1Copy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetA1Copy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); FillCell(sheetA1Copy, "[103]", "2"); FillCell(sheetA1Copy, "[104]", "2"); FillCell(sheetA1Copy, "[105]", "2"); break; case State.Individual: FillCell(sheetACopy, "[inn]", this.ownerCompany.IndividualCompany.INN); FillCell(sheetA1Copy, "[inn]", this.ownerCompany.IndividualCompany.INN); if (share != null) { var factShare = factShares.Where(x => x.OwnerProjectCompanyId == this.ownerCompany.Id && x.DependentProjectCompanyId == company.Id).FirstOrDefault(); if (factShare != null && factShare.ShareDirectPart == 0) { FillCell(sheetA1Copy, "[103]", "0"); FillCell(sheetA1Copy, "[104]", "0"); FillCell(sheetA1Copy, "[105]", "0"); } else { if (share.IsOwnInterest == true) { FillCell(sheetA1Copy, "[103]", "1"); } else if (!share.IsOwnInterest == false) { FillCell(sheetA1Copy, "[103]", "0"); } else { FillCell(sheetA1Copy, "[103]", "0"); } if (share.IsPartnerInterest == true) { FillCell(sheetA1Copy, "[104]", "1"); } else if (!share.IsPartnerInterest == false) { FillCell(sheetA1Copy, "[104]", "0"); } else { FillCell(sheetA1Copy, "[104]", "0"); } if (share.IsChildInterest == true) { FillCell(sheetA1Copy, "[105]", "1"); } else if (!share.IsChildInterest == false) { FillCell(sheetA1Copy, "[105]", "0"); } else { FillCell(sheetA1Copy, "[105]", "0"); } } FillLongCell(sheetA1Copy, "[foundation]", share.ControlGrounds, 40); } break; } FillCell(sheetACopy, "[companynumber]", ACount.ToString("D5")); FillCellValue(sheetACopy, "P7:CO7", signature.LastName); FillCellValue(sheetACopy, "CU7:CY7", signature.FirstName[0]); FillCellValue(sheetACopy, "DE7:DI7", signature.MiddleName[0]); FillLongCell(sheetACopy, "[companynamerus]", company.ForeignCompany.FullName, 40); FillLongCell(sheetACopy, "[companynameeng]", company.ForeignCompany.Name, 40); FillCell(sheetACopy, "[countrycode]", company.ForeignCompany.CountryCode?.Code); FillLongCell(sheetACopy, "[regnumber]", company.ForeignCompany.RegistrationNumber, 40); FillLongCell(sheetACopy, "[taxpayercode]", company.ForeignCompany.TaxPayerCode?.Code, 40); FillLongCell(sheetACopy, "[address]", company.ForeignCompany.Address, 40); FillCell(sheetVCopy, "[companytype]", "О"); FillCell(sheetVCopy, "[companynumber]", VCount.ToString("D5")); var taxExemption = projectCompanyService.TaxExemptionFor(this.ownerCompany.Id, company.Id, year); FillCell(sheetVCopy, "[1001]", CheckTaxExemptionStatus(taxExemption, RationalyType.NonProfitOrganization)); FillCell(sheetVCopy, "[1002]", CheckTaxExemptionStatus(taxExemption, RationalyType.EurAsECMember)); FillCell(sheetVCopy, "[1003]", CheckTaxExemptionStatus(taxExemption, RationalyType.ByESPN)); if (CheckTaxExemptionStatus(taxExemption, RationalyType.ActiveHoldingCompany) == "1" || CheckTaxExemptionStatus(taxExemption, RationalyType.ActiveSubholdingCompany) == "1") { FillCell(sheetVCopy, "[1004]", "1"); } else { FillCell(sheetVCopy, "[1004]", "0"); } if (CheckTaxExemptionStatus(taxExemption, RationalyType.BankWithLexPersonalis) == "1" || CheckTaxExemptionStatus(taxExemption, RationalyType.InsuranceAgencyWithLexPersonalis) == "1") { FillCell(sheetVCopy, "[1005]", "1"); } else { FillCell(sheetVCopy, "[1005]", "0"); } FillCell(sheetVCopy, "[1006]", CheckTaxExemptionStatus(taxExemption, RationalyType.TradedBondsIssuer)); FillCell(sheetVCopy, "[1007]", CheckTaxExemptionStatus(taxExemption, RationalyType.ProjectMemberMining)); FillCell(sheetVCopy, "[1008]", CheckTaxExemptionStatus(taxExemption, RationalyType.OffshoreFieldOperator)); FillCellValue(sheetA1Copy, "Q7:CP7", signature.LastName); FillCellValue(sheetA1Copy, "CV7:CZ7", signature.FirstName[0]); FillCellValue(sheetA1Copy, "DF7:DJ7", signature.MiddleName[0]); FillCell(sheetA1Copy, "[companynumber]", ACount.ToString("D5")); if (share != null) { var isIndependentRecognition = share.IsIndependentRecognition == true ? "1" : "0"; FillCell(sheetA1Copy, "[isindependentrecognition]", isIndependentRecognition); } ACount++; ClearCells(sheetACopy); ClearCells(sheetA1Copy); break; case State.ForeignLight: var sheetBCopy = workbook.Worksheets.Add("Б-" + BCount, sheetB); switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetBCopy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetBCopy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); break; case State.Individual: FillCell(sheetBCopy, "[inn]", this.ownerCompany.IndividualCompany.INN); break; } FillCell(sheetBCopy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; FillCell(sheetBCopy, "[companynumber]", BCount.ToString("D5")); FillCellValue(sheetBCopy, "P7:CO7", signature.LastName); FillCellValue(sheetBCopy, "CU7:CY7", signature.FirstName[0]); FillCellValue(sheetBCopy, "DE7:DI7", signature.MiddleName[0]); FillLongCell(sheetBCopy, "[companynamerus]", company.ForeignLightCompany.RussianName, 40); FillLongCell(sheetBCopy, "[companynameeng]", company.ForeignLightCompany.EnglishName, 40); FillLongCell(sheetBCopy, "[docnamerus]", company.ForeignLightCompany.RequisitesRus, 40); FillLongCell(sheetBCopy, "[docnameeng]", company.ForeignLightCompany.RequisitesEng, 40); FillCell(sheetBCopy, "[datereg]", company.ForeignLightCompany.FoundDate.Day > 9 ? company.ForeignLightCompany.FoundDate.Day.ToString() : "0" + company.ForeignLightCompany.FoundDate.Day); FillCell(sheetBCopy, "[monthreg]", company.ForeignLightCompany.FoundDate.Month > 9 ? company.ForeignLightCompany.FoundDate.Month.ToString() : "0" + company.ForeignLightCompany.FoundDate.Month); FillCell(sheetBCopy, "[yearreg]", company.ForeignLightCompany.FoundDate.Year); FillCell(sheetBCopy, "[countrycode]", company.ForeignLightCompany.CountryCode?.Code); FillCell(sheetBCopy, "[regnumber]", company.ForeignLightCompany.RegNumber); FillCell(sheetBCopy, "[orgform]", company.ForeignLightCompany.ForeignOrganizationalFormCodeId); FillLongCell(sheetBCopy, "[otherinformation]", company.ForeignLightCompany.OtherInfo, 40); FillCell(sheetVCopy, "[companytype]", "C"); FillCell(sheetVCopy, "[companynumber]", VCount.ToString("D5")); ClearCells(sheetBCopy); BCount++; break; default: break; } VCount++; ClearCells(sheetVCopy); } var GCount = 1; var G1Count = 1; var G2Count = 1; var chainCount = 1; //var reportCompanies = GetReportCompanies().ToList(); var chains = reportCompanyService.GetChains(); foreach (var chain in chains) { var sheetGCopy = workbook.Worksheets.Add("Г-" + GCount, sheetG); FillCell(sheetGCopy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; FillCellValue(sheetGCopy, "P7:CO7", signature.LastName); FillCellValue(sheetGCopy, "CU7:CY7", signature.FirstName[0]); FillCellValue(sheetGCopy, "DE7:DI7", signature.MiddleName[0]); switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetGCopy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetGCopy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); break; case State.Individual: FillCell(sheetGCopy, "[inn]", this.ownerCompany.IndividualCompany.INN); break; } switch (chain.TargetCompany.ProjectCompany.State) { case State.Foreign: FillCell(sheetGCopy, "[companytype]", "O"); FillLongCell(sheetGCopy, "[companynamerus]", chain.TargetCompany.ProjectCompany?.ForeignCompany?.FullName, 40); break; case State.ForeignLight: FillCell(sheetGCopy, "[companytype]", "C"); FillLongCell(sheetGCopy, "[companynamerus]", chain.TargetCompany.ProjectCompany.ForeignLightCompany.RussianName, 40); break; default: break; } FillCell(sheetGCopy, "[numberinsequence]", chainCount.ToString("D5")); chainCount++; FillCell(sheetGCopy, "[companynumber]", GCount.ToString("D5")); GCount++; var count = 1; double sum = 0; foreach (var participant in chain.Participants) { var currentCompany = participant.Company.ProjectCompany; sum += participant.IndirectSharePart; var directSharePart = participant.DirectSharePart.ToString().Split(',', '.'); var directMain = participant.DirectSharePart > 100 ? "100" : Convert.ToInt32(directSharePart[0]).ToString("D3"); var directFraction = directSharePart.Length > 1 ? Convert.ToDouble(directSharePart[1]).ToInt().ToString("D15") : 0.ToString("D15"); var indirectSharePart = participant.IndirectSharePart.ToString().Split(',', '.'); var indirectMain = participant.IndirectSharePart > 100 ? "100" : Convert.ToInt32(indirectSharePart[0]).ToString("D3"); var indirectFraction = indirectSharePart.Length > 1 ? Convert.ToDouble(indirectSharePart[1]).ToInt().ToString("D15") : 0.ToString("D15"); FillCell(sheetGCopy, $"[directshareofparticipantmain-{count}]", directMain); FillCell(sheetGCopy, $"[directshareofparticipantfraction-{count}]", directFraction); FillCell(sheetGCopy, $"[indirectshareofparticipantmain-{count}]", indirectMain); FillCell(sheetGCopy, $"[indirectshareofparticipantfraction-{count}]", indirectFraction); switch (currentCompany.State) { case State.ForeignLight: FillCell(sheetGCopy, $"[membernumbertype-{count}]", "ИC"); FillCell(sheetGCopy, $"[membernumber-{count}]", G1Count.ToString("D5")); G1Count++; count++; break; case State.Foreign: var sheetG2Copy = workbook.Worksheets.Add("Г2-" + G2Count, sheetG2); FillCell(sheetG2Copy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; FillCell(sheetG2Copy, "[companynumber]", G2Count.ToString("D5")); FillCell(sheetGCopy, $"[membernumbertype-{count}]", "ИO"); FillCell(sheetGCopy, $"[membernumber-{count}]", G2Count.ToString("D5")); count++; G2Count++; FillCellValue(sheetG2Copy, "P7:CO7", signature.LastName); FillCellValue(sheetG2Copy, "CU7:CY7", signature.FirstName[0]); FillCellValue(sheetG2Copy, "DE7:DI7", signature.MiddleName[0]); FillLongCell(sheetG2Copy, "[companynamerus]", currentCompany?.ForeignCompany?.FullName, 40); FillLongCell(sheetG2Copy, "[companynameeng]", currentCompany?.ForeignCompany?.Name, 40); FillCell(sheetG2Copy, "[countrycode]", currentCompany?.ForeignCompany?.CountryCode?.Code); FillLongCell(sheetG2Copy, "[regnumber]", currentCompany?.ForeignCompany?.RegistrationNumber, 40); FillLongCell(sheetG2Copy, "[taxpayercode]", currentCompany?.ForeignCompany?.TaxPayerCode?.Code, 40); FillLongCell(sheetG2Copy, "[address]", currentCompany?.ForeignCompany?.Address, 40); switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetG2Copy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetG2Copy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); break; case State.Individual: FillCell(sheetG2Copy, "[inn]", this.ownerCompany.IndividualCompany.INN); break; } ClearCells(sheetG2Copy); break; case State.Domestic: FillCell(sheetGCopy, $"[membernumbertype-{count}]", "РО"); FillCell(sheetGCopy, $"[membernumber-{count}]", G1Count.ToString("D5")); G1Count++; count++; var sheetG1Copy = workbook.Worksheets.Add("Г1-" + G1Count, sheetG1); FillCell(sheetG1Copy, "[pagenumber]", pageNumber.ToString("D3")); pageNumber++; FillCell(sheetG1Copy, "[companynumber]", G1Count.ToString("D5")); G1Count++; FillCellValue(sheetG1Copy, "P7:CO7", signature.LastName); FillCellValue(sheetG1Copy, "CU7:CY7", signature.FirstName[0]); FillCellValue(sheetG1Copy, "DE7:DI7", signature.MiddleName[0]); FillCell(sheetG1Copy, "[ogrn]", currentCompany.DomesticCompany.OGRN); FillCell(sheetG1Copy, "[companyinn]", currentCompany.DomesticCompany.INN); FillCell(sheetG1Copy, "[companykpp]", currentCompany.DomesticCompany.KPP); FillLongCell(sheetG1Copy, "[companyname]", currentCompany.DomesticCompany.FullName, 40); switch (this.ownerCompany.State) { case State.Domestic: FillCell(sheetG1Copy, "[inn]", this.ownerCompany.DomesticCompany.INN); FillCell(sheetG1Copy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); break; case State.Individual: FillCell(sheetG1Copy, "[inn]", this.ownerCompany.IndividualCompany.INN); break; } ClearCells(sheetG1Copy); break; default: break; } } var fsum = sum.ToString().Split(',', '.'); var fSumfraction = fsum.Length > 1 ? Convert.ToDouble(fsum[1]).ToInt().ToString("D15") : 0.ToString("D15"); var sumIndirectshareinsequence = sum > 100 ? "100" : Convert.ToInt32(fsum[0]).ToString("D3"); FillCell(sheetGCopy, "[indirectshareinsequence-main]", sumIndirectshareinsequence); FillCell(sheetGCopy, "[indirectshareinsequence-fraction]", fSumfraction); var fact = factShares.Where(f => f.DependentProjectCompanyId == chain.TargetCompany.ProjectCompany.Id).First(); fsum = fact.ShareFactPart.ToString().Split(',', '.'); fSumfraction = fsum.Length > 1 ? Convert.ToDouble(fsum[1]).ToInt().ToString("D15") : 0.ToString("D15"); sumIndirectshareinsequence = sum > 100 ? "100" : Convert.ToInt32(fsum[0]).ToString("D3"); FillCell(sheetGCopy, "[indirectshare-main]", sumIndirectshareinsequence); FillCell(sheetGCopy, "[indirectshare-fraction]", fSumfraction); ClearCells(sheetGCopy); } /* * * var gCompany = await projectCompanyService.GetById(factShares.Last().DependentProjectCompanyId); * * var sheetGCopy = workbook.Worksheets.Add("Г-" + GCount, sheetG); * FillCell(sheetGCopy, "[pagenumber]", pageNumber.ToString("D3")); * pageNumber++; * * FillCellValue(sheetGCopy, "P7:CO7", signature.LastName); * FillCellValue(sheetGCopy, "CU7:CY7", signature.FirstName[0]); * FillCellValue(sheetGCopy, "DE7:DI7", signature.MiddleName[0]); * * switch (this.ownerCompany.State) * { * case State.Domestic: * * FillCell(sheetGCopy, "[inn]", this.ownerCompany.DomesticCompany.INN); * FillCell(sheetGCopy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); * break; * * case State.Individual: * * FillCell(sheetGCopy, "[inn]", this.ownerCompany.IndividualCompany.INN); * break; * } * * switch (gCompany.State) * { * case State.Foreign: * FillCell(sheetGCopy, "[companytype]", "O"); * FillLongCell(sheetGCopy, "[companynamerus]", gCompany.ForeignCompany.FullName, 40); * * break; * case State.ForeignLight: * FillCell(sheetGCopy, "[companytype]", "C"); * FillLongCell(sheetGCopy, "[companynamerus]", gCompany.ForeignLightCompany.RussianName, 40); * * break; * default: * break; * } * * * FillCell(sheetGCopy, "[numberinsequence]", 1.ToString("D5")); * * FillCell(sheetGCopy, "[companynumber]", GCount.ToString("D5")); * GCount++; * */ /* * var tCompany = factShares.Where(x => x.OwnerProjectCompanyId == gCompany.Id).First(); * * var factPart = tCompany.ShareFactPart.ToString().Split(','); * FillCell(sheetGCopy, "[indirectshare-main]", factPart[0]); * FillCell(sheetGCopy, "[indirectshare-fraction]", factPart[1]); * * var directPart = tCompany.ShareDirectPart.ToString().Split(','); * FillCell(sheetGCopy, "[indirectshareinsequence-main]", directPart[0]); * FillCell(sheetGCopy, "[indirectshareinsequence-fraction]", directPart[1]); */ /* * var count = 1; * foreach (var factShare in factShares) * { * * * var currentCompany = await projectCompanyService.GetById(factShare.DependentProjectCompanyId); * * var fPart = factShare.ShareFactPart.ToString().Split(',', '.'); * var dPart = factShare.ShareDirectPart.ToString().Split(',', '.'); * * var fPartfraction = fPart.Length > 1 ? fPart[1] : 0.ToString("D15"); * var dPartfraction = dPart.Length > 1 ? dPart[1] : 0.ToString("D15"); * * var indirectshareinsequence = factShare.ShareFactPart > 100 ? "100" : fPart[0]; * var indirectsharemain = factShare.ShareDirectPart > 100 ? "100" : dPart[0]; * * * FillCell(sheetGCopy, "[indirectshare-main]", indirectsharemain); * FillCell(sheetGCopy, "[indirectshare-fraction]", dPartfraction); * * FillCell(sheetGCopy, "[indirectshareinsequence-main]", indirectshareinsequence); * FillCell(sheetGCopy, "[indirectshareinsequence-fraction]", fPartfraction); * * if (currentCompany.State != State.Domestic) * { * FillCell(sheetGCopy, $"[directshareofparticipantmain-{count}]", indirectsharemain); * FillCell(sheetGCopy, $"[directshareofparticipantfractionfraction-{count}]", dPartfraction); * * FillCell(sheetGCopy, $"[indirectshareofparticipantmain-{count}]", indirectshareinsequence); * FillCell(sheetGCopy, $"[indirectshareofparticipantfraction-{count}]", fPartfraction); * } * * switch (currentCompany.State) * { * case State.ForeignLight: * * FillCell(sheetGCopy, $"[membernumbertype-{count}]", "ИC"); * FillCell(sheetGCopy, $"[membernumber-{count}]", G1Count.ToString("D5")); * count++; * break; * * case State.Foreign: * * var sheetG2Copy = workbook.Worksheets.Add("Г2-" + G2Count, sheetG2); * FillCell(sheetG2Copy, "[pagenumber]", pageNumber.ToString("D3")); * pageNumber++; * * * FillCell(sheetG2Copy, "[companynumber]", G2Count.ToString("D5")); * FillCell(sheetGCopy, $"[membernumbertype-{count}]", "ИO"); * FillCell(sheetGCopy, $"[membernumber-{count}]", G2Count.ToString("D5")); * count++; * G2Count++; * * FillCellValue(sheetG2Copy, "P7:CO7", signature.LastName); * FillCellValue(sheetG2Copy, "CU7:CY7", signature.FirstName[0]); * FillCellValue(sheetG2Copy, "DE7:DI7", signature.MiddleName[0]); * * FillLongCell(sheetG2Copy, "[companynamerus]", currentCompany?.ForeignCompany?.FullName, 40); * FillLongCell(sheetG2Copy, "[companynameeng]", currentCompany?.ForeignCompany?.Name, 40); * * FillCell(sheetG2Copy, "[countrycode]", currentCompany?.ForeignCompany?.CountryCode?.Code); * FillLongCell(sheetG2Copy, "[regnumber]", currentCompany?.ForeignCompany?.RegistrationNumber, 40); * * FillLongCell(sheetG2Copy, "[taxpayercode]", currentCompany?.ForeignCompany?.TaxPayerCode?.Code, 40); * FillLongCell(sheetG2Copy, "[address]", currentCompany?.ForeignCompany?.Address, 40); * * switch (this.ownerCompany.State) * { * case State.Domestic: * * FillCell(sheetG2Copy, "[inn]", this.ownerCompany.DomesticCompany.INN); * FillCell(sheetG2Copy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); * break; * * case State.Individual: * * FillCell(sheetG2Copy, "[inn]", this.ownerCompany.IndividualCompany.INN); * break; * } * * ClearCells(sheetG2Copy); * * break; * case State.Domestic: * * var sheetG1Copy = workbook.Worksheets.Add("Г1-" + G1Count, sheetG1); * FillCell(sheetG1Copy, "[pagenumber]", pageNumber.ToString("D3")); * pageNumber++; * FillCell(sheetG1Copy, "[companynumber]", G1Count.ToString("D5")); * * * G1Count++; * * FillCellValue(sheetG1Copy, "P7:CO7", signature.LastName); * FillCellValue(sheetG1Copy, "CU7:CY7", signature.FirstName[0]); * FillCellValue(sheetG1Copy, "DE7:DI7", signature.MiddleName[0]); * * * FillCell(sheetG1Copy, "[ogrn]", currentCompany.DomesticCompany.OGRN); * FillCell(sheetG1Copy, "[companyinn]", currentCompany.DomesticCompany.INN); * FillCell(sheetG1Copy, "[companykpp]", currentCompany.DomesticCompany.KPP); * FillLongCell(sheetG1Copy, "[companyname]", currentCompany.DomesticCompany.FullName, 40); * * * * switch (this.ownerCompany.State) * { * case State.Domestic: * * FillCell(sheetG1Copy, "[inn]", this.ownerCompany.DomesticCompany.INN); * FillCell(sheetG1Copy, "[kpp]", this.ownerCompany.DomesticCompany.KPP); * break; * * case State.Individual: * * FillCell(sheetG1Copy, "[inn]", this.ownerCompany.IndividualCompany.INN); * break; * } * * ClearCells(sheetG1Copy); * * * break; * default: * break; * } * * * * } */ workbook.Worksheets.Delete(sheetA); workbook.Worksheets.Delete(sheetA1); workbook.Worksheets.Delete(sheetB); workbook.Worksheets.Delete(sheetV); workbook.Worksheets.Delete(sheetG); workbook.Worksheets.Delete(sheetG1); workbook.Worksheets.Delete(sheetG2); FillCell(sheet1, "[pagecount]", (pageNumber - 1).ToString("D3")); ClearCells(sheet1); result = package.GetAsByteArray(); } return(result); }
public void TestNPC() { ExcelDocsCreator ec = new ExcelDocsCreator(); ProjectCompany pc0 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ", State = State.Domestic }; DocumentInformation di1 = new DocumentInformation() { IssueDate = DateTime.Parse("05.05.1991"), IssuePlace = "г.Москва", SeriesAndNumber = "123 989 89 89 " }; DocumentInformation di2 = new DocumentInformation() { IssueDate = DateTime.Parse("05.05.1992"), IssuePlace = "г.Москва", SeriesAndNumber = "456 989 89 89 " }; DocumentInformation di3 = new DocumentInformation() { IssueDate = DateTime.Parse("05.05.1993"), IssuePlace = "г.Москва", SeriesAndNumber = "789 989 89 89 " }; DocumentInformation di4 = new DocumentInformation() { IssueDate = DateTime.Parse("05.05.1994"), IssuePlace = "г.Москва", SeriesAndNumber = "0987 989 89 89 " }; IndividualCompany ic1 = new IndividualCompany() { AppartamentNumber = "100", BirthDate = DateTime.Parse("05.05.1990"), BirthPlace = "город москва", BuildingNumber = "строение 1", CitizenshipCodeId = 1, City = "Москва", CityType = "город", ConfirmedPersonalityDocInfo = di1, INN = 09876543210, Name = "Василий", MiddleName = "Иванович", Surname = "Пупкин", GenderCodeId = 1, PostIndex = "495980", RegionCode = new RegionCode() { Id = 77 }, District = "Московская", Street = "Ленина", HouseNumber = "10", VerifedPersonalityDocInfo = di4 }; IndividualCompany ic2 = new IndividualCompany() { AppartamentNumber = "200", BirthDate = DateTime.Parse("05.05.1980"), BirthPlace = "город москва", BuildingNumber = "строение 2", CitizenshipCodeId = 1, City = "Питер", CityType = "город", ConfirmedPersonalityDocInfo = di2, INN = 1234567890, Name = "Иван", MiddleName = "Петрович", Surname = "Сидоров", GenderCodeId = 1, PostIndex = "495980", RegionCode = new RegionCode() { Id = 47 }, District = "Омская", Street = "Ленина", HouseNumber = "1000", VerifedPersonalityDocInfo = di3 }; IndividualCompany ic3 = new IndividualCompany() { AppartamentNumber = "300", BirthDate = DateTime.Parse("05.05.1970"), BirthPlace = "город москва", BuildingNumber = "строение 43", CitizenshipCodeId = 1, City = "Омск", CityType = "город", ConfirmedPersonalityDocInfo = di3, INN = 1334567890, Name = "Пётр", MiddleName = "Сидорович", Surname = "Иванов", GenderCodeId = 1, PostIndex = "495980", RegionCode = new RegionCode() { Id = 05 }, District = "Омская", Street = "Ленина", HouseNumber = "10/4", VerifedPersonalityDocInfo = di2 }; IndividualCompany ic4 = new IndividualCompany() { AppartamentNumber = "400", BirthDate = DateTime.Parse("05.05.1960"), BirthPlace = "город москва", BuildingNumber = "строение 143", CitizenshipCodeId = 1, City = "Ленинград", CityType = "город", ConfirmedPersonalityDocInfo = di4, INN = 1134567890, Name = "Алексей", MiddleName = "Иванович", Surname = "Петров", GenderCodeId = 1, PostIndex = "495980", RegionCode = new RegionCode() { Id = 98 }, District = "Ленинградская", Street = "Ленина", HouseNumber = "108", VerifedPersonalityDocInfo = di1 }; ProjectCompany pc1 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ40", State = State.Individual, IndividualCompany = ic1 }; ProjectCompany pc2 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ41", State = State.Individual, IndividualCompany = ic2 }; ProjectCompany pc3 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ42", State = State.Individual, IndividualCompany = ic3 }; ProjectCompany pc4 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ43", State = State.Individual, IndividualCompany = ic4 }; ForeignCompany fc1 = new ForeignCompany() { FullName = "ООО Иностранная компания 1", Name = "ИК1", Address = "г. Москва 1ый Волоколамский проезд дом 3", CountryCodeId = 1, TaxPayerCodeId = 1, RegistrationNumber = "123" }; ForeignCompany fc2 = new ForeignCompany() { FullName = "ООО Иностранная компания 2", Name = "ИК2", Address = "г. Москва 2ый Волоколамский проезд дом 4", CountryCodeId = 1, TaxPayerCodeId = 1, RegistrationNumber = "21222223" }; ForeignCompany fc3 = new ForeignCompany() { FullName = "ООО Иностранная компания 3", Name = "ИК3", Address = "г. Москва 3ий Волоколамский проезд дом 5", CountryCodeId = 5, TaxPayerCodeId = 1, RegistrationNumber = "31222243522223" }; ForeignCompany fc4 = new ForeignCompany() { FullName = "ООО Иностранная компания 4", Name = "ИК4", Address = "г. Москва 4ый Волоколамский проезд дом 6", CountryCodeId = 5, TaxPayerCodeId = 1, RegistrationNumber = "421222243522223" }; ProjectCompany pc5 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ30", State = State.Foreign, ForeignCompany = fc1 }; ProjectCompany pc6 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ31", State = State.Foreign, ForeignCompany = fc2 }; ProjectCompany pc7 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ32", State = State.Foreign, ForeignCompany = fc3 }; ProjectCompany pc8 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ33", State = State.Foreign, ForeignCompany = fc4 }; ForeignLightCompany fcl1 = new ForeignLightCompany() { EnglishName = "FOREGIN LIGHT COMPANY 1 FOREGIN LIGHT COMPANY 1 FOREGIN LIGHT COMPANY 1 FOREGIN LIGHT COMPANY 1", RussianName = "ООО Иностранная компания БОЮЛ 1", CountryCodeId = 5, FoundDate = DateTime.Parse("05.12.1997"), Number = "1423", ForeignOrganizationalFormCodeId = 4, RequisitesEng = "DESC NUM 3 DESC NUM 2 DESC NUM 1", RegNumber = "123123123", RequisitesRus = "Реквизит1, 2 ,3 ,5 10 реквизиты", OtherInfo = "Дополнительная информация 1" }; ForeignLightCompany fcl2 = new ForeignLightCompany() { EnglishName = "FOREGIN LIGHT COMPANY 2", RussianName = "ООО Иностранная компания БОЮЛ 2", CountryCodeId = 5, FoundDate = DateTime.Parse("05.12.1998"), Number = "1234", ForeignOrganizationalFormCodeId = 3, RequisitesEng = "DESC NUM 3 DESC NUM 2 DESC NUM 1", RegNumber = "123123123", RequisitesRus = "Реквизит1, 2 ,3 ,5 10 реквизиты", OtherInfo = "Дополнительная информация 2" }; ForeignLightCompany fcl3 = new ForeignLightCompany() { EnglishName = "FOREGIN LIGHT COMPANY 3", RussianName = "ООО Иностранная компания БОЮЛ 3", CountryCodeId = 6, FoundDate = DateTime.Parse("05.12.1999"), Number = "1235", ForeignOrganizationalFormCodeId = 2, RequisitesEng = "DESC NUM 3 DESC NUM 2 DESC NUM 1", RegNumber = "123123123", RequisitesRus = "Реквизит1, 2 ,3 ,5 10 реквизиты", OtherInfo = "Дополнительная информация 3 " }; ForeignLightCompany fcl4 = new ForeignLightCompany() { EnglishName = "FOREGIN LIGHT COMPANY 4", RussianName = "ООО Иностранная компания БОЮЛ 4", CountryCodeId = 8, FoundDate = DateTime.Parse("05.12.2005"), Number = "1236", ForeignOrganizationalFormCodeId = 1, RequisitesEng = "DESC NUM 3 DESC NUM 2 DESC NUM 1", RegNumber = "123123123", RequisitesRus = "Реквизит1, 2 ,3 ,5 10 реквизиты", OtherInfo = "Дополнительная информация 4" }; ProjectCompany pc9 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ20", State = State.ForeignLight, ForeignLightCompany = fcl1 }; ProjectCompany pc10 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ21", State = State.ForeignLight, ForeignLightCompany = fcl2 }; ProjectCompany pc11 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ22", State = State.ForeignLight, ForeignLightCompany = fcl3 }; ProjectCompany pc12 = new ProjectCompany() { Name = "ООО ЛЮКСОФТ ПРОФЕШОНАЛ23", State = State.ForeignLight, ForeignLightCompany = fcl4 }; ProjectCompanyShare share1 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc1.Id, DependentProjectCompany = pc1, SharePart = 50.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share2 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc2.Id, DependentProjectCompany = pc2, SharePart = 20.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share3 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc3.Id, DependentProjectCompany = pc3, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share4 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc4.Id, DependentProjectCompany = pc4, SharePart = 5.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share5 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc5.Id, DependentProjectCompany = pc5, SharePart = 10.10, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share6 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc6.Id, DependentProjectCompany = pc6, SharePart = 10.03, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share7 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc7.Id, DependentProjectCompany = pc7, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share8 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc8.Id, DependentProjectCompany = pc8, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share9 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc9.Id, DependentProjectCompany = pc9, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share10 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc10.Id, DependentProjectCompany = pc10, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share11 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc11.Id, DependentProjectCompany = pc11, SharePart = 10.20, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share12 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc12.Id, DependentProjectCompany = pc12, SharePart = 10.13, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share01 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc1.Id, DependentProjectCompany = pc1, SharePart = 50.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share02 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc2.Id, DependentProjectCompany = pc2, SharePart = 20.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share03 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc3.Id, DependentProjectCompany = pc3, SharePart = 10.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; ProjectCompanyShare share04 = new ProjectCompanyShare() { OwnerProjectCompanyId = pc0.Id, DependentProjectCompanyId = pc4.Id, DependentProjectCompany = pc4, SharePart = 5.00, ShareType = ShareType.Direct, ShareStartDate = DateTime.Parse("05.12.2005") }; //List<ProjectCompanyShare> fd = new List<ProjectCompanyShare> { share1, share2, share3, share4, share5, share6, share7, share8, share9, share10, share11, share12 }; List <ProjectCompanyShare> fd = new List <ProjectCompanyShare> { share7, share11 }; // List<ProjectCompanyShare> fdd = new List<ProjectCompanyShare> { share01, share02, share03, share04}; //pc1.DependentProjectCompanyShares = new List<ProjectCompanyShare>{share1,share2,share3,share4,share5, share6, share7, share8, share9, share10,share11, share12}; //pc1.OwnerProjectCompanyShares = new List<ProjectCompanyShare> { share1, share2, share3, share4, share5, share6, share7, share8, share9, share10, share11, share12 }; FactShareCalculation fc = new FactShareCalculation(); var smplList = fc.GetFactShares(GetShares()).Where(s => s.ShareFactPart > 0); ////Граф //var graphModel = new AdjacencyGraph<int, TaggedEdge<int, double>>(); ////Вершины //IList<int> vecities = GetOrderedIds(smplList); //foreach (var v in vecities) //{ // graphModel.AddVertex(v); //} ////Ребра и Веса //foreach (var share in smplList) //{ // graphModel.AddEdge(new TaggedEdge<int, double>(share.DependentProjectCompanyId, share.OwnerProjectCompanyId, share.ShareFactPart)); //} ////Граф //var shareGraph = new BidirectionalGraph<int, Edge<int>>(); ////Вершины(Vertices) Ребра(Edge) и Веса (a Tag) //foreach (var share in smplList) //{ // shareGraph.AddVerticesAndEdge(new TaggedEdge<int, double>(share.OwnerProjectCompanyId, share.DependentProjectCompanyId, share.ShareFactPart)); //}; ////откуда //int Source = 1; ////Куда //int Target = 2; ////Ограничение на кол-во путей //int pathCount = 10; //// e- edgesWeights //foreach (IEnumerable<Edge<int>> paths in shareGraph.RankedShortestPathHoffmanPavley(e => 0, Source, Target, pathCount)) //{ // Console.WriteLine("Path Exmple:"); // foreach (TaggedEdge<int, double> path in paths) // { // Console.WriteLine(path.Source + " > " + path.Target + "Costs: " + path.Tag); // } //} //var graphModel1 = new AdjacencyGraph<int, TaggedEdge<int, double>>(); //foreach (var share in smplList) //{ // graphModel1.AddVerticesAndEdge(new TaggedEdge<int, double>(share.DependentProjectCompanyId, share.OwnerProjectCompanyId, share.ShareFactPart)); //} //var edges = new SEdge<int>[] { new SEdge<int>(1, 2), new SEdge<int>(0, 1) }; //var graph = edges.ToAdjacencyGraph<int, SEdge<int>>(true); //var factShareLsit = fc.GetFactShares(fd); //string path = @"C:\Users\FyodorSt\Source\Repos\WebKIK\KPMG.WebKik.DocumentProcessing\Templates\UU.xlsx"; //var nn = ec.GetFilledNotificationOfParticipation(path, pc0, fd, factShareLsit.ToList()); //nn.SaveAs("NN"+ pc0.Name+".xlsx"); }
public bool IsControlCompany(ProjectCompanyShare share, IList <ProjectCompany> companies, IList <ProjectCompanyFactShare> factShares) { return(CompanyHasControlValues(share) || CompanyHasLargeFactShare(share) || CompanyHasMoreThenDomesticFactShare(share, companies, factShares)); }
public bool CompanyHasLargeFactShare(ProjectCompanyShare share) { return(share.SharePart > 25.0); }
public bool CompanyHasControlValues(ProjectCompanyShare share) { return(true.Equals(share.IsControlledBy));//.HasValue && share.IsControlledBy.Value; }