Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Lägg till användare
  2. import React, { Component } from 'react';
  3. //import { Redirect } from 'react-router-dom';
  4. import Link from "react-router-dom/Link";
  5. import Select from 'react-select';
  6.  
  7. import moment from 'moment';
  8. import DatePicker from 'react-datepicker';
  9. import "react-datepicker/dist/react-datepicker.css";
  10.  
  11. import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
  12. import axios from 'axios';
  13. import { getApiUrl } from '../config/Axios';
  14.  
  15. class AddInsurance extends Component {
  16.     constructor(props) {
  17.         super(props);
  18.  
  19.         this.state = {
  20.             customers: [],
  21.             customersData: [],
  22.             customersRepsonsibility: [],
  23.             // customerKoncern: [],
  24.             // customerOrgNr: '',
  25.             // customerName: '',
  26.             // customerDotterbolag: '',
  27.             // customerDotterbolagOrganisationsnummer: '',
  28.             customersKundId: '',
  29.             customerForsakringsform: '',
  30.  
  31.             customerForsakringsnummer: '',
  32.             customerProjektforsakring: '',
  33.             customerForsakringsbolag: '',
  34.             customerKundansvarig: '',
  35.             customerUppdragUtgang: '',
  36.  
  37.             customerOvrigInfo: '',
  38.             customerArvode: '',
  39.             customerRorligt: '',
  40.             customerArvodeFakturerat: '',
  41.             customerFornyelse: new Date(),
  42.  
  43.             customerPremieKr: '',
  44.             customerProvisionProcent: '',
  45.             customerProvisionKr: '',
  46.             customerSarskildFakturaRutin: '',
  47.             customerAPS1: '',
  48.  
  49.             customerAPS2AF: '',
  50.             customerAPS2BU: '',
  51.             customerAPS3P: '',
  52.             customerArchived: 0,
  53.             showSuccess: false,
  54.             procentValue: 0,
  55.             customerStartDate: new Date()
  56.         };
  57.  
  58.         this.addInsurance = this.addInsurance.bind(this);
  59.         this.onChange = this.onChange.bind(this);
  60.         this.handleCustomerChange = this.handleCustomerChange.bind(this);
  61.     }
  62.  
  63.     addInsurance(event) {
  64.         event.preventDefault();
  65.         var self = this;
  66.  
  67.         axios.post(getApiUrl() + '/public/addInsurance', {
  68.             // Organisationsnummer: this.state.customerOrgNr,
  69.             // Koncern: this.state.customerName,
  70.             // Organisationsnummer_Dotterbolag: this.state.customerDotterbolagOrganisationsnummer,
  71.             // Dotterbolag: this.state.customerDotterbolag,
  72.             Kund_id: this.state.customersKundId,
  73.             Uppdragsavtalets_utgang: this.state.customerUppdragUtgang,
  74.  
  75.             Ovrig_information: this.state.customerOvrigInfo,
  76.             Arvode: this.state.customerArvode,
  77.             Rorligt: this.state.customerRorligt,
  78.             Arvode_fakturerat: this.state.customerArvodeFakturerat,
  79.             Kundansvarig: this.state.customerKundansvarig,
  80.  
  81.             Forsakringsform: this.state.customerForsakringsform,
  82.             Projektforsakring: this.state.customerProjektforsakring,
  83.             Forsakringsnr: this.state.customerForsakringsnummer,
  84.             Fornyelse: this.state.customerFornyelse,
  85.             Forsakringsbolag: this.state.customerForsakringsbolag,
  86.  
  87.             Premie_kr: this.state.customerPremieKr,
  88.             Provision_procent: this.state.customerProvisionProcent,
  89.             Provision_kr: (this.state.customerPremieKr / 100) * this.state.customerProvisionProcent,
  90.             Sarskild_faktura_rutin: this.state.customerSarskildFakturaRutin,
  91.             ARBETSPROCESS_STEG_1: this.state.customerAPS1,
  92.  
  93.             ARBETSPROCESS_STEG_2_A_FORNYELSE: this.state.customerAPS2AF,
  94.             ARBETSPROCESS_STEG_2_B_UPPHANDLING: this.state.customerAPS2BU,
  95.             ARBETSPROCESS_STEG_3_PLACERING: this.state.customerAPS3P,
  96.             ARBETSPROCESS_STEG_4_ANDRING: this.state.customerAPS4P,
  97.             Arkiverad: this.state.customerArchived
  98.         })
  99.             .then(function () {
  100.                 self.setState({
  101.                     showSuccess: true
  102.                 }, () => {
  103.                     setInterval(function () {
  104.                         self.setState({
  105.                             showSuccess: false
  106.                         });
  107.                     }, 3000);
  108.                 });
  109.             })
  110.             .catch(function (error) {
  111.                 console.log(error);
  112.             });
  113.     }
  114.  
  115.     componentDidMount() {
  116.         this.getCustomerData();
  117.         this.getCustomersRepsonsibility();
  118.         // const customersData = JSON.stringify(this.state.customers);
  119.         //this.setState({ customerKoncern: customersData.Koncern });
  120.     }
  121.  
  122.     getCustomerData() {
  123.         axios.get(getApiUrl() + '/public/getcustomersdata')
  124.             .then(response => JSON.parse(JSON.stringify(response)))
  125.             .then(customersdata => this.setState({ customersData: customersdata.data.customersData }))
  126.             .catch(err => console.error('Error ', err.toString()));
  127.     }
  128.  
  129.     getCustomersRepsonsibility() {
  130.         axios.get(getApiUrl() + '/public/getcustomersrepsonsibility')
  131.         .then(response => JSON.parse(JSON.stringify(response)))
  132.         .then(customersrepsonsibility => this.setState({ customersRepsonsibility: customersrepsonsibility.data.customersRepsonsibility }))
  133.         .then(console.log('test: ' + this.state.customersRepsonsibility))
  134.         .catch(err => console.error('Error ', err.toString()));
  135.     }
  136.  
  137.     onChange(e) {
  138.         this.setState({ [e.target.name]: e.target.value });
  139.     }
  140.  
  141.     handleDateChange(date) {
  142.         this.setState({ customerFornyelse: date });
  143.     }
  144.  
  145.     handleCustomerChange(event) {
  146.         axios.get(getApiUrl() + '/public/singleCustomer?koncern=' + event.value)
  147.             .then(response => JSON.parse(JSON.stringify(response)))
  148.             .then(koncerndata => this.setState({ customersKundId: koncerndata.data.koncernData.Kund_id }))
  149.     }
  150.  
  151.     render() {
  152.         const message = this.state.showSuccess;
  153.  
  154.         let procentValueStart = 0;
  155.         let procentValue = (this.state.customerPremieKr / 100) * this.state.customerProvisionProcent;
  156.  
  157.         // funkar detta?
  158.         const options = this.state.customersData.map(customers => ({
  159.             value: customers.Koncern,
  160.             label: customers.Koncern
  161.         }));
  162.  
  163.         const options_kundansvarig = this.state.customersRepsonsibility.map(customers => ({
  164.             value: customers.Kundansvarig,
  165.             label: customers.Kundansvarig
  166.         }));
  167.  
  168.         return (
  169.             <div className="app-content block">
  170.                 <div className="block">
  171.                     <div className="columns content-head">
  172.                         <div className="column">
  173.                             <h2 className="title is-large">
  174.                                 Skapa ny försäkring
  175.                             </h2>
  176.                         </div>
  177.                     </div>
  178.                 </div>
  179.                 <div className="block"></div>
  180.                 <form onSubmit={this.addInsurance}>
  181.                     <div className="columns">
  182.                         <div className="column">
  183.                             <h6 className="title is-6">Bolagsinformation</h6>
  184.                         </div>
  185.                         <div className="column is-6">
  186.                             <label className="label">Välj koncern
  187.  
  188.                                 <div className="field">
  189.                                         <div className="control">
  190.                                             <span className="select-field">
  191.                                                 <Select
  192.                                                     placeholder="Koncern"
  193.                                                     value={this.state.selectedValueCustomer}
  194.                                                     onChange={this.handleCustomerChange}
  195.                                                     options={options}
  196.                                                 />
  197.                                             </span>
  198.                                         </div>
  199.                                     </div>
  200.  
  201.                                 {/* <div className="field">
  202.                                     <div className="control">
  203.                                         <input className="input" type="text" name="customerName" required onChange={this.onChange} /><br />
  204.                                     </div>
  205.                                 </div> */}
  206.                             </label>
  207.  
  208.                             {/* <label className="label">Organisationsnummer
  209.                                 <div className="field">
  210.                                     <div className="control">
  211.                                         <input className="input" type="text" name="customerOrgNr" onChange={this.onChange} /><br />
  212.                                     </div>
  213.                                 </div>
  214.                             </label> */}
  215.                         </div>
  216.                         <div className="column is-3">
  217.                         <label className="label">&nbsp;</label>
  218.                         <button className="right button is-primary is-outlined">
  219.                             <Link
  220.                                 to={{
  221.                                     pathname: `/ny-kund`
  222.                                 }}>
  223.                                 <FontAwesomeIcon icon="plus" /> Lägg till kund
  224.                             </Link>
  225.                         </button>
  226.  
  227.                         </div>
  228.                         {/* <div className="column">
  229.                             <label className="label">Dotterbolag
  230.                                 <div className="field">
  231.                                     <div className="control">
  232.                                         <input className="input" type="text" name="customerDotterbolag" onChange={this.onChange} /><br />
  233.                                     </div>
  234.                                 </div>
  235.                             </label>
  236.                             <label className="label">Organisationsnummer Dotterbolag
  237.                                 <div className="field">
  238.                                     <div className="control">
  239.                                         <input className="input" type="text" name="customerDotterbolagOrganisationsnummer" onChange={this.onChange} /><br />
  240.                                     </div>
  241.                                 </div>
  242.                             </label>
  243.                         </div>
  244.                         <div className="column is-3"></div> */}
  245.                     </div>
  246.  
  247.                     <div className="block"><hr /></div>
  248.  
  249.                     <div className="columns is-multiline">
  250.                         <div className="column is-3">
  251.                             <h6 className="title is-6">Uppdrag & Avtal</h6>
  252.                         </div>
  253.                         <div className="column is-3">
  254.                             <label className="label">Kundansvarig
  255.  
  256.                                 <div className="field">
  257.                                         <div className="control">
  258.                                             <span className="select-field">
  259.                                                 <Select
  260.                                                     placeholder="Kundansvarig"
  261.                                                     value={this.state.selectedValueCustomerResponsibility}
  262.                                                     onChange={this.handleChange}
  263.                                                     options={options_kundansvarig}
  264.                                                 />
  265.                                             </span>
  266.                                         </div>
  267.                                     </div>
  268.  
  269.                                 {/* <div className="field">
  270.                                     <div className="control">
  271.                                         <input className="input" type="text" name="customerName" required onChange={this.onChange} /><br />
  272.                                     </div>
  273.                                 </div> */}
  274.                             </label>
  275.  
  276.  
  277.                             {/* <label className="label">Kundansvarig
  278.                                 <div className="field">
  279.                                     <div className="control">
  280.                                         <input className="input" type="text" name="customerKundansvarig" required onChange={this.onChange} /><br />
  281.                                     </div>
  282.                                 </div>
  283.                             </label> */}
  284.                         </div>
  285.                         <div className="column is-3">
  286.                             <label className="label">Arvode
  287.                                 <div className="field">
  288.                                     <div className="control">
  289.                                         <input className="input" type="number" name="customerArvode" onChange={this.onChange} /><br />
  290.                                     </div>
  291.                                 </div>
  292.                             </label>
  293.                         </div>
  294.                         <div className="column is-3">
  295.                             <label className="label">Arvode fakturerat
  296.                                 <div className="field">
  297.                                     <div className="control">
  298.                                         <input className="input" type="number" name="customerArvodeFakturerat" onChange={this.onChange} /><br />
  299.                                     </div>
  300.                                 </div>
  301.                             </label>
  302.                         </div>
  303.                         <div className="column is-3"></div>
  304.                         <div className="column is-3">
  305.                             <label className="label">Uppdragsavtalets utgång (2001-01-01)
  306.                                 <div className="field">
  307.                                     <div className="control">
  308.                                     <DatePicker
  309.                                         className="input"
  310.                                         selected={this.state.customerFornyelse}
  311.                                         // startDate={this.state.customerStartDate}
  312.                                         onChange={this.handleDateChange}
  313.                                         dateFormat="yyyy/MM/dd"
  314.                                     />
  315.  
  316.                                         <input className="input" className="input" type="text" name="customerUppdragUtgang" onChange={this.onChange} /><br />
  317.                                     </div>
  318.                                 </div>
  319.                             </label>
  320.                         </div>
  321.                         <div className="column is-3">
  322.                             <label className="label">Rörligt
  323.                                 <div className="field">
  324.                                     <div className="control">
  325.                                         <input className="input" type="number" name="customerRorligt" onChange={this.onChange} /><br />
  326.                                     </div>
  327.                                 </div>
  328.                             </label>
  329.                         </div>
  330.                         <div className="column is-3">
  331.                             <label className="label">Förnyelsedatum (2001-01-01)
  332.                                 <div className="field">
  333.                                     <div className="control">
  334.                                         <input className="input" type="text" name="customerFornyelse" onChange={this.onChange} /><br />
  335.                                     </div>
  336.                                 </div>
  337.                             </label>
  338.                         </div>
  339.                     </div>
  340.  
  341.                     <div className="block"><hr /></div>
  342.  
  343.                     <div className="columns is-multiline">
  344.                         <div className="column is-3">
  345.                             <h6 className="title is-6">Försäkring</h6>
  346.                         </div>
  347.                         <div className="column is-3">
  348.                             <label className="label">Försäkringsform
  349.                                 <div className="field">
  350.                                     <div className="control">
  351.                                         <input className="input" type="text" name="customerForsakringsform" onChange={this.onChange} /><br />
  352.                                     </div>
  353.                                 </div>
  354.                             </label>
  355.                         </div>
  356.                         <div className="column is-3">
  357.                             <label className="label">Projektförsäkring
  358.                                 <div className="field">
  359.                                     <div className="control">
  360.                                         <input className="input" type="text" name="customerProjektforsakring" onChange={this.onChange} /><br />
  361.                                     </div>
  362.                                 </div>
  363.                             </label>
  364.                         </div>
  365.                         <div className="column is-3"></div>
  366.                         <div className="column is-3"></div>
  367.                         <div className="column is-3">
  368.                             <label className="label">Försäkringsnummer
  369.                                 <div className="field">
  370.                                     <div className="control">
  371.                                         <input className="input" type="text" name="customerForsakringsnummer" onChange={this.onChange} /><br />
  372.                                     </div>
  373.                                 </div>
  374.                             </label>
  375.                         </div>
  376.                         <div className="column is-3">
  377.                             <label className="label">Försäkringsbolag
  378.                                 <div className="field">
  379.                                     <div className="control">
  380.                                         <input className="input" type="text" name="customerForsakringsbolag" onChange={this.onChange} /><br />
  381.                                     </div>
  382.                                 </div>
  383.                             </label>
  384.                         </div>
  385.                         <div className="column is-3"></div>
  386.                     </div>
  387.  
  388.                     <div className="block"><hr /></div>
  389.  
  390.                     <div className="columns">
  391.                         <div className="column is-3">
  392.                             <label className="label">
  393.                                 <h6 className="title is-6">Fakturering m.m.</h6>
  394.                             </label>
  395.                         </div>
  396.                         <div className="column is-3">
  397.                             <label className="label">Premier (kr)
  398.                                 <div className="field">
  399.                                     <div className="control">
  400.                                         <input className="input" type="number" name="customerPremieKr" onChange={this.onChange} /><br />
  401.                                     </div>
  402.                                 </div>
  403.                             </label>
  404.                         </div>
  405.                         <div className="column is-3">
  406.                             <label className="label">Provision %
  407.                                 <div className="field">
  408.                                     <div className="control">
  409.                                         <input className="input" type="number" name="customerProvisionProcent" onChange={this.onChange} /><br />
  410.                                     </div>
  411.                                 </div>
  412.                             </label>
  413.                         </div>
  414.                         <div className="column is-3">
  415.                             <label className="label">Provision kr
  416.                             {/* Percentage */}
  417.                                 <p>{procentValue ? procentValue : procentValueStart}</p><br />
  418.                             </label>
  419.                         </div>
  420.                     </div>
  421.  
  422.                     <div className="columns">
  423.                         <div className="column is-3"></div>
  424.                         <div className="column is-3">
  425.                             <label className="label">Särskild fakturarutin
  426.                                 <div className="field">
  427.                                     <div className="control">
  428.                                         <input className="input" type="text" name="customerSarskildFakturaRutin" onChange={this.onChange} />
  429.                                     </div>
  430.                                 </div>
  431.                             </label>
  432.                         </div>
  433.                         <div className="column">
  434.                             <label className="label">Övrig information
  435.                             <div className="field">
  436.                                     <div className="control">
  437.                                         <textarea className="textarea" name="customerOvrigInfo" placeholder="Övrig information" onChange={this.onChange}></textarea>
  438.                                     </div>
  439.                                 </div>
  440.                             </label>
  441.                         </div>
  442.                     </div>
  443.  
  444.                     <div className="block"><hr /></div>
  445.  
  446.                     <div className="block">
  447.                         {message && (
  448.                             <article className="message is-success">
  449.                                 <div className="message-body">
  450.                                     Försäkringen har skapats!
  451.                                     </div>
  452.                             </article>
  453.                         )}
  454.                         <button className="button is-primary is-outlined left">
  455.                             <Link
  456.                                 to={{
  457.                                     pathname: `/forsakringar`,
  458.                                 }}>
  459.                                 <FontAwesomeIcon icon="caret-left" /> Tillbaka till Försäkringar
  460.                             </Link>
  461.                         </button>
  462.                         <button className="button is-primary is-outlined right" type="submit"><FontAwesomeIcon icon="save" /> Spara försäkring</button>
  463.                     </div>
  464.                 </form>
  465.             </div>
  466.         );
  467.     }
  468. }
  469.  
  470. export default AddInsurance;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement