<commit_before>React = require('react')
moment = require('moment')

import Button from 'react-bootstrap/lib/Button'
import Alert from 'react-bootstrap/lib/Alert'
import { Link } from 'react-router-dom'

import FieldGroup from './FieldGroup'

export default class Payment extends React.Component
    constructor: (props) ->
        super(props)
        @state =
            name: ""
            email: ""
        @setField = @setField.bind(this)

    setField: (field, value) ->
        newState = {@state...}
        newState[field] = value
        @setState(newState)

    pay: (e) ->
        console.log "try pay"
        form = document.getElementById("payForm")
        console.log form.terminalkey.value
        pay(form) 
        e.preventDefault()
        return false

    render: () ->
        canSubmit = true
        if not @props.myUser?._id
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Вы не зарегистрированы, вы не можете оплачивать занятия. Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else if @props.myUser.userList == "unknown"
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Ваш аккаунт не активирован. Напишите мне, чтобы я активировал ваш аккаунт и установил стоимость занятий.
                    Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else if @props.myUser.userList in ["lic40", "zaoch"] or @props.myUser.price == 0
            amount = 0
            warning = <Alert bsStyle="danger">
                    Занятия для вас бесплатны, вам не надо их оплачивать.
                </Alert>
            canSubmit = false
        else if not @props.myUser.price or not @props.myUser.paidTill
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Для вас не указана стоимость занятий, напишите мне.
                    Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else
            amount = @props.myUser.price
            warning = null

        receipt = 
            Taxation: "usn_income",
            Items: [ {
                Name: "Оплата занятий на algoprog.ru",
                Price: amount * 100,
                Quantity: 1.0,
                Amount: amount * 100,
                Tax: "none" 
            }]
        if @props.myUser?.paidTill
            paidTill = moment(@props.myUser.paidTill).format("YYYYMMDD")
            order = "#{@props.myUser._id}:#{paidTill}"
        else
            order = ""

        canSubmit = canSubmit and @state.name and @state.email

        <div>
            <h1>Оплата занятий</h1>
            {warning}
            <p>Вы оплачиваете один месяц занятий на algoprog.ru. Стоимость месяца для вас составляет {amount} рублей.</p>
            <script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
            <form name="TinkoffPayForm" onSubmit={@pay} id="payForm">
                <input type="hidden" name="terminalkey" value="1539978299062"/>
                <input type="hidden" name="frame" value="true"/>
                <input type="hidden" name="language" value="ru"/>
                <input type="hidden" name="order" value={order}/>
                <input type="hidden" name="description" value="Оплата занятий на algoprog.ru"/><commit_msg>Fix payment for users in negative timezones<commit_after>React = require('react')
moment = require('moment')

import Button from 'react-bootstrap/lib/Button'
import Alert from 'react-bootstrap/lib/Alert'
import { Link } from 'react-router-dom'

import FieldGroup from './FieldGroup'

export default class Payment extends React.Component
    constructor: (props) ->
        super(props)
        @state =
            name: ""
            email: ""
        @setField = @setField.bind(this)

    setField: (field, value) ->
        newState = {@state...}
        newState[field] = value
        @setState(newState)

    pay: (e) ->
        console.log "try pay"
        form = document.getElementById("payForm")
        console.log form.terminalkey.value
        pay(form) 
        e.preventDefault()
        return false

    render: () ->
        canSubmit = true
        if not @props.myUser?._id
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Вы не зарегистрированы, вы не можете оплачивать занятия. Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else if @props.myUser.userList == "unknown"
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Ваш аккаунт не активирован. Напишите мне, чтобы я активировал ваш аккаунт и установил стоимость занятий.
                    Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else if @props.myUser.userList in ["lic40", "zaoch"] or @props.myUser.price == 0
            amount = 0
            warning = <Alert bsStyle="danger">
                    Занятия для вас бесплатны, вам не надо их оплачивать.
                </Alert>
            canSubmit = false
        else if not @props.myUser.price or not @props.myUser.paidTill
            amount = 1500
            warning = <Alert bsStyle="danger">
                    Для вас не указана стоимость занятий, напишите мне.
                    Форма ниже приведена для примера.
                </Alert>
            canSubmit = false
        else
            amount = @props.myUser.price
            warning = null

        receipt = 
            Taxation: "usn_income",
            Items: [ {
                Name: "Оплата занятий на algoprog.ru",
                Price: amount * 100,
                Quantity: 1.0,
                Amount: amount * 100,
                Tax: "none" 
            }]
        if @props.myUser?.paidTill
            paidTill = moment(@props.myUser.paidTill).utc().format("YYYYMMDD")
            order = "#{@props.myUser._id}:#{paidTill}"
        else
            order = ""

        canSubmit = canSubmit and @state.name and @state.email

        <div>
            <h1>Оплата занятий</h1>
            {warning}
            <p>Вы оплачиваете один месяц занятий на algoprog.ru. Стоимость месяца для вас составляет {amount} рублей.</p>
            <script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
            <form name="TinkoffPayForm" onSubmit={@pay} id="payForm">
                <input type="hidden" name="terminalkey" value="1539978299062"/>
                <input type="hidden" name="frame" value="true"/>
                <input type="hidden" name="language" value="ru"/>
                <input type="hidden" name="order" value={order}/>
                <input type="hidden" name="description" value="Оплата занятий на algoprog.ru"/>
{'fraction_non_alphanumeric': 0.10697741748697162, 'fraction_numerical': 0.011580775911986103, 'mean_word_length': 1.7351543942992873, 'pattern_counts': {'":': 0, '<': 45, '<?xml version=': 0, '>': 53, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1985479', 'n_tokens_mistral': 2136, 'n_tokens_neox': 2101, 'n_words': 511}