Author: hansbak
Date: Mon Sep 1 08:47:11 2008 New Revision: 691001 URL: http://svn.apache.org/viewvc?rev=691001&view=rev Log: re-generate an invoice from project, to be able to correct errors Modified: ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml Modified: ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml?rev=691001&r1=691000&r2=691001&view=diff ============================================================================== --- ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml (original) +++ ofbiz/trunk/applications/workeffort/script/org/ofbiz/workeffort/timesheet/TimesheetServices.xml Mon Sep 1 08:47:11 2008 @@ -121,20 +121,24 @@ <result-to-field result-name="invoiceId" field-name="parameters.invoiceId"/> </call-service> <field-to-result field-name="parameters.invoiceId" result-name="invoiceId"/> - <!-- find the currency of the receiving party --> - <entity-one entity-name="Party" value-name="party"> - <field-map field-name="partyId" value="${invoice.partyId}"/> - </entity-one> - <set field="invoice.currencyUomId" from-field="party.preferredCurrencyUomId"/> - <if-empty field="invoice.currencyUomId"> - <property-to-field field-name="invoice.currencyUomId" resource="general" property="currency.uom.id.default" default="USD"/> - </if-empty> </if-empty> <entity-one entity-name="Invoice" value-name="invoice"/> <if-empty field="invoice"> <add-error><fail-message message="Could not find invoice with ID [${parameters.invoiceId}], not adding Timesheet Entries to it."/></add-error> <check-errors/> </if-empty> + <!-- update currency, can be changed with regenerate --> + <!-- find the currency of the receiving party --> + <entity-one entity-name="Party" value-name="party"> + <field-map field-name="partyId" value="${invoice.partyId}"/> + </entity-one> + <set field="updateInvoiceMap.invoiceId" from-field="parameters.invoiceId"/> + <set field="updateInvoiceMap.currencyUomId" from-field="party.preferredCurrencyUomId"/> + <if-empty field="updateInvoiceMap.currencyUomId"> + <property-to-field field-name="invoice.currencyUomId" resource="general" property="currency.uom.id.default" default="USD"/> + </if-empty> + <call-service service-name="updateInvoice" in-map-name="updateInvoiceMap"/> + <call-simple-method method-name="createTimeEntryInvoiceItemsInline"/> </simple-method> <simple-method method-name="createTimeEntryInvoiceItemsInline" short-description="createTimeEntryInvoiceItemsInline"> @@ -202,6 +206,7 @@ <set field="invoiceItemMap.description" from-field="workEffort.workEffortName"/> </if-empty> <set field="invoiceItemMap.quantity" from-field="timeEntry.hours" default-value="0.0" type="Double"/> + <clear-field field-name="invoiceItemMap.invoiceItemSeqId"/><!-- make sure a new one is created --> <call-service service-name="createInvoiceItem" in-map-name="invoiceItemMap"> <result-to-field result-name="invoiceItemSeqId" field-name="invoiceItemMap.invoiceItemSeqId"/> </call-service> @@ -297,7 +302,6 @@ <set field="rateAmount" from-field="workEffortAssignmentRate.rate"/> </if-not-empty> </if-not-empty> - <!-- no rateAmount yet, try PartyRate if partyId not provided try the timesheet--> <if-empty field="rateAmount"> <if-empty field="timeEntry.partyId"> @@ -323,7 +327,6 @@ <set field="rateAmount" from-field="partyRate.rate"/> </if-not-empty> </if-empty> - <field-to-result field-name="rateAmount"/> </simple-method> Modified: ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=691001&r1=691000&r2=691001&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original) +++ ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Mon Sep 1 08:47:11 2008 @@ -964,6 +964,31 @@ </simple-method> <simple-method method-name="addProjectTimeToNewInvoice" short-description="add all reported time on all completed timesheets from all workefforts for a project"> + + <!-- recreate the invoice if still in preparation in order to correct errors. --> + <if-compare operator="equals" value="Y" field="parameters.reCreate"> + <entity-one entity-name="Invoice" value-name="invoice"/> + <if-empty field="invoice"> + <add-error><fail-message message="Could not find invoice with ID [${parameters.invoiceId}], not adding Timesheet Entries to it."/></add-error> + <check-errors/> + </if-empty> + <if-compare field="invoice.statusId" operator="not-equals" value="INVOICE_IN_PROCESS"> + <add-error><fail-message message="Could not find invoice with ID [${parameters.invoiceId}], not adding Timesheet Entries to it."/></add-error> + <check-errors/> + </if-compare> + <entity-and list-name="entries" entity-name="TimeEntry"> + <field-map field-name="invoiceId" env-name="parameters.invoiceId"/> + </entity-and> + <iterate list-name="entries" entry-name="timeEntry"> + <clear-field field-name="timeEntry.invoiceId"/> + <clear-field field-name="timeEntry.invoiceItemSeqId"/> + <store-value value-name="timeEntry"/> + </iterate> + <set field="removeItems.invoiceId" from-field="parameters.invoiceId"/> + <remove-by-and entity-name="InvoiceItem" map-name="removeItems"/> + <set field="notFirst" value="Y"/><!-- do not create, only add --> + </if-compare> + <log level="always" message="==============invoice items deleted"/> <entity-and entity-name="ProjectAndPhaseAndTask" list-name="tasks"> <field-map field-name="projectId" env-name="parameters.projectId"/> </entity-and> @@ -971,17 +996,21 @@ <if-empty field="notFirst"> <!-- first time so create invoice --> <set-service-fields service-name="addWorkEffortTimeToNewInvoice" map-name="parameters" to-map-name="addtaskToNewInvoice"/> - <set field="addtaskToNewInvoice.workEffortId" from-field="task.workEffortId"/> + <set field="addTaskToNewInvoice.workEffortId" from-field="task.workEffortId"/> <set field="addtaskToNewInvoice.combineInvoiceItem" value="Y"/> - <call-service service-name="addWorkEffortTimeToNewInvoice" in-map-name="addtaskToNewInvoice"> - <result-to-field result-name="invoiceId" field-name="addTaskToInvoice.invoiceId"/> + <set field="addtaskToNewInvoice.invoiceId" from-field="parameters.invoiceId"/> + <call-service service-name="addWorkEffortTimeToNewInvoice" in-map-name="addtaskToNewInvoice"> + <result-to-field result-name="invoiceId" field-name="parameters.invoiceId"/> </call-service> <set field="addTaskToInvoice.combineInvoiceItem" value="Y"/> <set field="notFirst" value="Y"/> - <field-to-result field-name="addTaskToInvoice.invoiceId" result-name="invoiceId"/> + <field-to-result field-name="parameters.invoiceId" result-name="invoiceId"/> <else> <!-- add to created invoice --> + <set field="addTaskToInvoice.combineInvoiceItem" value="Y"/> + <set field="addTaskToInvoice.invoiceId" from-field="parameters.invoiceId"/> <set field="addTaskToInvoice.workEffortId" from-field="task.workEffortId"/> + <log level="always" message="==============add workeffort iwth data ${addTaskToInvoice}"/> <call-service service-name="addWorkEffortTimeToInvoice" in-map-name="addTaskToInvoice"/> </else> </if-empty> Modified: ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml?rev=691001&r1=691000&r2=691001&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml (original) +++ ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml Mon Sep 1 08:47:11 2008 @@ -227,9 +227,10 @@ location="org/ofbiz/project/ProjectServices.xml" invoke="addProjectTimeToNewInvoice"> <description>Add Project Time to a new Invoice</description> <attribute name="projectId" type="String" mode="IN" optional="false"/> - <attribute name="partyIdFrom" type="String" mode="IN" optional="false"/> - <attribute name="partyId" type="String" mode="IN" optional="false"/> - <attribute name="invoiceId" type="String" mode="OUT" optional="true"/> + <attribute name="partyIdFrom" type="String" mode="IN" optional="true"/> + <attribute name="partyId" type="String" mode="IN" optional="true"/> + <attribute name="invoiceId" type="String" mode="INOUT" optional="true"/> + <attribute name="reCreate" type="String" mode="IN" optional="true"/> </service> </services> Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml?rev=691001&r1=691000&r2=691001&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml (original) +++ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml Mon Sep 1 08:47:11 2008 @@ -518,10 +518,16 @@ <field name="submitButton" title="${uiLabelMap.CommonAdd}" widget-style="smallSubmit"><submit button-type="button"/></field> </form> <form name="AddProjectTimeToNewInvoice" target="addProjectTimeToNewInvoice" title="" type="single"> - <field name="combineInvoiceItem"><hidden value="Y"/></field> <field name="projectId"><hidden value="${parameters.projectId}"/></field> <field name="partyIdFrom" title="${uiLabelMap.WorkEffortTimeBillFromParty}"><lookup target-form-name="LookupPartyName"/></field> <field name="partyId" title="${uiLabelMap.WorkEffortTimeBillToParty}"><lookup target-form-name="LookupPartyName" default-value="${timesheet.clientPartyId}"/></field> + <field name="reCreate"> + <drop-down no-current-selected-key="N"> + <option key="Y" description="Yes"/> + <option key="N" description="No"/> + </drop-down> + </field> + <field name="invoiceId" position="2"><text/></field> <field name="submitButton" title="${uiLabelMap.PageTitleAddProjectTimeToNewInvoice}" widget-style="smallSubmit"><submit button-type="button"/></field> </form> </forms> \ No newline at end of file |
Free forum by Nabble | Edit this page |