devcode-it / openstamanager Goto Github PK
View Code? Open in Web Editor NEWIl software gestionale open source per l'assistenza tecnica e la fatturazione
Home Page: https://www.openstamanager.com
License: GNU General Public License v3.0
Il software gestionale open source per l'assistenza tecnica e la fatturazione
Home Page: https://www.openstamanager.com
License: GNU General Public License v3.0
Notavo durante un inserimento prova di un cliente, la mancanza, a mio parere di un campo in anagrafica: L'indirizzo di Posta elettronica certificata.
Propongo l'aggiunta di alcuni badge per migliorare la visibilità del progetto in modo visivo:
@loviuz @lucasalva87 @fpsoftware Voi che ne pensate?
Per maggiori dettagli sulle possibilità, il gestore automatico di questi badge è Shields.io.
Gli stili disponibili sono qui.
Non so se avete già risolto, comunque segnalo questo piccolo problema di visualizzazione: se vado ad inserire un nuovo movimento in prima nota e il movimento supera i 1000 euro, sul totale a fondo pagina mi compare 1 euro, in pratica il totale vede il punto di separazione delle migliaia come una virgola. E' solo un problema di visualizzazione, poi salva i dati correttamente.
Ciao, ho un dubbio sul modulo statistiche: la colonna del primo grafico Fatturato non dovrebbe mostrare le fatture di vendita? Mi sembra che al momento mostri invece gli acquisti..
Salve ragazzi,
So che lavorate a pieno ritmo e mi complimento per i progressi fatti.
egoisticamente siccome sto inserendo molti articoli a listino e le conversioni lavorando su sql danno spesso qualche errore vorrei lavorare nativamente sulla 2.3.
Se però sarà pronta l'anno prossimo lavorerò sulla 2.2
grazie anticipatamente per la cortese risposta
Roberto
Stavo provando la versione beta2 che avete rilasciato in questi giorni ed ho riscontrato un possibile problema: da amministratore sono entrato su strumenti->utenti e permessi->tecnici dove ho inserito un nuovo utente tecnico e aggiornato i permessi per il gruppo. Ho dato ai menu anagrafiche e magazzino e relativi sottomenu il permesso Sola Lettura. Mi sono disconnesso da amministratore e sono entrato con il nuovo utente tecnico creato. A questo punto se entro nel magazzino e voglio accedere ad un articolo per visionare i dati in sola lettura come da permesso, cliccando sull'articolo entra nella pagina di edit, ma mi dice record non trovato anzichè mostrarmi i dettagli dell'articolo (in teoria senza darmi la possibilità di modificarne i dati). La stessa cosa anche nelle anagrafiche che compaiono dopo aver inserito un intervento per il tecnico. E' un funzionamento corretto o c'è un problema?
dopo aver selezionato un articolo, si preme aggiungi e appare pagina bianca
nella funzione di inserimento "nuova riga" c'è ancora il controllo per sommare le righe simili, era da eliminare come sulle fatture.
Se si caricano righe simili (es. carico lo stesso articolo più volte) va sempre inserito come una nuova riga e mai aggiornare dati esistenti, in questo modo si può gestire il caso di un articolo omaggio o con prezzo scontato, etc.
Inserisco un contratto, poi voglio fare la fattura. Nelle righe clicco "+ Contratto" per importare la riga del contratto e inserisco Iva 22% nella riga importata. La riga che compare poi contiene nella casella IVA l'importo corretto, ma sotto c'è la dicitura 95 invece del corretto "Iva 22%".
Nella tabella delle righe manca il collegamento alla tabella co_iva, mette uno 0 invece dell'id giusto.
Non funziona la primanota da fattura di vendita. Il valore nel campo "Dare" dopo che viene confermato con "Aggiungi" risulta "0" . Il problema sta nella condizione "if" nel file actions nel modulo "primanota" .
Quando invece una primanota viente modificata la funzione è corretta.
Nel modulo "Attività" sarebbe secondo me, interessante poter aggiungere la priorità ad ogni attività
Ciao a tutti,
Ho letto nel sito OpenSTAManager che è in fase di sviluppo il modulo per la creazione delle fatture elettroniche alla Pubblica Amministrazione.
Ci sono novità in merito?
Documentazione FatturaPA
http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm
L'introduzione di un sistema centralizzato di internazionalizzazione e conversione ha permesso di migliorare l'adattabilità del software a diversi linguaggi e convenzioni, ora personalizzabili attraverso il file di configurazione.
Il sistema attualmente impostato può comunque essere ancora migliorato, in particolare attraverso la gestione univoca della conversione con alcune librerie preimpostate, evitando così la gestione manuale di tutte le operazioni.
Propongo quindi l'introduzione di un'ulteriore libreria PHP: Punic.
Questa libreria è stata infatti creata appositamente per implementare il corretto comportamento di internazionalizzazione (basato sugli standard), e la sua implementazione permetterebbe di migliorare l'adeguabilità del gestionale per future traduzioni ed espansioni.
Particolarmente utile sarebbe la gestione automatica dei formati di numeri e date, che permetterebbe di delegare a questa libreria tutte le operazioni altrimenti implementate ma non ampiamente testate.
Aggiunta modulo per la gestione dei filtri permessi, in modo da poter scegliere quali filtri abilitare per gruppo.
Esempio:
il gruppo "Tecnici" potrà vedere solo i suoi interventi, oppure tutti. Sarà l'amministratore che abiliterà o meno questo filtro.
Possibilità di aggiungere filtri manualmente con query (modalità avanzata per esperti).
Se cambio una riga generica nella fattura di vendita ricevo errore 404.
The requested URL /modules/fatture/editor.php was not found on this server.
apache_error.log
[Fri Sep 22 08:14:39 2017] [error] [client ::1] File does not exist: /Applications/MAMP/htdocs/modules/fatture/lib, referer: http://localhost:8888/editor.php?id_module=14&id_record=563 [Fri Sep 22 08:14:44 2017] [error] [client ::1] script '/Applications/MAMP/htdocs/modules/fatture/editor.php' not found or unable to stat, referer: http://localhost:8888/editor.php?id_module=14&id_record=563
Con il passaggio a Github come gestore del progetto, si è aperta la possibilità di integrare il processo di sviluppo con strumenti automatizzati quali Continuous Integration e Unit Testing, che risulterebbero molto utili per controllare in modo automatico il funzionamento di alcune sezioni di base del codice.
In particolare, propongo innanzitutto l'introduzione di un sistema di testing PHP basato sul framework open source PHPUnit.
Questo porterebbe alla creazione di un'apposita cartella (tests) contenente un insieme di casistiche su cui richiamare le funzioni del gestionale (derivanti da classi o altre fonti) e controllarne l'effettivo funzionamento.
Un'esempio di base in questo senso è fornito dalla classe Formatter, al momento responsabile della conversione automatica dei formati per il gestionale: nel caso si presentassero future necessità di ampliamento delle casistiche (come nel caso #30), questi test controllerebbero l'effettivo funzionamento della classe in tutte le situazioni prevedibili e di interesse.
Lo stesso vale per tutte le altre classi, oltre che per le funzioni responsabili di individuare scadenze, prezzi e altro all'interno dei singoli moduli.
In questo modo, sarebbe possibile migliorare il controllo sull'effettivo funzionamento delle funzioni di base del progetto a seguito di piccole e grandi correzioni.
Una volta completata (o introdotta) questa funzionalità, si potrebbe individuare uno strumento CI tra i molti disponibili e integrarlo con il sistema Github dei commit, ottenendo in questo modo un feedback automatico basato sul sistema di testing.
Creata fattura di acquisto da 103,70 euro con 2 scadenze (tipo pagamento: bonifico 30/60 gg d.f). Vado sullo scadenziario e cerco di inserire il pagamento della prima rata. Inserisco l'importo e salvo. Non salva dicendomi "Il totale degli importi inseriti non corrisponde al totale da pagare!", stesso problema anche con 1 sola scadenza. Su fatture di vendita non accade.
modulo DDT vendita, permettere l'auto-intestazione, è previsto dalla normativa vigente
Nel caso il materiale venga inviato ad un cantiere, il ddt va auto-intestato, ovvero nel campo "cliente" si può impostare l'azienda predefinita (è sufficiente aggiungere tipo anagrafica cliente) è necessario poi selezionare anche un cliente finale e l'eventuale sede del cliente finale. Aggiungere quindi un ulteriore idanagrafica sul database.
Nel campo "destinazione diversa" della stampa quindi possiamo avere:
Durante la fase di inserimento, i campi Partita IVA e CAP, vengono in fase di salvataggio su MySQL, privati dello 0 iniziale. Agendo sul DB manualmente, con l'inserimento del carattere 0, viene salvato e infatti quando vedo l'anagrafica, i campi che iniziano per 0, sono corretti. Se provo però a salvare senza modifiche, tutti i campi che iniziano per 0 vengono modificati.
Avrei rilevato anche i seguenti problemi sulle fatture:
Conformare il modulo Piano dei Conti con il nuovo sistema di calcolo, per evitare problemi di pochi centesimi come segnalato negli altri moduli.
Non riesce a creare DDT di acquisto da Ordine Fornitore (Errore: Uncaught Exception PDOException: "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'dt_ddt.descrizione' in 'field list' - SELECT numero, numero_esterno, dt_ddt.descrizione AS tipo, dt_ddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='1'" at C:\xampp\htdocs\opensta2.3\lib\classes\Database.php line 610 ), nè se creo diretamente un DDT di acquisto, stesso errore. Stesso errore anche per DDt di Vendita (ovviamente).
Salve,
inserendo la tariffa oraira e kilometrica in attività generica o tariffe tecnici il costo chilometrico 0,6 per es non viene memorizzato. solo 1 o 1,frazione
è simile al bug dell'anagrafica che non prendeva gli zero iniziali per PIVA e telefono?
sperem :)
Roberto
Ho creato un nuovo gruppo su strumenti -> Utenti e Permessi, chiamandolo per esempio Ufficio Acquisti, al quale voglio dare i permessi di lettura e scrittura solo sulla dashboard e sugli acquisti per esempio. Creo un utente acquisti e do i permessi su Dashboard, Acquisti, Ordini Fornitore, Fatture di acquisto. Vedo che non posso aggiungere il gruppo sui campi delle viste per esempio delle Fatture perchè sono disabilitati, quindi non mi aspetto di doverlo fare. Mi sloggo da admin ed entro col nuovo utente acquisti. Entro nelle fatture e mi da un errore, prima come alert javascript: DataTables warning: table id=main_10 - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1; quindi errore in rosso: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'id'. E non compaiono le fatture nella tabella, che risulta vuota. Lo stesso accade anche su altre pagine, attività per esempio.
Credo sia un bug sul codice, ho provato anche sulla versione online della 2.3 beta dal sito di OpenSTA e c'è lo stesso probelma..
Ho importato con MySQL, dopo vari adattamenti con Excel, l'anagrafica proveniente da un precedente gestionale. Non ho capito come funziona l'attribuzione della caratteristica (Cliente, Azienda, Fornitore, etc..) nelle tabelle in database. Sarebbe fantastico procedere con delle modifiche "rapide" di gruppo, con la possibilità di attribuire ad n anagrafiche la caratteristica/ruolo esatta.
Sto sperimentando tra l'altro la possibilità di sincronizzare il Database con uno Foglio Google+Script con l'utilizzo di JDBC (un pò troppo limitato su Google)
Ciao, ho trovato 2 cosette che non mi convincono sul modulo Fatture, allora le segnalo.
La prima è la seguente: creo una fattura di acquisto con 3 scadenze per esempio. Se pago una scadenza metterò parzialmente pagato sulla fattura. A quel punto scompaiono le scadenze, anche se non sono state tutte pagate.
La seconda è: carico un file come allegato alla fattura, poi se provo a scaricarlo non mantiene il nome originale con cui l'ho caricato, ma prende un nome casuale (del file temporaneo immagino). Nel senso che viene salvato nella cartella files con il nome temporaneo casuale (nella 2.2 salvava il nome originale).
Non so se sono 2 intended functionality o piccoli problemi, intanto le inserisco, poi al limite chiudete la issue..
Vi propongo questa modifica già vista e implementata in una fork di OSM.
per ogni articolo agganciare l'ID fornitore.
il motivo è semplice: poter visualizzare i prodotti anche filtrando per fornitore. Questa funzione è quasi indispensabile per trovare prodotti con codici errati oppure con codici e descrizioni particolari.
Sfogliando la lista per fornitore oltre a rendersi conto della quantità di articoli del fornitore sarà anche possibile discriminare la quantità a magazzino di un dato fornitore e poter verificare bolle di carico che sono sempre nominali e mai miste (o quasi mai) con quantità a magazzino.
Vero che esiste l'articolo ma sbagliare un codice è un attimo e poter cercare all'interno di un singolo fornitore renderebbe il tutto molto più semplice.
Mancando la colonna o riga ID fornitore nella tabella mg_articoli tutto questo diventa possibile esclusivamente facendolo a mano. io la colonna excel l'ho comunque caricata.. chissà se non vi complica la vita ed è utile a tutti....
mancherebbe anche la quantità relativa all'eventuale confezione.
Non parlo del kit che srà nella versione a pagamento. ma solo di una specifica ulteriore dell'unità di misura.
ad es io ho sia pezzi singoli che confezione. sia in fattura che in ddt sarebbe molto utile avere la possibilità di inserire in caricamento dati la quantità relativa alla singola confezione di vendita.
diversamente va inserito in descrizione articolo. fattibile ma è un'operazione che richiede una manipolazione importane dei file excel. Oltre a questo la quantità (e chiedo) minima di acquisto a volte è indicata in pezzi altre in confezioni.
Grazie alla discriminante sarebbe più semplice da gestire? es. q.tà minima di acuisto 100 pezzi
la confezione è da 10 automaticamente ordine fornitore diventa 10 confezioni. idem per la vendita.
il cliente ordina in pezzi mentre la vendita è fatta si a pezzi ma colli e ddt vanno a numero di confezioni o imballo.
A volte l'imballo è proprio la confezione.
alla fine sarebbe sufficiente avere indicata la quantità del singolo collo.
sia in colonna fattura che in ddt sarebbe una discriminante a mio avviso sufficiente
unità minima di acquisto e unità minima di vendita. in questo modo 10 unità vendute possono essere 10 pezzi come 10 confezioni da 10 pezzi?
spero di essermi spiegato ma rimango a disposizone per qualsiasi chiarimento.
ho cercato qua e nn ho trovat onulla a riguardo. se qualcuno ha già chiesto sorry per il doppione
Roberto
Prima Creato Ordine Cliente - Poi tentato Crea Fattura da ordine. Dovrebbe creare fattura di vendita, essendo ordine cliente. Invece crea fattura di acquisto.
Aggiunta dei sezionali per la contabilità.
Creazione dei modelli di stampa su database, con possibilità di creare più stampe per modulo e raggruppate in un'unica voce di menu.
Ciao,
Ho provato inseriere nella descrizione del articolo un carattere speciale (tipo "). Se inserisco l'articolo nella fattura non ci sono problemi. Se però provo a modificarlo non compare più la descrizione e viene tolta dalla fattura. Si può riprodurre nella demo con articolo 123 descrizione 1/4"
Non mi pare sia stato ancora segnalato:
Sul modulo delle viste da un errore se si prova ad aggiungere un nuovo campo alla vista, errore dovuto al fatto che il campo id_module è obbligatorio nell'insert, ma non viene messo nella query di inserimento
elseif (strstr($filename, '.zip')) { --errore
elseif (!strstr($filename, '.zip')) { --errore
Ciao, stavo provando ad inserire delle fatture di acquisto ed ho trovato dei piccoli errori. Ho eseguito le prove anche nella demo online accedendo tramite il sito dal pulsante Prova OSM 2.3 beta2 in modo da indicare dove ho riscontrato i problemi.
1- Ho inserito un nuovo ordine di acquisto. Poi ho fatto Crea fattura da ordine. Ordine numero 2(o ED98) della demo. Nella fattura creata la riga non compare in modo corretto, inoltre da errore rosso per la query una volta che esco dalla fattura. Si può vedere dalla fattura numero 2.
2- Ho creato una fattura, la numero 3. L'ho emessa e sono entrato nello scadenziario per pagare la scadenza. Come per la beta 1 non riesco ad inserire il valore su pagato perchè mi dice Il totale degli importi inseriti non corrisponde al totale da pagare!
3- Ho creato la fattura numero 4 come la 3 e sono andato su scadenziario a pagarla, questa volta inserendo direttamente la prima nota. Tutto corretto a parte il fatto che poi la fattura risulta in stato Parzialmente pagato anche se ho effettuato tutto il pagamento completo dell'importo. Dovrebbe risultare credo in stato Pagato
Ciao, sto provando la beta2 della 2.3, qualche primo suggerimento:
Grazie
Roberto
Cancello fattura numero 4, cancella anche le righe in fattura numero 5 (fatture di vendita) e anche fatture precedenti, 1 e 3. E anche da alcune fatture di acquisto.
In pratica se creo una fattura con delle righe di articoli o senza, poi ne creo una seconda sempre con alcune righe ed articoli e poi con il pulsante Elimina cancello la seconda, vengono cancellate anche le righe della prima o di alcune altre fatture, indipendentemente se sono di vendita o acquisto.
La soglia minima quantità non è impostabile a zero. Se tento di impostare 0, mi restituisce sempre il valore 1.
Sto provando la versione HEAD.
Per migliorare la scalabilità e il grado di manutenibilità del codice, in futuro potrebbe risultare utile gestire i moduli del progetto attraverso pacchetti indipendenti installati attraverso Composer.
Un esempio di questa pratica può essere individuato nella maggior parte dei progetti moderni, dove diverse componenti dedicate a specifiche azioni vengono gestite in repository separate con un relativo controllo di versione.
Questa modifica permetterebbe alcuni importanti miglioramenti a livello di codice, tra cui il completo spostamento della gestione delle operazioni all'interno di classi generalizzate e non dipendenti da singoli file PHP, aumentando così la portabilità del progetto.
In particolare, proporrei una suddivisione del genere:
File di base del progetto (devcode-it/openstamanager)
All'interno della repository principale potrebbe essere gestita la struttura del gestionale presente nella root del server; in particolare, la cartella per i log, per gli upload e per i temi, oltre che i file PHP necessari a completare le richieste HTTP.
Di conseguenza, questa repository sarebbe dedicata a definire la struttura generale del gestionale per tutti i componenti che potrebbero essere personalizzati/inseriti/modificati dagli utenti.
Core del progetto
La repository in questione conterrebbe tutte le strutture di base che si occuperebbero di far funzionare il progetto, preferibilmente gestite attraverso una logica ad oggetti.
I file PHP della repository principale richiamerebbero semplicemente queste classi per rispondere alla richieste HTTP, senza effettuare alcun tipo di operazione indipendente.
Repository dei moduli
Ogni modulo possiederebbe una repository apposita, dedicata a gestire i contenuti da visualizzare nelle pagine (gli attuali file edit.php, actions.php, ... in futuro esportabili a loro volta in una struttura ad oggetti) e i file di installazione e aggiornamento.
Il core del progetto dovrebbe occuparsi del relativo richiamo a questi moduli, dopo averli registrati a livello di database (come avviene attualmente).
Il vantaggio principale di questa struttura sarebbe l'indipendenza dei moduli, che potrebbero eventualmente essere aggiornati in modo separato rispetto al core secondo dei criteri stabilibili attraverso Composer.
Inoltre, separando i contenti specifici dell'installazione (log, upload, temi) dall'effettivo codice dedicato alla loro gestione, sarebbe possibile procedere all'aggiornamento del core del progetto senza rischio di perdere o sovrascrivere dati personalizzati.
Ovviamente, questa modifica risulta piuttosto corposa: la propongo per poter introdurre un'ulteriore discussione sui possibili miglioramenti futuri.
Qualcuno chiede di aggiungere la creazione intervento dall'anagrafica. Io propongo: perché non creare, ad esempio, un riquadro "Operazioni veloci" da dentro l'anagrafica?
Un tot di pulsanti del tipo "Nuovo intervento", "Nuova fattura", "Nuovo preventivo", ecc... così da aver già pre-selezionata l'anagrafica senza andare avanti e indietro fra i moduli.
Ho approfondito la presenza di campi DATETIME nel database, per controllare se c'erano miglioramenti simili a quelli indicati in #3.
Per la precisione, propongo la conversione a DATE dei seguenti attributi.
co_movimenti
co_ordiniservizio
co_ordiniservizio_pianificazionefatture
co_righe_contratti
co_righe_preventivi
co_scadenziario
dt_automezzi_tecnici
my_impianto_componenti
or_righe_ordini
Inoltre, i seguenti campi sono sostituibili con il nuovo attributo automatico created_at.
mg_prodotti
mg_movimenti
Propongo di sfruttare la tipologia DATETIME per continuare a memorizzare le seguenti date.
in_interventi
in_interventi_tecnici
Infine, ho individuato come tabella al momento inutilizzata dt_automezzi_tagliandi.
Elenco di miglioramenti minori consigliati/da considerare/da completare per le release future.
La lista può risultare utile per le persone che sono interessate a contribuire al progetto, per ottenere una maggiore comprensione del funzionamento generico del gestionale.
Come segnalato nel post del forum relativo (https://www.openstamanager.com/forum/viewtopic.php?f=4&t=88303), vorrei controllare il funzionamento corretto per i campo di Rivalsa INPS e Ritenuta d'acconto...
Ho controllato il codice, e attualmente i due campi compaiono come obbligatori:
@fpsoftware @lucasalva87 Questo comportamento è corretto?
Oppure sarebbe più corretto che comparissero nel seguente modo:
Ciao,
Ho provato a inserire un articolo nel modulo attività. Non viene inserito prezzo e descrizione.
Negli alti moduli funziona senza problemi (fatture, preventivi, ordini...)
Modulo per la gestione degli account SMTP per inviare le email dai moduli.
Modulo per l'invio mail standardizzato, integrabile per ogni modulo da cui scegliere:
Ogni modulo potrà avere più invii email.
Controllare click su menú principale di sinistra.
Il campo di ricerca perde il focus e non permette di inserire testo
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.