Skip to content

Commit d5ba6c9

Browse files
committed
Merge remote-tracking branch 'origin/v6'
2 parents 3330bc4 + 3adc828 commit d5ba6c9

45 files changed

Lines changed: 1565 additions & 86 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/lsfusion/MyCompany.lsf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ REQUIRE Eval, ProcessMonitor, Backup, Chat,
1111
ProjectManagement,
1212
HumanResources,
1313
CRM,
14+
Fleet,
1415
BillReceiptCost, BillReceiptCostService; // initialize after Purchase

src/main/lsfusion/crm/CRMSettings.lsf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ DESIGN options {
1717
}
1818

1919
NAVIGATOR {
20-
NEW FOLDER crm 'CRM' WINDOW toolbar {
20+
NEW FOLDER crm 'CRM' WINDOW toolbar IMAGE r'person' {
2121
NEW FOLDER operations 'Operations' {
2222
}
2323
NEW FOLDER dashboards 'Processes' {

src/main/lsfusion/crm/leads/Lead.lsf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ FORM lead '{Lead}'
127127
;
128128

129129
DESIGN lead {
130+
height = 800;
130131
OBJECTS {
131132
NEW pane {
132133
horizontal = TRUE;

src/main/lsfusion/crm/leads/LeadCall.lsf

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,37 @@ callerName (Lead l) = CONCAT ' ', name(l), '(' + 'Lead' + ')';
1515

1616
@defineObjectHooks(lead, l, 'Lead', openLeadPhone, salesPerson, callerName);
1717

18+
WHEN LOCAL SETCHANGED(lead(Call c)) AND NOT customer(lead(c)) DO
19+
customer(lead(c)) <- partner(c);
20+
21+
@extendFormCall(lead, l, 'Lead');
22+
23+
changeLead (Call c, Lead l) {
24+
NEWSESSION { lead(c) <- l; APPLY; }
25+
}
26+
27+
EXTEND FORM call
28+
OBJECTS l = Lead
29+
PROPERTIES changeLead(c, l) HEADER name(l) COLUMNS(l) DISABLEIF lead(c) = l
30+
FILTERS customer(l) = partner(c)
31+
;
32+
33+
DESIGN call {
34+
lead {
35+
PROPERTY(newLead(c)) {
36+
showIf = c IS Call;
37+
}
38+
MOVE PROPERTY(changeLead(c, l));
39+
REMOVE BOX(l);
40+
}
41+
}
42+
1843
// dashboard
1944
ignoredLead 'Ignored' = DATA BOOLEAN (Call);
2045

2146
leadCall (Call c) = OVERRIDE lead(c), leadPhone(caller(c));
2247

23-
openLead 'Lead' (Call c) {
48+
openLeadCall 'Lead' (Call c) {
2449
NEWSESSION {
2550
SHOW lead OBJECTS l = leadCall(c) DOCKED;
2651
}
@@ -62,7 +87,7 @@ EXTEND FORM leads
6287
id, startedAt, caller, recipient, callerName, nameRedirect, nameEmployee, duration, result
6388
PROPERTIES(call) requestRecord GRID DISABLEIF NOT recorded(call)
6489
PROPERTIES(call) ignoredLead ON CHANGE { NEWSESSION { INPUT b = ignoredLead(call) CHANGE; APPLY; } }
65-
PROPERTIES(call) openLead GRID DISABLEIF NOT leadCall(call)
90+
PROPERTIES(call) openLeadCall GRID DISABLEIF NOT leadCall(call)
6691
PROPERTIES(call) TOOLBAR
6792
createLead SHOWIF NOT leadCall(call),
6893
attachLead SHOWIF NOT lead(call) AND leadCall(call)

src/main/lsfusion/fleet/Fleet.lsf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
MODULE Fleet;
2+
3+
REQUIRE Vehicle, VehicleService, VehicleContract, VehicleDriver, VehicleTag,
4+
BillVehicleService;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
MODULE FleetSettings;
2+
3+
NAMESPACE Fleet;
4+
5+
FORM options 'Settings'
6+
;
7+
8+
DESIGN options {
9+
OBJECTS {
10+
NEW tabbedPane {
11+
tabbed = TRUE;
12+
fill = 1;
13+
NEW commons {
14+
caption = 'Main';
15+
}
16+
}
17+
}
18+
}
19+
20+
NAVIGATOR {
21+
NEW FOLDER fleet 'Fleet' WINDOW toolbar IMAGE r'vehicle' {
22+
NEW FOLDER operations 'Operations' {
23+
}
24+
NEW FOLDER reporting 'Reporting' {
25+
}
26+
NEW FOLDER settings 'Configuration' {
27+
NEW options;
28+
}
29+
}
30+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
MODULE BillVehicleService;
2+
3+
REQUIRE Bill, VehicleService;
4+
5+
NAMESPACE Fleet;
6+
7+
vehicle 'Vehicle' = DATA BOOLEAN (BillType);
8+
EXTEND FORM billType PROPERTIES(o) vehicle;
9+
10+
bill 'Bill' = DATA Bill (VehicleService) INDEXED;
11+
numberDateBill 'Bill' (VehicleService s) = numberDate(bill(s));
12+
13+
countVehicleServices 'Vehicle services' (Bill b) = GROUP SUM 1 IF bill(VehicleService s) = b;
14+
15+
untaxedAmountService (Bill b) = GROUP SUM untaxedAmount(VehicleService vs) IF bill(vs) = b;
16+
taxAmountService (Bill b) = GROUP SUM taxAmount(VehicleService vs) IF bill(vs) = b;
17+
18+
WHEN LOCAL SETCHANGED(bill(VehicleService s)) AND NOT date(s) DO { date(s) <- date(bill(s)); }
19+
WHEN LOCAL SETCHANGED(bill(VehicleService s)) AND NOT vendor(s) DO { vendor(s) <- vendor(bill(s)); }
20+
WHEN LOCAL SETCHANGED(bill(VehicleService s)) AND NOT untaxedAmount(s) DO { untaxedAmount(s) <- untaxedAmount(bill(s)); }
21+
WHEN LOCAL SETCHANGED(bill(VehicleService s)) AND NOT taxAmount(s) DO { taxAmount(s) <- taxAmount(bill(s)); }
22+
23+
EXTEND FORM vehicle
24+
PROPERTIES(s) numberDateBill
25+
;
26+
27+
EXTEND FORM vehicleService
28+
PROPERTIES(s) numberDateBill
29+
;
30+
31+
DESIGN vehicleService {
32+
header {
33+
MOVE PROPERTY(numberDateBill(s));
34+
}
35+
}
36+
37+
EXTEND FORM vehicleServices
38+
PROPERTIES(s) READONLY numberDateBill
39+
;
40+
41+
// bill
42+
EXTEND FORM bill
43+
OBJECTS vs = VehicleService
44+
PROPERTIES(vs) date, nameVendor, nameVehicle, nameType, odometerValue, quantity, price,
45+
untaxedAmount FOOTER untaxedAmountService(b),
46+
taxAmount FOOTER taxAmountService(b),
47+
note
48+
PROPERTIES(vs) NEW, DELETE
49+
50+
FILTERS bill(vs) = b
51+
;
52+
53+
DESIGN bill {
54+
details {
55+
MOVE BOX(vs) {
56+
showIf = vehicle(type(b));
57+
caption = badged('Vehicle services', countVehicleServices(b));
58+
}
59+
}
60+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
MODULE FuelType;
2+
3+
REQUIRE FleetSettings, MasterData;
4+
5+
NAMESPACE Fleet;
6+
7+
CLASS FuelType 'Fuel type';
8+
TABLE fuelType (FuelType);
9+
10+
name '{master.data.name}' = DATA ISTRING[100] (FuelType) CHARWIDTH 15;
11+
12+
FORM fuelType 'Fuel type'
13+
OBJECTS o = FuelType PANEL
14+
PROPERTIES(o) name
15+
16+
EDIT FuelType OBJECT o
17+
;
18+
19+
EXTEND FORM options
20+
OBJECTS ftp = FuelType
21+
PROPERTIES(ftp) READONLY name
22+
PROPERTIES(ftp) NEWSESSION NEW, EDIT, DELETE
23+
;
24+
25+
DESIGN options {
26+
tabbedPane {
27+
MOVE BOX(ftp) { caption = 'Fuel types'; }
28+
}
29+
}
30+
31+
FORM dialogFuelTypes 'Fuel types'
32+
OBJECTS o = FuelType
33+
PROPERTIES(o) READONLY name
34+
35+
LIST FuelType OBJECT o
36+
;
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
MODULE Vehicle;
2+
3+
REQUIRE VehicleModel, Company, FuelType, VehicleCategory, FileUtils, Icon;
4+
5+
NAMESPACE Fleet;
6+
7+
CLASS Vehicle 'Vehicle';
8+
9+
readonly = ABSTRACT CASE BOOLEAN (Vehicle);
10+
11+
@defineID(vehicle, 'Vehicles', 'VH', 3);
12+
13+
model 'Vehicle model' = DATA VehicleModel (Vehicle);
14+
nameModel 'Vehicle model' (Vehicle v) = name(model(v));
15+
16+
licensePlate 'License plate' = DATA STRING[20] (Vehicle);
17+
18+
name '{Name}' (Vehicle v) = CONCAT ' / ', nameModel(v), licensePlate(v) CHARWIDTH 25;
19+
20+
VIN r'VIN' = DATA STRING[17] (Vehicle);
21+
22+
company 'Company' = DATA Company (Vehicle);
23+
nameCompany 'Company' (Vehicle v) = name(company(v));
24+
25+
vehicleCategory 'Vehicle category' = DATA VehicleCategory (Vehicle);
26+
nameVehicleCategory 'Vehicle category' (Vehicle v) = name(vehicleCategory(v));
27+
28+
color 'Color' = DATA ISTRING[50] (Vehicle);
29+
30+
yearOfManufacture 'Year of manufacture' = DATA INTEGER (Vehicle);
31+
32+
seatsNumber 'Seats number' = DATA INTEGER (Vehicle);
33+
doorsNumber 'Doors number' = DATA INTEGER (Vehicle);
34+
35+
engineDisplacement 'Engine displacement, cc' = DATA INTEGER (Vehicle);
36+
37+
automaticTransmission 'Automatic transmission' = DATA BOOLEAN (Vehicle);
38+
39+
fuelType 'Fuel type' = DATA FuelType (Vehicle);
40+
nameFuelType 'Fuel type' (Vehicle v) = name(fuelType(v));
41+
42+
note 'Note' = DATA ISTRING (Vehicle) CHARWIDTH 20;
43+
44+
description 'Description' = DATA RICHTEXT (Vehicle);
45+
46+
FORM vehicle 'Vehicle'
47+
OBJECTS v = Vehicle PANEL
48+
PROPERTIES(v) READONLYIF readonly(v)
49+
id, nameModel, licensePlate, VIN, nameCompany,
50+
nameVehicleCategory, color, yearOfManufacture,
51+
seatsNumber, doorsNumber,
52+
automaticTransmission, nameFuelType, engineDisplacement,
53+
note, description
54+
55+
EDIT Vehicle OBJECT v
56+
;
57+
58+
DESIGN vehicle {
59+
OBJECTS {
60+
NEW actions {
61+
caption = 'Actions';
62+
horizontal = TRUE;
63+
alignment = STRETCH;
64+
}
65+
NEW pane {
66+
horizontal = TRUE;
67+
fill = 1;
68+
NEW leftPane {
69+
fill = 2;
70+
width = 400;
71+
NEW header {
72+
lines = 2;
73+
alignment = STRETCH;
74+
MOVE PROPERTY(id(v));
75+
MOVE PROPERTY(nameModel(v));
76+
MOVE PROPERTY(licensePlate(v));
77+
MOVE PROPERTY(VIN(v));
78+
MOVE PROPERTY(nameCompany(v));
79+
}
80+
NEW model {
81+
caption = 'Model';
82+
lines = 2;
83+
alignment = STRETCH;
84+
MOVE PROPERTY(nameVehicleCategory(v));
85+
MOVE PROPERTY(color(v));
86+
MOVE PROPERTY(yearOfManufacture(v));
87+
MOVE PROPERTY(seatsNumber(v));
88+
MOVE PROPERTY(doorsNumber(v));
89+
}
90+
NEW engine {
91+
caption = 'Engine';
92+
lines = 2;
93+
alignment = STRETCH;
94+
MOVE PROPERTY(automaticTransmission(v));
95+
MOVE PROPERTY(nameFuelType(v));
96+
MOVE PROPERTY(engineDisplacement(v));
97+
}
98+
MOVE PROPERTY(note(v));
99+
NEW details {
100+
fill = 1;
101+
tabbed = TRUE;
102+
MOVE PROPERTY(description(v));
103+
}
104+
}
105+
NEW rightPane {
106+
fill = 1;
107+
width = 200;
108+
}
109+
}
110+
}
111+
}
112+
113+
@defineObjectComments(vehicle, v, rightPane);
114+
@defineObjectFiles(vehicle, v, 'Vehicle file');
115+
116+
FORM vehicles 'Vehicles'
117+
OBJECTS v = Vehicle
118+
PROPERTIES(v) READONLYIF isReadonly()
119+
id, nameModel, licensePlate, VIN, nameCompany,
120+
nameVehicleCategory, color, yearOfManufacture,
121+
seatsNumber, doorsNumber,
122+
automaticTransmission, nameFuelType, engineDisplacement,
123+
note
124+
125+
PROPERTIES(v) NEWSESSION NEW, EDIT, DELETE
126+
;
127+
128+
@extendFormEditable(vehicles);
129+
130+
FORM dialogVehicles 'Vehicles'
131+
OBJECTS v = Vehicle
132+
PROPERTIES(v) READONLY id, nameModel, licensePlate, VIN, nameCompany
133+
134+
LIST Vehicle OBJECT v
135+
;
136+
137+
NAVIGATOR {
138+
operations {
139+
NEW vehicles;
140+
}
141+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
MODULE VehicleCategory;
2+
3+
REQUIRE FleetSettings;
4+
5+
NAMESPACE Fleet;
6+
7+
CLASS VehicleCategory 'Vehicle category';
8+
TABLE vehicleCategory (VehicleCategory);
9+
10+
name '{master.data.name}' = DATA ISTRING[100] (VehicleCategory) CHARWIDTH 15;
11+
12+
FORM vehicleCategory 'Vehicle category'
13+
OBJECTS o = VehicleCategory PANEL
14+
PROPERTIES(o) name
15+
16+
EDIT VehicleCategory OBJECT o
17+
;
18+
19+
EXTEND FORM options
20+
OBJECTS vhc = VehicleCategory
21+
PROPERTIES(vhc) READONLY name
22+
PROPERTIES(vhc) NEWSESSION NEW, EDIT, DELETE
23+
;
24+
25+
DESIGN options {
26+
tabbedPane {
27+
MOVE BOX(vhc) { caption = 'Vehicle categories'; }
28+
}
29+
}
30+
31+
FORM dialogVehicleCategories 'Vehicle categories'
32+
OBJECTS o = VehicleCategory
33+
PROPERTIES(o) READONLY name
34+
35+
LIST VehicleCategory OBJECT o
36+
;

0 commit comments

Comments
 (0)