Ok, I've found it, and I think you were right, maybe it's a bug.

The problem is in file 
applications/accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml

In method "getNextInvoiceId"

The bug is that when you first start, you have no lastInvoiceRestartDate
and no lastInvoiceNumber, so you need to set them as:

<calculate field-name="partyAcctgPreference.lastInvoiceNumber"
type="Long"><number value="1"/></calculate>
Set lastInvoiceNumber to 1, right.

<set from-field="nowTimestamp"
field="partyAcctgPreference.lastInvoiceRestartDate"/>
And here is the problem, I checked it after doing my first Invoice and
my lastInvoiceRestartDate is not set up to anything, so next invoice the
program tries to give it the "1" again.

I think the problem is that variable "nowTimestamp" is set up AFTER it's
used, but I'm not sure as I really don't know java.

After a while tries to set up the prefix to current year (as I figured)
and it doesn't work also, so maybe the problem is bigger and
java.util.Date is not working properly here...

<!-- get the current year string for prefix, etc; simple 4 digit year
date string -->
<call-class-method class-name="org.ofbiz.base.util.UtilDateTime"
method-name="toDateString" ret-field-name="curYearString">
  <field field-name="partyAcctgPreference.lastInvoiceRestartDate"
type="java.util.Date"/>
  <string value="yyyy"/>
</call-class-method>
<set value="${curYearString}-${partyAcctgPreference.lastInvoiceNumber}"
field="invoiceIdTemp"/>



El dc 11 de 07 del 2007 a les 09:57 -0600, en/na David E Jones va
escriure: 

> If there's a bug no documentation will fix it, a human will have to go in, 
> reproduce the bug, find the problem, and fix the code.
> 
> You can file a Jira issue to help keep track of it, but that won't 
> necessarily get resources allocated to getting it fixed. Someone with an 
> interest in the feature will actually have to do it, or hire someone else to 
> do it.
> 
> -David
> 
> 
> Xavier Olivella wrote:
> > As told in the other message my problem is that I want the "invoice
> > sequence" to be set as "Restart on Fiscal Year (no gaps, per org, reset
> > to 1 each year)" but it doesn't work. The only way it works is with
> > default option. 
> >  
> > I am getting really mad about that, I've been testing dozens of things
> > and searching in docs for days and I cannot make it run. 
> > I really could not find any "in-deep" documentation about setting the
> > company accounting, so it's impossible for me to solve the problem. 
> >  
> > When I make an invoice it works, but on the following the program gives
> > it the same invoice number so it crashes with the error below. 
> >  
> > Could anyone help me? 
> >  
> >  
> >  
> > *************************************** 
> > The Following Errors Occurred:  
> >  
> > ERROR: Could not complete the Sub-method used by quickShip methods to
> > create a shipment
> > [file:/usr/local/test01/applications/product/script/org/ofbiz/shipment/shipment/ShipmentServices.xml#createShipmentForFacilityAndShipGroup]
> >  process [problem invoking the [updateShipment] service with the map named 
> > [packedContext] containing [[shipmentId=10012, statusId=SHIPMENT_PACKED, 
> > userLogin=[GenericEntity:UserLogin][createdStamp,2007-05-31 
> > 13:21:26.0(java.sql.Timestamp)][createdTxStamp,2007-05-31 
> > 13:21:26.0(java.sql.Timestamp)][currentPassword,a059d9ac5e0b9c8067ae0cebb9a5bcba1636c386(java.lang.String)][disabledDateTime,null()][enabled,Y(java.lang.String)][hasLoggedOut,N(java.lang.String)][isSystem,null()][lastCurrencyUom,null()][lastLocale,ca(java.lang.String)][lastUpdatedStamp,2007-07-04
> >  18:25:10.0(java.sql.Timestamp)][lastUpdatedTxStamp,2007-07-04 
> > 18:25:10.0(java.sql.Timestamp)][partyId,X.Olivella(java.lang.String)][passwordHint,null()][successiveFailedLogins,0(java.lang.Long)][userLoginId,x.olivella(java.lang.String)],
> >  locale=ca]]: Problems with the transaction. (
 Ex
> ception while inserting the following entity: 
> [GenericEntity:Invoice][billingAccountId,null()][createdStamp,2007-07-04 
> 19:59:06.653(java.sql.Timestamp)][createdTxStamp,2007-07-04 
> 19:59:04.314(java.sql.Timestamp)][currencyUomId,EUR(java.lang.String)][dueDate,null()][invoiceDate,2007-07-04
>  
> 19:59:06.511(java.sql.Timestamp)][invoiceId,2007-1(java.lang.String)][invoiceTypeId,SALES_INVOICE(java.lang.String)][lastUpdatedStamp,2007-07-04
>  19:59:06.653(java.sql.Timestamp)][lastUpdatedTxStamp,2007-07-04 
> 19:59:04.314(java.sql.Timestamp)][partyId,10001(java.lang.String)][partyIdFrom,Company(java.lang.String)][statusId,INVOICE_IN_PROCESS(java.lang.String)]
>  (while inserting: 
> [GenericEntity:Invoice][billingAccountId,null()][createdStamp,2007-07-04 
> 19:59:06.653(java.sql.Timestamp)][createdTxStamp,2007-07-04 
> 19:59:04.314(java.sql.Timestamp)][currencyUomId,EUR(java.lang.String)][dueDate,null()][invoiceDate,2007-07-04
>  19:59:06.511(java.sql.Timestamp)][invoiceId,2007-1(java.lang.String)][invoic
 eT
> ypeId,SALES_INVOICE(java.lang.String)][lastUpdatedStamp,2007-07-04 
> 19:59:06.653(java.sql.Timestamp)][lastUpdatedTxStamp,2007-07-04 
> 19:59:04.314(java.sql.Timestamp)][partyId,10001(java.lang.String)][partyIdFrom,Company(java.lang.String)][statusId,INVOICE_IN_PROCESS(java.lang.String)]
>  (SQL Exception while executing the following:INSERT INTO INVOICE 
> (INVOICE_ID, INVOICE_TYPE_ID, PARTY_ID_FROM, PARTY_ID, ROLE_TYPE_ID, 
> STATUS_ID, BILLING_ACCOUNT_ID, CONTACT_MECH_ID, INVOICE_DATE, DUE_DATE, 
> PAID_DATE, INVOICE_MESSAGE, REFERENCE_NUMBER, DESCRIPTION, CURRENCY_UOM_ID, 
> LAST_UPDATED_STAMP, LAST_UPDATED_TX_STAMP, CREATED_STAMP, CREATED_TX_STAMP) 
> VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) (Duplicate 
> key or integrity constraint violation message from server: "Duplicate entry 
> '2007-1' for key 1"))))] 
> > 

Reply via email to