Author: hansbak
Date: Mon Dec 22 23:26:55 2008 New Revision: 728894 URL: http://svn.apache.org/viewvc?rev=728894&view=rev Log: Rate refactoring, now can have a base rate with diffrent currencies which can be overridden on a party or workeffort level. see OFBIZ-2037 for more info Added: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml (with props) ofbiz/trunk/applications/accounting/servicedef/services_rate.xml (with props) ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml (with props) ofbiz/trunk/applications/workeffort/entitydef/entitymodel_old.xml (with props) Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml ofbiz/trunk/applications/accounting/data/DemoOrganizationData.xml ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml ofbiz/trunk/applications/accounting/entitydef/entitymodel_old.xml ofbiz/trunk/applications/accounting/ofbiz-component.xml ofbiz/trunk/applications/accounting/servicedef/services_admin.xml ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsScreens.xml ofbiz/trunk/applications/accounting/widget/Menus.xml ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml ofbiz/trunk/applications/humanres/ofbiz-component.xml ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml ofbiz/trunk/applications/humanres/servicedef/services.xml ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml ofbiz/trunk/applications/workeffort/entitydef/entitymodel.xml ofbiz/trunk/applications/workeffort/entitydef/entitymodel_view.xml ofbiz/trunk/applications/workeffort/ofbiz-component.xml ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/RateServices.xml ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml ofbiz/trunk/applications/workeffort/servicedef/services_timesheet.xml ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/controller.xml ofbiz/trunk/applications/workeffort/widget/WorkEffortForms.xml ofbiz/trunk/applications/workeffort/widget/WorkEffortMenus.xml ofbiz/trunk/applications/workeffort/widget/WorkEffortScreens.xml ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/ProjectBilling.groovy ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/hoursNotYetBilled.bsh ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TimeSheetForms.xml Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml (original) +++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml Mon Dec 22 23:26:55 2008 @@ -5986,6 +5986,9 @@ <value xml:lang="nl">Aantal</value> <value xml:lang="th">à¸à¸³à¸à¸§à¸</value> </property> + <property key="AccountingRates"> + <value xml:lang="en">Rates</value> + </property> <property key="AccountingReceivePayment"> <value xml:lang="ar">تسÙ٠اÙتسدÙد</value> <value xml:lang="de">Zahlung erhalten</value> @@ -6758,6 +6761,9 @@ <value xml:lang="th">Security Error : To Update a Payment you must either be the to or from party or have the PAY_INFO_UPDATE or PAY_INFO_ADMIN permissions.</value> <value xml:lang="zh">å®å ¨é误ï¼è¦æ´æ°æ¯ä»ï¼ä½ å¿ é¡»æ¯æ¯ä»æ¹ææ¥æ¶æ¹ä¼åï¼æè å ·æPAY_INFO_UPDATEæPAY_INFO_ADMINæéã</value> </property> + <property key="AccountingUpdateRateAmount"> + <value xml:lang="en">Update Rate amount</value> + </property> <property key="AccountingUseAccount"> <value xml:lang="cs">PoužÃt úÄet</value> <value xml:lang="de">Konto benutzen</value> Modified: ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml (original) +++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml Mon Dec 22 23:26:55 2008 @@ -742,6 +742,23 @@ <TaxAuthorityRateType taxAuthorityRateTypeId="EXPORT_TAX" description="Export Tax"/> <TaxAuthorityRateType taxAuthorityRateTypeId="IMPORT_TAX" description="Import Tax"/> + <!-- Rate Types --> + <RateType rateTypeId="STANDARD" description="Standard Rate"/> + <RateType rateTypeId="DISCOUNTED" description="Discounted Rate"/> + <RateType rateTypeId="OVERTIME" description="Overtime Rate"/> + <RateType rateTypeId="AVERAGE_PAY_RATE" description="Average Pay Rate"/> + <RateType rateTypeId="HIGH_PAY_RATE" description="Highest Pay Rate"/> + <RateType rateTypeId="LOW_PAY_RATE" description="Lowest Pay Rate"/> + <!-- rate periods --> + <PeriodType description="Rate amount per Hour" periodTypeId="RATE_HOUR" periodLength="1" uomId="TF_hr"/> + <PeriodType description="Rate amount per Week" periodTypeId="RATE_WEEK" periodLength="1" uomId="TF_wk"/> + <PeriodType description="Rate amount per month" periodTypeId="RATE_MONTH" periodLength="1" uomId="TF_mon"/> + <PeriodType description="Rate amount per Quarter" periodTypeId="RATE_QUARTER" periodLength="3" uomId="TF_mon"/> + + <!-- create 'Not Applicable' records--> + <WorkEffort workEffortId="_NA_"/> + <EmplPositionType emplPositionTypeId="_NA_"/> + <!-- Points of Title Transfer --> <EnumerationType description="Points of Title Transfer" enumTypeId="PTSOFTTFR" hasTable="N" parentTypeId=""/> <Enumeration description="Desination" enumCode="DEST" enumId="POTT_DEST" sequenceId="01" enumTypeId="PTSOFTTFR"/> Modified: ofbiz/trunk/applications/accounting/data/DemoOrganizationData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/DemoOrganizationData.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/data/DemoOrganizationData.xml (original) +++ ofbiz/trunk/applications/accounting/data/DemoOrganizationData.xml Mon Dec 22 23:26:55 2008 @@ -62,4 +62,10 @@ <PartyRole partyId="TESTING" roleTypeId="INTERNAL_ORGANIZATIO"/> <PartyRole partyId="TESTING" roleTypeId="_NA_"/> <PartyRelationship partyIdFrom="Company" partyIdTo="TESTING" partyRelationshipTypeId="GROUP_ROLLUP" roleTypeIdFrom="_NA_" roleTypeIdTo="_NA_" fromDate="2001-05-13 00:00:00.000"/> + + <!-- demo rates --> + <RateAmount organizationPartyId="Company" rateTypeId="STANDARD" rateCurrencyUomId="USD" periodTypeId="RATE_HOUR" workEffortId="_NA_" partyId="_NA_" emplPositionTypeId="_NA_" fromDate="2000-01-01 00:00:00.000" rateAmount="95.0" /> + <RateAmount organizationPartyId="Company" rateTypeId="DISCOUNTED" rateCurrencyUomId="USD" periodTypeId="RATE_HOUR" workEffortId="_NA_" partyId="_NA_" emplPositionTypeId="_NA_" fromDate="2000-01-01 00:00:00.000" rateAmount="55.0"/> + <RateAmount organizationPartyId="Company" rateTypeId="OVERTIME" rateCurrencyUomId="USD" periodTypeId="RATE_HOUR" workEffortId="_NA_" partyId="_NA_" emplPositionTypeId="_NA_" fromDate="2000-01-01 00:00:00.000" rateAmount="125.0"/> + </entity-engine-xml> Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml (original) +++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml Mon Dec 22 23:26:55 2008 @@ -39,6 +39,7 @@ <!-- - org.ofbiz.accounting.ledger --> <!-- - org.ofbiz.accounting.payment --> <!-- - org.ofbiz.accounting.tax --> + <!-- - org.ofbiz.accounting.rate --> <!-- ========================================================= --> @@ -3209,5 +3210,102 @@ <view-link entity-alias="ATE" rel-entity-alias="ATR"> <key-map field-name="acctgTransId"/> </view-link> - </view-entity> + </view-entity> + + <entity entity-name="RateType" package-name="org.ofbiz.accounting.rate" + title="Rate Type Entity"> + <field name="rateTypeId" type="id-ne"></field> + <field name="description" type="description"></field> + <prim-key field="rateTypeId"/> + </entity> + + <entity entity-name="RateAmount" package-name="org.ofbiz.accounting.rate"> + <field name="rateTypeId" type="id-ne"/> + <field name="rateCurrencyUomId" type="id-ne"/> + <field name="periodTypeId" type="id-ne"/> + <field name="workEffortId" type="id"/> + <field name="partyId" type="id"/> + <field name="emplPositionTypeId" type="id"/> + <field name="fromDate" type="date-time"><description>Describes when a rate amount will be valid. If null, valid immediately.</description></field> + <field name="thruDate" type="date-time"><description>Describes when a rate amount will be valid untl. If null, valid indefinitly.</description></field> + <field name="rateAmount" type="currency-amount"/> + <prim-key field="rateTypeId"/> + <prim-key field="rateCurrencyUomId"/> + <prim-key field="periodTypeId"/> + <prim-key field="partyId"/> + <prim-key field="workEffortId"/> + <prim-key field="emplPositionTypeId"/> + <prim-key field="fromDate"/> + <relation type="one" fk-name="RATE_AMOUNT_RT" rel-entity-name="RateType"> + <key-map field-name="rateTypeId"/> + </relation> + <relation type="one" fk-name="RATE_AMOUNT_RCT" rel-entity-name="Uom"> + <key-map field-name="rateCurrencyUomId" rel-field-name="uomId"/> + </relation> + <relation type="one" fk-name="RATE_AMOUNT_WE" rel-entity-name="WorkEffort"> + <key-map field-name="workEffortId"/> + </relation> + <relation type="one" fk-name="RATE_AMOUNT_PTY" rel-entity-name="Party"> + <key-map field-name="partyId"/> + </relation> + <relation type="one" fk-name="RATE_AMOUNT_EPT" rel-entity-name="EmplPositionType"> + <key-map field-name="emplPositionTypeId"/> + </relation> + <relation type="one" fk-name="RATE_AMOUNT_PT" rel-entity-name="PeriodType"> + <key-map field-name="periodTypeId"/> + </relation> + </entity> + + <view-entity entity-name="RateAmountAndRelations" package-name="org.ofbiz.accounting.rate"> + <member-entity entity-alias="RA" entity-name="RateAmount"/> + <member-entity entity-alias="RT" entity-name="RateType"/> + <member-entity entity-alias="PT" entity-name="PeriodType"/> + <member-entity entity-alias="PN" entity-name="PartyNameView"/> + <member-entity entity-alias="WE" entity-name="WorkEffort"/> + <member-entity entity-alias="EPT" entity-name="EmplPositionType"/> + <alias-all entity-alias="RA"/> + <alias entity-alias="RT" name="rateDescription" field="description"/> + <alias entity-alias="PT" name="periodDescription" field="description"/> + <alias entity-alias="PN" name="firstName"/> + <alias entity-alias="PN" name="middleName"/> + <alias entity-alias="PN" name="lastName"/> + <alias entity-alias="PN" name="groupName"/> + <alias entity-alias="EPT" name="employeePositionDescription" field="description"/> + <alias entity-alias="WE" name="workEffortName"/> + <view-link entity-alias="RA" rel-entity-alias="RT"> + <key-map field-name="rateTypeId"/> + </view-link> + <view-link entity-alias="RA" rel-entity-alias="PT"> + <key-map field-name="periodTypeId"/> + </view-link> + <view-link entity-alias="RA" rel-entity-alias="PN" rel-optional="true"> + <key-map field-name="partyId"/> + </view-link> + <view-link entity-alias="RA" rel-entity-alias="WE" rel-optional="true"> + <key-map field-name="workEffortId"/> + </view-link> + <view-link entity-alias="RA" rel-entity-alias="EPT" rel-optional="true"> + <key-map field-name="emplPositionTypeId"/> + </view-link> + </view-entity> + + <entity entity-name="PartyRate" package-name="org.ofbiz.accounting.rate" + title="Party Rate Entity" table-name="PARTY_RATE_NEW"> + <field name="partyId" type="id-ne"/> + <field name="rateTypeId" type="id-ne"/> + <field name="defaultRate" type="indicator"/> + <field name="percentageUsed" type="floating-point"><description>The percentage of the actual hours registered in timeEntries, used for the task and invoice actuals, if the field is null 100% will be used</description></field> + <field name="fromDate" type="date-time"/> + <field name="thruDate" type="date-time"/> + <prim-key field="partyId"/> + <prim-key field="rateTypeId"/> + <prim-key field="fromDate"/> + <relation type="one" fk-name="PRTY_RATE_PRTY" rel-entity-name="Party"> + <key-map field-name="partyId"/> + </relation> + <relation type="one" fk-name="PRTY_RATE_RTTP" rel-entity-name="RateType"> + <key-map field-name="rateTypeId"/> + </relation> + </entity> + </entitymodel> Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel_old.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel_old.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/entitydef/entitymodel_old.xml (original) +++ ofbiz/trunk/applications/accounting/entitydef/entitymodel_old.xml Mon Dec 22 23:26:55 2008 @@ -30,8 +30,8 @@ <version>1.0</version> <!-- ========================================================= --> <!-- ======================== Data Model ===================== --> - <!-- The modules in this file are as follows: --> - <!-- - org.ofbiz.accounting.payment --> + <!-- The modules in this file are as follows: --> + <!-- org.ofbiz.accounting.payment --> <!-- ========================================================= --> @@ -73,4 +73,28 @@ <key-map field-name="surveyResponseId"/> </relation> </entity> + <entity entity-name="OldPartyRate" table-name="PARTY_RATE" + package-name="org.ofbiz.workeffort.timesheet" + title="Party Rate Entity"> + <field name="partyId" type="id-ne"></field> + <field name="rateTypeId" type="id-ne"></field> + <field name="currencyUomId" type="id-ne"/> + <field name="defaultRate" type="indicator"></field> + <field name="fromDate" type="date-time"></field> + <field name="thruDate" type="date-time"></field> + <field name="rate" type="currency-amount"></field> + <prim-key field="partyId"/> + <prim-key field="rateTypeId"/> + <prim-key field="currencyUomId"/> + <prim-key field="fromDate"/> + <relation type="one" fk-name="OPRTY_RTE_PRTY" rel-entity-name="Party"> + <key-map field-name="partyId"/> + </relation> + <relation type="one" fk-name="OPRTY_RTE_RTTP" rel-entity-name="RateType"> + <key-map field-name="rateTypeId"/> + </relation> + <relation type="one" fk-name="OPARTY_RATE_CUOM" title="Currency" rel-entity-name="Uom"> + <key-map field-name="currencyUomId" rel-field-name="uomId"/> + </relation> + </entity> </entitymodel> \ No newline at end of file Modified: ofbiz/trunk/applications/accounting/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/ofbiz-component.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/ofbiz-component.xml (original) +++ ofbiz/trunk/applications/accounting/ofbiz-component.xml Mon Dec 22 23:26:55 2008 @@ -56,6 +56,7 @@ <service-resource type="model" loader="main" location="servicedef/services_payment.xml"/> <service-resource type="model" loader="main" location="servicedef/services_paymentmethod.xml"/> <service-resource type="model" loader="main" location="servicedef/services_tax.xml"/> + <service-resource type="model" loader="main" location="servicedef/services_rate.xml"/> <service-resource type="model" loader="main" location="servicedef/services_cost.xml"/> <service-resource type="model" loader="main" location="servicedef/services_olap.xml"/> Added: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml?rev=728894&view=auto ============================================================================== --- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml (added) +++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml Mon Dec 22 23:26:55 2008 @@ -0,0 +1,384 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> + + <simple-method method-name="updateRateAmount" short-description="update/create a rate amount value"> + <set value="_CREATE" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + + <!-- set defaults --> + <if-empty field="parameters.rateCurrencyUomId"> + <property-to-field resource="general.properties" property="currency.uom.id.default" field-name="parameters.rateCurrencyUomId"/> + </if-empty> + <if-empty field="parameters.periodTypeId"> + <set field="parameters.periodTypeId" value="RATE_HOUR"/> + </if-empty> + <if-empty field="parameters.emplPositionTypeId"> + <set field="parameters.emplPositionTypeId" value="_NA_"/> + </if-empty> + <if-empty field="parameters.partyId"> + <set field="parameters.partyId" value="_NA_"/> + </if-empty> + <if-empty field="parameters.workEffortId"> + <set field="parameters.workEffortId" value="_NA_"/> + </if-empty> + + <!-- try to find existing value --> + <entity-and entity-name="RateAmount" list-name="rateAmounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="workEffortId" env-name="parameters.workEffortId"/> + <field-map field-name="rateCurrencyUomId" env-name="parameters.rateCurrencyUomId"/> + <field-map field-name="emplPositionTypeId" env-name="parameters.emplPositionTypeId"/> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <field-map field-name="periodTypeId" env-name="parameters.periodTypeId"/> + </entity-and> + + <!-- end existing value --> + <if-not-empty field="rateAmounts"> + <first-from-list entry-name="rateAmount" list-name="rateAmounts"/> + <if-compare-field field="rateAmount.rateAmount" operator="not-equals" to-field="parameters.rateAmount"> + <set-service-fields service-name="deleteRateAmount" map-name="rateAmount" to-map-name="delRateAmount"/> + <call-service service-name="deleteRateAmount" in-map-name="delRateAmount"/> + </if-compare-field> + </if-not-empty> + + <make-value entity-name="RateAmount" value-name="newEntity"/> + <set-pk-fields map-name="parameters" value-name="newEntity"/> + <set-nonpk-fields map-name="parameters" value-name="newEntity"/> + <now-timestamp-to-env env-name="newEntity.fromDate"/> + <clear-field field-name="newEntity.thruDate"/> + <create-value value-name="newEntity"/> + </simple-method> + + <simple-method method-name="deleteRateAmount" short-description="update/create a rate amount value"> + <set value="_CREATE" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + + <!-- set defaults --> + <if-empty field="parameters.rateCurrencyUomId"> + <property-to-field resource="general.properties" property="currency.uom.id.default" field-name="parameters.rateCurrencyUomId"/> + </if-empty> + <if-empty field="parameters.periodTypeId"> + <set field="parameters.periodTypeId" value="RATE_HOUR"/> + </if-empty> + <if-empty field="parameters.emplPositionTypeId"> + <set field="parameters.emplPositionTypeId" value="_NA_"/> + </if-empty> + <if-empty field="parameters.partyId"> + <set field="parameters.partyId" value="_NA_"/> + </if-empty> + <if-empty field="parameters.workEffortId"> + <set field="parameters.workEffortId" value="_NA_"/> + </if-empty> + + <entity-one entity-name="RateAmount" value-name="rateAmount"/> + + <if-not-empty field="rateAmount"> + <now-timestamp-to-env env-name="rateAmount.thruDate"/> + <store-value value-name="rateAmount"/> + <else> + <add-error><fail-message message="could not find record to be deleted"/></add-error> + </else> + </if-not-empty> + + </simple-method> + + <simple-method method-name="getRateAmount" short-description="Get the applicable rate amount value"> + <set value="_READ" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + <!-- + Search for the applicable rate from most specific to most general in the RateAmount entity + Defaults for periodTypeId is per hour and default currency is the currency in general.properties + The order is: + 1. for specific rateTypeId, workEffortId (workEffort) + 2. for specific rateTypeId, partyId (party) + 3. for specific rateTypeId, emplPositionTypeId (emplPositionType) + 4. for specific rateTypeId (rateType) + + Then will be checked if the requested periodTypeId and currency can be found, if not isue an error message + --> + <if-empty field="parameters.rateCurrencyUomId"> + <property-to-field resource="general.properties" property="currency.uom.id.default" field-name="parameters.rateCurrencyUomId"/> + </if-empty> + <if-empty field="parameters.periodTypeId"> + <set field="parameters.periodTypeId" value="RATE_HOUR"/> + </if-empty> + + <if><!-- workeffort level --> + <condition> + <and> + <not><if-empty field="parameters.workEffortId"/></not> + <if-compare field="parameters.workEffortId" value="_NA_" operator="not-equals"/> + </and> + </condition> + <then> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="workEffortId" env-name="parameters.workEffortId"/> + </entity-and> + <if-not-empty field="amounts"> + <first-from-list entry-name="amount" list-name="amounts"/> + <if-not-empty field="amount.rateAmount"> + <set field="level" value="workEffort"/> + </if-not-empty> + </if-not-empty> + </then> + </if> + + <if><!-- party level --> + <condition> + <and> + <if-empty field="level"/> + <not><if-empty field="parameters.partyId"/></not> + <if-compare field="parameters.partyId" value="_NA_" operator="not-equals"/> + </and> + </condition> + <then> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="partyId" env-name="parameters.partyId"/> + </entity-and> + <if-not-empty field="amounts"> + <first-from-list entry-name="amount" list-name="amounts"/> + <if-not-empty field="amount.rateAmount"> + <set field="level" value="party"/> + </if-not-empty> + </if-not-empty> + </then> + </if> + + <if><!-- emplPositionType level --> + <condition> + <and> + <if-empty field="level"/> + <not><if-empty field="parameters.emplPositionTypeId"/></not> + <if-compare field="parameters.emplPositionTypeId" value="_NA_" operator="not-equals"/> + </and> + </condition> + <then> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="emplPositionTypeId" env-name="parameters.emplPositionTypeId"/> + </entity-and> + <if-not-empty field="amounts"> + <first-from-list entry-name="amount" list-name="amounts"/> + <if-not-empty field="amount.rateAmount"> + <set field="level" value="emplPositionType"/> + </if-not-empty> + </if-not-empty> + </then> + </if> + + <if-empty field="level"> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + </entity-and> + <set field="level" value="rateType"/> + </if-empty> + + <if-empty field="amounts"> + <entity-one entity-name="RateType" value-name="rateType"/> + <log level="error" message="A valid rate amount could not be found for rateType: ${rateType.description}"/> + </if-empty> + <if-compare field="level" value="workEffort" operator="equals"> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <field-map field-name="workEffortId" env-name="parameters.workEffortId"/> + <field-map field-name="periodTypeId" env-name="parameters.periodTypeId"/> + <field-map field-name="rateCurrencyUomId" env-name="parameters.rateCurrencyUomId"/> + </entity-and> + <if-empty field="amounts"> + <entity-one entity-name="Uom" value-name="currencyUomId"> + <field-map field-name="uomId" env-name="parameters.rateCurrencyUomId"/> + </entity-one> + <entity-one entity-name="PeriodType" value-name="periodType"/> + <entity-one entity-name="RateType" value-name="rateType"/> + <entity-one entity-name="WorkEffort" value-name="workEffort"/> + <entity-one entity-name="PartyNameView" value-name="partyNameView"/> + <log level="error" message="A valid rate entry could be found for rateType: ${rateType.description}, workEffort: ${workEffort.workEffortName}, party: ${partyNameView.lastName} ${partyNameView.middleName} ${partyNameView.firstName}${partyNameView.groupName} However.....not for the period: ${period.description} and currency: ${currencyUomId.description}"/> + </if-empty> + </if-compare> + + <if-compare field="level" value="party" operator="equals"> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <field-map field-name="periodTypeId" env-name="parameters.periodTypeId"/> + <field-map field-name="rateCurrencyUomId" env-name="parameters.rateCurrencyUomId"/> + </entity-and> + <if-empty field="amounts"> + <entity-one entity-name="Uom" value-name="currencyUomId"> + <field-map field-name="uomId" env-name="parameters.rateCurrencyUomId"/> + </entity-one> + <entity-one entity-name="PeriodType" value-name="periodType"/> + <entity-one entity-name="RateType" value-name="rateType"/> + <entity-one entity-name="PartyNameView" value-name="partyNameView"/> + <log level="error" message="A valid rate entry could be found for rateType: ${rateType.description}, party: ${partyNameView.lastName} ${partyNameView.middleName} ${partyNameView.firstName}${partyNameView.groupName} However..... NOT for the period: ${period.description} and currency: ${currencyUomId.description}"/> + </if-empty> + </if-compare> + + <if-compare field="level" value="emplPositionType" operator="equals"> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="emplPositionTypeId" env-name="parameters.emplPositionTypeId"/> + <field-map field-name="periodTypeId" env-name="parameters.periodTypeId"/> + <field-map field-name="rateCurrencyUomId" env-name="parameters.rateCurrencyUomId"/> + </entity-and> + <if-empty field="amounts"> + <entity-one entity-name="Uom" value-name="currencyUomId"> + <field-map field-name="uomId" env-name="parameters.rateCurrencyUomId"/> + </entity-one> + <entity-one entity-name="PeriodType" value-name="periodType"/> + <entity-one entity-name="RateType" value-name="rateType"/> + <entity-one entity-name="EmplPositionType" value-name="emplPositionType"/> + <log level="error" message="A valid rate entry could be found for rateType: ${rateType.description}, emplPositionType: ${emplPositionType.description}.... However.....NOT for the period: ${period.description} and currency: ${currencyUomId.description}"/> + <check-errors/> + </if-empty> + </if-compare> + + <if-compare field="level" value="rateType" operator="equals"> + <entity-and entity-name="RateAmount" list-name="amounts" filter-by-date="true"> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + <field-map field-name="periodTypeId" env-name="parameters.periodTypeId"/> + <field-map field-name="rateCurrencyUomId" env-name="parameters.rateCurrencyUomId"/> + </entity-and> + <if-empty field="amounts"> + <entity-one entity-name="Uom" value-name="currencyUomId"> + <field-map field-name="uomId" env-name="parameters.rateCurrencyUomId"/> + </entity-one> + <entity-one entity-name="PeriodType" value-name="periodType"/> + <entity-one entity-name="RateType" value-name="rateType"/> + <entity-one entity-name="PartyNameView" value-name="partyNameView"/> + <log level="error" message="A valid rate entry could be found for rateType: ${rateType.description}, However.....NOT for the period: ${period.description} and currency: ${currencyUomId.description}"/> + <check-errors/> + </if-empty> + </if-compare> + <if-not-empty field="amounts"> + <first-from-list entry-name="amount" list-name="amounts"/> + <if-empty field="amount.rateAmount"> + <set field="amount.rateAmount" value="0" type="Double"/> + </if-empty> + <field-to-result field-name="amount.rateAmount" result-name="rateAmount"/> + <field-to-result field-name="amount.periodTypeId" result-name="periodTypeId"/> + <field-to-result field-name="amount.rateCurrencyUomId" result-name="rateCurrencyUomId"/> + <field-to-result field-name="level"/> + <field-to-result field-name="amount.fromDate" result-name="fromDate"/> + </if-not-empty> + + </simple-method> + + <!-- party rate services --> + <simple-method method-name="updatePartyRate" short-description="Update/Create PartyRate"> + <set value="_CREATE" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + + <!-- check if already exist is so expire current record --> + <entity-and entity-name="PartyRate" list-name="partyRates" filter-by-date="true"> + <field-map field-name="partyId" env-name="parameters.partyId"/> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + </entity-and> + <if-not-empty field="partyRates"> + <first-from-list entry-name="partyRate" list-name="partyRates"/> + <now-timestamp-to-env env-name="partyRate.thruDate"/> + <store-value value-name="partyRate"/> + </if-not-empty> + + <make-value value-name="newEntity" entity-name="PartyRate"/> + <set-pk-fields map-name="parameters" value-name="newEntity"/> + <if-empty field="newEntity.fromDate"><now-timestamp-to-env env-name="newEntity.fromDate"/></if-empty> + <set-nonpk-fields map-name="parameters" value-name="newEntity"/> + <call-simple-method method-name="checkOtherDefaultRate"/> + <create-value value-name="newEntity"/> + + <if-not-empty field="parameters.rateAmount"> + <set-service-fields service-name="updateRateAmount" map-name="parameters" to-map-name="updRate"/> + <call-service service-name="updateRateAmount" in-map-name="updRate"/> + </if-not-empty> + </simple-method> + + <simple-method method-name="checkOtherDefaultRate" short-description="remove an other defaultRate flag"> + <set value="_CREATE" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + <if-compare field="newEntity.defaultRate" value="Y" operator="equals"> + <entity-and entity-name="PartyRate" list-name="rates" filter-by-date="true"> + <field-map field-name="partyId" env-name="newEntity.partyId"/> + <field-map field-name="defaultRate" value="Y"/> + </entity-and> + <if-not-empty field="rates"> + <first-from-list entry-name="rate" list-name="rates"/> + <set field="rate.defaultRate" value="N"/> + <store-value value-name="rate"/> + </if-not-empty> + </if-compare> + </simple-method> + <simple-method method-name="deletePartyRate" short-description="Delete PartyRate"> + <set value="_UPDATE" field="securityAction"/> + <check-permission permission="ACCOUNTING" action="${securityAction}"><fail-property resource="AccountingUiLabels" property="AccountingPermissionError"/></check-permission> + <check-errors/> + + <entity-one entity-name="PartyRate" value-name="lookedUpValue"/> + <now-timestamp-to-env env-name="lookedUpValue.thruDate"/> + <store-value value-name="lookedUpValue"/> + + <set-service-fields service-name="deleteRateAmount" map-name="parameters" to-map-name="delRateAmount"/> + <set field="delRateAmount.fromDate" from-field="parameters.rateAmountFromDate"/> + <call-service service-name="deleteRateAmount" in-map-name="delRateAmount"/> + </simple-method> + + <!-- migrate service --> + <simple-method method-name="migrateRateFactor" short-description="migrate the several entities which were change in the rate refactor activity"> + <entity-condition entity-name="OldEmplPositionTypeRate" list-name="posRates"/> + <iterate entry-name="posRate" list-name="posRates"> + <make-value value-name="emplPositionTypeRate" entity-name="EmplPositionTypeRate"/> + <set-pk-fields value-name="posRate" map-name="emplPositionTypeRate"/> + <set-nonpk-fields value-name="posRate" map-name="emplPositionTypeRate"/> + <create-value value-name="emplPositionTypeRate"/> + <make-value value-name="rateAmount" entity-name="RateAmount"/> + <set-pk-fields value-name="posRate" map-name="rateAmount"/> + <set-nonpk-fields value-name="posRate" map-name="rateAmount"/> + <set field="rateAmount.workeffortId" value="_NA_"/> + <set field="rateAmount.partyId" value="_NA_"/> + <property-to-field resource="general.properties" property="currency.uom.id.default" field-name="rateAmount.rateCurrencyUomId"/> + <create-value value-name="rateAmount"/> + </iterate> + <entity-condition entity-name="OldPartyRate" list-name="partyRates"/> + <iterate entry-name="oldPartyRate" list-name="oldPartyRates"> + <make-value value-name="partyRate" entity-name="PartyRate"/> + <set-pk-fields value-name="oldPartyRate" map-name="partyRate"/> + <set-nonpk-fields value-name="oldPartyRate" map-name="partyRate"/> + <create-value value-name="partyRate"/> + <make-value value-name="rateAmount" entity-name="RateAmount"/> + <set-pk-fields value-name="oldPartyRate" map-name="rateAmount"/> + <set-nonpk-fields value-name="oldPartyRate" map-name="rateAmount"/> + <set field="rateAmount.workeffortId" value="_NA_"/> + <set field="rateAmount.emplPositionTypeId" value="_NA_"/> + <set field="rateAmount.periodTypeId" value="RATE_HOUR"/> + <create-value value-name="rateAmount"/> + </iterate> + </simple-method> +</simple-methods> Propchange: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/rate/RateServices.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/applications/accounting/servicedef/services_admin.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_admin.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_admin.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_admin.xml Mon Dec 22 23:26:55 2008 @@ -24,7 +24,7 @@ <vendor>OFBiz</vendor> <version>1.0</version> <service name="createPartyAcctgPreference" default-entity-name="PartyAcctgPreference" engine="simple" - location="org/ofbiz/accounting/admin/AcctgAdminServices.xml" invoke="createPartyAcctgPreference" auth="true"> + location="org/ofbiz/accounting/admin/AcctgAdminServices.xml" invoke="createPartyAcctgPreference" auth="true"> <description>Create accounting preferences for a party (organization)</description> <permission-service service-name="acctgPrefPermissionCheck" main-action="CREATE"/> <auto-attributes include="pk" mode="IN" optional="false"/> Added: ofbiz/trunk/applications/accounting/servicedef/services_rate.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_rate.xml?rev=728894&view=auto ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_rate.xml (added) +++ ofbiz/trunk/applications/accounting/servicedef/services_rate.xml Mon Dec 22 23:26:55 2008 @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd"> + <description>Accounting Services: Rate and related services</description> + <vendor>OFBiz</vendor> + <version>1.0</version> + + <service name="updateRateAmount" default-entity-name="RateAmount" engine="simple" auth="true" + location="org/ofbiz/accounting/rate/RateServices.xml" invoke="updateRateAmount"> + <description>Create/update Rate Amount</description> + <auto-attributes include="all" mode="IN" optional="true"/> + <override name="rateTypeId" optional="false"/> + <override name="rateAmount" optional="false"/> + </service> + <service name="deleteRateAmount" default-entity-name="RateAmount" engine="simple" auth="true" + location="org/ofbiz/accounting/rate/RateServices.xml" invoke="deleteRateAmount"> + <description>Delete (expire) Rate Amount</description> + <auto-attributes include="pk" mode="IN" optional="true"/> + <override name="rateTypeId" optional="false"/> + <override name="fromDate" optional="false"/> + </service> + <service name="getRateAmount" default-entity-name="RateAmount" engine="simple" auth="true" + location="org/ofbiz/accounting/rate/RateServices.xml" invoke="getRateAmount"> + <description>Get Rate Amount</description> + <auto-attributes include="pk" mode="IN" optional="true"/> + <attribute name="level" type="String" mode="OUT" optional="true"/><!-- the level the amount was retrieved from(specific -> general): workEffort, party, emplPositionType, rateType or 'null' if not found--> + <attribute name="rateAmount" type="Double" mode="OUT" optional="true"/> + <attribute name="periodTypeId" type="String" mode="INOUT" optional="true"/> + <attribute name="rateCurrencyUomId" type="String" mode="INOUT" optional="true"/> + <attribute name="fromDate" type="Timestamp" mode="OUT" optional="true"/> + <override name="rateTypeId" optional="false"/> + </service> + + <!-- PartyRate Services --> + <service name="updatePartyRate" default-entity-name="PartyRate" engine="simple" auth="true" + location="org/ofbiz/accounting/rate/RateServices.xml" invoke="updatePartyRate"> + <description>Creates PartyRate</description> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + <attribute name="organizationPartyId" type="String" mode="IN" optional="true"/> + <attribute name="rateAmount" type="Double" mode="IN" optional="true"/> + <attribute name="rateCurrencyUomId" type="String" mode="IN" optional="true"/> + <attribute name="periodTypeId" type="String" mode="IN"/> + <override name="fromDate" optional="true"/> + </service> + <service name="deletePartyRate" default-entity-name="PartyRate" engine="simple" auth="true" + location="org/ofbiz/accounting/rate/RateServices.xml" invoke="deletePartyRate"> + <description>Deletes PartyRate</description> + <auto-attributes include="pk" mode="IN" optional="false"/> + <attribute name="rateAmountFromDate" type="Timestamp" mode="IN" optional="true"/><!-- to be able to expire rateamount specific to a party records....--> + </service> + +</services> Propchange: ofbiz/trunk/applications/accounting/servicedef/services_rate.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/accounting/servicedef/services_rate.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/accounting/servicedef/services_rate.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml Mon Dec 22 23:26:55 2008 @@ -1395,6 +1395,25 @@ <response name="success" type="view" value="ViewFXConversions"/> <response name="error" type="view" value="ViewFXConversions"/> </request-map> + + <request-map uri="viewRateAmounts"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ViewRateAmounts"/> + </request-map> + + <request-map uri="updateRateAmount"> + <security https="true" auth="true"/> + <event type="service" invoke="updateRateAmount"/> + <response name="success" type="view" value="ViewRateAmounts"/> + <response name="error" type="view" value="ViewRateAmounts"/> + </request-map> + + <request-map uri="deleteRateAmount"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteRateAmount"/> + <response name="success" type="view" value="ViewRateAmounts"/> + <response name="error" type="view" value="ViewRateAmounts"/> + </request-map> <request-map uri="editProductGlAccounts"> <security https="true" auth="true"/> @@ -2029,6 +2048,7 @@ <view-map name="ListGlAccountOrganization" type="screen" page="component://accounting/widget/GlSetupScreens.xml#ListGlAccountOrganization"/> <view-map name="SetupGlJournals" type="screen" page="component://accounting/widget/GlSetupScreens.xml#SetupGlJournals"/> <view-map name="ViewFXConversions" type="screen" page="component://accounting/widget/GlSetupScreens.xml#ViewFXConversions"/> + <view-map name="ViewRateAmounts" type="screen" page="component://accounting/widget/GlobalGlAccountsScreens.xml#ViewRateAmounts"/> <view-map name="GlAccountTypeDefaults" type="screen" page="component://accounting/widget/GlSetupScreens.xml#GlAccountTypeDefaults"/> <view-map name="GlAccountPurInvoice" type="screen" page="component://accounting/widget/GlSetupScreens.xml#GlAccountPurInvoice"/> <view-map name="GlAccountSalInvoice" type="screen" page="component://accounting/widget/GlSetupScreens.xml#GlAccountSalInvoice"/> Modified: ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml (original) +++ ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml Mon Dec 22 23:26:55 2008 @@ -325,7 +325,8 @@ <field name="conversionFactor"><text/></field> <field name="submitButton" title="${uiLabelMap.AccountingUpdateFX}"><submit/></field> </form> - + + <form name="ListGlAccountTypeDefaults" type="list" target="" list-name="glAccountTypeDefaults" odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar"> <actions> Modified: ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml (original) +++ ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml Mon Dec 22 23:26:55 2008 @@ -196,4 +196,67 @@ <field name="acctgTransEntrySeqId"><display/></field> <field name="reconciledAmount"><display/></field> </form> + <form name="ListRateAmounts" type="list" target="deleteRateAmount" paginate-target="viewRateAmounts" + odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar"> + <actions> + <set field="sortField" from-field="parameters.sortField" default-value="rateTypeId"/> + <entity-condition entity-name="RateAmountAndRelations" filter-by-date="true"> + <order-by field-name="${sortField}"/> + <order-by field-name="rateTypeId"/> + <order-by field-name="periodTypeId"/> + </entity-condition> + </actions> + <field name="fromDate"><hidden/></field> + <field name="rateTypeId"><hidden/></field> + <field name="rateCurrencyUomId"><hidden/></field> + <field name="rateDescription"><display/></field> + <field name="periodTypeId"><display description="${periodDescription}"/></field> + <field name="partyId" sort-field="true"><display description="${groupName}${lastName} ${firstName} ${middleName}"/></field> + <field name="workEffortId" sort-field="true"><display description="${workEffortName}"/></field> + <field name="emplPositionTypeId" sort-field="true"><display description="${employeePositionDescription}"/></field> + <field name="rateAmount"><display type="currency" currency="${rateCurrencyUomId}"/></field> + <field name="delete"><submit/></field> + </form> + + <form name="updateRateAmount" type="single" target="updateRateAmount" default-service-name="updateRateAmount" + header-row-style="header-row" default-table-style="basic-table"> + <actions> + <property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD" /> + </actions> + <field name="rateTypeId"> + <drop-down> + <entity-options entity-name="RateType" description="${description}"> + <entity-order-by field-name="description"/> + </entity-options> + </drop-down> + </field> + <field name="periodTypeId" position="2"> + <drop-down> + <entity-options entity-name="PeriodType" description="${description}"> + <entity-constraint name="periodTypeId" operator="like" value="RATE_%"/> + <entity-order-by field-name="description"/> + </entity-options> + </drop-down> + </field> + <field name="rateAmount" position="1"><text/></field> + <field name="rateCurrencyUomId" position="2"> + <drop-down allow-empty="true" no-current-selected-key="${defaultCurrencyUomId}"> + <entity-options key-field-name="uomId" description="${abbreviation} - ${description}" entity-name="Uom"> + <entity-constraint name="uomTypeId" operator="equals" value="CURRENCY_MEASURE"/> + <entity-order-by field-name="abbreviation"/> + </entity-options> + </drop-down> + </field> + <field name="partyId"><lookup target-form-name="LookupPartyId"></lookup></field> + <field name="workEffortId"><lookup target-form-name="LookupWorkEffort"><sub-hyperlink target="ww" description="${workEffortName}"/></lookup></field> + <field name="emplPositionTypeId" position="2"> + <drop-down allow-empty="true"> + <entity-options entity-name="EmplPositionType" description="${description}"> + <entity-constraint name="emplPositionTypeId" operator="not-equals" value="_NA_"/> + <entity-order-by field-name="description"/> + </entity-options> + </drop-down> + </field> + <field name="submitButton" title="${uiLabelMap.AccountingUpdateRateAmount}"><submit/></field> + </form> </forms> \ No newline at end of file Modified: ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsScreens.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsScreens.xml (original) +++ ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsScreens.xml Mon Dec 22 23:26:55 2008 @@ -411,4 +411,24 @@ </widgets> </section> </screen> + <screen name="ViewRateAmounts"> + <section> + <actions> + <property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/> + <set field="titleProperty" value="AccountingRateAmounts"/> + <set field="labelTitleProperty" value="${uiLabelMap.AccountingRateAmounts}"/> + <set field="tabButtonItem" value="ViewRateAmounts"/> + </actions> + <widgets> + <decorator-screen name="GlobalGLSettingsDecorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <screenlet title="${uiLabelMap.AccountingUpdateRateAmount}" navigation-form-name="ListRateAmounts"> + <include-form name="updateRateAmount" location="component://accounting/widget/GlobalGlAccountsForms.xml"/> + </screenlet> + <include-form name="ListRateAmounts" location="component://accounting/widget/GlobalGlAccountsForms.xml"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> </screens> \ No newline at end of file Modified: ofbiz/trunk/applications/accounting/widget/Menus.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/Menus.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/Menus.xml (original) +++ ofbiz/trunk/applications/accounting/widget/Menus.xml Mon Dec 22 23:26:55 2008 @@ -575,6 +575,9 @@ <menu-item name="InvoiceItemTypes" title="${uiLabelMap.AccountingInvoiceItemType}"> <link target="editInvoiceItemType"/> </menu-item> + <menu-item name="ViewRateAmounts" title="${uiLabelMap.AccountingRates}"> + <link target="viewRateAmounts"/> + </menu-item> </menu> <menu name="AgreementTabBar" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml"> Modified: ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml (original) +++ ofbiz/trunk/applications/humanres/entitydef/entitymodel.xml Mon Dec 22 23:26:55 2008 @@ -753,32 +753,44 @@ <key-map field-name="responsibilityTypeId"/> </relation> </entity> - <entity entity-name="EmplPositionTypeRate" - package-name="org.ofbiz.humanres.position" - title="EmplPosition Type Rate Entity"> - <field name="emplPositionTypeId" type="id-ne"/> - <field name="periodTypeId" type="id-ne"/> - <field name="payGradeId" type="id"/> - <field name="salaryStepSeqId" type="id"/> - <field name="rateTypeId" type="id"/> - <field name="fromDate" type="date-time"/> - <field name="thruDate" type="date-time"/> - <field name="rate" type="id"/> - <prim-key field="emplPositionTypeId"/> - <prim-key field="periodTypeId"/> - <prim-key field="fromDate"/> - <relation type="one" fk-name="EMPL_PSTPRT_EPTP" rel-entity-name="EmplPositionType"> - <key-map field-name="emplPositionTypeId"/> - </relation> - <relation type="one" fk-name="EMPL_PSTPRT_PRDTYP" rel-entity-name="PeriodType"> - <key-map field-name="periodTypeId"/> - </relation> - <relation type="one-nofk" fk-name="EMPL_PSTPRT_SSTP" rel-entity-name="SalaryStep"> - <key-map field-name="salaryStepSeqId"/> - <key-map field-name="payGradeId"/> - </relation> - <relation type="one-nofk" fk-name="EMPL_PSTPRT_RTTYP" rel-entity-name="RateType"> - <key-map field-name="rateTypeId"/> - </relation> - </entity> + <entity entity-name="EmplPositionTypeRate" table-name="EMPL_POSITION_TYPE_RATE_NEW" + package-name="org.ofbiz.humanres.position" + title="EmplPosition Type Rate Entity"> + <field name="emplPositionTypeId" type="id-ne"/> + <field name="rateTypeId" type="id-ne"/> + <field name="payGradeId" type="id"/> + <field name="salaryStepSeqId" type="id"/> + <field name="fromDate" type="date-time"/> + <field name="thruDate" type="date-time"/> + <prim-key field="emplPositionTypeId"/> + <prim-key field="rateTypeId"/> + <prim-key field="fromDate"/> + <relation type="one" fk-name="EMPL_PTPRT_EPTP" rel-entity-name="EmplPositionType"> + <key-map field-name="emplPositionTypeId"/> + </relation> + <relation type="one-nofk" fk-name="EMPL_PTPRT_SSTP" rel-entity-name="SalaryStep"> + <key-map field-name="salaryStepSeqId"/> + <key-map field-name="payGradeId"/> + </relation> + <relation type="one-nofk" fk-name="EMPL_PTPRT_RTTYP" rel-entity-name="RateType"> + <key-map field-name="rateTypeId"/> + </relation> + </entity> + <view-entity entity-name="EmplPositionTypeRateAndAmount" + package-name="org.ofbiz.humanres.position" + title="EmplPosition Type Rate Entity and Rate Amount"> + <member-entity entity-alias="EPTR" entity-name="EmplPositionTypeRate"/> + <member-entity entity-alias="RA" entity-name="RateAmount"/> + <alias-all entity-alias="EPTR"/> + <alias entity-alias="RA" name="rateAmount"/> + <alias entity-alias="RA" name="periodTypeId"/> + <alias entity-alias="RA" name="rateCurrencyUomId"/> + <alias entity-alias="RA" name="rateAmountFromDate" field="fromDate"/> + <alias entity-alias="RA" name="rateAmountThruDate" field="thruDate"/> + <view-link entity-alias="EPTR" rel-entity-alias="RA"> + <key-map field-name="emplPositionTypeId"/> + <key-map field-name="rateTypeId"/> + </view-link> + </view-entity> + </entitymodel> \ No newline at end of file Added: ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml?rev=728894&view=auto ============================================================================== --- ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml (added) +++ ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml Mon Dec 22 23:26:55 2008 @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd"> + <title>Entity of an Open For Business Project Component</title> + <description>None</description> + <copyright>Copyright 2001-2008 The Apache Software Foundation</copyright> + <author>None</author> + <version>1.0</version> + + <entity entity-name="OldEmplPositionTypeRate" table-name="EMPL_POSITION_TYPE_RATE" + package-name="org.ofbiz.humanres.position" + title="EmplPosition Type Rate Entity"> + <field name="emplPositionTypeId" type="id-ne"/> + <field name="periodTypeId" type="id-ne"/> + <field name="payGradeId" type="id"/> + <field name="salaryStepSeqId" type="id"/> + <field name="rateTypeId" type="id"/> + <field name="fromDate" type="date-time"/> + <field name="thruDate" type="date-time"/> + <field name="rate" type="id"/> + <prim-key field="emplPositionTypeId"/> + <prim-key field="periodTypeId"/> + <prim-key field="fromDate"/> + <relation type="one" fk-name="EMPL_PSTPRT_EPTP" rel-entity-name="EmplPositionType"> + <key-map field-name="emplPositionTypeId"/> + </relation> + <relation type="one" fk-name="EMPL_PSTPRT_PRDTYP" rel-entity-name="PeriodType"> + <key-map field-name="periodTypeId"/> + </relation> + <relation type="one-nofk" fk-name="EMPL_PSTPRT_SSTP" rel-entity-name="SalaryStep"> + <key-map field-name="salaryStepSeqId"/> + <key-map field-name="payGradeId"/> + </relation> + <relation type="one-nofk" fk-name="EMPL_PSTPRT_RTTYP" rel-entity-name="RateType"> + <key-map field-name="rateTypeId"/> + </relation> + </entity> +</entitymodel> Propchange: ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/applications/humanres/entitydef/entitymodel_old.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/applications/humanres/ofbiz-component.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/ofbiz-component.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/ofbiz-component.xml (original) +++ ofbiz/trunk/applications/humanres/ofbiz-component.xml Mon Dec 22 23:26:55 2008 @@ -26,6 +26,7 @@ <classpath type="dir" location="script"/> <classpath type="dir" location="config"/> <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/> + <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_old.xml"/> <entity-resource type="data" reader-name="seed" loader="main" location="data/HumanResTypeData.xml"/> <entity-resource type="data" reader-name="seed" loader="main" location="data/HumanResSecurityData.xml"/> <service-resource type="model" loader="main" location="servicedef/services.xml"/> Modified: ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml (original) +++ ofbiz/trunk/applications/humanres/script/org/ofbiz/humanres/HumanResServices.xml Mon Dec 22 23:26:55 2008 @@ -1,21 +1,21 @@ -<?xml version="1.0" encoding="UTF-8" ?> +<?xml version="1.0" encoding="UTF-8"?> <!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. --> <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -605,29 +605,39 @@ <store-value value-name="lookedUpValue"/> </simple-method> - <simple-method method-name="createEmplPositionTypeRate" short-description="Create a PositionType"> - <make-value entity-name="EmplPositionTypeRate" value-name="newEntity"/> + <simple-method method-name="updateEmplPositionTypeRate" short-description="Update/create EmplPositionTypeRate"> + <entity-one entity-name="EmplPositionTypeRate" value-name="lookedUpValue"/> + <!-- check if already exist is so expire current record --> + <entity-and entity-name="EmplPositionTypeRate" list-name="emplPositionTypeRates" filter-by-date="true"> + <field-map field-name="emplPositionTypeId" env-name="parameters.emplPositionTypeId"/> + <field-map field-name="rateTypeId" env-name="parameters.rateTypeId"/> + </entity-and> + <if-not-empty field="emplPositionTypeRates"> + <first-from-list entry-name="emplPositionTypeRate" list-name="emplPositionTypeRates"/> + <now-timestamp-to-env env-name="emplPositionTypeRate.thruDate"/> + <store-value value-name="emplPositionTypeRate"/> + </if-not-empty> + + <make-value value-name="newEntity" entity-name="EmplPositionTypeRate"/> <set-pk-fields map-name="parameters" value-name="newEntity"/> + <if-empty field="newEntity.fromDate"><now-timestamp-to-env env-name="newEntity.fromDate"/></if-empty> <set-nonpk-fields map-name="parameters" value-name="newEntity"/> - <if-empty field="newEntity.fromDate"> - <now-timestamp-to-env env-name="nowTimeStamp"/> - <set field="newEntity.fromDate" from-field="nowTimeStamp"/> - </if-empty> - <field-to-result field-name="newEntity.emplPositionTypeId" result-name="emplPositionTypeId"/> - <field-to-result field-name="newEntity.periodTypeId" result-name="periodTypeId"/> - <field-to-result field-name="newEntity.fromDate" result-name="fromDate"/> - <create-value value-name="newEntity"/> + <create-value value-name="newEntity"/> + + <if-not-empty field="parameters.rateAmount"> + <set-service-fields service-name="updateRateAmount" map-name="parameters" to-map-name="updRate"/> + <call-service service-name="updateRateAmount" in-map-name="updRate"/> + </if-not-empty> </simple-method> - <simple-method method-name="updateEmplPositionTypeRate" short-description="Update EmplPositionTypeRate"> + <simple-method method-name="deleteEmplPositionTypeRate" short-description="Delete EmplPositionTypeRate"> <entity-one entity-name="EmplPositionTypeRate" value-name="lookedUpValue"/> - <set-nonpk-fields value-name="lookedUpValue" map-name="parameters"/> + <now-timestamp-to-env env-name="lookedUpValue.thruDate"/> <store-value value-name="lookedUpValue"/> - </simple-method> - - <simple-method method-name="deleteEmplPositionTypeRate" short-description="Delete EmplPositionTypeRate"> - <entity-one entity-name="EmplPositionTypeRate" value-name="lookedUpValue"/> - <remove-value value-name="lookedUpValue"/> + + <set-service-fields service-name="deleteRateAmount" map-name="parameters" to-map-name="delRateAmount"/> + <set field="delRateAmount.fromDate" from-field="parameters.rateAmountFromDate"/> + <call-service service-name="deleteRateAmount" in-map-name="delRateAmount"/> </simple-method> <simple-method method-name="createAgreementEmploymentAppl" short-description="Create Agreement Employment Appl"> Modified: ofbiz/trunk/applications/humanres/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/servicedef/services.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/servicedef/services.xml (original) +++ ofbiz/trunk/applications/humanres/servicedef/services.xml Mon Dec 22 23:26:55 2008 @@ -633,21 +633,16 @@ <auto-attributes mode="IN" include="nonpk" optional="true"/> </service> - <service name="createEmplPositionTypeRate" engine="simple" default-entity-name="EmplPositionTypeRate" - location="org/ofbiz/humanres/HumanResServices.xml" invoke="createEmplPositionTypeRate" auth="true"> - <description>Create Valid EmplPositionTypeRate</description> - <permission-service service-name="humanResManagerPermission" main-action="CREATE"/> - <auto-attributes mode="INOUT" include="pk" optional="false"/> - <auto-attributes mode="IN" include="nonpk" optional="true"/> - <override name="fromDate" optional="true"/> - </service> - <service name="updateEmplPositionTypeRate" engine="simple" default-entity-name="EmplPositionTypeRate" location="org/ofbiz/humanres/HumanResServices.xml" invoke="updateEmplPositionTypeRate" auth="true"> <description>Update Valid EmplPositionTypeRate</description> <permission-service service-name="humanResManagerPermission" main-action="UPDATE"/> - <auto-attributes mode="IN" include="pk" optional="false"/> - <auto-attributes mode="IN" include="nonpk" optional="true"/> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + <attribute name="rateAmount" type="Double" mode="IN" optional="true"/> + <attribute name="rateCurrencyUomId" type="String" mode="IN" optional="true"/> + <attribute name="periodTypeId" type="String" mode="IN"/> + <override name="fromDate" optional="true"/> </service> <service name="deleteEmplPositionTypeRate" engine="simple" default-entity-name="EmplPositionTypeRate" @@ -655,6 +650,7 @@ <description>Delete Valid EmplPositionTypeRate</description> <permission-service service-name="humanResManagerPermission" main-action="DELETE"/> <auto-attributes mode="IN" include="pk" optional="false"/> + <attribute name="rateAmountFromDate" type="Timestamp" mode="IN" optional="true"/><!-- to be able to expire rateamount specific to a party records....--> </service> <service name="createAgreementEmploymentAppl" engine="simple" default-entity-name="AgreementEmploymentAppl" Modified: ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml Mon Dec 22 23:26:55 2008 @@ -757,14 +757,9 @@ <security https="true" auth="true"/> <response name="success" type="view" value="EditEmplPositionTypeRates"/> </request-map> - <request-map uri="createEmplPositionTypeRate"> - <security https="true" auth="true"/> - <event type="service" invoke="createEmplPositionTypeRate"/> - <response name="success" type="view" value="EditEmplPositionTypeRates"/> - </request-map> <request-map uri="updateEmplPositionTypeRate"> <security https="true" auth="true"/> - <event type="service-multi" invoke="updateEmplPositionTypeRate"/> + <event type="service" invoke="updateEmplPositionTypeRate"/> <response name="success" type="view" value="EditEmplPositionTypeRates"/> </request-map> <request-map uri="deleteEmplPositionTypeRate"> Modified: ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml?rev=728894&r1=728893&r2=728894&view=diff ============================================================================== --- ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml (original) +++ ofbiz/trunk/applications/humanres/widget/forms/GlobalHRSettingForms.xml Mon Dec 22 23:26:55 2008 @@ -114,54 +114,69 @@ <field name="emplPositionTypeId" use-when="emplPositionType==null" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><text/></field> <field name="emplPositionTypeId" use-when="emplPositionType!=null"><display/></field> <field name="description" title="${uiLabelMap.CommonDescription}"><text/></field> - <field name="submitButton" use-when="emplPositionType==null" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field> - <field name="submitButton" use-when="emplPositionType!=null" title="${uiLabelMap.CommonUpdate}" widget-style="smallSubmit"><submit button-type="button"/></field> + <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="smallSubmit"><submit button-type="button"/></field> </form> - <form name="ListEmplPositionTypeRates" type="multi" title="" target="updateEmplPositionTypeRate" + <form name="ListEmplPositionTypeRates" type="list" title="" target="deleteEmplPositionTypeRate" odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar"> <actions> - <entity-condition entity-name="EmplPositionTypeRate"><order-by field-name="fromDate"/></entity-condition> + <set field="nowDate" value="${bsh:org.ofbiz.base.util.UtilDateTime.nowDateString("yyyy-MM-dd HH:mm:ss.S")}" type="String"/> + <entity-condition entity-name="EmplPositionTypeRateAndAmount" filter-by-date="true"> + <condition-list combine="and"> + <condition-expr field-name="emplPositionTypeId" env-name="parameters.emplPositionTypeId" operator="equals"/> + <condition-list combine="or"> + <condition-expr field-name="rateAmountFromDate" env-name="null" operator="equals"/> + <condition-expr field-name="rateAmountFromDate" env-name="nowDate" operator="less"/> + </condition-list> + <condition-list combine="or"> + <condition-expr field-name="rateAmountThruDate" env-name="null" operator="equals"/> + <condition-expr field-name="rateAmountThruDate" env-name="nowDate" operator="greater"/> + </condition-list> + </condition-list> + <order-by field-name="rateTypeId"/> + </entity-condition> </actions> - <auto-fields-service service-name="updateEmplPositionTypeRate" default-field-type="hidden"/> + <field name="rateCurrencyUomId"><hidden/></field> <field name="emplPositionTypeId"><hidden/></field> + <field name="fromDate"><hidden/></field> + <field name="rateAmountFromDate"><hidden/></field> + <field name="rateTypeId"><display-entity entity-name="RateType" description="${description}"/></field> <field name="periodTypeId"><display-entity entity-name="PeriodType" description="${description}"/></field> - <field name="rateTypeId"> - <drop-down allow-empty="true" no-current-selected-key=""> - <entity-options description="${description}" key-field-name="rateTypeId" entity-name="RateType"> - <entity-order-by field-name="rateTypeId"/> - </entity-options> - </drop-down> - </field> - <field name="payGradeId"><lookup target-form-name="LookupPayGrade"/></field> - <field name="salaryStepSeqId"><lookup target-form-name="LookupSalaryStep"/></field> - <field name="fromDate"><display/></field> - <field name="deleteLink" title="${uiLabelMap.CommonDelete}" widget-style="buttontext"> - <hyperlink target="deleteEmplPositionTypeRate?emplPositionTypeId=${emplPositionTypeId}&fromDate=${fromDate}" description="${uiLabelMap.CommonDelete}" also-hidden="false"/> - </field> - <field name="_rowSubmit" title="${uiLabelMap.CommonSelect}"><hidden value="Y"/></field> - <field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit/></field> + <field name="payGradeId"><display-entity entity-name="PayGrade" description="${description}"/></field> + <field name="salaryStepSeqId"><display/></field> + <field name="rateAmount"><display type="currency" currency="${rateCurrencyUomId}"/></field> + <field name="deleteButton" widget-style="buttontext"><submit/></field> </form> - <form name="AddEmplPositionTypeRate" type="single" target="createEmplPositionTypeRate" default-map-name="emplPositionTypeRate" paginate-target="EditEmplPositionTypeRates" + <form name="AddEmplPositionTypeRate" type="single" target="updateEmplPositionTypeRate" default-map-name="emplPositionTypeRate" paginate-target="EditEmplPositionTypeRates" header-row-style="header-row" default-table-style="basic-table"> - <field name="emplPositionTypeId"><hidden/></field> - <field name="rateTypeId"> - <drop-down allow-empty="true" no-current-selected-key=""> + <actions> + <property-to-field field="defaultCurrencyUomId" resource="general" property="currency.uom.id.default" default="USD" /> + </actions> + <field name="emplPositionTypeId"><hidden value="${parameters.emplPositionTypeId}"/></field> + <field name="rateTypeId" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"> + <drop-down> <entity-options description="${description}" key-field-name="rateTypeId" entity-name="RateType"> - <entity-order-by field-name="rateTypeId"/> + <entity-order-by field-name="description"/> </entity-options> </drop-down> </field> - <field name="payGradeId"><lookup target-form-name="LookupPayGrade"/></field> - <field name="salaryStepSeqId"><lookup target-form-name="LookupSalaryStep"/></field> + <field name="payGradeId" position="2"><lookup target-form-name="LookupPayGrade"/></field> <field name="periodTypeId" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"> - <drop-down allow-empty="false"> + <drop-down allow-empty="false" no-current-selected-key="RATE_MONTH"> <entity-options description="${description}" key-field-name="periodTypeId" entity-name="PeriodType"> <entity-order-by field-name="periodTypeId"/> </entity-options> </drop-down> </field> - <field name="rate" title="${uiLabelMap.FormFieldTitle_conversionFactor}"><text/></field> - <field name="fromDate" tooltip="${uiLabelMap.CommonRequired}" widget-style="required"><date-time/></field> + <field name="salaryStepSeqId" position="2"><lookup target-form-name="LookupSalaryStep"/></field> + <field name="rateAmount"><text/></field> + <field name="rateCurrencyUomId" position="2"> + <drop-down allow-empty="true" no-current-selected-key="${defaultCurrencyUomId}"> + <entity-options key-field-name="uomId" description="${abbreviation} - ${description}" entity-name="Uom"> + <entity-constraint name="uomTypeId" operator="equals" value="CURRENCY_MEASURE"/> + <entity-order-by field-name="abbreviation"/> + </entity-options> + </drop-down> + </field> <field name="submitButton" title="${uiLabelMap.CommonCreate}" widget-style="buttontext"><submit button-type="text-link"/></field> </form> <form name="ListTerminationReasons" type="multi" title="" target="updateTerminationReason" paginate-target="EditTerminationReasons" |
Free forum by Nabble | Edit this page |