From e9a121ab7b924f189959a936743fcf70cb99f7ae Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sun, 16 Oct 2022 20:46:57 +0530 Subject: added 'Invoice Headers' component (incomplete) --- src/classes/invoice.js | 37 ++++++++++++ src/components/editors/invoice-headers-editor.js | 76 +++++++++++++++++++++--- src/components/editors/scss/invoice-headers.scss | 59 ++++++++++++++++++ src/views/invoice/new.js | 12 ++-- 4 files changed, 172 insertions(+), 12 deletions(-) create mode 100644 src/classes/invoice.js create mode 100644 src/components/editors/scss/invoice-headers.scss (limited to 'src') diff --git a/src/classes/invoice.js b/src/classes/invoice.js new file mode 100644 index 0000000..1032b47 --- /dev/null +++ b/src/classes/invoice.js @@ -0,0 +1,37 @@ +/* OpenBills-web - Web based libre billing software + * Copyright (C) 2022 Vidhu Kant Sharma + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +//import axios from "axios"; + +export class Transporter { + constructor() { + this.Id = null; + this.Name = ""; + this.GSTIN = ""; + this.TransporterId = ""; + } +} + +export class Transport { + constructor() { + this.Id = null; + this.Transporter = new Transporter(); + this.VehicleNum = ""; + this.Note = ""; + this.TransportMethod = ""; + } +} diff --git a/src/components/editors/invoice-headers-editor.js b/src/components/editors/invoice-headers-editor.js index f71b319..4ab2dcc 100644 --- a/src/components/editors/invoice-headers-editor.js +++ b/src/components/editors/invoice-headers-editor.js @@ -15,25 +15,87 @@ * along with this program. If not, see . */ -import './scss/item-editor.scss'; +import './scss/invoice-headers.scss'; import { useState, useEffect } from 'react'; -const InvoiceHeadersEditor = ({roundOff, setRoundOff}) => { +const InvoiceHeadersEditor = ({roundOff, setRoundOff, transport, setTransport, transporter, setTransporter}) => { + const handleTransportInput = e => { + const { name, value } = e.target; + setTransport(prev => ({ + ...prev, + [name]: value + })); + } + + const handleTransporterInput = e => { + const { name, value } = e.target; + setTransporter(prev => ({ + ...prev, + [name]: value + })); + } return ( - <> +

Invoice Options:

-
e.preventDefault()}> -