Package disc

Interface AcceptanceAct

All Superinterfaces:
BlockchainContract

public interface AcceptanceAct extends BlockchainContract
Акт приемки работ по [суб]контракту. Акт создается исполнителем и отдельно подписывается принимающей стороной, заказчиком. Подписанный акт регистрируется на блокчейне и автоматически учитывается при получении средств, выделенных под обеспечение расчетов (ProvisionPayment).

Изначально акт не зарегистрирован в сети и не подписан. Для активации акта, необходимо его подписать обеими сторонами сделки, и зарегистрировать в блокчейне.

Чтобы обеспечить необходимый уровень безопасности, акт должен подписываться независимо, прриватные ключи исопльзуемые при подписи не должны сохраняться или передаваться в незашифрованном виде.

Зарегистрированный контракт можно проврерить в блокчейне как обычно;

Пример использования:


      ProvisionPayment payment;

      AcceptanceAct act = payment.createdAct(BigDecimal(100000), "принятые работы п1");
      act.signWith(decryptCustomerPrivateKey());
      act.signWith(decryptPerformerPrivateKey());
      act.registerInBlockchain();
 
  • Method Details

    • customerParty

      @NonNull Party customerParty()
      Returns:
      участника выполняющего функцию заказчика, т.е. принимающей и оплачиваюшей стороны
    • performerParty

      @NonNull Party performerParty()
      Returns:
      участник выполняющего функцию подрядчика, исполнителя.
    • getAmount

      @NonNull BigDecimal getAmount()
      Returns:
      сумма актирования
    • createdAt

      @NonNull ZonedDateTime createdAt()
      Returns:
      момент создания черновика акта
    • signedByCustomerAt

      @Nullable ZonedDateTime signedByCustomerAt()
      Returns:
      момент успешной подписи акта принимающей стороной или null если не подписан
    • signedByPerformerAt

      @Nullable ZonedDateTime signedByPerformerAt()
      Returns:
      момент успешной подписи акта исполнителем стороной или null если не подписан
    • isSignedByCustomer

      default boolean isSignedByCustomer()
      Returns:
      true если акт подписан принимающей стороной (в этом случае он либо уже зарегистирован в блокчейне, либо находится в процессе обработки.
    • isSignedByPerformer

      default boolean isSignedByPerformer()
    • signWith

      void signWith(@NonNull PrivateKey key)
      Подписать акт ключом участника, причем ключ должен принадлежать исполнителю или заказчику, если ключ не относится к контракту, выдаем исключение. Повторная подпись допускается, при этом меняется дата регистрации соответствующей подписи.
      Parameters:
      key - ключ для подписи