Coder Social home page Coder Social logo

albertosml / fgen Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 6.85 MB

Application which allow users to emit invoices and delivery notes from their customers to other customers.

License: GNU General Public License v3.0

Java 100.00%
hacktoberfest hacktoberfest2023

fgen's People

Contributors

albertosilvestremonteslinares avatar

Watchers

 avatar

fgen's Issues

SUBT-1: Add subtotal

As a user, I want to add a subtotal into a system, so it can be associated to any invoice/template.

To do that, the user will introduce the name, the percentage and whether it is discount or a tax.

Respect to the UI, this process will be done through a registering form.

DNOTE-5: Delete delivery note

As a user, I want to delete a generated delivery note because it has been set with an error and we don't want that it appears on the delivery notes list.

BUG-4: Subtotal cannot be removed if it was associated to a removed variable

Steps to reproduce

  1. Take a registered subtotal and associate it with a registered variable.
  2. Remove the variable.
  3. Try to remove the subtotal.
  4. Observe how it cannot be removed.

Note that this is a regression from v0.17.0, when adding the remove subtotal use case.

Current behaviour

Subtotal cannot be removed if it is associated to a removed variable.

Expected behaviour

Subtotals can be removed if they are associated to at least one existing variable.

TEM-6: Restore template

As a user, I want to restore a removed invoice template from the system.

To do that, the UI will offer an option in the templates list for removed templates.

Dependencies

  • TEM-2: Templates list needs to be shown for selecting the template to restore.

BUG-6: Removed templates can be edited

Steps to reproduce

  1. Take a removed template.
  2. Click on the "Show" button.
  3. Observe how it can be edited.

Current behaviour

Removed templates can be edited.

Expected behaviour

Templates cannot be edited if they are removed.

TEM-4: Edit template

As a user, I want to edit any attribute from a specific template. Those attributes are:

  • Name
  • File
  • Template fields list

Respect to the UI, this can be done by rewriting each template attribute value when it is shown on the template details interface.

Dependencies

  • TEM-3: Template attributes must be shown to edit them.

VAR-5: Restore variable

As a user, I want to restored a removed variable on the system.

To do that action, the UI will offer an option in the variables list for removed variables.

Dependencies

  • VAR-1: Variables list needs to be shown for selecting the variable to restore.

INV-5: Retrieve invoice

As a user, I want to retrieve an invoice from our invoice history.

The invoice will be retrieved depending on the chosen alternative in the issue which blocks this card.

This process will be done through the UI by selecting the invoice to show in the invoices list.

Dependencies

  • INV-4: An invoice can be only retrieved after saving it.

BUG-5: Variable with a removed subtotal can be restored

Steps to reproduce

  1. Take a removed variable from the list.
  2. Check that it has associated a removed subtotal.
  3. Observe that you can restore it.

Note that this is caused by the version v0.16.0, where we added the use case to restore a variable.

Current behaviour

Variable with a removed subtotal can be restored.

Expected behaviour

Variable with a removed subtotal must not be restored.

INVIT-2: Edit an invoice item

As a user, I want to edit a concrete invoice item.

To do that, the user will update one of its attributes, which are:

  • Quantity
  • Description
  • Price

The process will be done in the UI through the invoice interface by editing the corresponding attribute field.

Dependencies

  • INVIT-1: The invoice item needs to be added before editing it.

BUG-3: You can select a removed subtotal to associate it to a variable.

Steps to reproduce

  1. Remove a subtotal.
  2. Go to the variables list and the set the invoice subtotal entity attribute to a variable.
  3. Then, when the subtotals list is shown, you can observe that the list includes removed subtotals.

Note that this a regresion from v0.10.0, when the list subtotal use case was added.

Current behaviour

Removed subtotals are available to associate them with variables.

Expected behaviour

Removed subtotals cannot be used to associate with subtotals.

VAR-2: List variables

As a user, I want to list all the global variables available on the system.

To do that, all the variable attributes (name, description and mapped entity attribute) will be shown in a list.

Respect to the UI, a table containing all the variables data will be created.

Dependencies

  • VAR-1: Variables must be registered on the system before listing them.

TEM-3: Show template

As a user, I want to see all the details from a template.

To do that, all the attributes from a template will be retrieved. Those attributes are:

  • Name
  • File
  • Template fields list

Respect to the UI, a form will be created to show the value of all template attributes.

Dependencies

  • TEM-1: The template needs to be registered before showing its data.
  • TEM-2: This modal to show the template details will be opened by selecting it from the templates list.

INVIT-1: Add an invoice item

As a user, I want to add an item into a concrete invoice.

To do that, the user will introduce the quantity, the description and the price. Then, that item will be associated to the invoice to generate.

The process will be done in the UI through the invoice interface by clicking a button set on the invoice items table.

TEM-2: List templates

As a user, I want to list all templates available on the system.

To do that, the code and the name for each template will be listed.

Respect to the UI, a table containing the code and the name will be shown.

Dependencies

  • TEM-1: The system will list registered templates.

CS-3: Show customer

As a user, I want to see all the data associated to a specific customer.

That data will be retrieved and presented in the UI in a panel where all its attributes and values will be shown. The mentioned panel will be reached by clicking on a concrete item from the customers list table.

The customer attributes are:

  • Code
  • Name
  • TIN
  • Address
  • City
  • Province
  • ZIP code
  • IBAN

Keep in mind that the first three are mandatory and the rest are optional.

Dependencies

  • CS-2: The customer data will be shown after selecting it from the customers list.

PS-3: Describe project stack

In this card, the intention is to justify the chosen stack. For that, a new section will be added in the README file where the chosen architecture and technologies will be indicated.

CS-1: Register a customer

As a user, I want to register a customer into the system, so it can be set as sender or recipient on any invoice.

To do that, the user must specify at least the name and the Spanish TIN (Tax Identification Number, which is unique and represents the NIF or NIE for people and the CIF for companies). Optionally, you can add the address, the city, the province, the ZIP code (which can be only numeric) and the IBAN. Finally, an autogenerated code will be added to that registered customer, so it is identified across the system. However, you have the option to set it manually.

This process will be done through an UI which will show an form to introduce all the mentioned data previously.

VAR-4: Remove variable

As a user, I want to remove a registered variable on the system.

To do that action, the UI will offer an option in the variables list for non-removed variables.

Dependencies

  • VAR-1: Variables list needs to be shown for selecting the variable to remove.

CS-6: Update customer

As an user, I want to update any customer attribute except the code when the customer is not removed.

Keep in mind that the customer attributes are:

  • Code
  • Name
  • TIN
  • Address (Optional)
  • City (Optional)
  • Province (Optional)
  • ZIP code (Optional)
  • IBAN (Optional)

Then, for optional attributes, we can remove the set value or add it if it was not already set.

This data can be modified in the form which shows the customer data.

Dependencies

  • CS-3: This process will be done in the UI through the form set on this dependency.

VAR-3: Edit variable

As a user, I want to edit any variable attribute. Those attributes are:

  • Name
  • Description
  • Mapped entity attribute

Respect to the UI, this can be done by rewriting each variable attribute value when it is shown on the variable details interface.

Dependencies

  • VAR-2: The variable will be edited through the variables list.

TEMFLD-3: Remove template field

As a user, I want to remove a field from a template registered on the system.

To do that action, the UI will offer an option in the template fields list for non-removed templates.

Dependencies

  • TEMFLD-1: A template field can be only removed after registering it.

CS-5: Restore customer

As an user, I want to restore a removed customer from the system.

To do that, the UI will offer an option in the customers list for removed customers.

Dependencies

  • CS-2: Customers table list needs to be done to offer this option.

SUBT-3: Edit subtotal

As a user, I want to edit any subtotal attribute. Those attributes are:

  • Name
  • Percentage
  • Discount/Tax

Respect to the UI, this can be done by rewriting each subtotal attribute value when it is shown on the subtotal details interface.

Dependencies

  • SUBT-2: The subtotal will be edited through the subtotals list.

INVIT-3: Remove an invoice item

As a user, I want to remove a concrete invoice item.

To do that, the user will select the invoice item to remove, and then, the action will be done.

Respect to the UI, the invoice interface will offer a button for each item to remove it.

Dependencies

  • INVIT-1: The invoice item needs to be added before removing it.

PS-10: Update README with new requirements

Indicate in the README the new added entities and all the new issues associated to them.

  • Add the product, container and delivery note entities.
  • Modify the invoice entity description, as now the invoice is composed by a selection of delivery notes.
  • Removal of the invoice item entity.
  • Subtotals order on the invoice will be established based on the position from the template fields list.
  • Optional: Allow sending invoice via email or Whatsapp.

TEM-5: Remove template

As a user, I want to remove an invoice template from the system.

To do that, the UI will offer an option in the templates list for non-removed templates.

Dependencies

  • TEM-2: Templates list needs to be shown for selecting the template to remove.

INV-2: List all generated invoices

As a user, I want to see all the generated invoices by the system.

The list will show the invoice code, the generation date time and the customers involved on the invoice.

That data will be presented in the UI in a table with all this information. Also, we will show filters by customer, product, provider and dates interval.

The invoice can be filtered by farmer and supplier.

Dependencies

  • INV-1: The system lists generated invoices.

TEM-1: Register template

As a user, I want to register a template to generate an invoice.

To do that, the user will introduce the name, the template spreadsheet file and list of template fields, which will contain the mapping between a spreadsheet field and an expression which indicates the content to render.

Respect to the UI, an interface will be created for that process.

BUG-1: There can be two customers with the same TIN

Steps to reproduce

  1. Register a customer with any TIN.
  2. Remove that registered customer.
  3. Register another customer with the same TIN as before.
  4. Restore the first registered customer.
  5. Observe how two existing customers have the same TIN.

Current behaviour

Two customers have the same TIN when the first one is removed and the second one is registered with the same TIN.

Expected behaviour

TIN must be unique across all customers.

SUBT-4: Remove subtotal

As a user, I want to remove a registered subtotal on the system.

To do that, the UI will offer an option in the subtotals list for non-removed subtotals.

A subtotal cannot be removed if it is associated to a variable.

Dependencies

  • SUBT-2: Subtotals list needs to be shown for selecting the subtotal to remove.
  • VAR-1: A subtotal cannot be removed if it is associated to a variable.

TEMFLD-1: Add template field

As a user, I want to add a field to a specific template.

To do that, the user will introduce a spreadsheet field or range position (e.g. "A56" or "B12:B19") and a expression to indicate the content to render (e.g. "Customer number ${CUSTOMER_CODE}").

This process will be done in the UI through a form to add all the attributes.

SUBT-5: Restore subtotal

As a user, I want to restored a removed subtotal on the system.

To do that, the UI will offer an option in the subtotals list for removed subtotals.

Dependencies

  • SUBT-2: Subtotals list needs to be shown for selecting the subtotal to restore.

CS-4: Remove customer

As an user, I want to remove a customer from the system.

To do that, the UI will offer an option in the customers list for non-removed customers.

Dependencies

  • CS-2: Customers table list needs to be done to offer this option.

SUBT-6: Calculate subtotal

As a user, I want to calculate the subtotal of a given value.

That will be done when generating the invoice. For that, it will take the total invoice value, which is calculated based on the invoice items price sum.

The subtotal will be calculated by obtaining the percentage of the given value and setting it as negative or positive, depending on the kind of subtotal (discount or tax, respectively).

Now, I give some examples to use:

  • Example 1 (Subtotal with 10% tax and 1000 as a total value): + 1000 * 10/100 = + 1000 * 0.1 = + 100
  • Example 2 (Subtotal with 10% discount and 1000 as a total): - 1000 * 10/100 = - 1000 * 0.1 = - 100

Dependencies

  • SUBT-1: The subtotal needs to be registered, so it can be taken for the calculation.

PS-4: Configure project structure

Once the stack has been introduced, the new project structure will be configured in this card. That structure will distinguish each layer presented. Then, a main frame will be set.

TEMFLD-2: Edit template field

As a user, I want to edit an attribute from a template field.

The attributes of a template field are:

  • Spreadsheet field or range position (e.g. "A56" or "B12:B19")
  • Expression (e.g. "Customer number ${CUSTOMER_CODE}")

The process will be done on the UI by rewriting each template field attribute value when it is shown on the template fields list interface.

Dependencies

  • TEMFLD-1: A template field can be only edited after registering it.

CS-2: List customers

As a user, I want to see all the customers available on the system, even if they have been removed.

The list will only the mandatory customer data, which are the code, the name and the TIN.

That data will be presented in the UI in a table with all this information.

Dependencies

  • CS-1: Before showing the list, there must be registered customers on the system.

VAR-1: Add variable

As a user, I want to add a variable, so it can be used on any template field expression and processed when generating an invoice.

To do that, the user will introduce a name, a description, a entity attribute to map the variable and the associated subtotal if the entity attribute is the invoice subtotal.

Respect to the UI, this process will be done through a form for the registration.

Dependencies

  • SUBT-1: The variable can be associated to a variable, so it has to exist.
  • SUBT-2: Subtotals needs to be listed before being associated to a variable.

SUBT-2: List subtotals

As a user, I want to list all the subtotals available on the system.

To do that, all the subtotal attributes (name, percentage and discount/tax) will be shown in a list.

Respect to the UI, a table containing all the subtotals data will be created.

Dependencies

  • SUBT-1: Subtotals must be registered on the system before showing them.

INV-1: Generate invoice

As a user, I want to generate an invoice by selecting all the shown delivery note with a established price. Finally, the created invoice will be generated in the specified format, which can be PDF or any spreadsheet file format.

Keep in mind that the invoice will indicate the generation date time and it will registered in our system.

BUG-2: Removed variables can be edited

Steps to reproduce

  1. Go to the list variables panel. To do that, go to "Variable > List".
  2. Remove a variable.
  3. Try to edit an attribute from that attribute and observe that you can do it.

This issue is a regression from v0.15.0.

Current behaviour

Removed variables can be edited.

Expected behaviour

A removed variable cannot be edited.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.