GithubHelp home page GithubHelp logo

dragotin / kraft Goto Github PK

View Code? Open in Web Editor NEW
55.0 4.0 17.0 11.2 MB

Kraft helps to handle your daily quotes and invoices in your small business.

Home Page: http://volle-kraft-voraus.de

License: GNU General Public License v2.0

CMake 1.30% Shell 0.23% C++ 71.36% C 0.21% CSS 4.49% Python 2.75% Perl 0.95% HTML 18.69%
linux-desktop kraft quotes invoice pdf small-business smb

kraft's Introduction

The Kraft Project

Kraft is free software to help to handle documents like quotes and invoices in your small business.

It is a Qt/KF5 based desktop software with a strong focus on ease of use and the just enough feature set for the use case. With Kraft, creating documents will run smooth and free time for more enjoyable things than office work.

Check out the website http://volle-kraft-voraus.de for more information.

Kraft runs on your Linux desktop. No cloud involved, your data stays with you!

With Kraft, writing documents like quotes and invoices is very easy and fast. Repeating tasks are supported, documents can be generated semi automatically, ie. invoices from offers sent out before.

For efficient work, Kraft supports catalogs to organize materials and template texts. It focuses on high quality printouts because paper is still the main communication media in the small business world. However, it also sends documents via email.

Kraft utilizes a bunch of very useful tools of the free softare world:

Interested?

Install Kraft on your Linux desktop.

For questions and comments, please speak up. Check the web site for contact details.

Jun 2005-2024, Klaas Freitag [email protected]

kraft's People

Contributors

a-detiste avatar a17r avatar alex1701c avatar amalvarenga avatar andywuest avatar bitigchi avatar bmwiedemann avatar caslav-ilic avatar cfeck avatar cornelius avatar dragotin avatar jarvied avatar jobermayr avatar kossebau avatar lueck-b avatar moini avatar pinotree avatar t-8ch avatar tcberner avatar theassassin avatar tsdgeos avatar yurchor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kraft's Issues

Database Creation Issues

A few issues with the initial database creation.

  • After re-creation (with already existing configuration before) there needs to be a restart of Kraft.
  • The Kraft-Info page needs an update
  • Proper error message in case the mysql database does not exist yet.
  • General re-design of the wizard.

Migration: Migrate database.rc

With the switch to Kraft 0.80 on Qt5, the kraftdatabase.rc is now stored in $HOME/.config. When starting it the first time, check in the old location at $HOME/.kde4/config for an old database config.

Segregate settings files

Currently there is the kraftdatabaserc and the kraftrc. While that segregation is kind of random, it would make sense to have one file containing general kraft settings, and one that has machine dependent settings such as window sizes and positions.

That way, the general settings file could be synced to another machine to kind of duplicate the installation.

Check WeasyPrint as Replacement for ReportLab

Would WeasyPrint a good replacement for the current ReportLab based PDF generation that is currently in Kraft?

Apart from the fact that ReportLab did a very good job in the past (good quality output docs), it has some downsides that are hard to overcome:

  • Difficult language that needs to be used to customize the layout of the PDF output
  • Next to no maintenance (AFAIK)
  • Some missing features like page sums (a "trending" sum on top and end of each page) and very hard space management between for examples entry texts and the items.

Some good arguments about Weasyprint:

  • it renders html to PDF, people probably can customize that easier
  • seems to be a vital project
  • standalone cli supported, no JavaScript KungFu required as for other alternatives

Some doubts/questions about Weasyprint:

  • it has a rather big dependency list, all Python3 stuff
  • Can it handle page breaks well, incl. free space management etc.
  • Does it have enough features to replace ReportLab?

Bug - Export Catalogs

Hi

I would like to export my catalogs.

The option is there, but it is greyed out so I can't use it.

Thanks,
Dan

Price for materials in documents

I add "Material A" with a price of 10€ per unit and 10 units per package -Material A has a (correct) total price of 10€.
I add Material A to a "Standard Text" with 1 Unit and Kraft display this correct with a price of 1€.
But if i directly add Material A to a document, 1 Unit is displayed with a price of 10€.

Bug with changed Material price

After changing the price of a material in the "Material Catalogue", the material is deleted from calculated "Standart Text Catalogue" Entrys.

AppImage QGtkStyle could not resolve GTK.

Hi,

running the current AppImage (kraft-0.82-27.1.Build9.4.glibc2.14-x86_64.AppImage) on Debian unstable the menu shows but the menuitems are empty, as is the window which is raised by right-clicking.

Console shows the following warnings:

QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries.
...
QCommonStyle::drawComplexControl: Control 1 not handled

With QT_STYLE_OVERRIDE=gtk2 set everything works as intended.

Which libraries am i missing?

Thanks for the great work!

Implement support for "progress payment invoices" (Abschlagsrechnung)

Often, after a construction started for example, a "Abschlagsrechnung" is sent to make the client pay for material that was delivered, but the project is not finished yet. It is about a pauschal sum that is later subtracted from the final invoice.

User story: The user clicks on an "Offer/Quote (Angebot)" or "Acceptance of Order (Auftragsbestätigung)" and selects "Followup Document". In the following dialog, the doc type for "Progress Payment Invoice" is selected. A normal document is created.

Later, the user clicks again on the "Offer" and wants to create the final invoice. Now, in the following dialog, there is a hint that there is one or more "Abschlagsrechnung" for this doc. Once the user creates the final invoice, an item for each "Abschlagsrechnung" is created automatically with the negative sum of it.

Database Migration steps:

  • Create the new doc types Progress Payment Invoice, Partial Invoice and Final Invoice
  • Create attributes for the new doc types: SubstractPartialInvoice for the Final Invoice and PartialInvoice for Progress Payment Invoice, Partial Invoice.
  • Add a column predecessor to the document table to track the document predecessor (store Document Ident)
  • Create predecessor and successor definitions for the Doctypes, ie. Partial Invoice follows on Offer and Final Invoice follows on Partial Invoice.

When creating the final invoice as a predecessor of document ident XY, a query needs to be done if there are other documents with a doc_type that has the attribute PartialInvoice and the predecessor == XY. For all found documents, an item has to be created in the final invoice doc, with the netto sum of the partial invoice.

Add New Catalogs

Hi

I'm trying to add a catalog in the database.

I need a catalog with some description of works (Scope of Work).
I just need the description without any prices.

Any chance to implement this too?

Thanks,
Dan

Enhancement-Request - Position Numbers like subfolders

Hey

It would be great to get the possibility to use more numbers for positions like subfolders.

  1. (Main Position for Number 1 - Ceiling)
    1.1 (Sanding)
    1.2 (Painting)
    ...
  2. Walls
    2.1 Sanding
    ...

That would be really great!

[v. 0.80] Kraft "hangs" when a document should be printed.

The reason for that behaviour is that the directory $HOME/.local/share/kraft is not existing. Creating it fixes the problem.

At least if Kraft is running not on a KDE desktop, the directory $HOME/.local/share/kraft is not automatically created.

That results in a behaviour like the application hangs when user tries to print a document because the conversion process (trml -> pdf) can not save the pdf.

This is a pretty severe bug as it destroys a good first impression of Kraft.

Fix:

  • Make sure the directory is there in the startup routine.
  • Return a proper error message in the report generator

Bug - TimeCalculation behind komma

Hi

(Painting Business)

It would be great to have the possiblity to write the time behind komma/dot. Not only full minutes.

Example:
I need 2.49 minutes per sqm to paint a ceiling but I can only chose 2 or 3 minutes. If I had a 1037 sqm ceiling/s, I would need only 2582.13minuts with 2.49min/sqm.
3 minutes = 3111minutes
2 minutes = 2074 minutes
The difference is just too big for me or the customer.

Thanks,
Dan

Bug - Margin option (Template)

Hi

If I wanna add some Margin in a Template it's showing at the bottom of the template that I added 10% Margin (Overall Price per Unit) but when I close my catalog, the "hint" will be gone, but the price will remain unchanged and I don't know how the price actually came to that conclusion if I have to change the price again in the future.

Thanks,
Dan

Arch - I18N_ARGUMENT_MISSING and Addressbook Integration down

Hi

I'm sorry to bothering you. I sent you an email as well. Sometimes it's landing in a Spam Folder. That's the reason I'm posting here as well.

I'm using Arch - KDE. And I have two annoying Problems.
I can't use my Contacts from KAddressBook.

Kraft Addressbook Integration down.
The address book backend is not up and running.
Please check your addressbook integration setup. 

Another Problem is

 2(I18N_ARGUMENT_MISSING) templates in 2(I18N_ARGUMENT_MISSING) chapters
 last modified at Tuesday, July 10, 2018 2:45:26 AM NZST(I18N_ARGUMENT_MISSING)

I tried already a few things but I can't figure it out ... You're might be able to help me or someone else.

Thank you,
Dan

new address not working

In recent beta it is not possible to enter a new address.
"Adressaten auswählen"
"Here u can enter a new address"
Which doesn't open anything and it's as well not possible to enter a new address manually.
May be "entering an address manually" could be a feature?!

make generic import available

Hej,
I could see there are some import filters in the repository. Would be nice to use them, how could it be available in kraft?
cheerio

Feature Request - Extra TimeCalculation list

Hi

(Painting Business)

I use very often the same "TimeCalulation" for another "Sub Chapter or Template".

Is it possible to make a list with the TimeCalculations? Like the labels in settings - edit tag templates or another catalog and link them to "TimeCalculations"? The problem is at the moment, if I wanna change the time, I have to do it for each template, which isn't only a lot of work, but it's also very easy to forget a template.

Thanks,
Dan

Create new translations

Kraft 0.80 is now on ubuntu (18.10), I wanted to start a translation into my language (catalan), could you upload it to somewhere like weblate.org so I can start the translation?
I saw that there are some issues alterady fixed on 0.82, but at the moment I'll keep using the program in english until updated on ubuntu

Can not print document

Pressing on "print document" results in an error:

file:///home/kf/.local/share/kraft/2-2017_4.pdf kann nicht geöffnet werden

while the log shows strange things:

org.kde.akonadi.ETM: GEN true false true
org.kde.akonadi.ETM: collection: QVector()
No search result for UID "f1f7ed51-8f28-47b2-b00b-0d61560bea03"
QFile::setFileName: File (/home/kf/.local/share/kraft//2-2017_3.pdf) is already opened
org.kde.akonadi.ETM: Subtree:  27 QSet(27)
org.kde.akonadi.ETM: collection: "Persönliche Kontakte"
org.kde.akonadi.ETM: Subtree:  28 QSet(28, 34)
org.kde.akonadi.ETM: collection: "https://pjatniza.net/owncloud/remote.php/dav/addressbooks/users/kf/kontakte/"
org.kde.akonadi.ETM: Fetch job took  7 msec
org.kde.akonadi.ETM: was collection fetch job: collections: 3
org.kde.akonadi.ETM: first fetched collection: "Persönliche Kontakte"
org.kde.akonadi.ETM: Fetch job took  4 msec
org.kde.akonadi.ETM: was item fetch job: items: 5
org.kde.akonadi.ETM: Fetch job took  20 msec
org.kde.akonadi.ETM: was item fetch job: items: 125
QProcess: Destroyed while process ("python") is still running.
QIODevice::write (QFile, ""): device not open

Search Catalogs

Hey

If I'm looking for some entries in my catalog it will be everything open. All the subfolder are open and I have to close it manually.

Any suggestions to fix this?

Thanks,
Dan

cgit.kde.org

kraft kf5 branch on cgit.kde.org is now rather far behind. Do you plan to push the changes back there at some point?

Standard Text Catalog display issue

(I'm at german translation (its called "Standard Mustertexte") and don't know how its named in english, the mentioned issue is at the first catalog, not the 2nd "Material" Catalog)
I add a verry big standard text to the catalog and it isn't displayed correct after creation. The text is cutted but the entry take the whole window.
Also i'm not able to edit it, after opening the edit window the edit window is too big for the screen and the buttons are no longer visible.

Icon Kuddlmuddl

The Kraft specific icons should be in the resource file, the others taken from the theme. Currently the cmake installing is not clean.

make document type configurable

It would be desirable to add custom text to drop down to

  • add translations
  • just another wording
  • custom text

which could be achieved by

  • just entering in drop down
  • add in expert settings
  • fumble in the database

backup and restore database

It would be nice to backup and restore the kraft database for backup purposes and if u want to switch to another installation.

Compile issue

Hello.

I had to install Kraft again because I wanted to start from scratch.

As you maybe know I'm using Arch as a System and it's might be related to Arch and my setup of Arch. But I thought I ask you at first.

catalogchapter.cpp:20:
/usr/include/qt/QtSql/qsqlrelationaldelegate.h:115:52: error: ‘QByteArray::operator QNoImplicitBoolCast() const’ is private within this context
                     v = QVariant(editor->property(n).userType(), nullptr);
catalogchapter.cpp:20:
/usr/include/qt/QtSql/qsqlrelationaldelegate.h:116:37: error: invalid user-defined conversion from ‘QByteArray’ to ‘const char*’ [-fpermissive]
                 editor->setProperty(n, v);
catalogchapter.cpp:20:
/usr/include/qt/QtSql/qsqlrelationaldelegate.h:116:41: error: ‘QByteArray::operator QNoImplicitBoolCast() const’ is private within this context
                 editor->setProperty(n, v);

I searched for this issue a little but I couldn't find the right answer. Do you have any idea to solve this issue?

Regards,
Dan

Useless Macros DOCDIGEST_TAG.

The tag names for the views and reports are surrounded by non functional macros such as DOCDIGEST_TAG. The idea about it was to be able to generate a list of existing tags and possibly some documentation about it for the user documentation. This was never finalized, which is the reason for this ticket.

A script should be created that greps for the different tags and generates a list of the existing ones. This list should be (at best) easily to be inserted into the documentation at http://volle-kraft-voraus.de.

To maintain the documentation in the code, it would make sense to enhance the macro in a way that the documentation is included in the code, but does not disturb the C++ compiling. The script however could parse them.

Example:

#define DOCDIGEST_TAG(TAG, DOC) TAG
...
tmpl.setTag(DOCDIGEST_TAG("CUSTOMER_NAME", "The complete name of the client"), customer.name());

Automatic insertion of numbers

Hey

Is it possible to turn it off?

If I wanna put my price in it everytime I get the number "0" automatically included.

That's not a big thing.

Thanks,
Dan

Manage contacts without akonadi

I am trying to setup kraft, and one of the things I wanted to do was to import the contacts I have exported to a csv.
Is there any way to import those contacts at the moment when using a system without akonadi?

Thanks

Feature Request - How much/many Materials?

Hi

As a painter I have to know how much paint, tape etc I need for each Job.
If I add materials to my positions, I can't see how much/many litre/metre I need.
A 10L bucket is cheaper than a 1L can. So if I add the price of a 10L bucket it would drop the real price if I need 11L (1x10L bucket & 1x1L can).

That means actually, I can't add any materials because it wouldn't be the right price. It would be only the sqm price of the 10L bucket. I think it would be a huge Project to add this feature because the software has to know to change the price after 10Litre to 1Litre can if the end result is 11Litre.

But it is might be possible to display the litre result (How much litre/materials you'll need for this project) at the end and I could add the extra price.

Thanks,
Dan

Language dependant Document Types

By default, Kraft comes up with English and German document types. That is not cool, it rather should only have the doc types of the current locale, ie. if the desktop is in German, it should only have the german doc types.

For that, the doctypes table needs to have another column for the language abbrev.

integration with KAddressbook version 16.04

I cant seem to get any connection between Kraft and KAddressbook 16.04

When I do the setup wizard and is about to choose my own address all the fields are blank. Even tough my address book exists in KAddressbook and in Kontact.

Is this a known problem with the kde apps 16.04 or Arch Linux?

Changing Wages

Hi

Sometimes I want to change the Wages to see another price of a quote.

When I already made a quote the price doesn't change when I change the wages.
So, I have to make a new quote for it.

Thanks,
Dan

Feature Request - Copy Paste⁄ Drag & Drop (Catalog)

Hi

(Painting Business)

I have often the same template/sub chapter for a different work.

Template - Painting (First Coat) for example:
I need the same "Template/TimeCalculation" for a ceiling and wall. But i need a ceiling position and a wall position separately.

So, I have a Ceiling - Sub Chapter and a Wall - Sub Chapter and for each Sub Chapter a template with the same time/sqm.

It would be great to get a copy & paste option for the templates and sub chapters.

And if it's possible, the next feature request would be great too ;) Feature Request - Extra TimeCalculation list

Thanks,
Dan

Document modified dialog even if it was not modified

If a document is displayed in the editor and without anything changed, user clicks Cancel to close the dialog, Kraft asks if user wants to save the changes.

That is wrong as no changes were made. Kraft should only ask if there were really changes.

Version: 0.81 and before.

Feature Request - Showing TimeCalculation on Quotes/Estimates

Hi

(Painting Business)

Everytime, if I start a new quote I need to know what's all included of the template. There may be more than one "TimeCalculation" in a template.

Sure, I can check the catalog, but it would be quicker to press the arrow (in the quote) to see what is actually in that template ... like the catalog.

Thanks,
Dan

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.