summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-20 11:19:03 +0700
committerFIN-IT_AndriFP <it@fixcomart.co.id>2025-10-20 11:19:03 +0700
commit4777ebcb87e53b2460661019d70c08aea938dd21 (patch)
tree5b925c7002fe1f8471a9ba18de98fd4d5558e7ff
parent06e514d5287d2a316787e80648a06b2d92dc0d47 (diff)
(andri) fix create
-rw-r--r--indoteknik_custom/models/advance_payment_request.py41
-rw-r--r--indoteknik_custom/views/advance_payment_request.xml4
2 files changed, 36 insertions, 9 deletions
diff --git a/indoteknik_custom/models/advance_payment_request.py b/indoteknik_custom/models/advance_payment_request.py
index 56d4d24d..d1011e8e 100644
--- a/indoteknik_custom/models/advance_payment_request.py
+++ b/indoteknik_custom/models/advance_payment_request.py
@@ -664,8 +664,22 @@ class AdvancePaymentRequest(models.Model):
}
}
+ def _get_department_titles_mapping(self):
+ return {
+ 'sales': 'Sales Manager',
+ 'merchandiser': 'Merchandiser Manager',
+ 'marketing': 'Marketing Manager',
+ 'logistic': 'Logistic Manager',
+ 'procurement': 'Procurement Manager',
+ 'fat': 'Finance & Accounting Manager',
+ 'it': 'IT Manager',
+ 'hr_ga': 'HR & GA Manager',
+ }
+
@api.model
def create(self, vals):
+ jakarta_tz = pytz.timezone('Asia/Jakarta')
+ now = datetime.now(jakarta_tz).replace(tzinfo=None)
user = self.env.user
pum_ids = self.search([
@@ -692,8 +706,21 @@ class AdvancePaymentRequest(models.Model):
position = vals.get('position_type')
if position == 'staff':
initial_status = 'pengajuan1'
- elif position in ('manager', 'pimpinan'):
+ elif position == 'manager':
+ initial_status = 'pengajuan2'
+ applicant_name = vals.get('applicant_name')
+ vals['name_approval_departement'] = self.env['res.users'].browse(applicant_name).name or ''
+ vals['date_approved_department'] = now
+ department_type = vals.get('departement_type')
+ department_titles = self._get_department_titles_mapping()
+ vals['position_department'] = department_titles.get(department_type, 'Departement Manager')
+ elif position == 'pimpinan':
initial_status = 'pengajuan2'
+ applicant_name = vals.get('applicant_name')
+ vals['name_approval_pimpinan'] = self.env['res.users'].browse(applicant_name).name or ''
+ vals['position_pimpinan'] = 'Pimpinan'
+ vals['date_approved_pimpinan'] = now
+
vals['status'] = initial_status
if not vals.get('number') or vals['number'] == 'New Draft':
@@ -803,7 +830,7 @@ class ReimburseLine(models.Model):
distance_departure = fields.Float(string='Pergi (Km)', tracking=3)
distance_return = fields.Float(string='Pulang (Km)', tracking=3)
quantity = fields.Float(string='Quantity', tracking=3)
- price = fields.Float(string='Price', tracking=3)
+ price_unit = fields.Float(string='Price', tracking=3)
total = fields.Float(string='Total', tracking=3, compute='_compute_total')
# total = fields.Float(string='Total', tracking=3)
currency_id = fields.Many2one(related='request_id.currency_id')
@@ -837,10 +864,10 @@ class ReimburseLine(models.Model):
for line in self:
line.is_current_user_ap = is_ap
- @api.depends('quantity', 'price', 'is_vehicle')
+ @api.depends('quantity', 'price_unit', 'is_vehicle')
def _compute_total(self):
for line in self:
- line.total = line.quantity * line.price
+ line.total = line.quantity * line.price_unit
@api.onchange('is_vehicle', 'vehicle_type', 'distance_departure', 'distance_return')
def _onchange_vehicle_data(self):
@@ -848,7 +875,7 @@ class ReimburseLine(models.Model):
self.vehicle_type = False
self.distance_departure = 0
self.distance_return = 0
- self.price = 0
+ self.price_unit = 0
return
total_distance = self.distance_departure + self.distance_return
@@ -857,10 +884,10 @@ class ReimburseLine(models.Model):
biaya_per_km = 0
if self.vehicle_type == 'car':
biaya_per_km = 1000 # Rp 10.000 / 10 km
- self.price = biaya_per_km
+ self.price_unit = biaya_per_km
elif self.vehicle_type == 'motor':
biaya_per_km = 500 # Rp 10.000 / 20 km
- self.price = biaya_per_km
+ self.price_unit = biaya_per_km
self.total = total_distance * biaya_per_km
self.quantity = total_distance
else:
diff --git a/indoteknik_custom/views/advance_payment_request.xml b/indoteknik_custom/views/advance_payment_request.xml
index b7db4e07..39f8f588 100644
--- a/indoteknik_custom/views/advance_payment_request.xml
+++ b/indoteknik_custom/views/advance_payment_request.xml
@@ -121,7 +121,7 @@
<field name="account_id"/>
<!-- <field name="distance"/> -->
<field name="quantity"/>
- <field name="price"/>
+ <field name="price_unit"/>
<field name="total" sum="Total"/>
<field name="is_checked"/>
<field name="currency_id" invisible="1"/>
@@ -137,7 +137,7 @@
<field name="distance_departure" attrs="{'invisible': [('is_vehicle', '=', False)]}"/>
<field name="distance_return" attrs="{'invisible': [('is_vehicle', '=', False)]}"/>
<field name="quantity"/>
- <field name="price" attrs="{'readonly': [('is_vehicle', '=', True)]}" force_save ="1"/>
+ <field name="price_unit" attrs="{'readonly': [('is_vehicle', '=', True)]}" force_save ="1"/>
<field name="total" readonly="1"/>
<field name="currency_id" invisible="1"/>
<field name="attachment_type"/>