def get(self): details_fields = { 'id': fields.Integer(), 'patient_id': fields.Integer(), 'service_id': fields.Integer(), 'amountDue': fields.Integer(), 'totalPrice': fields.Integer(), 'discount': fields.Integer(default=None), 'totalPayments': fields.Integer(), 'numberOfSessions': fields.Integer(), 'issueDateTime': fields.DateTime(dt_format='iso8601'), } idName_fields = { 'id': fields.Integer(default=None), 'name': fields.String } patient_fields = { 'id': fields.Integer(default=None), 'name': fields.String(), 'mobileNumber': fields.String() } details_fields['service'] = fields.Nested(idName_fields) details_fields['createdBy'] = fields.Nested(idName_fields) details_fields['patient'] = fields.Nested(patient_fields) details_fields['serviceOffer'] = fields.Nested(idName_fields) details_fields['leadedBy'] = fields.Nested(idName_fields) result_fields = { 'details': fields.Nested(details_fields), 'ordersCount': fields.Integer(), 'totalDiscount': fields.Integer(), 'totalPrice': fields.Integer(), 'totalPayments': fields.Integer(), 'totalAmountDue': fields.Integer(), } qParser = reqparse.RequestParser() qParser.add_argument('fromDate', type=dateInput, default=None) qParser.add_argument('toDate', type=dateInput, default=None) qParser.add_argument('service_id', type=int, default=None) qParser.add_argument('patient_id', type=int, default=None) qParser.add_argument('employee_id', type=int, default=None) qParser.add_argument('serviceOffer_id', type=int, default=None) qParser.add_argument('patient_mobile', type=str, default=None) args = qParser.parse_args() fromDate = args.get('fromDate') toDate = args.get('toDate') service_id = args.get('service_id') employee_id = args.get('employee_id') patient_id = args.get('patient_id') serviceOffer_id = args.get('serviceOffer_id') patient_mobile = args.get('patient_mobile') if patient_mobile is not None: patient = Patient.query.filter_by(mobileNumber=patient_mobile).first() patient_id = patient.id if patient else None report = OrdersDetailsReport() report.filterDateRange(fromDate, toDate) report.filterByService(service_id) report.filterByPatient(patient_id) report.filterByUser(employee_id) report.filterByServiceOffer(serviceOffer_id) result = report.result() return marshal(result, result_fields)
def get(self): details_fields = { "id": fields.Integer(), "patient_id": fields.Integer(), "service_id": fields.Integer(), "amountDue": fields.Integer(), "totalPrice": fields.Integer(), "discount": fields.Integer(default=None), "totalPayments": fields.Integer(), "numberOfSessions": fields.Integer(), "serviceName": fields.String, "serviceOfferName": fields.String, "patientName": fields.String, "issueDateTime": fields.DateTime(dt_format="iso8601"), } idName_fields = {"id": fields.Integer(default=None), "name": fields.String} patient_fields = {"id": fields.Integer(default=None), "name": fields.String(), "mobileNumber": fields.String()} details_fields["service"] = fields.Nested(idName_fields) details_fields["patient"] = fields.Nested(patient_fields) details_fields["serviceOffer"] = fields.Nested(idName_fields) result_fields = { "details": fields.Nested(details_fields), "ordersCount": fields.Integer(), "totalDiscount": fields.Integer(), "totalPrice": fields.Integer(), "totalAmountDue": fields.Integer(), } qParser = reqparse.RequestParser() qParser.add_argument("fromDate", type=dateInput, default=None) qParser.add_argument("toDate", type=dateInput, default=None) qParser.add_argument("service_id", type=int, default=None) qParser.add_argument("patient_id", type=int, default=None) qParser.add_argument("serviceOffer_id", type=int, default=None) qParser.add_argument("patient_mobile", type=str, default=None) args = qParser.parse_args() fromDate = args.get("fromDate") toDate = args.get("toDate") service_id = args.get("service_id") patient_id = args.get("patient_id") serviceOffer_id = args.get("serviceOffer_id") patient_mobile = args.get("patient_mobile") if patient_mobile is not None: patient = Patient.query.filter_by(mobileNumber=patient_mobile).first() patient_id = patient.id if patient else None report = OrdersDetailsReport() report.filterDateRange(fromDate, toDate) report.filterByService(service_id) report.filterByPatient(patient_id) report.filterByServiceOffer(serviceOffer_id) result = report.result() return marshal(result, result_fields)