mirror of
https://github.com/itsdave-de/msp.git
synced 2025-05-06 15:35:12 +02:00
Anpassungen an den Verkaufstatistik Report + Styling
This commit is contained in:
parent
071d1e6060
commit
992914c29e
@ -8,15 +8,15 @@ frappe.ui.form.on('Verkaufsstatistik Report', {
|
|||||||
frm.trigger('preset');
|
frm.trigger('preset');
|
||||||
|
|
||||||
},
|
},
|
||||||
setup: function(frm) {
|
// setup: function(frm) {
|
||||||
frm.set_query("artikel",function(){
|
// frm.set_query("artikel",function(){
|
||||||
return {
|
// return {
|
||||||
filters: [
|
// filters: [
|
||||||
["Item","item_group", "in", ["Anwendungsentwicklung", "Arbeitszeiten Techniker"]]
|
// ["Item","item_group", "in", ["Anwendungsentwicklung", "Arbeitszeiten Techniker"]]
|
||||||
]
|
// ]
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
preset: function(frm) {
|
preset: function(frm) {
|
||||||
if (!frm.doc.preset) {
|
if (!frm.doc.preset) {
|
||||||
// No preset selected. Allow manual selection of dates.
|
// No preset selected. Allow manual selection of dates.
|
||||||
|
@ -68,7 +68,8 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "report_ausgabe",
|
"fieldname": "report_ausgabe",
|
||||||
"fieldtype": "Text Editor",
|
"fieldtype": "Text Editor",
|
||||||
"label": "Report Ausgabe"
|
"label": "Report Ausgabe",
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "report_section",
|
"fieldname": "report_section",
|
||||||
@ -95,7 +96,7 @@
|
|||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2021-10-26 16:02:19.458345",
|
"modified": "2022-03-11 08:32:22.749064",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "MSP",
|
"module": "MSP",
|
||||||
"name": "Verkaufsstatistik Report",
|
"name": "Verkaufsstatistik Report",
|
||||||
|
@ -25,12 +25,13 @@ class VerkaufsstatistikReport(Document):
|
|||||||
},
|
},
|
||||||
fields = ["posting_date", "name"]
|
fields = ["posting_date", "name"]
|
||||||
)
|
)
|
||||||
|
|
||||||
for si in si_list:
|
for si in si_list:
|
||||||
artikel_doc = frappe.get_doc("Sales Invoice", si["name"])
|
artikel_doc = frappe.get_doc("Sales Invoice", si["name"])
|
||||||
for artikel in artikel_doc.items:
|
for artikel in artikel_doc.items:
|
||||||
if artikel.item_code in artikel_name:
|
if artikel.item_code in artikel_name:
|
||||||
empl = str(artikel.item_name).replace("Arbeitszeit ","").replace("Herr ","").replace(" Anwendungsentwicklung","").replace("Remote-Service ","")
|
empl = str(artikel.item_name).replace("Arbeitszeit ","").replace("Herr ","").replace(" Anwendungsentwicklung","").replace("Remote-Service ","")
|
||||||
artikel_details = [si["posting_date"],empl,artikel.item_name,artikel.item_code,artikel.qty]
|
artikel_details = [si["posting_date"],empl,artikel.item_name,artikel.item_code,artikel.qty,artikel.rate]
|
||||||
item_list.append(artikel_details)
|
item_list.append(artikel_details)
|
||||||
|
|
||||||
if self.report_basierend_auf == "Lieferschein":
|
if self.report_basierend_auf == "Lieferschein":
|
||||||
@ -49,11 +50,11 @@ class VerkaufsstatistikReport(Document):
|
|||||||
for artikel in artikel_doc.items:
|
for artikel in artikel_doc.items:
|
||||||
if artikel.item_code in artikel_name:
|
if artikel.item_code in artikel_name:
|
||||||
empl = str(artikel.item_name).replace("Arbeitszeit ","").replace("Herr ","").replace(" Anwendungsentwicklung","").replace("Remote-Service ","")
|
empl = str(artikel.item_name).replace("Arbeitszeit ","").replace("Herr ","").replace(" Anwendungsentwicklung","").replace("Remote-Service ","")
|
||||||
artikel_details = [dn["posting_date"],empl,artikel.item_name,artikel.item_code,artikel.qty]
|
artikel_details = [dn["posting_date"],empl,artikel.item_name,artikel.item_code,artikel.qty, artikel.rate]
|
||||||
item_list.append(artikel_details)
|
item_list.append(artikel_details)
|
||||||
|
|
||||||
|
|
||||||
df = pd.DataFrame(item_list, columns = ["Datum","Mitarbeiter","Item Name","Item","Anzahl"])
|
df = pd.DataFrame(item_list, columns = ["Datum","Mitarbeiter","Item Name","Item","Anzahl","Preis"])
|
||||||
df['Datum'] = pd.to_datetime(df['Datum'])
|
df['Datum'] = pd.to_datetime(df['Datum'])
|
||||||
df['Kalenderwoche']= df['Datum'].dt.isocalendar().week
|
df['Kalenderwoche']= df['Datum'].dt.isocalendar().week
|
||||||
df['Monat']= df['Datum'].dt.month
|
df['Monat']= df['Datum'].dt.month
|
||||||
@ -79,14 +80,24 @@ class VerkaufsstatistikReport(Document):
|
|||||||
frappe.msgprint("Bitte Zeiteinheit für Gruppierung auswählen")
|
frappe.msgprint("Bitte Zeiteinheit für Gruppierung auswählen")
|
||||||
|
|
||||||
if self.gruppiert_nach == "Artikel":
|
if self.gruppiert_nach == "Artikel":
|
||||||
filters = filters +["Item","Item Name"]
|
filters = filters +["Item","Item Name","Preis"]
|
||||||
if self.gruppiert_nach == "Mitarbeiter":
|
if self.gruppiert_nach == "Mitarbeiter":
|
||||||
filters.append("Mitarbeiter")
|
filters.append("Mitarbeiter")
|
||||||
df_grouped = df.groupby(filters).agg({'Anzahl': ['sum']}).reset_index()
|
#df_grouped = df.groupby(filters).agg({'Anzahl': ['sum']}).reset_index()
|
||||||
|
df_grouped = df.groupby(filters)['Anzahl'].sum().to_frame('Anzahl').reset_index()
|
||||||
html = df_grouped.to_html(header = False,index = False)
|
self.report_ausgabe = self.get_styler(df_grouped).render()
|
||||||
#html_2 = html.replace('<tr>','<tr style="text-align: center;">')
|
|
||||||
self.report_ausgabe = html
|
|
||||||
|
|
||||||
if item_list == []:
|
if item_list == []:
|
||||||
self.report_ausgabe = '<p>' + ("Für die angegebene Periode sind keine Daten vorhanden") + '</p>'
|
self.report_ausgabe = '<p>' + ("Für die angegebene Periode sind keine Daten vorhanden") + '</p>'
|
||||||
|
|
||||||
|
def get_styler(self,df):
|
||||||
|
styles = [
|
||||||
|
dict(props=[("border-collapse", "collapse"), ("width", "100%")]),
|
||||||
|
dict(selector="th, td", props=[("padding", ".75rem"), ("border-top", "1px solid #dee2e6")]),
|
||||||
|
dict(selector=".col_heading", props=[('text-align', 'right')]),
|
||||||
|
#dict(selector=".col_heading.col0", props=[('text-align', 'left')]),
|
||||||
|
dict(selector=".data", props=[("text-align", "right")]),
|
||||||
|
dict(selector=".col0", props=[("text-align", "left")]), # first column
|
||||||
|
dict(selector="tbody tr:nth-of-type(odd)", props=[("background-color", "rgba(0,0,0,.05)")]), # stripes
|
||||||
|
]
|
||||||
|
return df.style.hide_index().format({"Anzahl":'{:.2f}', "Preis":'{:.2f}'}).set_table_styles(styles)
|
Loading…
x
Reference in New Issue
Block a user