Esempio n. 1
0
 def create(self, code, action, message):
     audit = AgentAuditTrail()
     audit.agent_code = code
     audit.date = DateTime.malaysia_now()
     audit.action = action
     audit.message = message
     audit.put()
 def create(self, code, action, message):
     audit = AgentAuditTrail()
     audit.agent_code = code
     audit.date = DateTime.malaysia_now()
     audit.action = action
     audit.message = message
     audit.put()
 def create(self, ic, action, message):
     audit = CustomerAuditTrail()
     audit.ic = ic
     audit.date = DateTime.malaysia_now()
     audit.action = action
     audit.message = message
     audit.put()
Esempio n. 4
0
 def create(self, ic, action, message):
     audit = CustomerAuditTrail()
     audit.ic = ic
     audit.date = DateTime.malaysia_now()
     audit.action = action
     audit.message = message
     audit.put()
Esempio n. 5
0
    def __create(self, vm):
        # get master seq
        master_da = MasterDataAccess()
        master = master_da.get('Deposit')
        master.seq += 1
        master.put()

        # insert deposit
        tran_code = Deposit.get_tran_code(master.seq)
        vm.tran_code = tran_code

        data = Deposit(parent=self.get_key(vm.tran_date, vm.agent_code),
                       id=tran_code)
        data.tran_code = tran_code
        data.tran_type = vm.tran_type
        data.tran_date = vm.tran_date
        data.seq = master.seq
        data.agent_code = vm.agent_code
        data.agent = vm.agent.key
        data.remark = vm.remark

        data.amt = vm.amt

        data.payment_date = vm.payment_date
        data.payment_type = vm.payment_type
        data.payment_ref_no = vm.payment_ref_no
        data.payment_file_name = vm.payment_file_name
        data.payment_url = vm.payment_url

        data.verified_by = ''
        data.verified_date = None
        data.verify_status = 0

        data.created_by = vm.user_code
        data.created_date = DateTime.malaysia_now()
        data.modified_by = ''
        data.modified_date = None
        data.void_by = ''
        data.void_date = None
        data.void = False
        data.last_modified = str(data.created_date)
        data.put()

        # insert tran
        tran_obj = TranViewModel()
        tran_obj.tran_code = data.tran_code
        tran_obj.tran_date = data.tran_date
        tran_obj.tran_type = data.tran_type
        tran_obj.agent_code = data.agent_code

        tran_da = TranDataAccess()
        tran_da.create(tran_obj)

        # update agent bal amt
        agent_da = AgentDataAccess()
        agent = agent_da.get(vm.agent_code)
        agent.bal_amt += vm.amt
        agent.bal_amt = round(agent.bal_amt, 2)
        agent.put()
Esempio n. 6
0
 def __create(self, buy_obj):
     # get master seq
     master_da = MasterDataAccess()
     master = master_da.get('Buy')
     master.seq += 1
     master.put()
     
     # insert buy
     tran_code = Buy.get_tran_code(master.seq)
     buy_obj.tran_code = tran_code    # return tran_code
     
     buy = Buy(
               parent=self.get_key(buy_obj.tran_date, buy_obj.agent_code), 
               id=tran_code
               )
     buy.tran_code = tran_code
     buy.tran_type = buy_obj.tran_type
     buy.tran_date = buy_obj.tran_date
     buy.seq = master.seq
     buy.agent_code = buy_obj.agent_code
     buy.agent = buy_obj.agent.key
     buy.remark = buy_obj.remark
     
     buy.qty = buy_obj.qty
     buy.unit_price = buy_obj.unit_price
     buy.sub_total = buy_obj.sub_total
     buy.comm_per = buy_obj.comm_per
     buy.comm_amt = buy_obj.comm_amt
     buy.amt = buy_obj.amt
     
     buy.payment_date = buy_obj.payment_date
     buy.payment_type = buy_obj.payment_type
     buy.payment_ref_no = buy_obj.payment_ref_no
     buy.payment_file_name = buy_obj.payment_file_name
     buy.payment_url = buy_obj.payment_url
     
     buy.verified_by = ''
     buy.verified_date = None
     buy.verify_status = 0
     
     buy.created_by = buy_obj.user_code
     buy.created_date = DateTime.malaysia_now()
     buy.modified_by = ''
     buy.modified_date = None
     buy.void_by = ''
     buy.void_date = None
     buy.void = False
     buy.last_modified = str(buy.created_date)
     buy.put()
     
     # insert tran
     tran_obj = TranViewModel()
     tran_obj.tran_code = buy.tran_code
     tran_obj.tran_date = buy.tran_date
     tran_obj.tran_type = buy.tran_type
     tran_obj.agent_code = buy.agent_code
     
     tran_da = TranDataAccess()
     tran_da.create(tran_obj)
Esempio n. 7
0
    def __create(self, vm):
        # get master seq
        master_da = MasterDataAccess()
        master = master_da.get('Charge')
        master.seq += 1
        master.put()

        # insert deposit
        tran_code = Charge.get_tran_code(master.seq)
        vm.tran_code = tran_code

        data = Charge(parent=self.get_key(vm.tran_date, vm.attendant_code),
                      id=tran_code)
        data.tran_code = tran_code
        data.tran_type = vm.tran_type
        data.tran_date = vm.tran_date
        data.seq = master.seq
        data.remark = vm.remark

        data.attendant_code = vm.attendant_code
        data.attendant = vm.attendant.key
        data.lot_no = vm.lot_no
        data.car_reg_no = vm.car_reg_no
        data.car = vm.car.key

        data.start_time = vm.start_time
        data.charge_time = vm.charge_time
        data.duration = vm.duration
        data.sub_total = vm.sub_total
        data.comm_per = vm.comm_per
        data.comm_amt = vm.comm_amt
        data.amt = vm.amt
        data.ended = False

        data.created_by = ''
        data.created_date = DateTime.malaysia_now()
        data.modified_by = ''
        data.modified_date = None
        data.void_by = ''
        data.void_date = None
        data.void = False
        data.last_modified = str(data.created_date)
        data.put()

        # insert tran
        tran_obj = TranViewModel()
        tran_obj.tran_code = data.tran_code
        tran_obj.tran_date = data.tran_date
        tran_obj.tran_type = data.tran_type
        tran_obj.car_reg_no = data.car_reg_no

        tran_da = TranDataAccess()
        tran_da.create(tran_obj)

        # update car bal amt
        self.__update_car_bal_amt(vm.car_reg_no, vm.sub_total)
Esempio n. 8
0
    def __create(self, vm):
        # validate id
        data_validate = self.get(vm.code)
        if data_validate != None:
            raise Exception('Attendant ID already exist.')

        data = Attendant(id=vm.code)
        data.code = vm.code
        data.name = vm.name
        data.pwd = vm.pwd
        data.comm_per = vm.comm_per
        data.active = True
        data.last_modified = str(DateTime.malaysia_now())
        data.put()
Esempio n. 9
0
 def __create(self, vm):
     # validate id
     data_validate = self.get(vm.code)
     if data_validate != None:
         raise Exception('User ID already exist.')
     
     data = User(id=vm.code)
     data.code = vm.code
     data.name = vm.name
     data.pwd = vm.pwd
     data.level = vm.level
     data.active = vm.active
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
Esempio n. 10
0
 def __create(self, vm):
     # validate id
     data_validate = self.get(vm.code)
     if data_validate != None:
         raise Exception('Attendant ID already exist.')
     
     data = Attendant(id=vm.code)
     data.code = vm.code
     data.name = vm.name
     data.pwd = vm.pwd
     data.comm_per = vm.comm_per
     data.active = True
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
Esempio n. 11
0
    def __update(self, vm):
        # get data
        data = self.get(vm.reg_no)
        if data == None:
            raise Exception('Car not found.')

        # validate lastModified
        if data.last_modified != vm.last_modified:
            raise Exception('Record has been modified by other user.')

        data.active = vm.active
        data.last_modified = str(DateTime.malaysia_now())
        data.put()

        return data
Esempio n. 12
0
 def __update(self, vm):
     # get data
     data = self.get(vm.reg_no)
     if data == None:
         raise Exception('Car not found.')
     
     # validate lastModified
     if data.last_modified != vm.last_modified:
         raise Exception('Record has been modified by other user.')
     
     data.active = vm.active
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
     
     return data
Esempio n. 13
0
    def __update(self, vm):
        # get data
        data = self.get(vm.code)
        if data == None:
            raise Exception('Attendant not found.')

        # validate lastModified
        if data.last_modified != vm.last_modified:
            raise Exception('Record has been modified by other user.')

        data.name = vm.name
        data.comm_per = vm.comm_per
        data.active = vm.active
        data.last_modified = str(DateTime.malaysia_now())
        data.put()
Esempio n. 14
0
 def __update(self, vm):
     # get data
     data = self.get(vm.code)
     if data == None:
         raise Exception('Attendant not found.')
     
     # validate lastModified
     if data.last_modified != vm.last_modified:
         raise Exception('Record has been modified by other user.')
     
     data.name = vm.name
     data.comm_per = vm.comm_per
     data.active = vm.active
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
Esempio n. 15
0
    def create(self, vm):
        # validate id
        data_validate = self.get(vm.reg_no)
        if data_validate != None:
            raise Exception('Car Reg. No. already exist.')

        data = Car(id=vm.reg_no)
        data.reg_no = vm.reg_no
        data.customer_ic = vm.customer_ic
        data.customer = vm.customer.key
        data.bal_amt = vm.bal_amt  # register may be RM10
        data.active = True
        data.last_modified = str(DateTime.malaysia_now())
        data.put()

        return data
Esempio n. 16
0
 def create(self, vm):
     # validate id
     data_validate = self.get(vm.reg_no)
     if data_validate != None:
         raise Exception('Car Reg. No. already exist.')
     
     data = Car(id=vm.reg_no)
     data.reg_no = vm.reg_no
     data.customer_ic = vm.customer_ic
     data.customer = vm.customer.key
     data.bal_amt = vm.bal_amt   # register may be RM10
     data.active = True
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
     
     return data
Esempio n. 17
0
 def __account_update(self, vm):
     # get data
     data = self.get(vm.code)
     if data == None:
         raise Exception('Agent not found.')
     
     # validate lastModified
     if data.last_modified != vm.last_modified:
         raise Exception('Record has been modified by other user.')
     
     data.address = vm.address
     data.tel = vm.tel
     data.hp = vm.hp
     data.email = vm.email
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
Esempio n. 18
0
    def __account_update(self, vm):
        # get data
        data = self.get(vm.code)
        if data == None:
            raise Exception('Agent not found.')

        # validate lastModified
        if data.last_modified != vm.last_modified:
            raise Exception('Record has been modified by other user.')

        data.address = vm.address
        data.tel = vm.tel
        data.hp = vm.hp
        data.email = vm.email
        data.last_modified = str(DateTime.malaysia_now())
        data.put()
Esempio n. 19
0
 def test3(self):
     charge_time = DateTime.malaysia_now()
     self.create_charge()
     
     charge_time = charge_time + datetime.timedelta(minutes=61)
     self.create_charge(charge_time=charge_time)
     
     charge_time = charge_time + datetime.timedelta(minutes=61) 
     self.create_charge(charge_time=charge_time)
     
     charge_time = charge_time + datetime.timedelta(minutes=61)
     self.create_charge(charge_time=charge_time)
     
     charge_time = charge_time + datetime.timedelta(minutes=61)
     self.create_charge(charge_time=charge_time)
     
     charge_time = charge_time + datetime.timedelta(minutes=61)
     self.create_charge(charge_time=charge_time)
Esempio n. 20
0
    def test3(self):
        charge_time = DateTime.malaysia_now()
        self.create_charge()

        charge_time = charge_time + datetime.timedelta(minutes=61)
        self.create_charge(charge_time=charge_time)

        charge_time = charge_time + datetime.timedelta(minutes=61)
        self.create_charge(charge_time=charge_time)

        charge_time = charge_time + datetime.timedelta(minutes=61)
        self.create_charge(charge_time=charge_time)

        charge_time = charge_time + datetime.timedelta(minutes=61)
        self.create_charge(charge_time=charge_time)

        charge_time = charge_time + datetime.timedelta(minutes=61)
        self.create_charge(charge_time=charge_time)
Esempio n. 21
0
    def create(self, vm):
        # validate id
        data_validate = self.get(vm.ic)
        if data_validate != None:
            raise Exception('IC/PP No. already exist.')

        data = Customer(id=vm.ic)
        data.ic = vm.ic
        data.name = vm.name
        data.address = vm.address
        data.tel = vm.tel
        data.hp = vm.hp
        data.email = vm.email
        # default password is ic
        data.pwd = vm.ic
        data.active = True
        data.last_modified = str(DateTime.malaysia_now())
        data.put()

        return data
Esempio n. 22
0
    def __update(self, vm):
        # get data
        data = self.get(vm.ic)
        if data == None:
            raise Exception('Customer not found.')

        # validate lastModified
        if data.last_modified != vm.last_modified:
            raise Exception('Record has been modified by other user.')

        data.name = vm.name
        data.address = vm.address
        data.tel = vm.tel
        data.hp = vm.hp
        data.email = vm.email
        data.active = vm.active
        data.last_modified = str(DateTime.malaysia_now())
        data.put()

        return data
Esempio n. 23
0
 def create(self, vm):
     # validate id
     data_validate = self.get(vm.ic)
     if data_validate != None:
         raise Exception('IC/PP No. already exist.')
     
     data = Customer(id=vm.ic)
     data.ic = vm.ic
     data.name = vm.name
     data.address = vm.address
     data.tel = vm.tel
     data.hp = vm.hp
     data.email = vm.email
     # default password is ic
     data.pwd = vm.ic
     data.active = True
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
     
     return data
Esempio n. 24
0
 def __update(self, vm):
     # get data
     data = self.get(vm.ic)
     if data == None:
         raise Exception('Customer not found.')
     
     # validate lastModified
     if data.last_modified != vm.last_modified:
         raise Exception('Record has been modified by other user.')
     
     data.name = vm.name
     data.address = vm.address
     data.tel = vm.tel
     data.hp = vm.hp
     data.email = vm.email
     data.active = vm.active
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
     
     return data
Esempio n. 25
0
 def __create(self, vm):
     # validate id
     data_validate = self.get(vm.code)
     if data_validate != None:
         raise Exception('Agent ID already exist.')
     
     data = Agent(id=vm.code)
     data.code = vm.code
     data.name = vm.name
     data.pwd = vm.pwd
     data.account_type = vm.account_type
     data.address = vm.address
     data.tel = vm.tel
     data.hp = vm.hp
     data.email = vm.email
     data.comm_per = vm.comm_per
     data.credit_limit = vm.credit_limit
     data.bal_amt = vm.bal_amt
     data.active = vm.active
     data.last_modified = str(DateTime.malaysia_now())
     data.put()
Esempio n. 26
0
    def __create(self, vm):
        # validate id
        data_validate = self.get(vm.code)
        if data_validate != None:
            raise Exception('Agent ID already exist.')

        data = Agent(id=vm.code)
        data.code = vm.code
        data.name = vm.name
        data.pwd = vm.pwd
        data.account_type = vm.account_type
        data.address = vm.address
        data.tel = vm.tel
        data.hp = vm.hp
        data.email = vm.email
        data.comm_per = vm.comm_per
        data.credit_limit = vm.credit_limit
        data.bal_amt = vm.bal_amt
        data.active = vm.active
        data.last_modified = str(DateTime.malaysia_now())
        data.put()
Esempio n. 27
0
    def create(self, vm, charge_time=None):
        try:
            if charge_time is None:
                vm.charge_time = DateTime.malaysia_now()
            else:
                vm.charge_time = charge_time

            self.validate_tran_date(vm)
            self.validate_closing(vm)
            self.__validate_attendant_code(vm)
            self.__validate_lot_no(vm)
            self.__validate_car_reg_no(vm)

            # get attendance comm
            attendant_da = AttendantDataAccess()
            attendant = attendant_da.get(vm.attendant_code)
            if attendant is None:
                raise Exception('Attendant not found.')

            vm.comm_per = attendant.comm_per

            # get system setting
            system_da = SystemSettingDataAccess()
            system_setting = system_da.get()

            # save charge
            da = ChargeDataAccess()

            # get charge
            q = Charge.query(ancestor=da.get_key(vm.tran_date))
            q = q.filter(Charge.lot_no == vm.lot_no,
                         Charge.car_reg_no == vm.car_reg_no,
                         Charge.ended == False, Charge.void == False)
            charge = q.get()

            if charge is None:
                # new charge
                vm.start_time = vm.charge_time
                vm.last_charge_time = None
            else:
                # continue old charge
                vm.tran_code = charge.tran_code
                vm.start_time = charge.start_time
                vm.last_charge_time = charge.charge_time

                # if idle duration > 2hrs, end this charge
                # and create a new charge
                idle_duration = vm.idle_duration()
                if idle_duration > system_setting.reset_duration:
                    # end charge
                    da.end(vm)

                    # create new charge
                    vm.tran_code = ''
                    vm.start_time = vm.charge_time
                    vm.last_charge_time = None

            vm.cal_duration()
            vm.cal_sub_total()
            vm.cal_comm_amt()
            vm.cal_amt()

            if len(vm.tran_code) < 1:
                da.create(vm)
            else:
                da.update_charge(vm)

        except Exception, ex:
            audit_da = AttendantAuditTrailDataAccess()
            audit_da.create(vm.attendant_code, 'Create Charge',
                            'Fail. Error=%s' % str(ex))
            raise ex
Esempio n. 28
0
 def create(self, vm, charge_time=None):
     try:
         if charge_time is None:
             vm.charge_time = DateTime.malaysia_now()
         else:
             vm.charge_time = charge_time
         
         self.validate_tran_date(vm)
         self.validate_closing(vm)
         self.__validate_attendant_code(vm)
         self.__validate_lot_no(vm)
         self.__validate_car_reg_no(vm)
         
         # get attendance comm
         attendant_da = AttendantDataAccess()
         attendant = attendant_da.get(vm.attendant_code)
         if attendant is None:
             raise Exception('Attendant not found.')
         
         vm.comm_per = attendant.comm_per
         
         # get system setting
         system_da = SystemSettingDataAccess()
         system_setting = system_da.get()
         
         # save charge
         da = ChargeDataAccess()
         
         # get charge
         q = Charge.query(ancestor=da.get_key(vm.tran_date))
         q = q.filter(Charge.lot_no==vm.lot_no, 
                      Charge.car_reg_no==vm.car_reg_no,
                      Charge.ended==False,
                      Charge.void==False)
         charge = q.get()
         
         if charge is None:
             # new charge
             vm.start_time = vm.charge_time
             vm.last_charge_time = None
         else:
             # continue old charge
             vm.tran_code = charge.tran_code
             vm.start_time = charge.start_time
             vm.last_charge_time = charge.charge_time
         
             # if idle duration > 2hrs, end this charge
             # and create a new charge
             idle_duration = vm.idle_duration() 
             if idle_duration > system_setting.reset_duration:
                 # end charge
                 da.end(vm)
                 
                 # create new charge
                 vm.tran_code = ''
                 vm.start_time = vm.charge_time
                 vm.last_charge_time = None
         
         vm.cal_duration()
         vm.cal_sub_total()
         vm.cal_comm_amt()
         vm.cal_amt()
         
         if len(vm.tran_code) < 1:
             da.create(vm)
         else:
             da.update_charge(vm)
         
     except Exception, ex:
         audit_da = AttendantAuditTrailDataAccess()
         audit_da.create(vm.attendant_code, 'Create Charge', 'Fail. Error=%s' % str(ex))
         raise ex
Esempio n. 29
0
 def __create(self, vm):
     # get master seq
     master_da = MasterDataAccess()
     master = master_da.get('Deposit')
     master.seq += 1
     master.put()
     
     # insert deposit
     tran_code = Deposit.get_tran_code(master.seq)
     vm.tran_code = tran_code
     
     data = Deposit(
                    parent=self.get_key(vm.tran_date, vm.agent_code), 
                    id=tran_code
                    )
     data.tran_code = tran_code
     data.tran_type = vm.tran_type
     data.tran_date = vm.tran_date
     data.seq = master.seq
     data.agent_code = vm.agent_code
     data.agent = vm.agent.key
     data.remark = vm.remark
     
     data.amt = vm.amt
     
     data.payment_date = vm.payment_date
     data.payment_type = vm.payment_type
     data.payment_ref_no = vm.payment_ref_no
     data.payment_file_name = vm.payment_file_name
     data.payment_url = vm.payment_url
     
     data.verified_by = ''
     data.verified_date = None
     data.verify_status = 0
     
     data.created_by = vm.user_code
     data.created_date = DateTime.malaysia_now()
     data.modified_by = ''
     data.modified_date = None
     data.void_by = ''
     data.void_date = None
     data.void = False
     data.last_modified = str(data.created_date)
     data.put()
     
     # insert tran
     tran_obj = TranViewModel()
     tran_obj.tran_code = data.tran_code
     tran_obj.tran_date = data.tran_date
     tran_obj.tran_type = data.tran_type
     tran_obj.agent_code = data.agent_code
     
     tran_da = TranDataAccess()
     tran_da.create(tran_obj)
     
     # update agent bal amt
     agent_da = AgentDataAccess()
     agent = agent_da.get(vm.agent_code)
     agent.bal_amt += vm.amt
     agent.bal_amt = round(agent.bal_amt, 2)
     agent.put()
Esempio n. 30
0
    def __create(self, vm):
        # save car
        car_vm = CarViewModel()
        car_vm.reg_no = vm.car_reg_no
        car_vm.customer_ic = vm.customer_ic
        car_vm.customer = vm.customer
        car_vm.bal_amt = vm.sub_total

        car_da = CarDataAccess()
        vm.car = car_da.save_register(car_vm)

        # save tag
        tag_vm = TagViewModel()
        tag_vm.code = vm.tag_code
        tag_vm.agent_code = vm.agent_code
        tag_vm.agent = vm.agent
        tag_vm.car_reg_no = vm.car_reg_no
        tag_vm.car = vm.car

        tag_da = TagDataAccess()
        vm.tag = tag_da.demo_save_register(tag_vm)

        # get master seq
        master_da = MasterDataAccess()
        master = master_da.get('Register')
        master.seq += 1
        master.put()

        # insert register
        tran_code = Register.get_tran_code(master.seq)
        vm.tran_code = tran_code

        data = Register(parent=self.get_key(vm.tran_date, vm.agent_code),
                        id=tran_code)
        data.tran_code = tran_code
        data.tran_type = vm.tran_type
        data.tran_date = vm.tran_date
        data.seq = master.seq
        data.agent_code = vm.agent_code
        data.agent = vm.agent.key
        data.remark = vm.remark

        data.car_reg_no = vm.car_reg_no
        data.car = vm.car.key

        data.customer_ic = vm.customer_ic
        data.customer_name = vm.customer_name
        data.customer_address = vm.customer_address
        data.customer_tel = vm.customer_tel
        data.customer_hp = vm.customer_hp
        data.customer_email = vm.customer_email
        data.customer = vm.customer.key

        data.tag_code = vm.tag_code
        data.tag = vm.tag.key

        data.sub_total = vm.sub_total

        data.created_by = vm.user_code
        data.created_date = DateTime.malaysia_now()
        data.modified_by = ''
        data.modified_date = None
        data.void_by = ''
        data.void_date = None
        data.void = False
        data.last_modified = str(data.created_date)
        data.put()

        # insert tran
        tran_obj = TranViewModel()
        tran_obj.tran_code = data.tran_code
        tran_obj.tran_date = data.tran_date
        tran_obj.tran_type = data.tran_type
        tran_obj.agent_code = data.agent_code
        tran_obj.car_reg_no = data.car_reg_no

        tran_da = TranDataAccess()
        tran_da.create(tran_obj)
Esempio n. 31
0
    def __create(self, vm):
        # get master seq
        master_da = MasterDataAccess()
        master = master_da.get('TopUp')
        master.seq += 1
        master.put()

        # insert deposit
        tran_code = TopUp.get_tran_code(master.seq)
        vm.tran_code = tran_code

        data = TopUp(parent=self.get_key(vm.tran_date, vm.agent_code),
                     id=tran_code)
        data.tran_code = tran_code
        data.tran_type = vm.tran_type
        data.tran_date = vm.tran_date
        data.seq = master.seq
        data.agent_code = vm.agent_code
        data.agent = vm.agent.key
        data.remark = vm.remark

        data.car_reg_no = vm.car_reg_no
        data.car = vm.car.key
        data.sub_total = vm.sub_total
        data.comm_per = vm.comm_per
        data.comm_amt = vm.comm_amt
        data.amt = vm.amt

        data.created_by = vm.user_code
        data.created_date = DateTime.malaysia_now()
        data.modified_by = ''
        data.modified_date = None
        data.void_by = ''
        data.void_date = None
        data.void = False
        data.last_modified = str(data.created_date)
        data.put()

        # insert tran
        tran_obj = TranViewModel()
        tran_obj.tran_code = data.tran_code
        tran_obj.tran_date = data.tran_date
        tran_obj.tran_type = data.tran_type
        tran_obj.agent_code = data.agent_code
        tran_obj.car_reg_no = data.car_reg_no

        tran_da = TranDataAccess()
        tran_da.create(tran_obj)

        # update agent bal amt
        agent_da = AgentDataAccess()
        agent = agent_da.get(vm.agent_code)
        agent.bal_amt -= vm.amt
        agent.bal_amt = round(agent.bal_amt, 2)

        if agent.bal_amt < agent.credit_limit:
            raise Exception('You have no more Credits.')

        agent.put()

        # update car bal amt
        car_da = CarDataAccess()
        car = car_da.get(vm.car_reg_no)
        car.bal_amt += vm.sub_total
        car.bal_amt = round(car.bal_amt, 2)
        car.put()
Esempio n. 32
0
 def __create(self, vm):
     # save car
     car_vm = CarViewModel()
     car_vm.reg_no = vm.car_reg_no
     car_vm.customer_ic = vm.customer_ic
     car_vm.customer = vm.customer
     car_vm.bal_amt = vm.sub_total
     
     car_da = CarDataAccess()
     vm.car = car_da.save_register(car_vm)
     
     # save tag
     tag_vm = TagViewModel()
     tag_vm.code = vm.tag_code
     tag_vm.agent_code = vm.agent_code
     tag_vm.agent = vm.agent
     tag_vm.car_reg_no = vm.car_reg_no
     tag_vm.car = vm.car
     
     tag_da = TagDataAccess()
     vm.tag = tag_da.demo_save_register(tag_vm)
     
     # get master seq
     master_da = MasterDataAccess()
     master = master_da.get('Register')
     master.seq += 1
     master.put()
     
     # insert register
     tran_code = Register.get_tran_code(master.seq)
     vm.tran_code = tran_code
     
     data = Register(
                     parent=self.get_key(vm.tran_date, vm.agent_code), 
                     id=tran_code
                     )
     data.tran_code = tran_code
     data.tran_type = vm.tran_type
     data.tran_date = vm.tran_date
     data.seq = master.seq
     data.agent_code = vm.agent_code
     data.agent = vm.agent.key
     data.remark = vm.remark
     
     data.car_reg_no = vm.car_reg_no
     data.car = vm.car.key
     
     data.customer_ic = vm.customer_ic
     data.customer_name = vm.customer_name
     data.customer_address = vm.customer_address
     data.customer_tel = vm.customer_tel
     data.customer_hp = vm.customer_hp
     data.customer_email = vm.customer_email
     data.customer = vm.customer.key
     
     data.tag_code = vm.tag_code
     data.tag = vm.tag.key
     
     data.sub_total = vm.sub_total
     
     data.created_by = vm.user_code
     data.created_date = DateTime.malaysia_now()
     data.modified_by = ''
     data.modified_date = None
     data.void_by = ''
     data.void_date = None
     data.void = False
     data.last_modified = str(data.created_date)
     data.put()
     
     # insert tran
     tran_obj = TranViewModel()
     tran_obj.tran_code = data.tran_code
     tran_obj.tran_date = data.tran_date
     tran_obj.tran_type = data.tran_type
     tran_obj.agent_code = data.agent_code
     tran_obj.car_reg_no = data.car_reg_no
     
     tran_da = TranDataAccess()
     tran_da.create(tran_obj)