├── .github └── workflows │ ├── develop.yml │ └── master.yml ├── .gitignore ├── README.md ├── beams ├── __init__.py ├── api │ └── api.py ├── beams │ ├── __init__.py │ ├── custom_scripts │ │ ├── account │ │ │ └── account.py │ │ ├── appraisal │ │ │ ├── appraisal.js │ │ │ └── appraisal.py │ │ ├── appraisal_template │ │ │ ├── appraisal_template.js │ │ │ └── appraisal_template.py │ │ ├── asset │ │ │ ├── asset.js │ │ │ └── asset.py │ │ ├── asset_movement │ │ │ ├── asset_movement.js │ │ │ └── asset_movement.py │ │ ├── attendance │ │ │ └── attendance.py │ │ ├── attendance_request │ │ │ └── attendance_request.py │ │ ├── budget │ │ │ ├── budget.js │ │ │ └── budget.py │ │ ├── contract │ │ │ ├── contract.js │ │ │ └── contract.py │ │ ├── customer │ │ │ └── customer.py │ │ ├── customer_dashboard │ │ │ └── customer_dashboard.py │ │ ├── department │ │ │ ├── department.js │ │ │ ├── department.py │ │ │ └── department_dashboard.py │ │ ├── driver │ │ │ └── driver.js │ │ ├── driver_dashboard │ │ │ └── driver_dashboard.py │ │ ├── employee │ │ │ ├── employee.js │ │ │ └── employee.py │ │ ├── employee_checkin │ │ │ └── employee_checkin.py │ │ ├── employee_dashboard │ │ │ └── employee_dashboard.py │ │ ├── employee_onboarding │ │ │ ├── employee_onboarding.js │ │ │ └── employee_onboarding.py │ │ ├── employee_performance_feedback │ │ │ └── employee_performance_feedback.py │ │ ├── employee_separation │ │ │ └── employee_separation.py │ │ ├── event │ │ │ ├── event.js │ │ │ └── event.py │ │ ├── expense_claim │ │ │ └── expense_claim.py │ │ ├── full_and_final_statement │ │ │ ├── full_and_final_statement.js │ │ │ └── full_and_final_statement.py │ │ ├── hd_ticket │ │ │ ├── hd_ticket.js │ │ │ └── hd_ticket.py │ │ ├── interview │ │ │ ├── interview.js │ │ │ └── interview.py │ │ ├── interview_feedback │ │ │ ├── interview_feedback.js │ │ │ └── interview_feedback.py │ │ ├── interview_round │ │ │ └── interview_round.py │ │ ├── item │ │ │ └── item.py │ │ ├── item_dashboard │ │ │ └── item_dashboard.py │ │ ├── job_applicant │ │ │ ├── job_applicant.js │ │ │ ├── job_applicant.py │ │ │ ├── job_applicant_dashboard.py │ │ │ └── job_applicant_list.js │ │ ├── job_offer │ │ │ ├── job_offer.js │ │ │ └── job_offer.py │ │ ├── job_requisition │ │ │ ├── job_requisition.js │ │ │ └── job_requisition.py │ │ ├── journal_entry │ │ │ └── journal_entry.py │ │ ├── lead │ │ │ └── lead.js │ │ ├── leave_allocation │ │ │ └── leave_allocation.py │ │ ├── leave_application │ │ │ ├── leave_application.js │ │ │ └── leave_application.py │ │ ├── material_request │ │ │ ├── material_request.js │ │ │ └── material_request.py │ │ ├── opportunity │ │ │ └── opportunity.js │ │ ├── payment_entry │ │ │ └── payment_entry.js │ │ ├── project │ │ │ ├── project.js │ │ │ └── project.py │ │ ├── project_dashboard │ │ │ └── project_dashboard.py │ │ ├── purchase_invoice │ │ │ ├── purchase_invoice.js │ │ │ ├── purchase_invoice.py │ │ │ └── purchase_invoice_list.js │ │ ├── purchase_order │ │ │ └── purchase_order.py │ │ ├── quotation │ │ │ ├── quotation.js │ │ │ └── quotation.py │ │ ├── salary_slip │ │ │ └── salary_slip.py │ │ ├── sales_invoice │ │ │ ├── sales_invoice.js │ │ │ ├── sales_invoice.py │ │ │ └── sales_invoice_list.js │ │ ├── sales_invoice_dashboard │ │ │ └── sales_invoice_dashboard.py │ │ ├── sales_order │ │ │ ├── sales_order.js │ │ │ └── sales_order.py │ │ ├── sales_order_dashboard │ │ │ └── sales_order_dashboard.py │ │ ├── shift_type │ │ │ └── shift_type.py │ │ ├── task │ │ │ └── task.py │ │ ├── training_event │ │ │ ├── training_event.js │ │ │ └── training_event.py │ │ ├── training_feedback │ │ │ └── training_feedback.js │ │ ├── training_program │ │ │ ├── training_program.js │ │ │ └── training_program.py │ │ ├── vehicle │ │ │ ├── vehicle.js │ │ │ └── vehicle.py │ │ ├── vehicle_dashboard │ │ │ └── vehicle_dashboard.py │ │ ├── voucher_entry │ │ │ ├── voucher_entry.js │ │ │ └── voucher_entry.py │ │ └── voucher_entry_type │ │ │ └── voucher_entry_type.py │ ├── dashboard_chart │ │ └── quotation_is_barter │ │ │ └── quotation_is_barter.json │ ├── doctype │ │ ├── __init__.py │ │ ├── accounts │ │ │ ├── __init__.py │ │ │ ├── accounts.json │ │ │ └── accounts.py │ │ ├── adhoc_budget │ │ │ ├── __init__.py │ │ │ ├── adhoc_budget.js │ │ │ ├── adhoc_budget.json │ │ │ ├── adhoc_budget.py │ │ │ └── test_adhoc_budget.py │ │ ├── albatross_gst_mapping │ │ │ ├── __init__.py │ │ │ ├── albatross_gst_mapping.json │ │ │ └── albatross_gst_mapping.py │ │ ├── albatross_settings │ │ │ ├── __init__.py │ │ │ ├── albatross_settings.js │ │ │ ├── albatross_settings.json │ │ │ ├── albatross_settings.py │ │ │ └── test_albatross_settings.py │ │ ├── allocated_manpower_detail │ │ │ ├── __init__.py │ │ │ ├── allocated_manpower_detail.json │ │ │ └── allocated_manpower_detail.py │ │ ├── allocated_vehicle_details │ │ │ ├── __init__.py │ │ │ ├── allocated_vehicle_details.json │ │ │ └── allocated_vehicle_details.py │ │ ├── applicant_interview_round │ │ │ ├── __init__.py │ │ │ ├── applicant_interview_round.json │ │ │ └── applicant_interview_round.py │ │ ├── appraisal_category │ │ │ ├── __init__.py │ │ │ ├── appraisal_category.js │ │ │ ├── appraisal_category.json │ │ │ ├── appraisal_category.py │ │ │ └── test_appraisal_category.py │ │ ├── assessment_officer │ │ │ ├── __init__.py │ │ │ ├── assessment_officer.json │ │ │ └── assessment_officer.py │ │ ├── asset_auditing │ │ │ ├── __init__.py │ │ │ ├── asset_auditing.js │ │ │ ├── asset_auditing.json │ │ │ ├── asset_auditing.py │ │ │ └── test_asset_auditing.py │ │ ├── asset_bundle │ │ │ ├── __init__.py │ │ │ ├── asset_bundle.js │ │ │ ├── asset_bundle.json │ │ │ ├── asset_bundle.py │ │ │ └── test_asset_bundle.py │ │ ├── asset_bundle_stock_item │ │ │ ├── __init__.py │ │ │ ├── asset_bundle_stock_item.json │ │ │ └── asset_bundle_stock_item.py │ │ ├── asset_location_details │ │ │ ├── __init__.py │ │ │ ├── asset_location_details.json │ │ │ └── asset_location_details.py │ │ ├── asset_location_log │ │ │ ├── __init__.py │ │ │ ├── asset_location_log.js │ │ │ ├── asset_location_log.json │ │ │ ├── asset_location_log.py │ │ │ └── test_asset_location_log.py │ │ ├── asset_reservation_log │ │ │ ├── __init__.py │ │ │ ├── asset_reservation_log.js │ │ │ ├── asset_reservation_log.json │ │ │ ├── asset_reservation_log.py │ │ │ └── test_asset_reservation_log.py │ │ ├── asset_return_check │ │ │ ├── __init__.py │ │ │ ├── asset_return_check.json │ │ │ └── asset_return_check.py │ │ ├── asset_return_checklist │ │ │ ├── __init__.py │ │ │ ├── asset_return_checklist.json │ │ │ └── asset_return_checklist.py │ │ ├── asset_return_checklist_template │ │ │ ├── __init__.py │ │ │ ├── asset_return_checklist_template.js │ │ │ ├── asset_return_checklist_template.json │ │ │ ├── asset_return_checklist_template.py │ │ │ └── test_asset_return_checklist_template.py │ │ ├── asset_transfer_request │ │ │ ├── __init__.py │ │ │ ├── asset_transfer_request.js │ │ │ ├── asset_transfer_request.json │ │ │ ├── asset_transfer_request.py │ │ │ └── test_asset_transfer_request.py │ │ ├── assets │ │ │ ├── __init__.py │ │ │ ├── assets.json │ │ │ └── assets.py │ │ ├── attachment_detail │ │ │ ├── __init__.py │ │ │ ├── attachment_detail.json │ │ │ └── attachment_detail.py │ │ ├── attachments_detail │ │ │ ├── __init__.py │ │ │ ├── attachments_detail.json │ │ │ └── attachments_detail.py │ │ ├── award_expense_detail │ │ │ ├── __init__.py │ │ │ ├── award_expense_detail.json │ │ │ └── award_expense_detail.py │ │ ├── award_record │ │ │ ├── __init__.py │ │ │ ├── award_record.js │ │ │ ├── award_record.json │ │ │ ├── award_record.py │ │ │ └── test_award_record.py │ │ ├── bank_details │ │ │ ├── __init__.py │ │ │ ├── bank_details.json │ │ │ └── bank_details.py │ │ ├── batta_claim │ │ │ ├── __init__.py │ │ │ ├── batta_claim.js │ │ │ ├── batta_claim.json │ │ │ ├── batta_claim.py │ │ │ └── test_batta_claim.py │ │ ├── batta_policy │ │ │ ├── __init__.py │ │ │ ├── batta_policy.js │ │ │ ├── batta_policy.json │ │ │ ├── batta_policy.py │ │ │ └── test_batta_policy.py │ │ ├── beams_accounts_settings │ │ │ ├── __init__.py │ │ │ ├── beams_accounts_settings.js │ │ │ ├── beams_accounts_settings.json │ │ │ ├── beams_accounts_settings.py │ │ │ └── test_beams_accounts_settings.py │ │ ├── beams_admin_settings │ │ │ ├── __init__.py │ │ │ ├── beams_admin_settings.js │ │ │ ├── beams_admin_settings.json │ │ │ ├── beams_admin_settings.py │ │ │ └── test_beams_admin_settings.py │ │ ├── beams_hr_settings │ │ │ ├── __init__.py │ │ │ ├── beams_hr_settings.js │ │ │ ├── beams_hr_settings.json │ │ │ ├── beams_hr_settings.py │ │ │ └── test_beams_hr_settings.py │ │ ├── beams_naming_rule │ │ │ ├── __init__.py │ │ │ ├── beams_naming_rule.json │ │ │ └── beams_naming_rule.py │ │ ├── budget_expense │ │ │ ├── __init__.py │ │ │ ├── budget_expense.json │ │ │ └── budget_expense.py │ │ ├── budget_expense_type │ │ │ ├── __init__.py │ │ │ ├── budget_expense_type.js │ │ │ ├── budget_expense_type.json │ │ │ ├── budget_expense_type.py │ │ │ └── test_budget_expense_type.py │ │ ├── budget_template │ │ │ ├── __init__.py │ │ │ ├── budget_template.js │ │ │ ├── budget_template.json │ │ │ ├── budget_template.py │ │ │ └── test_budget_template.py │ │ ├── budget_template_item │ │ │ ├── __init__.py │ │ │ ├── budget_template_item.json │ │ │ └── budget_template_item.py │ │ ├── budget_tool │ │ │ ├── __init__.py │ │ │ ├── budget_tool.css │ │ │ ├── budget_tool.html │ │ │ ├── budget_tool.js │ │ │ ├── budget_tool.json │ │ │ ├── budget_tool.py │ │ │ └── test_budget_tool.py │ │ ├── bundles │ │ │ ├── __init__.py │ │ │ ├── bundles.json │ │ │ └── bundles.py │ │ ├── bureau │ │ │ ├── __init__.py │ │ │ ├── bureau.js │ │ │ ├── bureau.json │ │ │ ├── bureau.py │ │ │ └── test_bureau.py │ │ ├── category_details │ │ │ ├── __init__.py │ │ │ ├── category_details.json │ │ │ └── category_details.py │ │ ├── company_policy_acceptance_log │ │ │ ├── __init__.py │ │ │ ├── company_policy_acceptance_log.js │ │ │ ├── company_policy_acceptance_log.json │ │ │ ├── company_policy_acceptance_log.py │ │ │ └── test_company_policy_acceptance_log.py │ │ ├── compensatory_leave_log │ │ │ ├── __init__.py │ │ │ ├── compensatory_leave_log.js │ │ │ ├── compensatory_leave_log.json │ │ │ ├── compensatory_leave_log.py │ │ │ └── test_compensatory_leave_log.py │ │ ├── container │ │ │ ├── __init__.py │ │ │ ├── container.js │ │ │ ├── container.json │ │ │ ├── container.py │ │ │ └── test_container.py │ │ ├── cost_category │ │ │ ├── __init__.py │ │ │ ├── cost_category.js │ │ │ ├── cost_category.json │ │ │ ├── cost_category.py │ │ │ └── test_cost_category.py │ │ ├── cost_head │ │ │ ├── __init__.py │ │ │ ├── cost_head.js │ │ │ ├── cost_head.json │ │ │ ├── cost_head.py │ │ │ └── test_cost_head.py │ │ ├── cost_subhead │ │ │ ├── __init__.py │ │ │ ├── cost_subhead.js │ │ │ ├── cost_subhead.json │ │ │ ├── cost_subhead.py │ │ │ └── test_cost_subhead.py │ │ ├── courier_log │ │ │ ├── __init__.py │ │ │ ├── courier_log.js │ │ │ ├── courier_log.json │ │ │ ├── courier_log.py │ │ │ └── test_courier_log.py │ │ ├── digital_library_request │ │ │ ├── __init__.py │ │ │ ├── digital_library_request.js │ │ │ ├── digital_library_request.json │ │ │ ├── digital_library_request.py │ │ │ └── test_digital_library_request.py │ │ ├── division │ │ │ ├── __init__.py │ │ │ ├── division.js │ │ │ ├── division.json │ │ │ ├── division.py │ │ │ └── test_division.py │ │ ├── document_type │ │ │ ├── __init__.py │ │ │ ├── document_type.js │ │ │ ├── document_type.json │ │ │ ├── document_type.py │ │ │ └── test_document_type.py │ │ ├── education_qualification │ │ │ ├── __init__.py │ │ │ ├── education_qualification.json │ │ │ └── education_qualification.py │ │ ├── educational_qualification │ │ │ ├── __init__.py │ │ │ ├── educational_qualification.js │ │ │ ├── educational_qualification.json │ │ │ ├── educational_qualification.py │ │ │ └── test_educational_qualification.py │ │ ├── educational_qualifications │ │ │ ├── __init__.py │ │ │ ├── educational_qualifications.json │ │ │ └── educational_qualifications.py │ │ ├── employee_advance_purpose │ │ │ ├── __init__.py │ │ │ ├── employee_advance_purpose.js │ │ │ ├── employee_advance_purpose.json │ │ │ ├── employee_advance_purpose.py │ │ │ └── test_employee_advance_purpose.py │ │ ├── employee_checkin_permission │ │ │ ├── __init__.py │ │ │ ├── employee_checkin_permission.js │ │ │ ├── employee_checkin_permission.json │ │ │ ├── employee_checkin_permission.py │ │ │ └── test_employee_checkin_permission.py │ │ ├── employee_clearance │ │ │ ├── __init__.py │ │ │ ├── employee_clearance.json │ │ │ └── employee_clearance.py │ │ ├── employee_documents │ │ │ ├── __init__.py │ │ │ ├── employee_documents.json │ │ │ └── employee_documents.py │ │ ├── employee_exit_clearance │ │ │ ├── __init__.py │ │ │ ├── employee_exit_clearance.js │ │ │ ├── employee_exit_clearance.json │ │ │ ├── employee_exit_clearance.py │ │ │ └── test_employee_exit_clearance.py │ │ ├── employee_travel_request │ │ │ ├── __init__.py │ │ │ ├── employee_travel_request.js │ │ │ ├── employee_travel_request.json │ │ │ ├── employee_travel_request.py │ │ │ ├── expense_claim.html │ │ │ └── test_employee_travel_request.py │ │ ├── employee_travel_request_details │ │ │ ├── __init__.py │ │ │ ├── employee_travel_request_details.json │ │ │ └── employee_travel_request_details.py │ │ ├── equipment_acquiral_request │ │ │ ├── __init__.py │ │ │ ├── equipment_acquiral_request.js │ │ │ ├── equipment_acquiral_request.json │ │ │ ├── equipment_acquiral_request.py │ │ │ └── test_equipment_acquiral_request.py │ │ ├── equipment_request │ │ │ ├── __init__.py │ │ │ ├── equipment_request.js │ │ │ ├── equipment_request.json │ │ │ ├── equipment_request.py │ │ │ └── test_equipment_request.py │ │ ├── equipment_transaction_log │ │ │ ├── __init__.py │ │ │ ├── equipment_transaction_log.js │ │ │ ├── equipment_transaction_log.json │ │ │ ├── equipment_transaction_log.py │ │ │ └── test_equipment_transaction_log.py │ │ ├── esi │ │ │ ├── __init__.py │ │ │ ├── esi.js │ │ │ ├── esi.json │ │ │ ├── esi.py │ │ │ └── test_esi.py │ │ ├── external_participants_detail │ │ │ ├── __init__.py │ │ │ ├── external_participants_detail.json │ │ │ └── external_participants_detail.py │ │ ├── external_resource_request │ │ │ ├── __init__.py │ │ │ ├── external_resource_request.js │ │ │ ├── external_resource_request.json │ │ │ ├── external_resource_request.py │ │ │ └── test_external_resource_request.py │ │ ├── external_resources_detail │ │ │ ├── __init__.py │ │ │ ├── external_resources_detail.json │ │ │ └── external_resources_detail.py │ │ ├── external_vehicle_details │ │ │ ├── __init__.py │ │ │ ├── external_vehicle_details.js │ │ │ ├── external_vehicle_details.json │ │ │ ├── external_vehicle_details.py │ │ │ └── test_external_vehicle_details.py │ │ ├── family_details │ │ │ ├── __init__.py │ │ │ ├── family_details.json │ │ │ └── family_details.py │ │ ├── finance_group │ │ │ ├── __init__.py │ │ │ ├── finance_group.js │ │ │ ├── finance_group.json │ │ │ ├── finance_group.py │ │ │ └── test_finance_group.py │ │ ├── fuel_card │ │ │ ├── __init__.py │ │ │ ├── fuel_card.js │ │ │ ├── fuel_card.json │ │ │ ├── fuel_card.py │ │ │ └── test_fuel_card.py │ │ ├── fuel_card_log │ │ │ ├── __init__.py │ │ │ ├── fuel_card_log.js │ │ │ ├── fuel_card_log.json │ │ │ ├── fuel_card_log.py │ │ │ └── test_fuel_card_log.py │ │ ├── fuel_card_provider │ │ │ ├── __init__.py │ │ │ ├── fuel_card_provider.js │ │ │ ├── fuel_card_provider.json │ │ │ ├── fuel_card_provider.py │ │ │ └── test_fuel_card_provider.py │ │ ├── full_and_final_bundle │ │ │ ├── __init__.py │ │ │ ├── full_and_final_bundle.json │ │ │ └── full_and_final_bundle.py │ │ ├── gender_leave_type_mapping │ │ │ ├── __init__.py │ │ │ ├── gender_leave_type_mapping.js │ │ │ ├── gender_leave_type_mapping.json │ │ │ ├── gender_leave_type_mapping.py │ │ │ └── test_gender_leave_type_mapping.py │ │ ├── guest_appointment │ │ │ ├── __init__.py │ │ │ ├── guest_appointment.js │ │ │ ├── guest_appointment.json │ │ │ ├── guest_appointment.py │ │ │ └── test_guest_appointment.py │ │ ├── interview_question_result │ │ │ ├── __init__.py │ │ │ ├── interview_question_result.json │ │ │ └── interview_question_result.py │ │ ├── interview_questions │ │ │ ├── __init__.py │ │ │ ├── interview_questions.json │ │ │ └── interview_questions.py │ │ ├── interview_rounds │ │ │ ├── __init__.py │ │ │ ├── interview_rounds.json │ │ │ └── interview_rounds.py │ │ ├── inward_register │ │ │ ├── __init__.py │ │ │ ├── inward_register.js │ │ │ ├── inward_register.json │ │ │ ├── inward_register.py │ │ │ └── test_inward_register.py │ │ ├── job_description_template │ │ │ ├── __init__.py │ │ │ ├── job_description_template.js │ │ │ ├── job_description_template.json │ │ │ ├── job_description_template.py │ │ │ └── test_job_description_template.py │ │ ├── job_proposal │ │ │ ├── __init__.py │ │ │ ├── job_proposal.js │ │ │ ├── job_proposal.json │ │ │ ├── job_proposal.py │ │ │ └── test_job_proposal.py │ │ ├── journal_entry_expenses │ │ │ ├── __init__.py │ │ │ ├── journal_entry_expenses.json │ │ │ └── journal_entry_expenses.py │ │ ├── kyc_details │ │ │ ├── __init__.py │ │ │ ├── kyc_details.json │ │ │ └── kyc_details.py │ │ ├── kyc_document │ │ │ ├── __init__.py │ │ │ ├── kyc_document.js │ │ │ ├── kyc_document.json │ │ │ ├── kyc_document.py │ │ │ └── test_kyc_document.py │ │ ├── language_proficiency │ │ │ ├── __init__.py │ │ │ ├── language_proficiency.json │ │ │ └── language_proficiency.py │ │ ├── license_type │ │ │ ├── __init__.py │ │ │ ├── license_type.js │ │ │ ├── license_type.json │ │ │ ├── license_type.py │ │ │ └── test_license_type.py │ │ ├── local_enquiry_checklist │ │ │ ├── __init__.py │ │ │ ├── local_enquiry_checklist.json │ │ │ └── local_enquiry_checklist.py │ │ ├── local_enquiry_parameter │ │ │ ├── __init__.py │ │ │ ├── local_enquiry_parameter.js │ │ │ ├── local_enquiry_parameter.json │ │ │ ├── local_enquiry_parameter.py │ │ │ └── test_local_enquiry_parameter.py │ │ ├── local_enquiry_report │ │ │ ├── __init__.py │ │ │ ├── local_enquiry_report.js │ │ │ ├── local_enquiry_report.json │ │ │ ├── local_enquiry_report.py │ │ │ ├── local_enquiry_report_list.js │ │ │ └── test_local_enquiry_report.py │ │ ├── makeup_consumption_entry │ │ │ ├── __init__.py │ │ │ ├── makeup_consumption_entry.js │ │ │ ├── makeup_consumption_entry.json │ │ │ ├── makeup_consumption_entry.py │ │ │ └── test_makeup_consumption_entry.py │ │ ├── makeup_item_detail │ │ │ ├── __init__.py │ │ │ ├── makeup_item_detail.json │ │ │ └── makeup_item_detail.py │ │ ├── manpower_transaction_log │ │ │ ├── __init__.py │ │ │ ├── manpower_transaction_log.js │ │ │ ├── manpower_transaction_log.json │ │ │ ├── manpower_transaction_log.py │ │ │ └── test_manpower_transaction_log.py │ │ ├── maternity_leave_request │ │ │ ├── __init__.py │ │ │ ├── maternity_leave_request.js │ │ │ ├── maternity_leave_request.json │ │ │ ├── maternity_leave_request.py │ │ │ └── test_maternity_leave_request.py │ │ ├── mode_of_travel │ │ │ ├── __init__.py │ │ │ ├── mode_of_travel.js │ │ │ ├── mode_of_travel.json │ │ │ ├── mode_of_travel.py │ │ │ └── test_mode_of_travel.py │ │ ├── mode_of_travel_table │ │ │ ├── __init__.py │ │ │ ├── mode_of_travel_table.json │ │ │ └── mode_of_travel_table.py │ │ ├── nominee_details │ │ │ ├── __init__.py │ │ │ ├── nominee_details.json │ │ │ └── nominee_details.py │ │ ├── offense_type │ │ │ ├── __init__.py │ │ │ ├── offense_type.js │ │ │ ├── offense_type.json │ │ │ ├── offense_type.py │ │ │ └── test_offense_type.py │ │ ├── outward_pass │ │ │ ├── __init__.py │ │ │ ├── outward_pass.js │ │ │ ├── outward_pass.json │ │ │ ├── outward_pass.py │ │ │ └── test_outward_pass.py │ │ ├── outward_register │ │ │ ├── __init__.py │ │ │ ├── outward_register.js │ │ │ ├── outward_register.json │ │ │ ├── outward_register.py │ │ │ └── test_outward_register.py │ │ ├── ownered_by │ │ │ ├── __init__.py │ │ │ ├── ownered_by.json │ │ │ └── ownered_by.py │ │ ├── patrol_log_detail │ │ │ ├── __init__.py │ │ │ ├── patrol_log_detail.json │ │ │ └── patrol_log_detail.py │ │ ├── patrol_log_template │ │ │ ├── __init__.py │ │ │ ├── patrol_log_template.js │ │ │ ├── patrol_log_template.json │ │ │ ├── patrol_log_template.py │ │ │ └── test_patrol_log_template.py │ │ ├── performance_appraisal │ │ │ └── test_performance_appraisal.py │ │ ├── petty_cash_request │ │ │ ├── __init__.py │ │ │ ├── petty_cash_request.js │ │ │ ├── petty_cash_request.json │ │ │ ├── petty_cash_request.py │ │ │ └── test_petty_cash_request.py │ │ ├── previous_employment_history │ │ │ ├── __init__.py │ │ │ ├── previous_employment_history.json │ │ │ └── previous_employment_history.py │ │ ├── professional_certification │ │ │ ├── __init__.py │ │ │ ├── professional_certification.json │ │ │ └── professional_certification.py │ │ ├── program_request │ │ │ ├── __init__.py │ │ │ ├── program_request.js │ │ │ ├── program_request.json │ │ │ ├── program_request.py │ │ │ └── test_program_request.py │ │ ├── program_type │ │ │ ├── __init__.py │ │ │ ├── program_type.js │ │ │ ├── program_type.json │ │ │ ├── program_type.py │ │ │ └── test_program_type.py │ │ ├── project_expense_type │ │ │ ├── __init__.py │ │ │ ├── project_expense_type.json │ │ │ └── project_expense_type.py │ │ ├── provident_fund │ │ │ ├── __init__.py │ │ │ ├── provident_fund.js │ │ │ ├── provident_fund.json │ │ │ ├── provident_fund.py │ │ │ └── test_provident_fund.py │ │ ├── recharge_history │ │ │ ├── __init__.py │ │ │ ├── recharge_history.json │ │ │ └── recharge_history.py │ │ ├── region │ │ │ ├── __init__.py │ │ │ ├── region.js │ │ │ ├── region.json │ │ │ ├── region.py │ │ │ └── test_region.py │ │ ├── rejection_feedback │ │ │ ├── __init__.py │ │ │ ├── rejection_feedback.json │ │ │ └── rejection_feedback.py │ │ ├── required_acquiral_items_detail │ │ │ ├── __init__.py │ │ │ ├── required_acquiral_items_detail.json │ │ │ └── required_acquiral_items_detail.py │ │ ├── required_hired_vehicle_detail │ │ │ ├── __init__.py │ │ │ ├── required_hired_vehicle_detail.js │ │ │ ├── required_hired_vehicle_detail.json │ │ │ ├── required_hired_vehicle_detail.py │ │ │ └── test_required_hired_vehicle_detail.py │ │ ├── required_items_detail │ │ │ ├── __init__.py │ │ │ ├── required_items_detail.json │ │ │ └── required_items_detail.py │ │ ├── required_items_table │ │ │ ├── __init__.py │ │ │ ├── required_items_table.json │ │ │ └── required_items_table.py │ │ ├── required_manpower_details │ │ │ ├── __init__.py │ │ │ ├── required_manpower_details.json │ │ │ └── required_manpower_details.py │ │ ├── required_vehicle_details │ │ │ ├── __init__.py │ │ │ ├── required_vehicle_details.json │ │ │ └── required_vehicle_details.py │ │ ├── revenue_account │ │ │ ├── __init__.py │ │ │ ├── revenue_account.json │ │ │ └── revenue_account.py │ │ ├── revenue_budget │ │ │ ├── __init__.py │ │ │ ├── revenue_budget.js │ │ │ ├── revenue_budget.json │ │ │ ├── revenue_budget.py │ │ │ └── test_revenue_budget.py │ │ ├── revenue_category │ │ │ ├── __init__.py │ │ │ ├── revenue_category.js │ │ │ ├── revenue_category.json │ │ │ ├── revenue_category.py │ │ │ └── test_revenue_category.py │ │ ├── revenue_centre │ │ │ ├── __init__.py │ │ │ ├── revenue_centre.js │ │ │ ├── revenue_centre.json │ │ │ ├── revenue_centre.py │ │ │ └── test_revenue_centre.py │ │ ├── revenue_group │ │ │ ├── __init__.py │ │ │ ├── revenue_group.js │ │ │ ├── revenue_group.json │ │ │ ├── revenue_group.py │ │ │ └── test_revenue_group.py │ │ ├── revenue_template │ │ │ ├── __init__.py │ │ │ ├── revenue_template.js │ │ │ ├── revenue_template.json │ │ │ ├── revenue_template.py │ │ │ └── test_revenue_template.py │ │ ├── revenue_template_item │ │ │ ├── __init__.py │ │ │ ├── revenue_template_item.json │ │ │ └── revenue_template_item.py │ │ ├── room_criteria │ │ │ ├── __init__.py │ │ │ ├── room_criteria.js │ │ │ ├── room_criteria.json │ │ │ ├── room_criteria.py │ │ │ └── test_room_criteria.py │ │ ├── room_criteria_table │ │ │ ├── __init__.py │ │ │ ├── room_criteria_table.json │ │ │ └── room_criteria_table.py │ │ ├── row │ │ │ ├── __init__.py │ │ │ ├── row.js │ │ │ ├── row.json │ │ │ ├── row.py │ │ │ └── test_row.py │ │ ├── sales_type │ │ │ ├── __init__.py │ │ │ ├── sales_type.js │ │ │ ├── sales_type.json │ │ │ ├── sales_type.py │ │ │ └── test_sales_type.py │ │ ├── security_patrol_log │ │ │ ├── __init__.py │ │ │ ├── security_patrol_log.js │ │ │ ├── security_patrol_log.json │ │ │ ├── security_patrol_log.py │ │ │ └── test_security_patrol_log.py │ │ ├── service_unit │ │ │ ├── __init__.py │ │ │ ├── service_unit.js │ │ │ ├── service_unit.json │ │ │ ├── service_unit.py │ │ │ └── test_service_unit.py │ │ ├── services │ │ │ ├── __init__.py │ │ │ ├── services.json │ │ │ └── services.py │ │ ├── shelf │ │ │ ├── __init__.py │ │ │ ├── shelf.js │ │ │ ├── shelf.json │ │ │ ├── shelf.py │ │ │ └── test_shelf.py │ │ ├── shift_swap_request │ │ │ ├── __init__.py │ │ │ ├── shift_swap_request.js │ │ │ ├── shift_swap_request.json │ │ │ ├── shift_swap_request.py │ │ │ └── test_shift_swap_request.py │ │ ├── skill_proficiency │ │ │ ├── __init__.py │ │ │ ├── skill_proficiency.json │ │ │ └── skill_proficiency.py │ │ ├── spare_part_item │ │ │ ├── __init__.py │ │ │ ├── spare_part_item.json │ │ │ └── spare_part_item.py │ │ ├── stringer_bill │ │ │ ├── __init__.py │ │ │ ├── stringer_bill.js │ │ │ ├── stringer_bill.json │ │ │ ├── stringer_bill.py │ │ │ └── test_stringer_bill.py │ │ ├── stringer_bill_detail │ │ │ ├── __init__.py │ │ │ ├── stringer_bill_detail.json │ │ │ └── stringer_bill_detail.py │ │ ├── stringer_type │ │ │ ├── __init__.py │ │ │ ├── stringer_type.js │ │ │ ├── stringer_type.json │ │ │ ├── stringer_type.py │ │ │ └── test_stringer_type.py │ │ ├── substitute_booking │ │ │ ├── __init__.py │ │ │ ├── substitute_booking.js │ │ │ ├── substitute_booking.json │ │ │ ├── substitute_booking.py │ │ │ └── test_substitute_booking.py │ │ ├── substitution_bill_date │ │ │ ├── __init__.py │ │ │ ├── substitution_bill_date.json │ │ │ └── substitution_bill_date.py │ │ ├── technical_request │ │ │ ├── __init__.py │ │ │ ├── technical_request.js │ │ │ ├── technical_request.json │ │ │ ├── technical_request.py │ │ │ └── test_technical_request.py │ │ ├── technical_request_details │ │ │ ├── __init__.py │ │ │ ├── technical_request_details.json │ │ │ └── technical_request_details.py │ │ ├── training_request │ │ │ ├── __init__.py │ │ │ ├── test_training_request.py │ │ │ ├── training_request.js │ │ │ ├── training_request.json │ │ │ └── training_request.py │ │ ├── transportation_request │ │ │ ├── __init__.py │ │ │ ├── test_transportation_request.py │ │ │ ├── transportation_request.js │ │ │ ├── transportation_request.json │ │ │ └── transportation_request.py │ │ ├── transportation_request_details │ │ │ ├── __init__.py │ │ │ ├── transportation_request_details.json │ │ │ └── transportation_request_details.py │ │ ├── traveller │ │ │ ├── __init__.py │ │ │ ├── traveller.json │ │ │ └── traveller.py │ │ ├── trip_details │ │ │ ├── __init__.py │ │ │ ├── trip_details.json │ │ │ └── trip_details.py │ │ ├── trip_sheet │ │ │ ├── __init__.py │ │ │ ├── test_trip_sheet.py │ │ │ ├── trip_sheet.js │ │ │ ├── trip_sheet.json │ │ │ └── trip_sheet.py │ │ ├── vehicle_allocation │ │ │ ├── __init__.py │ │ │ ├── vehicle_allocation.json │ │ │ └── vehicle_allocation.py │ │ ├── vehicle_detail │ │ │ ├── __init__.py │ │ │ ├── vehicle_detail.json │ │ │ └── vehicle_detail.py │ │ ├── vehicle_document │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_document.py │ │ │ ├── vehicle_document.js │ │ │ ├── vehicle_document.json │ │ │ └── vehicle_document.py │ │ ├── vehicle_documents │ │ │ ├── __init__.py │ │ │ ├── vehicle_documents.json │ │ │ └── vehicle_documents.py │ │ ├── vehicle_documents_log │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_documents_log.py │ │ │ ├── vehicle_documents_log.js │ │ │ ├── vehicle_documents_log.json │ │ │ └── vehicle_documents_log.py │ │ ├── vehicle_hire_request │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_hire_request.py │ │ │ ├── vehicle_hire_request.js │ │ │ ├── vehicle_hire_request.json │ │ │ └── vehicle_hire_request.py │ │ ├── vehicle_incident_details │ │ │ ├── __init__.py │ │ │ ├── vehicle_incident_details.json │ │ │ └── vehicle_incident_details.py │ │ ├── vehicle_incident_record │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_incident_record.py │ │ │ ├── vehicle_incident_record.js │ │ │ ├── vehicle_incident_record.json │ │ │ └── vehicle_incident_record.py │ │ ├── vehicle_inspection_details │ │ │ ├── __init__.py │ │ │ ├── vehicle_inspection_details.json │ │ │ └── vehicle_inspection_details.py │ │ ├── vehicle_key_log │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_key_log.py │ │ │ ├── vehicle_key_log.js │ │ │ ├── vehicle_key_log.json │ │ │ └── vehicle_key_log.py │ │ ├── vehicle_log_detail │ │ │ ├── __init__.py │ │ │ ├── vehicle_log_detail.json │ │ │ └── vehicle_log_detail.py │ │ ├── vehicle_safety_inspection │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_safety_inspection.py │ │ │ ├── vehicle_safety_inspection.js │ │ │ ├── vehicle_safety_inspection.json │ │ │ └── vehicle_safety_inspection.py │ │ ├── vehicle_transaction_log │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_transaction_log.py │ │ │ ├── vehicle_transaction_log.js │ │ │ ├── vehicle_transaction_log.json │ │ │ └── vehicle_transaction_log.py │ │ ├── vehicle_type │ │ │ ├── __init__.py │ │ │ ├── test_vehicle_type.py │ │ │ ├── vehicle_type.js │ │ │ ├── vehicle_type.json │ │ │ └── vehicle_type.py │ │ ├── visit_request │ │ │ ├── __init__.py │ │ │ ├── test_visit_request.py │ │ │ ├── visit_request.js │ │ │ ├── visit_request.json │ │ │ └── visit_request.py │ │ ├── visitor_log │ │ │ ├── __init__.py │ │ │ ├── test_visitor_log.py │ │ │ ├── visitor_log.js │ │ │ ├── visitor_log.json │ │ │ └── visitor_log.py │ │ ├── visitor_pass │ │ │ ├── __init__.py │ │ │ ├── test_visitor_pass.py │ │ │ ├── visitor_pass.js │ │ │ ├── visitor_pass.json │ │ │ └── visitor_pass.py │ │ ├── visitor_type │ │ │ ├── __init__.py │ │ │ ├── test_visitor_type.py │ │ │ ├── visitor_type.js │ │ │ ├── visitor_type.json │ │ │ └── visitor_type.py │ │ └── work_detail │ │ │ ├── __init__.py │ │ │ ├── work_detail.json │ │ │ └── work_detail.py │ ├── overrides │ │ └── budget.py │ ├── print_format │ │ ├── __init__.py │ │ └── esi │ │ │ ├── __init__.py │ │ │ └── esi.json │ ├── report │ │ ├── __init__.py │ │ ├── asset_auditing_report │ │ │ ├── __init__.py │ │ │ ├── asset_auditing_report.js │ │ │ ├── asset_auditing_report.json │ │ │ └── asset_auditing_report.py │ │ ├── budget_allocation │ │ │ ├── __init__.py │ │ │ ├── budget_allocation.js │ │ │ ├── budget_allocation.json │ │ │ └── budget_allocation.py │ │ ├── budget_comparison_report │ │ │ ├── __init__.py │ │ │ ├── budget_comparison_report.js │ │ │ ├── budget_comparison_report.json │ │ │ └── budget_comparison_report.py │ │ ├── damage_history_report_for_assets │ │ │ ├── __init__.py │ │ │ ├── damage_history_report_for_assets.js │ │ │ ├── damage_history_report_for_assets.json │ │ │ └── damage_history_report_for_assets.py │ │ ├── detailed_budget_allocation_report │ │ │ ├── __init__.py │ │ │ ├── detailed_budget_allocation_report.js │ │ │ ├── detailed_budget_allocation_report.json │ │ │ ├── detailed_budget_allocation_report.py │ │ │ └── detailed_budget_allocation_report_old.py │ │ ├── employee_allocated_asset_report │ │ │ ├── __init__.py │ │ │ ├── employee_allocated_asset_report.js │ │ │ ├── employee_allocated_asset_report.json │ │ │ └── employee_allocated_asset_report.py │ │ ├── fuel_and_mileage_monitoring │ │ │ ├── __init__.py │ │ │ ├── fuel_and_mileage_monitoring.js │ │ │ ├── fuel_and_mileage_monitoring.json │ │ │ └── fuel_and_mileage_monitoring.py │ │ └── revenue_budget_report │ │ │ ├── __init__.py │ │ │ ├── revenue_budget_report.js │ │ │ ├── revenue_budget_report.json │ │ │ └── revenue_budget_report.py │ └── workspace │ │ ├── accounts │ │ └── accounts.json │ │ ├── beams │ │ └── beams.json │ │ ├── front_office │ │ └── front_office.json │ │ ├── hr │ │ └── hr.json │ │ └── security │ │ └── security.json ├── config │ └── __init__.py ├── hooks.py ├── modules.txt ├── patches.txt ├── patches │ ├── delete_custom_fields.py │ ├── no_of_children_patch.py │ ├── rename_hod_role.py │ ├── set_account_in_cost_subhead.py │ ├── set_company_in_budget_template.py │ └── update_budget_for_inr.py ├── public │ └── .gitkeep ├── setup.py ├── templates │ ├── __init__.py │ └── pages │ │ └── __init__.py └── www │ ├── application_success │ └── success.html │ ├── job_application_form │ ├── index.css │ ├── index.html │ ├── index.js │ └── index.py │ ├── job_application_upload │ ├── upload_doc.css │ ├── upload_doc.html │ ├── upload_doc.js │ └── upload_doc.py │ └── job_portal │ ├── index.css │ ├── index.html │ ├── index.js │ ├── index.py │ ├── job.html │ └── job.py ├── license.txt ├── pull_request_template.md └── pyproject.toml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | *.egg-info 4 | *.swp 5 | tags 6 | node_modules 7 | __pycache__ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## BEAMS 2 | 3 | BEAMS (Broadcast Enterprise Administration Management System) 4 | 5 | #### License 6 | 7 | mit -------------------------------------------------------------------------------- /beams/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "0.0.1" 2 | 3 | from erpnext.accounts.doctype.budget import budget 4 | from beams.beams.overrides.budget import validate_expense_against_budget 5 | 6 | budget.validate_expense_against_budget = validate_expense_against_budget 7 | -------------------------------------------------------------------------------- /beams/beams/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/__init__.py -------------------------------------------------------------------------------- /beams/beams/custom_scripts/asset/asset.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Asset', { 2 | refresh: function(frm) { 3 | // Filter for shelf based on selected room 4 | frm.set_query('shelf', function() { 5 | return { 6 | filters: { 7 | 'room': frm.doc.room 8 | } 9 | }; 10 | }); 11 | 12 | // Filter for row based on selected shelf 13 | frm.set_query('row', function() { 14 | return { 15 | filters: { 16 | 'shelf': frm.doc.shelf 17 | } 18 | }; 19 | }); 20 | 21 | // Filter for bin based on selected row 22 | frm.set_query('bin', function() { 23 | return { 24 | filters: { 25 | 'row': frm.doc.row 26 | } 27 | }; 28 | }); 29 | }, 30 | }); 31 | 32 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/customer/customer.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _ 3 | from frappe.model.document import Document 4 | 5 | def mark_as_edited_if_approved(doc, method): 6 | ''' 7 | Marks the document as edited if approved and modified after its creation date 8 | ''' 9 | if doc.workflow_state == "Approved": 10 | creation_date = frappe.utils.getdate(doc.creation) 11 | current_date = frappe.utils.getdate() 12 | 13 | if creation_date != current_date: 14 | if hasattr(doc, 'is_edited'): 15 | doc.is_edited = 1 16 | 17 | def duplicate_customer(doc, method): 18 | if frappe.db.exists("Customer", {"customer_name": doc.customer_name, "name": ["!=", doc.name]}): 19 | frappe.throw(_("A customer with the name '{0}' already exists. Please use a different name.").format(doc.customer_name)) 20 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/customer_dashboard/customer_dashboard.py: -------------------------------------------------------------------------------- 1 | from frappe import _ 2 | 3 | 4 | def get_data(data=None): 5 | return { 6 | "fieldname": "customer", 7 | "non_standard_fieldnames": { 8 | "Payment Entry": "party", 9 | "Quotation": "party_name", 10 | "Opportunity": "party_name", 11 | "Bank Account": "party", 12 | "Subscription": "party", 13 | }, 14 | "dynamic_links": {"party_name": ["Customer", "quotation_to"]}, 15 | "transactions": [ 16 | {"label": _("Pre Sales"), "items": ["Opportunity", "Quotation"]}, 17 | {"label": _("Orders"), "items": ["Sales Order", "Sales Invoice"]}, 18 | {"label": _("Payments"), "items": ["Payment Entry", "Bank Account"]}, 19 | {"label": _("Projects"), "items": ["Project"]}, 20 | {"label": _("Pricing"), "items": ["Pricing Rule"]}, 21 | ], 22 | } 23 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/department/department.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _ 3 | from frappe.model.document import Document 4 | 5 | @frappe.whitelist() 6 | def get_hod_users(department_name): 7 | """ 8 | Fetches the user IDs of employees who belong to a specific department and have the 'HOD' role. 9 | Returns a list of user IDs for filtering in the client-side code. 10 | """ 11 | users = frappe.db.sql(""" 12 | SELECT emp.user_id 13 | FROM `tabEmployee` emp 14 | JOIN `tabUser` usr ON usr.name = emp.user_id 15 | JOIN `tabHas Role` role1 ON role1.parent = usr.name AND role1.role = 'HOD' 16 | JOIN `tabHas Role` role2 ON role2.parent = usr.name AND role2.role = 'Employee' 17 | WHERE emp.department = %s 18 | """, (department_name,)) 19 | 20 | return [user[0] for user in users] # Return a list of user IDs 21 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/department/department_dashboard.py: -------------------------------------------------------------------------------- 1 | from frappe import _ 2 | 3 | def get_data(data=None): 4 | return { 5 | "fieldname": "department", 6 | "transactions": [ 7 | { 8 | "items": ["Division"], 9 | }, 10 | ], 11 | } 12 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/driver/driver.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Driver', { 2 | onload: function(frm) { 3 | update_mandatory_fields(frm) 4 | }, 5 | 6 | is_internal: function(frm) { 7 | update_mandatory_fields(frm) 8 | } 9 | }); 10 | 11 | // Function to update the mandatory fields 'employee' and 'transporter' based on 'is_internal' 12 | function update_mandatory_fields(frm) { 13 | // If 'is_internal' is checked, make 'employee' mandatory and 'transporter' optional 14 | frm.set_df_property('employee', 'reqd', frm.doc.is_internal ? true : false); 15 | frm.set_df_property('transporter', 'reqd', frm.doc.is_internal ? false : true); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/driver_dashboard/driver_dashboard.py: -------------------------------------------------------------------------------- 1 | from frappe import _ 2 | 3 | def get_data(data=None): 4 | return { 5 | "fieldname": "driver", 6 | "non_standard_fieldnames": { 7 | "Vehicle Incident Record": "driver" 8 | }, 9 | "transactions": [ 10 | { 11 | "items": ["Vehicle Incident Record"] 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/job_applicant/job_applicant_list.js: -------------------------------------------------------------------------------- 1 | frappe.listview_settings["Job Applicant"] = { 2 | add_fields: ["status"], 3 | get_indicator: function (doc) { 4 | if (doc.status === "Selected") { 5 | return [__("Selected"), "green", "status,=,Selected"]; 6 | } else if (doc.status === "Accepted") { 7 | return [__("Accepted"), "green", "status,=,Accepted"]; 8 | } else if (doc.status === "Replied") { 9 | return [__("Replied"), "blue", "status,=,Replied"]; 10 | } else if (doc.status === "Hold") { 11 | return [__("Hold"), "red", "status,=,Hold"]; 12 | } 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/material_request/material_request.js: -------------------------------------------------------------------------------- 1 | 2 | frappe.ui.form.on('Material Request', { 3 | onload(frm) { 4 | if (!frm.doc.requested_by) { 5 | frappe.db.get_value('Employee', { user_id: frappe.session.user }, 'name') 6 | .then(r => { 7 | if (r.message) { 8 | frm.set_value('requested_by', r.message.name); 9 | } 10 | }); 11 | } 12 | } 13 | }); 14 | 15 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/opportunity/opportunity.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Opportunity', { 2 | refresh: function(frm) { 3 | setTimeout(() => { 4 | frm.remove_custom_button('Supplier Quotation', 'Create'); 5 | frm.remove_custom_button('Request For Quotation', 'Create'); 6 | frm.remove_custom_button('Release Order', 'Create'); 7 | }, 500); 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/training_feedback/training_feedback.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on("Training Feedback", { 2 | training_event: function(frm) { 3 | if (!frm.doc.training_event) { 4 | frm.set_query("employee", () => ({})); 5 | frm.set_value("employee", ""); 6 | frm.refresh_field("employee"); 7 | return; 8 | } 9 | 10 | frappe.db.get_doc("Training Event", frm.doc.training_event).then(event => { 11 | let employee_list = (event.employees || []).map(emp => emp.employee); 12 | frm.set_query("employee", () => ({ filters: { name: ["in", employee_list] } })); 13 | frm.refresh_field("employee"); 14 | }); 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/training_program/training_program.js: -------------------------------------------------------------------------------- 1 | 2 | frappe.ui.form.on('Training Program', { 3 | validate: function(frm) { 4 | // Validate Email Format 5 | if (frm.doc.trainer_email && !frappe.utils.validate_type(frm.doc.trainer_email, "email")) { 6 | frappe.msgprint(__('Please enter a valid email address')); 7 | frappe.validated = false; 8 | } 9 | 10 | // Validate Contact Number (Only 10-digit numbers) 11 | if (frm.doc.contact_number && !/^\d{10}$/.test(frm.doc.contact_number)) { 12 | frappe.msgprint(__('Please enter a valid 10-digit contact number')); 13 | frappe.validated = false; 14 | } 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/training_program/training_program.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | import re 3 | 4 | def validate_training_program(doc, method): 5 | """ Validation for Email and Contact Number""" 6 | 7 | if doc.trainer_email and not frappe.utils.validate_email_address(doc.trainer_email): 8 | frappe.throw("Please enter a valid email address.") 9 | 10 | if doc.contact_number and not re.fullmatch(r"^\d{10}$", doc.contact_number): 11 | frappe.throw("Please enter a valid 10-digit contact number.") 12 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/vehicle/vehicle.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Vehicle', { 2 | refresh: function(frm) { 3 | frm.set_query('vehicle_safety_inspection', () => { 4 | return { 5 | filters: { 6 | vehicle: frm.doc.name 7 | } 8 | }; 9 | }); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/vehicle_dashboard/vehicle_dashboard.py: -------------------------------------------------------------------------------- 1 | from frappe import _ 2 | 3 | def get_data(data=None): 4 | return { 5 | "fieldname": "vehicle", 6 | "non_standard_fieldnames": { 7 | "Vehicle Log": "license_plate" 8 | }, 9 | "transactions": [ 10 | { 11 | "items": ["Vehicle Log", "Delivery Trip", "Vehicle Documents Log"] 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /beams/beams/custom_scripts/voucher_entry_type/voucher_entry_type.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _ 3 | 4 | @frappe.whitelist() 5 | def validate_repeating_companies(doc, method=None): 6 | """Error when the same Company is entered multiple times in accounts""" 7 | companies = [entry.company for entry in doc.accounts] 8 | 9 | if len(companies) != len(set(companies)): 10 | frappe.throw( 11 | _("Same Company is entered multiple times in Accounts"), 12 | title=_("Duplicate Company Entry") 13 | ) 14 | -------------------------------------------------------------------------------- /beams/beams/doctype/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/accounts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/accounts/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/accounts/accounts.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Accounts(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/adhoc_budget/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/adhoc_budget/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/adhoc_budget/test_adhoc_budget.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAdhocBudget(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/albatross_gst_mapping/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/albatross_gst_mapping/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/albatross_gst_mapping/albatross_gst_mapping.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AlbatrossGSTMapping(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/albatross_settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/albatross_settings/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/albatross_settings/albatross_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AlbatrossSettings(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/albatross_settings/test_albatross_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAlbatrossSettings(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/allocated_manpower_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/allocated_manpower_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/allocated_manpower_detail/allocated_manpower_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AllocatedManpowerDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/allocated_vehicle_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/allocated_vehicle_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/allocated_vehicle_details/allocated_vehicle_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AllocatedVehicleDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/applicant_interview_round/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/applicant_interview_round/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/applicant_interview_round/applicant_interview_round.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ApplicantInterviewRound(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/appraisal_category/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/appraisal_category/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/appraisal_category/appraisal_category.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on("Appraisal Category", { 5 | validate: function(frm) { 6 | if (frm.doc.appraisal_threshold < 0 || frm.doc.appraisal_threshold > 5) { 7 | frappe.throw({ 8 | title: __('Invalid Appraisal Threshold'), 9 | message: __('Appraisal Threshold must be between 0 and 5.') 10 | }); 11 | } 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /beams/beams/doctype/appraisal_category/appraisal_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AppraisalCategory(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/appraisal_category/test_appraisal_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAppraisalCategory(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/assessment_officer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/assessment_officer/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/assessment_officer/assessment_officer.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-02 17:11:39.658095", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "designation" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "designation", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Designation", 17 | "options": "Designation" 18 | } 19 | ], 20 | "index_web_pages_for_search": 1, 21 | "istable": 1, 22 | "links": [], 23 | "modified": "2025-01-02 17:14:09.716465", 24 | "modified_by": "Administrator", 25 | "module": "BEAMS", 26 | "name": "Assessment Officer", 27 | "owner": "Administrator", 28 | "permissions": [], 29 | "sort_field": "modified", 30 | "sort_order": "DESC", 31 | "states": [] 32 | } -------------------------------------------------------------------------------- /beams/beams/doctype/assessment_officer/assessment_officer.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssessmentOfficer(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_auditing/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_auditing/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_auditing/test_asset_auditing.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetAuditing(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_bundle/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_bundle/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_bundle/test_asset_bundle.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetBundle(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_bundle_stock_item/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_bundle_stock_item/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_bundle_stock_item/asset_bundle_stock_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetBundleStockItem(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_location_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_details/asset_location_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetLocationDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_location_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_log/asset_location_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Asset Location Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_log/asset_location_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetLocationLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_location_log/test_asset_location_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetLocationLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_reservation_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_reservation_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_reservation_log/asset_reservation_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Asset Reservation Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_reservation_log/asset_reservation_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetReservationLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_reservation_log/test_asset_reservation_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetReservationLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_check/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_return_check/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_check/asset_return_check.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "autoname": "format:ARC-{YY}-{####}", 5 | "creation": "2025-02-25 16:26:53.809429", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "checklist_item" 11 | ], 12 | "fields": [ 13 | { 14 | "fieldname": "checklist_item", 15 | "fieldtype": "Small Text", 16 | "in_list_view": 1, 17 | "label": "Checklist Item" 18 | } 19 | ], 20 | "index_web_pages_for_search": 1, 21 | "istable": 1, 22 | "links": [], 23 | "modified": "2025-03-17 14:22:47.985545", 24 | "modified_by": "Administrator", 25 | "module": "BEAMS", 26 | "name": "Asset Return Check", 27 | "naming_rule": "Expression", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_check/asset_return_check.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetReturnCheck(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_return_checklist/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist/asset_return_checklist.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetReturnChecklist(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist_template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_return_checklist_template/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist_template/asset_return_checklist_template.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Asset Return Checklist Template", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist_template/asset_return_checklist_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AssetReturnChecklistTemplate(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_return_checklist_template/test_asset_return_checklist_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetReturnChecklistTemplate(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/asset_transfer_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/asset_transfer_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/asset_transfer_request/test_asset_transfer_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAssetTransferRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/assets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/assets/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/assets/assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "autoname": "format:ASS-{####}", 5 | "creation": "2025-02-17 10:16:10.703195", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "asset" 11 | ], 12 | "fields": [ 13 | { 14 | "fieldname": "asset", 15 | "fieldtype": "Link", 16 | "in_list_view": 1, 17 | "label": "Asset", 18 | "options": "Asset", 19 | "reqd": 1 20 | } 21 | ], 22 | "index_web_pages_for_search": 1, 23 | "istable": 1, 24 | "links": [], 25 | "modified": "2025-03-17 14:17:43.623679", 26 | "modified_by": "Administrator", 27 | "module": "BEAMS", 28 | "name": "Assets", 29 | "naming_rule": "Expression", 30 | "owner": "Administrator", 31 | "permissions": [], 32 | "sort_field": "modified", 33 | "sort_order": "DESC", 34 | "states": [] 35 | } -------------------------------------------------------------------------------- /beams/beams/doctype/assets/assets.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Assets(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/attachment_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/attachment_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/attachment_detail/attachment_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AttachmentDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/attachments_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/attachments_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/attachments_detail/attachments_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AttachmentsDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/award_expense_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/award_expense_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/award_expense_detail/award_expense_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class AwardExpenseDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/award_record/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/award_record/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/award_record/test_award_record.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestAwardRecord(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/bank_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/bank_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/bank_details/bank_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BankDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/batta_claim/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/batta_claim/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/batta_claim/test_batta_claim.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBattaClaim(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/batta_policy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/batta_policy/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/batta_policy/batta_policy.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Batta Policy", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/batta_policy/batta_policy.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BattaPolicy(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/batta_policy/test_batta_policy.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBattaPolicy(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_accounts_settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/beams_accounts_settings/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/beams_accounts_settings/beams_accounts_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | 7 | class BeamsAccountsSettings(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_accounts_settings/test_beams_accounts_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBeamsAccountsSettings(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_admin_settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/beams_admin_settings/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/beams_admin_settings/beams_admin_settings.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('BEAMS Admin Settings', { 5 | refresh: function(frm) { 6 | // Apply filter to the default_employee_payable_account field 7 | frm.set_query('default_employee_payable_account', function() { 8 | return { 9 | filters: { 10 | 'account_type': 'Payable' 11 | } 12 | }; 13 | }); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_admin_settings/test_beams_admin_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBEAMSAdminSettings(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_hr_settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/beams_hr_settings/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/beams_hr_settings/beams_hr_settings.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Beams HR Settings", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_hr_settings/test_beams_hr_settings.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBeamsHRSettings(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/beams_naming_rule/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/beams_naming_rule/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/beams_naming_rule/beams_naming_rule.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BeamsNamingRule(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/budget_expense/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense/budget_expense.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BudgetExpense(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/budget_expense_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense_type/budget_expense_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Accounts', { 5 | company: function(frm, cdt, cdn) { 6 | set_account_query(frm); 7 | }, 8 | accounts_add: function(frm, cdt, cdn) { 9 | set_account_query(frm); 10 | } 11 | }); 12 | 13 | // Set query to filter 'default_account' based on the selected company 14 | function set_account_query(frm) { 15 | frm.fields_dict['accounts'].grid.get_field("default_account").get_query = function(doc, cdt, cdn) { 16 | let row = locals[cdt][cdn]; 17 | return { 18 | filters: {'company': row.company} 19 | }; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense_type/budget_expense_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BudgetExpenseType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_expense_type/test_budget_expense_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBudgetExpenseType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/budget_template/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/budget_template/test_budget_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBudgetTemplate(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_template_item/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/budget_template_item/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/budget_template_item/budget_template_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class BudgetTemplateItem(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/budget_tool/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/budget_tool/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/budget_tool/test_budget_tool.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBudgetTool(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/bundles/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/bundles/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/bundles/bundles.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "autoname": "format:BD-{YY}-{####}", 5 | "creation": "2025-02-17 10:19:43.491850", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "asset_bundle" 11 | ], 12 | "fields": [ 13 | { 14 | "fieldname": "asset_bundle", 15 | "fieldtype": "Link", 16 | "in_list_view": 1, 17 | "label": "Asset Bundle", 18 | "options": "Asset Bundle", 19 | "reqd": 1 20 | } 21 | ], 22 | "index_web_pages_for_search": 1, 23 | "istable": 1, 24 | "links": [], 25 | "modified": "2025-03-17 13:18:15.800931", 26 | "modified_by": "Administrator", 27 | "module": "BEAMS", 28 | "name": "Bundles", 29 | "naming_rule": "Expression", 30 | "owner": "Administrator", 31 | "permissions": [], 32 | "sort_field": "modified", 33 | "sort_order": "DESC", 34 | "states": [] 35 | } -------------------------------------------------------------------------------- /beams/beams/doctype/bundles/bundles.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Bundles(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/bureau/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/bureau/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/bureau/bureau.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Bureau", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/bureau/bureau.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Bureau(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/bureau/test_bureau.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestBureau(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/category_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/category_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/category_details/category_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class CategoryDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/company_policy_acceptance_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/company_policy_acceptance_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/company_policy_acceptance_log/company_policy_acceptance_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Company Policy Acceptance Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/company_policy_acceptance_log/test_company_policy_acceptance_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCompanyPolicyAcceptanceLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/compensatory_leave_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/compensatory_leave_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/compensatory_leave_log/compensatory_leave_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Compensatory Leave Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/compensatory_leave_log/test_compensatory_leave_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCompensatoryLeaveLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/container/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/container/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/container/container.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Container", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/container/container.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Container(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/container/test_container.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestContainer(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_category/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/cost_category/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/cost_category/cost_category.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Cost Category", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_category/cost_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class CostCategory(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_category/test_cost_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCostCategory(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_head/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/cost_head/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/cost_head/cost_head.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Cost Head", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_head/cost_head.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class CostHead(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_head/test_cost_head.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCostHead(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/cost_subhead/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/cost_subhead/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/cost_subhead/test_cost_subhead.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCostSubhead(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/courier_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/courier_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/courier_log/courier_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Courier Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/courier_log/courier_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class CourierLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/courier_log/test_courier_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestCourierLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/digital_library_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/digital_library_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/digital_library_request/digital_library_request.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Digital Library Request", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/digital_library_request/digital_library_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class DigitalLibraryRequest(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/digital_library_request/test_digital_library_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestDigitalLibraryRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/division/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/division/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/division/division.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Division', { 5 | onload: function(frm) { 6 | set_department_filter(frm); 7 | }, 8 | company: function(frm) { 9 | set_department_filter(frm); 10 | } 11 | }); 12 | 13 | function set_department_filter(frm) { 14 | if (frm.doc.company) { 15 | frm.set_query('department', function() { 16 | return { 17 | filters: { 18 | 'company': frm.doc.company 19 | } 20 | }; 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /beams/beams/doctype/division/division.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | from frappe.model.naming import make_autoname 7 | 8 | class Division(Document): 9 | def before_rename(self, old_name, new_name, merge=False): 10 | """ 11 | Ensure the division field is updated when the naming series changes. 12 | """ 13 | if not merge: 14 | division_name = new_name.split("-")[0] 15 | self.division = division_name 16 | frappe.db.set_value("Division", self.name, "division", division_name) 17 | -------------------------------------------------------------------------------- /beams/beams/doctype/division/test_division.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestDivision(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/document_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/document_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/document_type/document_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Document Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/document_type/document_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class DocumentType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/document_type/test_document_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestDocumentType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/education_qualification/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/education_qualification/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/education_qualification/education_qualification.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EducationQualification(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualification/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/educational_qualification/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualification/educational_qualification.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Educational Qualification", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualification/educational_qualification.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EducationalQualification(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualification/test_educational_qualification.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEducationalQualification(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualifications/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/educational_qualifications/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualifications/educational_qualifications.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-10-14 13:41:52.345232", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "qualification" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "qualification", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Qualification", 17 | "options": "Educational Qualification", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2024-10-14 13:50:32.050799", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Educational Qualifications", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/educational_qualifications/educational_qualifications.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EducationalQualifications(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_advance_purpose/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_advance_purpose/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_advance_purpose/employee_advance_purpose.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Employee Advance Purpose", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_advance_purpose/employee_advance_purpose.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EmployeeAdvancePurpose(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_advance_purpose/test_employee_advance_purpose.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEmployeeAdvancePurpose(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_checkin_permission/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_checkin_permission/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_checkin_permission/employee_checkin_permission.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Employee Checkin Permission", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_checkin_permission/employee_checkin_permission.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EmployeeCheckinPermission(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_checkin_permission/test_employee_checkin_permission.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEmployeeCheckinPermission(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_clearance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_clearance/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_clearance/employee_clearance.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EmployeeClearance(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_documents/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_documents/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_documents/employee_documents.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EmployeeDocuments(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_exit_clearance/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_exit_clearance/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_exit_clearance/employee_exit_clearance.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Employee Exit Clearance", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_exit_clearance/test_employee_exit_clearance.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEmployeeExitClearance(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_travel_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_travel_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_travel_request/test_employee_travel_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEmployeeTravelRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/employee_travel_request_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/employee_travel_request_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/employee_travel_request_details/employee_travel_request_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EmployeeTravelRequestDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_acquiral_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/equipment_acquiral_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_acquiral_request/test_equipment_acquiral_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEquipmentAcquiralRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/equipment_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_request/test_equipment_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEquipmentRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_transaction_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/equipment_transaction_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_transaction_log/equipment_transaction_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Equipment Transaction Log', { 5 | refresh(frm) { 6 | // Hide Return Button in Required Items Detail Child Table 7 | frm.fields_dict['item_log_details'].grid.toggle_display('return', false); 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_transaction_log/equipment_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class EquipmentTransactionLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/equipment_transaction_log/test_equipment_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEquipmentTransactionLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/esi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/esi/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/esi/esi.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("ESI", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/esi/esi.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ESI(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/esi/test_esi.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestESI(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_participants_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/external_participants_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/external_participants_detail/external_participants_detail.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-24 11:36:33.153782", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "participant_name" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "participant_name", 14 | "fieldtype": "Data", 15 | "in_list_view": 1, 16 | "label": "Participant Name", 17 | "reqd": 1 18 | } 19 | ], 20 | "index_web_pages_for_search": 1, 21 | "istable": 1, 22 | "links": [], 23 | "modified": "2025-01-24 11:37:33.463405", 24 | "modified_by": "Administrator", 25 | "module": "BEAMS", 26 | "name": "External Participants Detail", 27 | "owner": "Administrator", 28 | "permissions": [], 29 | "sort_field": "modified", 30 | "sort_order": "DESC", 31 | "states": [] 32 | } -------------------------------------------------------------------------------- /beams/beams/doctype/external_participants_detail/external_participants_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ExternalParticipantsDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_resource_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/external_resource_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/external_resource_request/test_external_resource_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestExternalResourceRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_resources_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/external_resources_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/external_resources_detail/external_resources_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ExternalResourcesDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_vehicle_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/external_vehicle_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/external_vehicle_details/external_vehicle_details.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("External Vehicle Details", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_vehicle_details/external_vehicle_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ExternalVehicleDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/external_vehicle_details/test_external_vehicle_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestExternalVehicleDetails(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/family_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/family_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/family_details/family_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FamilyDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/finance_group/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/finance_group/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/finance_group/finance_group.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Finance Group", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/finance_group/finance_group.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FinanceGroup(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/finance_group/test_finance_group.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestFinanceGroup(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/fuel_card/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card/fuel_card.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Fuel Card", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card/fuel_card.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FuelCard(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card/test_fuel_card.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestFuelCard(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/fuel_card_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_log/fuel_card_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FuelCardLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_log/test_fuel_card_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestFuelCardLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_provider/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/fuel_card_provider/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_provider/fuel_card_provider.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Fuel Card Provider", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_provider/fuel_card_provider.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FuelCardProvider(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/fuel_card_provider/test_fuel_card_provider.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestFuelCardProvider(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/full_and_final_bundle/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/full_and_final_bundle/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/full_and_final_bundle/full_and_final_bundle.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class FullandFinalBundle(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/gender_leave_type_mapping/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/gender_leave_type_mapping/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/gender_leave_type_mapping/gender_leave_type_mapping.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Gender Leave Type Mapping", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/gender_leave_type_mapping/gender_leave_type_mapping.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class GenderLeaveTypeMapping(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/gender_leave_type_mapping/test_gender_leave_type_mapping.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestGenderLeaveTypeMapping(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/guest_appointment/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/guest_appointment/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/guest_appointment/test_guest_appointment.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestGuestAppointment(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/interview_question_result/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/interview_question_result/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/interview_question_result/interview_question_result.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class InterviewQuestionResult(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/interview_questions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/interview_questions/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/interview_questions/interview_questions.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class InterviewQuestions(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/interview_rounds/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/interview_rounds/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/interview_rounds/interview_rounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-10-18 15:22:48.625362", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "interview_round" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "interview_round", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Interview Round", 17 | "options": "Interview Round", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2024-10-18 15:23:44.414944", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Interview Rounds", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/interview_rounds/interview_rounds.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class InterviewRounds(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/inward_register/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/inward_register/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/inward_register/test_inward_register.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestInwardRegister(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/job_description_template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/job_description_template/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/job_description_template/job_description_template.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Job Description Template", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/job_description_template/job_description_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class JobDescriptionTemplate(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/job_description_template/test_job_description_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestJobDescriptionTemplate(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/job_proposal/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/job_proposal/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/job_proposal/job_proposal.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Job Proposal', { 5 | refresh: function(frm) { 6 | frm.set_query('job_applicant', function() { 7 | return { 8 | filters: { 9 | status: 'Selected' 10 | } 11 | }; 12 | }); 13 | }, 14 | proposed_ctc:function (frm){ 15 | frm.call("validate_proposed_ctc"); 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /beams/beams/doctype/job_proposal/test_job_proposal.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestJobProposal(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/journal_entry_expenses/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/journal_entry_expenses/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/journal_entry_expenses/journal_entry_expenses.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class JournalEntryExpenses(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/kyc_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_details/kyc_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class KYCDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_document/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/kyc_document/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_document/kyc_document.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("KYC Document", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_document/kyc_document.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class KYCDocument(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/kyc_document/test_kyc_document.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestKYCDocument(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/language_proficiency/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/language_proficiency/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/language_proficiency/language_proficiency.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class LanguageProficiency(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/license_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/license_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/license_type/license_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("License Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/license_type/license_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class LicenseType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/license_type/test_license_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestLicenseType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_checklist/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/local_enquiry_checklist/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_checklist/local_enquiry_checklist.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class LocalEnquiryChecklist(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_parameter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/local_enquiry_parameter/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_parameter/local_enquiry_parameter.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Local Enquiry Parameter", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_parameter/local_enquiry_parameter.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class LocalEnquiryParameter(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_parameter/test_local_enquiry_parameter.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestLocalEnquiryParameter(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/local_enquiry_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/local_enquiry_report/test_local_enquiry_report.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestLocalEnquiryReport(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/makeup_consumption_entry/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/makeup_consumption_entry/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/makeup_consumption_entry/test_makeup_consumption_entry.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestMakeupConsumptionEntry(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/makeup_item_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/makeup_item_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/makeup_item_detail/makeup_item_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class MakeupItemDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/manpower_transaction_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/manpower_transaction_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/manpower_transaction_log/manpower_transaction_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Manpower Transaction Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/manpower_transaction_log/manpower_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ManpowerTransactionLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/manpower_transaction_log/test_manpower_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestManpowerTransactionLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/maternity_leave_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/maternity_leave_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/maternity_leave_request/test_maternity_leave_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestMaternityLeaveRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/mode_of_travel/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel/mode_of_travel.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Mode of Travel", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel/mode_of_travel.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ModeofTravel(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel/test_mode_of_travel.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestModeofTravel(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/mode_of_travel_table/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel_table/mode_of_travel_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-10-04 12:08:44.368543", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "mode_of_travel" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "mode_of_travel", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Mode of Travel ", 17 | "options": "Mode of Travel", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2024-10-04 12:16:47.863726", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Mode of Travel Table", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/mode_of_travel_table/mode_of_travel_table.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ModeofTravelTable(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/nominee_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/nominee_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/nominee_details/nominee_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class NomineeDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/offense_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/offense_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/offense_type/offense_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Offense Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/offense_type/offense_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class OffenseType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/offense_type/test_offense_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestOffenseType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/outward_pass/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/outward_pass/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/outward_pass/test_outward_pass.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestOutwardPass(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/outward_register/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/outward_register/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/outward_register/outward_register.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on("Outward Register", { 5 | posting_date:function (frm){ 6 | frm.call("validate_posting_date"); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/outward_register/outward_register.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | from frappe.utils import today 7 | from frappe import _ 8 | 9 | 10 | class OutwardRegister(Document): 11 | def before_save(self): 12 | self.validate_posting_date() 13 | 14 | @frappe.whitelist() 15 | def validate_posting_date(self): 16 | if self.posting_date: 17 | if self.posting_date > today(): 18 | frappe.throw(_("Posting Date cannot be set after today's date.")) 19 | -------------------------------------------------------------------------------- /beams/beams/doctype/outward_register/test_outward_register.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestOutwardRegister(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/ownered_by/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/ownered_by/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/ownered_by/ownered_by.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class OwneredBy(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/patrol_log_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_detail/patrol_log_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class PatrolLogDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/patrol_log_template/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_template/patrol_log_template.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Patrol Log Template", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_template/patrol_log_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class PatrolLogTemplate(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/patrol_log_template/test_patrol_log_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestPatrolLogTemplate(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/performance_appraisal/test_performance_appraisal.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestPerformanceAppraisal(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/petty_cash_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/petty_cash_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/petty_cash_request/petty_cash_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class PettyCashRequest(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/petty_cash_request/test_petty_cash_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestPettyCashRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/previous_employment_history/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/previous_employment_history/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/previous_employment_history/previous_employment_history.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class PreviousEmploymentHistory(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/professional_certification/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/professional_certification/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/professional_certification/professional_certification.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ProfessionalCertification(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/program_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/program_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/program_request/test_program_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestProgramRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/program_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/program_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/program_type/program_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Program Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/program_type/program_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ProgramType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/program_type/test_program_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestProgramType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/project_expense_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/project_expense_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/project_expense_type/project_expense_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-15 09:26:28.916893", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "budget_expense_type" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "budget_expense_type", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Budget Expense Type", 17 | "options": "Budget Expense Type", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2025-01-15 09:51:40.701899", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Project Expense Type", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/project_expense_type/project_expense_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ProjectExpenseType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/provident_fund/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/provident_fund/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/provident_fund/provident_fund.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Provident Fund", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/provident_fund/test_provident_fund.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestProvidentFund(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/recharge_history/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/recharge_history/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/recharge_history/recharge_history.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RechargeHistory(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/region/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/region/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/region/region.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Region", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/region/region.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Region(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/region/test_region.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRegion(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/rejection_feedback/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/rejection_feedback/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/rejection_feedback/rejection_feedback.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RejectionFeedback(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_acquiral_items_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_acquiral_items_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_acquiral_items_detail/required_acquiral_items_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredAcquiralItemsDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_hired_vehicle_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_hired_vehicle_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_hired_vehicle_detail/required_hired_vehicle_detail.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Required Hired Vehicle Detail", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_hired_vehicle_detail/required_hired_vehicle_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredHiredVehicleDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_hired_vehicle_detail/test_required_hired_vehicle_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRequiredHiredVehicleDetail(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_items_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_items_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_items_detail/required_items_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredItemsDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_items_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_items_table/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_items_table/required_items_table.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredItemsTable(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_manpower_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_manpower_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_manpower_details/required_manpower_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredManpowerDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/required_vehicle_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/required_vehicle_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/required_vehicle_details/required_vehicle_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RequiredVehicleDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_account/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_account/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_account/revenue_account.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueAccount(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_budget/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_budget/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_budget/revenue_budget.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | 7 | class RevenueBudget(Document): 8 | 9 | def before_save(self): 10 | self.calculate_total_amount() 11 | 12 | def calculate_total_amount(self): 13 | total = sum([row.revenue_amount for row in self.get("revenue_accounts") if row.revenue_amount]) 14 | self.total_amount = total 15 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_budget/test_revenue_budget.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRevenueBudget(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_category/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_category/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_category/revenue_category.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Revenue Category", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_category/revenue_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueCategory(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_category/test_revenue_category.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRevenueCategory(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_centre/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_centre/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_centre/revenue_centre.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Revenue Centre", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_centre/revenue_centre.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueCentre(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_centre/test_revenue_centre.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRevenueCentre(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_group/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_group/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_group/revenue_group.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Revenue Group", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_group/revenue_group.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueGroup(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_group/test_revenue_group.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRevenueGroup(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_template/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template/revenue_template.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Revenue Template", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template/revenue_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueTemplate(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template/test_revenue_template.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRevenueTemplate(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template_item/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/revenue_template_item/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/revenue_template_item/revenue_template_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RevenueTemplateItem(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/room_criteria/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria/room_criteria.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Room Criteria", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria/room_criteria.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RoomCriteria(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria/test_room_criteria.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRoomCriteria(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria_table/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/room_criteria_table/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria_table/room_criteria_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-10-04 14:54:37.776569", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "room_criteria" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "room_criteria", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Room Criteria ", 17 | "options": "Room Criteria", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2024-10-04 14:59:01.766521", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Room Criteria Table", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/room_criteria_table/room_criteria_table.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class RoomCriteriaTable(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/row/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/row/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/row/row.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Row", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/row/row.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Row(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/row/test_row.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestRow(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/sales_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/sales_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/sales_type/sales_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Sales Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/sales_type/sales_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class SalesType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/sales_type/test_sales_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestSalesType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/security_patrol_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/security_patrol_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/security_patrol_log/security_patrol_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class SecurityPatrolLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/security_patrol_log/test_security_patrol_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestSecurityPatrolLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/service_unit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/service_unit/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/service_unit/service_unit.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Service Unit", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/service_unit/service_unit.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class ServiceUnit(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/service_unit/test_service_unit.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestServiceUnit(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/services/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/services/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/services/services.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Services(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/shelf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/shelf/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/shelf/shelf.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Shelf", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/shelf/shelf.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Shelf(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/shelf/test_shelf.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestShelf(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/shift_swap_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/shift_swap_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/shift_swap_request/test_shift_swap_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestShiftSwapRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/skill_proficiency/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/skill_proficiency/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/skill_proficiency/skill_proficiency.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class SkillProficiency(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/spare_part_item/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/spare_part_item/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/spare_part_item/spare_part_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class SparePartItem(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_bill/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/stringer_bill/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_bill/test_stringer_bill.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestStringerBill(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_bill_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/stringer_bill_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_bill_detail/stringer_bill_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class StringerBillDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/stringer_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_type/stringer_type.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/stringer_type/stringer_type.js -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_type/stringer_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class StringerType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/stringer_type/test_stringer_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestStringerType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/substitute_booking/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/substitute_booking/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/substitute_booking/test_substitute_booking.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestSubstituteBooking(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/substitution_bill_date/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/substitution_bill_date/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/substitution_bill_date/substitution_bill_date.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class SubstitutionBillDate(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/technical_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/technical_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/technical_request/test_technical_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestTechnicalRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/technical_request_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/technical_request_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/technical_request_details/technical_request_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class TechnicalRequestDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/training_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/training_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/training_request/test_training_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestTrainingRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/transportation_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/transportation_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/transportation_request/test_transportation_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestTransportationRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/transportation_request_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/transportation_request_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/transportation_request_details/transportation_request_details.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-22 10:26:32.737575", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "transportation_request" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "transportation_request", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Transportation Request", 17 | "options": "Transportation Request", 18 | "reqd": 1 19 | } 20 | ], 21 | "index_web_pages_for_search": 1, 22 | "istable": 1, 23 | "links": [], 24 | "modified": "2025-01-27 10:44:04.271007", 25 | "modified_by": "Administrator", 26 | "module": "BEAMS", 27 | "name": "Transportation Request Details", 28 | "owner": "Administrator", 29 | "permissions": [], 30 | "sort_field": "modified", 31 | "sort_order": "DESC", 32 | "states": [] 33 | } -------------------------------------------------------------------------------- /beams/beams/doctype/transportation_request_details/transportation_request_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class TransportationRequestDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/traveller/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/traveller/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/traveller/traveller.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-21 15:01:06.054083", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "employee" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "employee", 14 | "fieldtype": "Link", 15 | "ignore_user_permissions": 1, 16 | "in_list_view": 1, 17 | "label": "Employee", 18 | "options": "Employee", 19 | "reqd": 1 20 | } 21 | ], 22 | "index_web_pages_for_search": 1, 23 | "istable": 1, 24 | "links": [], 25 | "modified": "2025-05-08 11:48:05.048084", 26 | "modified_by": "Administrator", 27 | "module": "BEAMS", 28 | "name": "Traveller", 29 | "owner": "Administrator", 30 | "permissions": [], 31 | "sort_field": "modified", 32 | "sort_order": "DESC", 33 | "states": [] 34 | } -------------------------------------------------------------------------------- /beams/beams/doctype/traveller/traveller.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class Traveller(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/trip_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/trip_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/trip_details/trip_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class TripDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/trip_sheet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/trip_sheet/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/trip_sheet/test_trip_sheet.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestTripSheet(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_allocation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_allocation/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_allocation/vehicle_allocation.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleAllocation(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_detail/vehicle_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_document/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_document/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_document/test_vehicle_document.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleDocument(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_document/vehicle_document.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Document", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_document/vehicle_document.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleDocument(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_documents/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents/vehicle_documents.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleDocuments(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_documents_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents_log/test_vehicle_documents_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleDocumentsLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents_log/vehicle_documents_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Documents Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_documents_log/vehicle_documents_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleDocumentsLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_hire_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_hire_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_hire_request/test_vehicle_hire_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleHireRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_hire_request/vehicle_hire_request.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on("Vehicle Hire Request", { 5 | posting_date(frm) { 6 | frm.call({ method: "validate_posting_date", doc: frm.doc }); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_incident_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_incident_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_incident_details/vehicle_incident_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleIncidentDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_incident_record/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_incident_record/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_incident_record/test_vehicle_incident_record.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleIncidentRecord(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_incident_record/vehicle_incident_record.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on("Vehicle Incident Record", { 5 | posting_date:function (frm){ 6 | frm.call("validate_posting_date"); 7 | }, 8 | offense_date_and_time: function (frm) { 9 | frm.call("validate_offense_date_and_time"); 10 | }, 11 | refresh: function(frm) { 12 | // Apply filter to the expense_type field in the Vehicle Incident Details child table 13 | frm.fields_dict.vehicle_incident_details.grid.get_field("expense_type").get_query = function() { 14 | return { 15 | filters: { 16 | "vehicle_against": 1 17 | } 18 | }; 19 | }; 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_inspection_details/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_inspection_details/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_inspection_details/vehicle_inspection_details.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleInspectionDetails(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_key_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_key_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_key_log/test_vehicle_key_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleKeyLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_key_log/vehicle_key_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Key Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_key_log/vehicle_key_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleKeyLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_log_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_log_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_log_detail/vehicle_log_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleLogDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_safety_inspection/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_safety_inspection/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_safety_inspection/test_vehicle_safety_inspection.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleSafetyInspection(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_safety_inspection/vehicle_safety_inspection.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Safety Inspection", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_safety_inspection/vehicle_safety_inspection.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleSafetyInspection(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_transaction_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_transaction_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_transaction_log/test_vehicle_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleTransactionLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_transaction_log/vehicle_transaction_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Transaction Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_transaction_log/vehicle_transaction_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleTransactionLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/vehicle_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_type/test_vehicle_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVehicleType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_type/vehicle_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Vehicle Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/vehicle_type/vehicle_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VehicleType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visit_request/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/visit_request/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/visit_request/test_visit_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVisitRequest(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visit_request/visit_request.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Visit Request', { 5 | request_date: function (frm) { 6 | frm.call({ 7 | method: 'validate_request_date', 8 | doc: frm.doc 9 | }); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /beams/beams/doctype/visit_request/visit_request.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | from frappe import _ 7 | from frappe.utils import today 8 | 9 | class VisitRequest(Document): 10 | 11 | @frappe.whitelist() 12 | def validate_request_date(self): 13 | ''' 14 | Validates the request_date field of the current document. 15 | This function checks if request_date is not in the future. 16 | If the provided date is later than today's date, it raises a validation error. 17 | ''' 18 | if self.request_date: 19 | if self.request_date > today(): 20 | frappe.throw(_("Request Date cannot be set after today's date.")) 21 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/visitor_log/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_log/test_visitor_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVisitorLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_log/visitor_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Visitor Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_log/visitor_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VisitorLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_pass/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/visitor_pass/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_pass/test_visitor_pass.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVisitorPass(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_pass/visitor_pass.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | 5 | frappe.ui.form.on("Visitor Pass", { 6 | "issued_date": function (frm) { 7 | frm.call("validate_issued_date_and_expire_on"); 8 | frm.call("validate_issued_date_and_returned_date"); 9 | }, 10 | "expire_on": function (frm) { 11 | frm.call("validate_issued_date_and_expire_on"); 12 | }, 13 | "returned_date": function (frm) { 14 | frm.call("validate_issued_date_and_returned_date"); 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_type/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/visitor_type/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_type/test_visitor_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestVisitorType(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_type/visitor_type.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Visitor Type", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /beams/beams/doctype/visitor_type/visitor_type.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class VisitorType(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/doctype/work_detail/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/doctype/work_detail/__init__.py -------------------------------------------------------------------------------- /beams/beams/doctype/work_detail/work_detail.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, efeone and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class WorkDetail(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /beams/beams/print_format/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/print_format/__init__.py -------------------------------------------------------------------------------- /beams/beams/print_format/esi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/print_format/esi/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/asset_auditing_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/asset_auditing_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/asset_auditing_report/asset_auditing_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 0, 3 | "columns": [], 4 | "creation": "2025-05-23 13:40:46.240142", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "json": "{}", 12 | "letterhead": null, 13 | "modified": "2025-05-23 16:17:31.170166", 14 | "modified_by": "Administrator", 15 | "module": "BEAMS", 16 | "name": "Asset Auditing Report", 17 | "owner": "Administrator", 18 | "prepared_report": 0, 19 | "ref_doctype": "Asset", 20 | "report_name": "Asset Auditing Report", 21 | "report_type": "Script Report", 22 | "roles": [ 23 | { 24 | "role": "Accounts User" 25 | }, 26 | { 27 | "role": "Quality Manager" 28 | } 29 | ], 30 | "timeout": 0 31 | } -------------------------------------------------------------------------------- /beams/beams/report/budget_allocation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/budget_allocation/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/budget_allocation/budget_allocation.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 1, 3 | "columns": [], 4 | "creation": "2024-11-08 14:37:02.790290", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "letterhead": null, 12 | "modified": "2025-03-08 20:09:17.439270", 13 | "modified_by": "Administrator", 14 | "module": "BEAMS", 15 | "name": "Budget Allocation", 16 | "owner": "Administrator", 17 | "prepared_report": 0, 18 | "ref_doctype": "Budget", 19 | "report_name": "Budget Allocation", 20 | "report_type": "Script Report", 21 | "roles": [ 22 | { 23 | "role": "Accounts Manager" 24 | } 25 | ], 26 | "timeout": 0 27 | } -------------------------------------------------------------------------------- /beams/beams/report/budget_comparison_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/budget_comparison_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/budget_comparison_report/budget_comparison_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 0, 3 | "columns": [], 4 | "creation": "2025-01-22 11:09:31.183568", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "letterhead": null, 12 | "modified": "2025-01-22 11:17:02.899965", 13 | "modified_by": "Administrator", 14 | "module": "BEAMS", 15 | "name": "Budget Comparison Report", 16 | "owner": "Administrator", 17 | "prepared_report": 0, 18 | "ref_doctype": "Cost Center", 19 | "report_name": "Budget Comparison Report", 20 | "report_type": "Script Report", 21 | "roles": [ 22 | { 23 | "role": "Accounts Manager" 24 | }, 25 | { 26 | "role": "Auditor" 27 | }, 28 | { 29 | "role": "Accounts User" 30 | }, 31 | { 32 | "role": "Sales User" 33 | }, 34 | { 35 | "role": "Purchase User" 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /beams/beams/report/damage_history_report_for_assets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/damage_history_report_for_assets/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/damage_history_report_for_assets/damage_history_report_for_assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 0, 3 | "columns": [], 4 | "creation": "2025-02-18 09:48:38.685999", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "json": "{}", 12 | "letterhead": null, 13 | "modified": "2025-02-24 13:28:20.195341", 14 | "modified_by": "Administrator", 15 | "module": "BEAMS", 16 | "name": "Damage History Report for Assets", 17 | "owner": "Administrator", 18 | "prepared_report": 0, 19 | "ref_doctype": "Asset", 20 | "report_name": "Damage History Report for Assets", 21 | "report_type": "Script Report", 22 | "roles": [ 23 | { 24 | "role": "Accounts User" 25 | }, 26 | { 27 | "role": "Quality Manager" 28 | } 29 | ], 30 | "timeout": 0 31 | } -------------------------------------------------------------------------------- /beams/beams/report/detailed_budget_allocation_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/detailed_budget_allocation_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/detailed_budget_allocation_report/detailed_budget_allocation_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 1, 3 | "columns": [], 4 | "creation": "2025-03-05 20:54:32.054081", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "letterhead": null, 12 | "modified": "2025-03-14 15:16:01.173074", 13 | "modified_by": "Administrator", 14 | "module": "BEAMS", 15 | "name": "Detailed Budget Allocation Report", 16 | "owner": "Administrator", 17 | "prepared_report": 0, 18 | "ref_doctype": "Budget", 19 | "report_name": "Detailed Budget Allocation Report", 20 | "report_type": "Script Report", 21 | "roles": [ 22 | { 23 | "role": "Accounts Manager" 24 | }, 25 | { 26 | "role": "Budget User" 27 | }, 28 | { 29 | "role": "Budget Verifier" 30 | } 31 | ], 32 | "timeout": 0 33 | } -------------------------------------------------------------------------------- /beams/beams/report/employee_allocated_asset_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/employee_allocated_asset_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/employee_allocated_asset_report/employee_allocated_asset_report.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, efeone and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.query_reports["Employee Allocated Asset Report"] = { 5 | "filters": [ 6 | { 7 | "fieldname": "employee", 8 | "label": __("Employee"), 9 | "fieldtype": "Link", 10 | "options": "Employee" 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /beams/beams/report/fuel_and_mileage_monitoring/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/fuel_and_mileage_monitoring/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/fuel_and_mileage_monitoring/fuel_and_mileage_monitoring.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 0, 3 | "columns": [], 4 | "creation": "2025-05-12 10:42:10.041159", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "letterhead": null, 12 | "modified": "2025-05-12 11:43:12.875110", 13 | "modified_by": "Administrator", 14 | "module": "BEAMS", 15 | "name": "Fuel and Mileage Monitoring", 16 | "owner": "Administrator", 17 | "prepared_report": 0, 18 | "ref_doctype": "Trip Sheet", 19 | "report_name": "Fuel and Mileage Monitoring", 20 | "report_type": "Script Report", 21 | "roles": [ 22 | { 23 | "role": "Accounts User" 24 | }, 25 | { 26 | "role": "Quality Manager" 27 | }, 28 | { 29 | "role": "Technical Store Head" 30 | }, 31 | { 32 | "role": "Employee" 33 | } 34 | ], 35 | "timeout": 0 36 | } -------------------------------------------------------------------------------- /beams/beams/report/revenue_budget_report/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/beams/report/revenue_budget_report/__init__.py -------------------------------------------------------------------------------- /beams/beams/report/revenue_budget_report/revenue_budget_report.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_total_row": 0, 3 | "columns": [], 4 | "creation": "2025-03-21 09:38:02.676740", 5 | "disabled": 0, 6 | "docstatus": 0, 7 | "doctype": "Report", 8 | "filters": [], 9 | "idx": 0, 10 | "is_standard": "Yes", 11 | "json": "{}", 12 | "letterhead": null, 13 | "modified": "2025-03-21 09:38:11.183277", 14 | "modified_by": "Administrator", 15 | "module": "BEAMS", 16 | "name": "Revenue Budget Report", 17 | "owner": "Administrator", 18 | "prepared_report": 0, 19 | "ref_doctype": "Revenue Budget", 20 | "report_name": "Revenue Budget Report", 21 | "report_type": "Script Report", 22 | "roles": [ 23 | { 24 | "role": "System Manager" 25 | } 26 | ], 27 | "timeout": 0 28 | } -------------------------------------------------------------------------------- /beams/config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/config/__init__.py -------------------------------------------------------------------------------- /beams/modules.txt: -------------------------------------------------------------------------------- 1 | BEAMS -------------------------------------------------------------------------------- /beams/patches.txt: -------------------------------------------------------------------------------- 1 | [pre_model_sync] 2 | beams.patches.rename_hod_role #30-10-2024 3 | beams.patches.delete_custom_fields #26-11-2024-1 4 | beams.patches.no_of_children_patch #06-03-2025 5 | 6 | [post_model_sync] 7 | # Patches added in this section will be executed after doctypes are migrated 8 | beams.patches.set_account_in_cost_subhead #14-02-20250 9 | beams.patches.set_company_in_budget_template #20-02-2025 10 | beams.patches.update_budget_for_inr #17-03-2025 11 | -------------------------------------------------------------------------------- /beams/patches/no_of_children_patch.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def execute(): 4 | employees = frappe.get_all("Employee", fields=["name", "no_of_children"]) 5 | 6 | for emp in employees: 7 | no_of_children = 0 8 | if emp.no_of_children: 9 | try: 10 | no_of_children = int(emp.no_of_children) 11 | except ValueError: 12 | frappe.log_error(f"Invalid data for Employee {emp.name}: {emp.no_of_children}", "Data Conversion Error") 13 | frappe.db.set_value("Employee", emp.name, "no_of_children", no_of_children, update_modified=False) 14 | frappe.db.commit() 15 | -------------------------------------------------------------------------------- /beams/patches/rename_hod_role.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def execute(): 4 | if frappe.db.exists("Role", 'Hod'): 5 | if frappe.db.exists("Role", 'Hod') == 'Hod': 6 | frappe.rename_doc("Role", 'Hod', 'HOD') 7 | print("Role `Hod` renamed to `HOD`") 8 | frappe.db.commit() -------------------------------------------------------------------------------- /beams/patches/set_account_in_cost_subhead.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def execute(): 4 | cost_subheads = frappe.get_all('Cost Subhead', pluck='name') 5 | default_company = frappe.db.get_single_value('Global Defaults', 'default_company') 6 | for subhead in cost_subheads: 7 | cost_subhead_doc = frappe.get_doc('Cost Subhead', subhead) 8 | cost_subhead_doc.append('accounts', { 9 | 'company': default_company, 10 | 'default_account': cost_subhead_doc.account 11 | }) 12 | cost_subhead_doc.flags.ignore_mandatory = True 13 | cost_subhead_doc.save() 14 | frappe.db.commit() 15 | -------------------------------------------------------------------------------- /beams/patches/set_company_in_budget_template.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def execute(): 4 | budget_templates = frappe.get_all('Budget Template', pluck='name') 5 | default_company = frappe.db.get_single_value('Global Defaults', 'default_company') 6 | 7 | for budget_template in budget_templates: 8 | budget_template_doc = frappe.get_doc('Budget Template', budget_template) 9 | if not budget_template_doc.company: 10 | budget_template_doc.company = default_company 11 | budget_template_doc.flags.ignore_mandatory = True 12 | budget_template_doc.save() 13 | frappe.db.commit() 14 | -------------------------------------------------------------------------------- /beams/patches/update_budget_for_inr.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def execute(): 4 | print("Patch to update INR data in Budget") 5 | for budget in frappe.db.get_all("Budget", pluck="name"): 6 | try: 7 | doc = frappe.get_doc("Budget", budget) 8 | doc.budget_accounts_custom = [] 9 | for row in doc.accounts: 10 | budget_row = row.as_dict() 11 | budget_row.pop('name') 12 | budget_row.pop('parentfield') 13 | doc.append('budget_accounts_custom', budget_row) 14 | doc.save(ignore_permissions=True) 15 | except Exception as e: 16 | frappe.log_error("Error while updating Budget for INR via patch", e, "Budget", budget) 17 | -------------------------------------------------------------------------------- /beams/public/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/public/.gitkeep -------------------------------------------------------------------------------- /beams/templates/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/templates/__init__.py -------------------------------------------------------------------------------- /beams/templates/pages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/efeone/beams/ec3c4bcdc72eecbb519af92ea9c26255236cbbfe/beams/templates/pages/__init__.py -------------------------------------------------------------------------------- /beams/www/job_portal/index.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | // Initialize the filter flag to false when the page loads 3 | var filterFlag = false; 4 | 5 | // Event listener for changes in the filter fields 6 | $('#designation, #location, #type').change(function () { 7 | // Get the selected values from the filter fields 8 | var designation = $('#designation').val(); 9 | var location = $('#location').val(); 10 | var type = $('#type').val(); 11 | 12 | // Construct the URL with the selected filter values 13 | var url = '/job_portal/?designation=' + designation + '&location=' + location + '&employment_type=' + type; 14 | 15 | // Redirect to the constructed URL 16 | window.location.href = url; 17 | 18 | // Update the filter flag to true when the filter is applied 19 | filterFlag = true; 20 | }); 21 | }); -------------------------------------------------------------------------------- /pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Feature description 2 | Clearly and concisely describe the feature. 3 | 4 | ## Analysis and design (optional) 5 | Analyse and attach the design documentation 6 | 7 | ## Solution description 8 | Describe your code changes in detail for reviewers. 9 | 10 | ## Output screenshots (optional) 11 | Post the output screenshots, if a UI is affected or added due to this feature. 12 | 13 | ## Areas affected and ensured 14 | List out the areas affected by your code changes. 15 | 16 | ## Is there any existing behavior change of other features due to this code change? 17 | Mention Yes or No. If Yes, provide the appropriate explanation. 18 | 19 | ## Was this feature tested on the browsers? 20 | - Chrome 21 | - Mozilla Firefox 22 | - Opera Mini 23 | - Safari 24 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "beams" 3 | authors = [ 4 | { name = "efeone", email = "info@efeone.com"} 5 | ] 6 | description = "BEAMS (Broadcast Enterprise Administration Management System)" 7 | requires-python = ">=3.10" 8 | readme = "README.md" 9 | dynamic = ["version"] 10 | dependencies = [ 11 | # "frappe~=15.0.0" # Installed and managed by bench. 12 | ] 13 | 14 | [build-system] 15 | requires = ["flit_core >=3.4,<4"] 16 | build-backend = "flit_core.buildapi" 17 | 18 | # These dependencies are only installed when developer mode is enabled 19 | [tool.bench.dev-dependencies] 20 | # package_name = "~=1.1.0" 21 | --------------------------------------------------------------------------------