import React, { Component } from 'react'

import { Form, Input, DatePicker, Row, Col, Button, Icon, Select } from 'antd';

import { InputSize, Currency, FormatAmount } from "./Utils"

const FormItem = Form.Item;
const Option = Select.Option

export default class T19A extends Component {

    name = '19A'
    desp = "Amount"
    pattern = ":4!c//[N]3!a15d"
    tno = -1


    keys = [1, 2, 3, 4]
    onChange = (index, value) => {
        let obj = {};
        if (!value)
            value = ""

        let objtemp = this.props.value

        objtemp = objtemp && objtemp.length ? objtemp[0] : {}

        objtemp["s" + index] = value;

        this.keys.forEach(i => {
            obj['s' + i] = objtemp['s' + i]
        });
        let temp = FormatAmount(obj.s3);
        let mval = `:${obj.s1}//${obj.s2}${temp}`
        if (obj.s4)
            mval = `:${obj.s1}//${obj.s4}${obj.s2}${temp}`
        this.props.onValue([obj, mval])
    }

    render() {
        let value = this.props.value

        let mval = value && value.length ? value[1] : ''
        let errmsg = value && value.length == 3 ? value[2] : {}

        value = value && value.length ? value[0] : {}


        return (<Row>
            
            <Col style={{"minWidth":'100px'}} span={3}>
                <FormItem
                    label="Qualifier"
                       required={this.props.status=='M' || mval?'required':null}
                  help={errmsg.s1}
                    validateStatus={errmsg.s1?'error':null}
                >
                           <Select  
                           
                           placeholder="Qualifier"
                           showSearch
                           
                           allowClear={true}
                            optionFilterProp="children"
                            notFoundContent="Wrong Code"
                            style={{ width: "100%" }} value={value.s1} onChange={val=>this.onChange(1,val)} >
                                
                                <Option  value="FORF">FORF</Option>
                                <Option  value="TRTE">TRTE</Option>
                                <Option  value="REPP">REPP</Option>
                                <Option  value="ACRU">ACRU</Option>
                                <Option  value="DEAL">DEAL</Option>
                                <Option  value="TAPC">TAPC</Option>
                                <Option  value="ACRU">ACRU</Option>
                                <Option  value="CHAR">CHAR</Option>
                                <Option  value="COUN">COUN</Option>
                                <Option  value="DEAL">DEAL</Option>
                                <Option  value="EXEC">EXEC</Option>
                                <Option  value="ISDI">ISDI</Option>
                                <Option  value="LADT">LADT</Option>
                                <Option  value="LEVY">LEVY</Option>
                                <Option  value="LOCL">LOCL</Option>
                                <Option  value="LOCO">LOCO</Option>
                                <Option  value="MARG">MARG</Option>
                                <Option  value="OTHR">OTHR</Option>
                                <Option  value="REGF">REGF</Option>
                                <Option  value="SETT">SETT</Option>
                                <Option  value="SHIP">SHIP</Option>
                                <Option  value="SPCN">SPCN</Option>
                                <Option  value="STAM">STAM</Option>
                                <Option  value="STEX">STEX</Option>
                                <Option  value="TRAN">TRAN</Option>
                                <Option  value="TRAX">TRAX</Option>
                                <Option  value="VATA">VATA</Option>
                                <Option  value="WITH">WITH</Option>
                                <Option  value="ANTO">ANTO</Option>
                                <Option  value="COAX">COAX</Option>
                                <Option  value="ACCA">ACCA</Option>
                                <Option  value="RSCH">RSCH</Option>
                                <Option  value="RESU">RESU</Option>
                                <Option  value="OCMT">OCMT</Option> 

                            </Select>
                </FormItem>
            </Col>
            
            <Col style={{ "minWidth": '100px' }} span={3}>
                <FormItem
                    label="Sign"
                    help={errmsg.s4}
                    validateStatus={errmsg.s4 ? 'error' : null}
                >
                    <Select allowClear={true} value={value.s4} placeholder="Sign" style={{ width: "100%" }} onChange={val => this.onChange(4, val)}>
                        <Option value={'N'}>{"N"}</Option>
                    </Select>
                </FormItem>
            </Col>
            
            <Col style={{"minWidth":'100px'}} span={3}>
                <FormItem
                    label="Currency"
                       required={this.props.status=='M' || mval?'required':null}
                  help={errmsg.s2}
                    validateStatus={errmsg.s2?'error':null}
                >
                           <Select  
                            placeholder="Currency"
                            showSearch
                            allowClear={true}
                            optionFilterProp="children"
                            notFoundContent="Wrong Code"
                            style={{ width: "100%" }} value={value.s2} onChange={val=>this.onChange(2,val)} >
                                {
                                   Currency.map(cur=><Option key={cur} value={cur}>{cur}</Option>) 
                                }
                            </Select>
                </FormItem>
            </Col>

            <Col span={12}>
                <FormItem
                 label="Amount"  
                    required={this.props.status=='M' || mval?'required':null}
                  help={errmsg.s3}
                    validateStatus={errmsg.s3?'error':null}
                >
                        
                        <Input  value={value.s3} onChange={e=>this.onChange(3,e.target.value)}  maxLength={16} style={{imeMode:'disabled'}} placeholder="Amount"/>
                </FormItem>
            </Col>

        </Row>)
    }
}