package cn.com.countrygarden.bi.main.service.resident;

import cn.com.countrygarden.bi.main.model.PageData;
import cn.com.countrygarden.bi.main.model.resident.Payment;
import cn.com.countrygarden.bi.main.model.resident.ResidentContract;
import cn.com.countrygarden.bi.main.model.resident.ResidentPaymentAggregate;

/**
 * Created by chenweijiang on 2017/11/13.
 */
public interface ResidentPaymentService {

    void createPayment(ResidentContract contract);

    void reCreatePayment(ResidentContract contract);

    int findPaidPayment(Integer contractId);

    void paid(Payment payment, String userCode);

    void invoice(Payment payment, String userCode);

    PageData search(String organId,
                    String commId,
                    String startTime,
                    String endTime,
                    String receivedStartTime,
                    String receivedEndTime,
                    String contractCode,
                    String contractStatus,
                    String isPaid,
                    String hasInvoice,
                    String status,
                    int page,
                    int size,
                    String userCode);


    void check(Integer id, String status, String userCode);

    void createPaymentBatch(ResidentContract contract);

    void paidBatch(Payment payment, String userCode);

    ResidentPaymentAggregate aggregate(Integer contractId);
}
