fix: update recept
This commit is contained in:
@@ -49,7 +49,7 @@ class CreatePaymentCloudkassirCommand:
|
|||||||
email = str(user.email or '').strip()
|
email = str(user.email or '').strip()
|
||||||
if not email:
|
if not email:
|
||||||
raise ApplicationException(status_code=400, message='User email missing')
|
raise ApplicationException(status_code=400, message='User email missing')
|
||||||
supplier_name = ' '.join(
|
customer_info = ' '.join(
|
||||||
part
|
part
|
||||||
for part in (
|
for part in (
|
||||||
str(user.last_name or '').strip(),
|
str(user.last_name or '').strip(),
|
||||||
@@ -58,12 +58,14 @@ class CreatePaymentCloudkassirCommand:
|
|||||||
)
|
)
|
||||||
if part
|
if part
|
||||||
)
|
)
|
||||||
if not supplier_name:
|
if not customer_info:
|
||||||
raise ApplicationException(status_code=400, message='User full name missing')
|
raise ApplicationException(status_code=400, message='User full name missing')
|
||||||
supplier_inn = str(user.inn or '').strip()
|
customer_inn = str(user.inn or '').strip()
|
||||||
if not supplier_inn:
|
if not customer_inn:
|
||||||
raise ApplicationException(status_code=400, message='User inn missing')
|
raise ApplicationException(status_code=400, message='User inn missing')
|
||||||
phone = str(user.phone or '').strip() or None
|
if user.birth_date is None:
|
||||||
|
raise ApplicationException(status_code=400, message='User birth date missing')
|
||||||
|
customer_birthday = user.birth_date.isoformat()
|
||||||
|
|
||||||
paid_total = _parse_money(payment.amount)
|
paid_total = _parse_money(payment.amount)
|
||||||
if paid_total is None:
|
if paid_total is None:
|
||||||
@@ -115,9 +117,9 @@ class CreatePaymentCloudkassirCommand:
|
|||||||
total_amount=total_amount,
|
total_amount=total_amount,
|
||||||
principal_amount=principal_amount,
|
principal_amount=principal_amount,
|
||||||
service_fee=service_fee,
|
service_fee=service_fee,
|
||||||
phone=phone,
|
customer_info=customer_info,
|
||||||
supplier_name=supplier_name,
|
customer_inn=customer_inn,
|
||||||
supplier_inn=supplier_inn,
|
customer_birthday=customer_birthday,
|
||||||
request_id=str(ULID()),
|
request_id=str(ULID()),
|
||||||
)
|
)
|
||||||
receipt_model = receipt_response.get('Model')
|
receipt_model = receipt_response.get('Model')
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ class IReceipt(ABC):
|
|||||||
total_amount: Decimal,
|
total_amount: Decimal,
|
||||||
principal_amount: Decimal,
|
principal_amount: Decimal,
|
||||||
service_fee: Decimal,
|
service_fee: Decimal,
|
||||||
phone: str | None = None,
|
customer_info: str = '',
|
||||||
supplier_name: str = '',
|
customer_inn: str = '',
|
||||||
supplier_inn: str = '',
|
customer_birthday: str = '',
|
||||||
success_url: str | None = None,
|
success_url: str | None = None,
|
||||||
fail_url: str | None = None,
|
fail_url: str | None = None,
|
||||||
request_id: str | None = None,
|
request_id: str | None = None,
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ class ClaudeKassirClient(IReceipt):
|
|||||||
total_amount: Decimal,
|
total_amount: Decimal,
|
||||||
principal_amount: Decimal,
|
principal_amount: Decimal,
|
||||||
service_fee: Decimal,
|
service_fee: Decimal,
|
||||||
phone: str | None = None,
|
customer_info: str = '',
|
||||||
supplier_name: str = '',
|
customer_inn: str = '',
|
||||||
supplier_inn: str = '',
|
customer_birthday: str = '',
|
||||||
success_url: str | None = None,
|
success_url: str | None = None,
|
||||||
fail_url: str | None = None,
|
fail_url: str | None = None,
|
||||||
request_id: str | None = None,
|
request_id: str | None = None,
|
||||||
@@ -71,13 +71,13 @@ class ClaudeKassirClient(IReceipt):
|
|||||||
'method': 4,
|
'method': 4,
|
||||||
'object': 4,
|
'object': 4,
|
||||||
'measurement_unit': 'шт',
|
'measurement_unit': 'шт',
|
||||||
'agent_info': {
|
'agentSign': 6,
|
||||||
'type': 6,
|
'agentData': {
|
||||||
|
'agentOperationName': 'Исполнение поручения принципала',
|
||||||
},
|
},
|
||||||
'supplier_info': {
|
'purveyorData': {
|
||||||
'phones': [phone] if phone else [],
|
'name': 'Elcsa',
|
||||||
'name': supplier_name,
|
'inn': self._inn,
|
||||||
'inn': supplier_inn,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -87,7 +87,7 @@ class ClaudeKassirClient(IReceipt):
|
|||||||
'amount': float(fee),
|
'amount': float(fee),
|
||||||
'vat': 0,
|
'vat': 0,
|
||||||
'method': 4,
|
'method': 4,
|
||||||
'object': 4,
|
'object': 11,
|
||||||
'measurement_unit': 'шт',
|
'measurement_unit': 'шт',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@@ -98,14 +98,14 @@ class ClaudeKassirClient(IReceipt):
|
|||||||
'provision': 0,
|
'provision': 0,
|
||||||
},
|
},
|
||||||
'email': email,
|
'email': email,
|
||||||
'phone': phone,
|
'customerInfo': customer_info,
|
||||||
|
'customerInn': customer_inn,
|
||||||
|
'customerBirthday': customer_birthday,
|
||||||
},
|
},
|
||||||
'Email': email,
|
'Email': email,
|
||||||
'SuccessUrl': success_url or self._success_url,
|
'SuccessUrl': success_url or self._success_url,
|
||||||
'FailUrl': fail_url or self._fail_url,
|
'FailUrl': fail_url or self._fail_url,
|
||||||
}
|
}
|
||||||
if phone is None:
|
|
||||||
payload['CustomerReceipt'].pop('phone')
|
|
||||||
if payload['SuccessUrl'] is None:
|
if payload['SuccessUrl'] is None:
|
||||||
payload.pop('SuccessUrl')
|
payload.pop('SuccessUrl')
|
||||||
if payload['FailUrl'] is None:
|
if payload['FailUrl'] is None:
|
||||||
|
|||||||
Reference in New Issue
Block a user