Giter Site home page Giter Site logo

sales's Introduction

👋🌍

I'm Andreas. I'm a freelance web developer, creator and consultant in Berlin, Germany. I love God and I do all my work unto him. I create and maintain websites, build application based on web technologies and also do some machine learning and NLP stuff. I occasionally publish articles and tutorials about web development and related topics on DEV, Medium and Twitter. If you like my work, just drop me a 'thank you' or sponsor me.

  • 💬 Ask me about programming (JavaScript, Python, PHP, CSS, Vue.js), balancing work and family or freelancing
  • 📫 Contact me via my website, Keybase or email
  • 🤓 Fun fact: My first own computer was an Acer Travelmate 220 laptop with both, a floppy and a CD drive! What was yours?

I love Open Source Software and joined GitHub 10 years ago. Since then I pushed 9250 commits, opened 382 issues, submitted 600 and reviewed 488 pull requests, received 892 stars across 55 personal projects and contributed to 6 public repositories.

The most used languages across my projects are:

C++ PHP Vue CSS Blade TeX HTML Python Other

Happy coding!

GitHub Streak

sales's People

Contributors

dependabot[bot] avatar devmount avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sales's Issues

Error when showing invoices

Describe the bug
A "Leistungsposition" was created for an existing invoice/project (project: Enim quasi fugit). Any overview where the related invoice would be shown cannot be accessed (e. g. in the project -> invoices or via Invoices).
The following error is shown:
App\Filament\Resources\ProjectResource\RelationManagers\InvoicesRelationManager::App\Filament\Resources\ProjectResource\RelationManagers{closure}(): Return value must be of type string, null returned

To Reproduce

It was not able to reproduce it with another existing project.

Expected behavior
All invoices can be shown.

Screenshots
projects-edit-project-show-invoices

System (please complete the following information):

  • Sales version: 2.1.9

Additional context
Add any other context about the problem here.

Improve date input of positions

Is your feature request related to a problem? Please describe.
Currently, the date inputs of positions (start and end) can be any value.

Describe the solution you'd like
Add the following constraints

  • End date must not be before start date
  • Changing the start date should automatically change the end date too (while keeping the times the same difference)

Describe alternatives you've considered
None

Additional context
image

Trigger invoicing email

There should be a possibility to directly invoke an email to send an invoice to a client.

Tables: De-Selecting with "select all" checkbox leaves hidden items selected

Describe the bug
If all elements deselected by unchecking the "select all" checkbox, all hidden elements remain selected.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Customer.
  2. Click on select all.
  3. Choose a filter to hide some elements.
  4. Deselect all.
  5. Clear filter.

Expected behavior
All elements, whether hidden or not, are deselected.

Estimates: New estimate: "Amount" is not marked as obligatory.

Describe the bug
New estimate: "Amount" is not marked as obligatory. When trying to save an error occurs:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'amount' cannot be null

To Reproduce
Steps to reproduce the behavior:

  1. Go to Estimates
  2. Click on "New estimate"
  3. Fill out project and title, leave "Amount" empty
  4. Click on "Save"
  5. See error

Expected behavior
"Amount" is marked as obligatory. Saving without an amount is not possible (a notice of missing information is shown).

Screenshots
If applicable, add screenshots to help explain your problem.

estimates-amount-cannot-be-null

System (please complete the following information):

  • Sales version: 2.1.9

Customers \ Add new Customer: unexpected behaviour of "Cancel" button

Describe the bug
Customers Overview -> New Customer -> Cancel Button does not go back to overview, instead switches between saved new customer and empty form

To Reproduce
Steps to reproduce the behavior:

  1. Go to Customers
  2. Click on "Add Customer", fill out necessary entries
  3. Save with "Save and add customer"
  4. Click on "Cancel" -> Form switches back to Customer 1
  5. Click on "Cancel" -> Form switches to empty form
  6. Step 4 & 5 can be repeated without returning to the Overview

Expected behavior
Click on "Cancel" returns to overview.

Screenshots
If applicable, add screenshots to help explain your problem.

System (please complete the following information):

  • Sales version: 2.1.8

Wrong language in invoice PDF

Describe the bug
The generated invoice PDF is translated in the users language, instead of the clients language.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Invoices
  2. Click on 3-dot menu and download of an invoice
  3. See wrong translated strings

Expected behavior
The PDF should be shown in the language that is set for the client of the project of the invoice.

Screenshots
None

System (please complete the following information):
Any

Additional context
None.

Contact Customer: Error if no mailadress is filed

Describe the bug
If no mailadress is filed for a customer, it is still possible to use "Contact customer" in the addional menu (three dots). When trying to send the message, an error shows:
Symfony \ Component \ Mime \ Exception \ LogicException
PHP 8.3.4
11.2.0
An email must have a "To", "Cc", or "Bcc" header.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Customers.
  2. Click on the additional menu of one customer.
  3. Select "Contact Customer".
  4. Fill out "subject".
  5. Click "Send".
  6. See error.

Expected behavior

If no mailadress is filed,

  1. the option "Contact customer" is not available.
    or
  2. the user is noticed about the missing mailadress with the possibiliy to provide one.

Screenshots
If applicable, add screenshots to help explain your problem.
Contact-customer-without-mailadress

Advance payments

Is your feature request related to a problem? Please describe.
Sometimes you want to get a fraction of the payment in advance (usually around 30 - 50%).

Describe the solution you'd like

  • Invoices have two additional fields for advance payments
    • Amount (currency input)
    • Payment received date (datepicker, defaults to today if Amount is set the first time, can only be saved if Amount is set)
  • Advance payments are taken into account for actual taxation calculations
    • Test for rounding errors when calculating final invoice amount
  • Invoice documents contain a text snippet stating the already paid amount and the remaining amount to be paid with this invoice

Additional context
A client of mine wanted to pay in advance, so I became aware that I needed that feature. In general it is a good idea to utilize advance payments, especially for new clients.

Project estimation and quote creation

Is your feature request related to a problem? Please describe.
The application currently is lacking a feature to handle service offers with estimations.

Describe the solution you'd like

  • Estimate Relation Manager for Projects
  • PDF export offer document
  • (optional) Drag and drop estimate order
  • Extend quote description with legal topics (time delays, invoicing, disclaimer, work location, referencing, quote validation time)

Improvements Headlines and Wording

Describe the bug
Some Wording is not precise or intuitive to understand.

Expected behavior
Precise Wording with units in tables. Additional Information if Wording is not intuitive or if assumptions are made.

Dashboard

  • Chart "Average hourly rate": add "(per year)"
  • Chart "Monthly income": Concretize to "Average monthly income", add "(per year)" if necessary
  • Chart "Average working hours/week": Add information, if the working hours are standardized to 52 weeks or to productive weeks (weeks with working days)?
  • Chart "Productive hours": Add information what exactly "productive hours" are

Customer \ Overview

  • Change "Payment" column to "Average payment duration in days" or "Payment duration" or sth similar

Estimates

  • New Estimate -> in german: Change "Schätzung" to "Menge" or "Anzahl", similar to eng "amount"

Projects Overview: Filter "All" throws Error

Describe the bug
In case there is an upcoming project and the filter is set to "All", the following error is shown:
DivisionByZeroError
PHP 8.3.4
11.2.0
Division by zero

To Reproduce
Steps to reproduce the behavior:

  1. Go to Projects.
  2. Have an upcoming project (with zero hours).
  3. Set filter to "All".
  4. See error.

Expected behavior
All projects are shown without an error.

Screenshots
If applicable, add screenshots to help explain your problem.

projects-filter-all-with-one-upcoming

Projects \ Create offer: PDF is not downloaded

Describe the bug
No PDF is downloaded.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Projects
  2. Click on one project.
  3. Scroll down to Click on "Offer (PDF)".
  4. A new tab opens and closes without any download.

Expected behavior
The offer (PDF) is downloaded automatically or a new tab opens to download the PDF.

System (please complete the following information):

  • version: 2.19

Additional information
The same problem occurs with downloading invoices: For a finished project with an existing invoice I can download it without problems. If I modify anything, the above decribed behaviour shows.

New invoice cannot be saved

Describe the bug
A new invoice cannot be saved, but throws an error instead: DivisionByZero

To Reproduce
Steps to reproduce the behavior:

  1. Go to Invoices
  2. Click on 'New'
  3. Fill out obligatory entries
  4. Click 'Save'
  5. See error

Expected behavior
A new invoice is saved.

Screenshots
If applicable, add screenshots to help explain your problem.
projects-new-invoice-form

projects-new-invoice-error

System (please complete the following information):

  • Sales version: 2.1.9

Additional context
Add any other context about the problem here.

Finish dashboard

  • more space for tax table
  • button for quick create USt expense
  • improve working hours per week chart by counting weeks actually worked in
  • implement monthly income per year chart
  • implement average hourly rate per year chart
  • implement client distribution chart

Anonymize data in staging/testing system

Is your feature request related to a problem? Please describe.
Testing works best on production data, but those expose personal data of clients etc.

Describe the solution you'd like
Built an anonymizer that replaces all personal data (names, companies, addresses, emails, phones etc) by fake data.

Additional context
This gives the possibility to let external testers evaluate the system without exposing personal data to them.

Create/Edit Project: unclear mandatory input

Describe the bug
If a project is saved with missing information, it is not shown in the overview. In one case the overview cannot be opened but throws DivisionByZero-Error.

Case 1:
To Reproduce
Steps to reproduce the behavior:

  1. Open an existing (closed) project.
  2. Clear end of project. (It might be possible that no 'Umfang'was filed, but that wasn't changed during this specific case.)
  3. Save. ('Saved' note shows up.)
  4. Click on 'Projects'.
  5. Project is not shown, number of closed projects decreased for one.
  6. Filter for 'All'.
  7. Search manually for a part of the project name (e. g. 'test)
  8. Instead of showing no result, a DivisionByZero-error occurs.

Expected behavior
The new project is shown on top of the list with active/all projects.

Screenshots
58_filter-all_search-word

Case 2:

To Reproduce
Steps to reproduce the behavior:

  1. Create a project.
  2. Fill out mandatory information, including 'Umfang'.
  3. Save. ('Saved' note shows up.)
  4. Click on 'Projects'.
  5. Project is shown, number of projects did increase.
  6. Re-open project.
  7. Clear 'Umfang' and save.
  8. Click on 'Projects'.
  9. Project is not shown, number of projects did decrease.
  10. Search manually for a part of the project name.
  11. Instead of showing no result, a DivisionByZero-error occurs
  12. When accessing the projects-page later (without any further changes), a DivisionByZero error is shown immediately without showing the list of projects.

Expected behavior
The new project is shown on top of the list with active/all projects.

Screenshots
grafik

System (please complete the following information):

  • version: 2.1.9

Additional context
Add any other context about the problem here.

Complete responsive UI

Describe the bug
Currently the application is semi responsive. There is a mobile menu and elements are responsive to viewport changes only to a certain degree. This ticket collects all places for possible improvements.

Expected behavior
In general all elements should be fully visible on smaller viewports using the whole available width. Also elements shouldn't overlap each other.

  • Dashboard
    • Wrap widgets at a reasonable point
    • Keep widgets to same height, especially those containing a chart
    • Don't overlap columns of the sales tax widget (especially the net income column mentioned by @Clairebaer)
  • tbc

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context

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.