PVRT Handling IO-736

This commit is contained in:
Patrick Fic
2021-03-03 15:41:54 -08:00
parent 57f6eec9e4
commit 574f8bab89
21 changed files with 1796 additions and 20 deletions

View File

@@ -0,0 +1,46 @@
import React, { useState } from "react";
import { Button, Form, InputNumber, Popover } from "antd";
import { logImEXEvent } from "../../firebase/firebase.utils";
import { useTranslation } from "react-i18next";
import { CalculatorFilled } from "@ant-design/icons";
export default function CABCpvrtCalculator({ disabled, form }) {
const [visibility, setVisibility] = useState(false);
const { t } = useTranslation();
const handleFinish = async (values) => {
logImEXEvent("job_ca_bc_pvrt_calculate");
form.setFieldsValue({ ca_bc_pvrt: (values.rate * values.days).toFixed(2) });
setVisibility(false);
};
const popContent = (
<div>
<Form onFinish={handleFinish} initialValues={{ rate: 1.5 }}>
<Form.Item name="rate" label={t("jobs.labels.ca_bc_pvrt.rate")}>
<InputNumber precision={2} min={0} />
</Form.Item>
<Form.Item name="days" label={t("jobs.labels.ca_bc_pvrt.days")}>
<InputNumber precision={0} min={0} />
</Form.Item>
<Button type="primary" htmlType="submit">
{t("general.actions.calculate")}
</Button>
<Button onClick={() => setVisibility(false)}>Close</Button>
</Form>
</div>
);
return (
<Popover
destroyTooltipOnHide
content={popContent}
visible={visibility}
disabled={disabled}
>
<Button disabled={disabled} onClick={() => setVisibility(true)}>
<CalculatorFilled />
</Button>
</Popover>
);
}

View File

@@ -1,5 +1,5 @@
import { InputNumber } from "antd";
import React from "react";
import React, { forwardRef } from "react";
// const locale = "en-us";
// const currencyFormatter = (value) => {
@@ -41,22 +41,17 @@ import React from "react";
// }
// };
export default function FormItemCurrency(props) {
function FormItemCurrency(props, ref) {
return (
<InputNumber
{...props}
precision={2}
// formatter={currencyFormatter}
// parser={currencyParser}
// formatter={(value) =>
// "$" +
// parseFloat(value)
// .toFixed(2)
// .replace(/(\d)(?=(\d{3})+\.)/g, "$1,")
// }
// parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
ref={ref}
style={{ width: "initial" }}
// formatter={(value) => `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}
// parser={(value) => value.replace(/\$\s?|(,*)/g, "")}
precision={2}
/>
);
}
export default forwardRef(FormItemCurrency);

View File

@@ -1,9 +1,10 @@
import { Form, InputNumber, Select, Switch } from "antd";
import { Form, InputNumber, Select, Space, Switch } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectJobReadOnly } from "../../redux/application/application.selectors";
import CABCpvrtCalculator from "../ca-bc-pvrt-calculator/ca-bc-pvrt-calculator.component";
import CurrencyInput from "../form-items-formatted/currency-form-item.component";
import JobsDetailRatesChangeButton from "../jobs-detail-rates-change-button/jobs-detail-rates-change-button.component";
import FormRow from "../layout-form-row/layout-form-row.component";
@@ -59,6 +60,12 @@ export function JobsDetailRates({ job, jobRO, form }) {
>
<Switch disabled={jobRO} />
</Form.Item>
<Space align="end">
<Form.Item label={t("jobs.fields.ca_bc_pvrt")} name="ca_bc_pvrt">
<CurrencyInput disabled={jobRO} />
</Form.Item>
<CABCpvrtCalculator form={form} disabled={jobRO} />
</Space>
</FormRow>
<JobsDetailRatesChangeButton form={form} disabled={jobRO} />
<FormRow header={t("jobs.forms.laborrates")}>

View File

@@ -264,6 +264,7 @@ export const QUERY_JOB_COSTING_DETAILS = gql`
rate_matd
actual_in
status
ca_bc_pvrt
joblines(where: { removed: { _eq: false } }) {
id
unq_seq
@@ -480,6 +481,7 @@ export const GET_JOB_BY_PK = gql`
category
deliverchecklist
voided
ca_bc_pvrt
joblines(where: { jobid: { _eq: $id } }, order_by: { line_no: asc }) {
id
line_no

View File

@@ -702,6 +702,7 @@
"general": {
"actions": {
"add": "Add",
"calculate": "Calculate",
"cancel": "Cancel",
"close": "Close",
"create": "Create",
@@ -947,6 +948,7 @@
"adjustment_bottom_line": "Adjustments",
"adjustmenthours": "Adjustment Hours",
"alt_transport": "Alt. Trans.",
"ca_bc_pvrt": "PVRT",
"ca_gst_registrant": "GST Registrant",
"category": "Category",
"ccc": "CC Cleaning",
@@ -1128,6 +1130,10 @@
"audit": "Audit Trail",
"available": "Available",
"availablejobs": "Available Jobs",
"ca_bc_pvrt": {
"days": "Days",
"rate": "PVRT Rate"
},
"cards": {
"customer": "Customer Information",
"damage": "Area of Damage",

View File

@@ -702,6 +702,7 @@
"general": {
"actions": {
"add": "",
"calculate": "",
"cancel": "",
"close": "",
"create": "",
@@ -947,6 +948,7 @@
"adjustment_bottom_line": "Ajustes",
"adjustmenthours": "",
"alt_transport": "",
"ca_bc_pvrt": "",
"ca_gst_registrant": "",
"category": "",
"ccc": "",
@@ -1128,6 +1130,10 @@
"audit": "",
"available": "",
"availablejobs": "",
"ca_bc_pvrt": {
"days": "",
"rate": ""
},
"cards": {
"customer": "Información al cliente",
"damage": "Área de Daño",

View File

@@ -702,6 +702,7 @@
"general": {
"actions": {
"add": "",
"calculate": "",
"cancel": "",
"close": "",
"create": "",
@@ -947,6 +948,7 @@
"adjustment_bottom_line": "Ajustements",
"adjustmenthours": "",
"alt_transport": "",
"ca_bc_pvrt": "",
"ca_gst_registrant": "",
"category": "",
"ccc": "",
@@ -1128,6 +1130,10 @@
"audit": "",
"available": "",
"availablejobs": "",
"ca_bc_pvrt": {
"days": "",
"rate": ""
},
"cards": {
"customer": "Informations client",
"damage": "Zone de dommages",

View File

@@ -2,7 +2,6 @@ import { gql } from "@apollo/client";
import { notification } from "antd";
import axios from "axios";
import jsreport from "jsreport-browser-client-dist";
import _ from "lodash";
import moment from "moment";
import { auth } from "../firebase/firebase.utils";
import { setEmailOptions } from "../redux/email/email.actions";

View File

@@ -6,7 +6,7 @@ export const EmailSettings = {
};
export const TemplateList = (type, context) => {
const { bodyshop } = store.getState().user;
//const { bodyshop } = store.getState().user;
return {
//If there's no type or the type is job, send it back.