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');
|
||||
|
||||
},
|
||||
setup: function(frm) {
|
||||
frm.set_query("artikel",function(){
|
||||
return {
|
||||
filters: [
|
||||
["Item","item_group", "in", ["Anwendungsentwicklung", "Arbeitszeiten Techniker"]]
|
||||
]
|
||||
}
|
||||
});
|
||||
},
|
||||
// setup: function(frm) {
|
||||
// frm.set_query("artikel",function(){
|
||||
// return {
|
||||
// filters: [
|
||||
// ["Item","item_group", "in", ["Anwendungsentwicklung", "Arbeitszeiten Techniker"]]
|
||||
// ]
|
||||
// }
|
||||
// });
|
||||
// },
|
||||
preset: function(frm) {
|
||||
if (!frm.doc.preset) {
|
||||
// No preset selected. Allow manual selection of dates.
|
||||
|
@ -68,7 +68,8 @@
|
||||
{
|
||||
"fieldname": "report_ausgabe",
|
||||
"fieldtype": "Text Editor",
|
||||
"label": "Report Ausgabe"
|
||||
"label": "Report Ausgabe",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "report_section",
|
||||
@ -95,7 +96,7 @@
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2021-10-26 16:02:19.458345",
|
||||
"modified": "2022-03-11 08:32:22.749064",
|
||||
"modified_by": "Administrator",
|
||||
"module": "MSP",
|
||||
"name": "Verkaufsstatistik Report",
|
||||
|
@ -25,12 +25,13 @@ class VerkaufsstatistikReport(Document):
|
||||
},
|
||||
fields = ["posting_date", "name"]
|
||||
)
|
||||
|
||||
for si in si_list:
|
||||
artikel_doc = frappe.get_doc("Sales Invoice", si["name"])
|
||||
for artikel in artikel_doc.items:
|
||||
if artikel.item_code in artikel_name:
|
||||
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)
|
||||
|
||||
if self.report_basierend_auf == "Lieferschein":
|
||||
@ -49,11 +50,11 @@ class VerkaufsstatistikReport(Document):
|
||||
for artikel in artikel_doc.items:
|
||||
if artikel.item_code in artikel_name:
|
||||
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)
|
||||
|
||||
|
||||
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['Kalenderwoche']= df['Datum'].dt.isocalendar().week
|
||||
df['Monat']= df['Datum'].dt.month
|
||||
@ -79,14 +80,24 @@ class VerkaufsstatistikReport(Document):
|
||||
frappe.msgprint("Bitte Zeiteinheit für Gruppierung auswählen")
|
||||
|
||||
if self.gruppiert_nach == "Artikel":
|
||||
filters = filters +["Item","Item Name"]
|
||||
filters = filters +["Item","Item Name","Preis"]
|
||||
if self.gruppiert_nach == "Mitarbeiter":
|
||||
filters.append("Mitarbeiter")
|
||||
df_grouped = df.groupby(filters).agg({'Anzahl': ['sum']}).reset_index()
|
||||
|
||||
html = df_grouped.to_html(header = False,index = False)
|
||||
#html_2 = html.replace('<tr>','<tr style="text-align: center;">')
|
||||
self.report_ausgabe = html
|
||||
#df_grouped = df.groupby(filters).agg({'Anzahl': ['sum']}).reset_index()
|
||||
df_grouped = df.groupby(filters)['Anzahl'].sum().to_frame('Anzahl').reset_index()
|
||||
self.report_ausgabe = self.get_styler(df_grouped).render()
|
||||
|
||||
if item_list == []:
|
||||
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