Add new Hcs.Broker to communicate with ГИС ЖКХ via CryptoPro LibCore

This commit is contained in:
2025-09-28 15:45:15 +09:00
parent 904988780a
commit 2b49320014
171 changed files with 185618 additions and 0 deletions

View File

@ -0,0 +1,239 @@
using Hcs.Broker.Api.Registry;
using Hcs.Broker.Api.Type;
namespace Hcs.Broker.Api.Payload.Bills
{
// http://open-gkh.ru/Bills/importPaymentDocumentRequest.html
public class ImportPaymentDocumentDataPayload
{
// http://open-gkh.ru/Bills/importPaymentDocumentRequest/PaymentInformation.html
public class PaymentInformation
{
/// <summary>
/// БИК банка получателя
/// </summary>
public string bankBIK;
/// <summary>
/// Номер расчетного счета
/// </summary>
public string operatingAccountNumber;
}
/// <summary>
/// Начисление по услуге
/// </summary>
// http://open-gkh.ru/Bills/PaymentDocumentType/ChargeInfo.html
public interface IChargeInfo { }
/// <summary>
/// Главная коммунальная услуга
/// </summary>
// http://open-gkh.ru/Bills/PDServiceChargeType/MunicipalService.html
public class MunicipalService : IChargeInfo
{
/// <summary>
/// Необязательное. Перерасчеты, корректировки, руб.
/// </summary>
public decimal? moneyRecalculation;
/// <summary>
/// Необязательное. Льготы, субсидии, скидки, руб.
/// </summary>
public decimal? moneyDiscount;
/// <summary>
/// Необязательное. Норматив потребления коммунальных ресурсов в целях использования и содержания
/// общего имущества в многоквартирном доме.
/// </summary>
public decimal? houseOverallNeedsNorm;
/// <summary>
/// Необязательное. Норматив потребления коммунальных услуг.
/// </summary>
public decimal? individualConsumptionNorm;
/// <summary>
/// Необязательное. Текущие показания приборов учёта коммунальных ресурсов - индивидуальных
/// (квартирных).
/// </summary>
public decimal? individualConsumptionCurrentValue;
/// <summary>
/// Необязательное. Текущие показания приборов учёта коммунальных ресурсов - коллективных (общедомовых).
/// </summary>
public decimal? houseOverallNeedsCurrentValue;
/// <summary>
/// Необязательное. Суммарный объём коммунальных ресурсов в многоквартирном доме - в помещениях дома.
/// </summary>
public decimal? houseTotalIndividualConsumption;
/// <summary>
/// Необязательное. Суммарный объём коммунальных ресурсов в многоквартирном доме - в целях содержания
/// общего имущества в многоквартирном доме.
/// </summary>
public decimal? houseTotalHouseOverallNeeds;
/// <summary>
/// Необязательное. Способ определения объема коммунальных ресурсов при индивидуальном потреблении.
/// </summary>
public MunicipalServiceVolumeDeterminingMethod? individualConsumptionVolumeDeterminingMethod;
/// <summary>
/// Необязательное. Объем/площадь/кол-во коммунальных ресурсов при индивидуальном потреблении.
/// </summary>
public decimal? individualConsumptionVolumeValue;
/// <summary>
/// Необязательное. Способ определения объема коммунальных ресурсов при содержании общего имущества.
/// </summary>
public MunicipalServiceVolumeDeterminingMethod? overallConsumptionVolumeDeterminingMethod;
/// <summary>
/// Необязательное. Объем/площадь/кол-во коммунальных ресурсов при содержании общего имущества.
/// </summary>
public decimal? overallConsumptionVolumeValue;
/// <summary>
/// Необязательное. Размер повышающего коэффициента.
/// </summary>
public decimal? multiplyingFactorRatio;
/// <summary>
/// Необязательное. Размер превышения платы, рассчитанной с применением повышающего коэффициента над
/// размером платы, рассчитанной без учета повышающего коэффициента, руб.
/// </summary>
public decimal? amountOfExcessFees;
/// <summary>
/// К оплате за индивидуальное потребление коммунальной услуги, руб.
/// </summary>
public decimal? municipalServiceIndividualConsumptionPayable;
/// <summary>
/// К оплате за общедомовое потребление коммунальной услуги, руб.
/// </summary>
public decimal? municipalServiceCommunalConsumptionPayable;
/// <summary>
/// Необязательное. Размер платы за коммунальные услуги, индивидуальное потребление.
/// </summary>
public decimal? amountOfPaymentMunicipalServiceIndividualConsumption;
/// <summary>
/// Необязательное. Размер платы за коммунальные услуги, общедомовые нужды.
/// </summary>
public decimal? amountOfPaymentMunicipalServiceCommunalConsumption;
/// <summary>
/// Код услуги из справочника "Вид коммунальной услуги" НСИ 3
/// </summary>
public RegistryElement serviceType;
/// <summary>
/// Тариф/Размер платы на кв.м, руб./Размер взноса на кв.м, руб.
/// </summary>
public decimal rate;
/// <summary>
/// К оплате за расчетный период, руб.
/// </summary>
public decimal totalPayable;
/// <summary>
/// Необязательное. Начислено за расчетный период (без перерасчетов и льгот), руб.
/// </summary>
public decimal? accountingPeriodTotal;
}
// http://open-gkh.ru/Bills/importPaymentDocumentRequest/PaymentDocument.html
public class PaymentDocument
{
/// <summary>
/// Платежный реквизит
/// </summary>
public PaymentInformation paymentInformation;
/// <summary>
/// Идентификатор лицевого счета
/// </summary>
public string accountGuid;
/// <summary>
/// Необязательное. Номер платежного документа, по которому внесена плата, присвоенный такому
/// документу исполнителем в целях осуществления расчетов по внесению платы
/// </summary>
public string paymentDocumentNumber;
/// <summary>
/// Начисления по услугам
/// </summary>
public List<IChargeInfo> chargeInfo;
/// <summary>
/// Если true, то выставлен на оплату, иначе - отозван
/// </summary>
public bool exposeNotWithdraw;
/// <summary>
/// Необязательное. Задолженность за предыдущие периоды, руб.
/// </summary>
public decimal? debtPreviousPeriods;
/// <summary>
/// Необязательное. Аванс на начало расчетного периода, руб.
/// </summary>
public decimal? advanceBllingPeriod;
/// <summary>
/// Необязательное. Итого к оплате за расчетный период c учетом задолженности/переплаты, руб.
/// (по всему платежному документу)
/// </summary>
public decimal? totalPayableByPDWithDebtAndAdvance;
/// <summary>
/// Необязательное. Сумма к оплате за расчетный период, руб. (по всему платежному документу).
/// </summary>
public decimal? totalPayableByPD;
/// <summary>
/// Необязательное. Оплачено денежных средств, руб.
/// </summary>
public decimal? paidCash;
/// <summary>
/// Необязательное. Дата последней поступившей оплаты
/// </summary>
public DateTime? dateOfLastReceivedPayment;
}
/// <summary>
/// Необязательное. Если true, то передаваемые данные платежных документов, следует считать верными,
/// даже если они отличаются от автоматически рассчитанных системой значений. В том случае, если параметр
/// не заполнен, то ГИС ЖХК будет проводить автоматическую проверку рассчитываемых сумм по ПД.
/// </summary>
public bool confirmAmountsCorrect;
/// <summary>
/// Месяц расчетного периода платежного документа
/// </summary>
public int month;
/// <summary>
/// Год расчетного периода платежного документа
/// </summary>
public short year;
/// <summary>
/// Сведения о платежных реквизитах получателя платежа - бизнес-ключ поиска размещенных платежных
/// реквизитов в ГИС ЖКХ
/// </summary>
public PaymentInformation[] paymentInformation;
/// <summary>
/// Размещаемый платежный документ. Максимум 500.
/// </summary>
public PaymentDocument[] paymentDocument;
}
}