Odd Use of the Enumeration Entity

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Odd Use of the Enumeration Entity

David E Jones

I recently noticed the following lines in the AccountingTypeData.xml  
file (starting around line 511):

<!-- An Enumeration to identify the taxable invoice item types.  For  
these, the only important fields are enumId and enumTypeId. -->
<EnumerationType description="Taxable Invoice Item Types"  
enumTypeId="TAXABLE_INV_ITM_TY" hasTable="N" parentTypeId=""/>
<Enumeration description="Sales Invoice Sales Tax"  
enumCode="INV_SALES_TAX" enumId="INV_SALES_TAX" sequenceId="01"  
enumTypeId="TAXABLE_INV_ITM_TY"/>
<Enumeration description="Sales Invoice Line Item Sales Tax"  
enumCode="ITM_SALES_TAX" enumId="ITM_SALES_TAX" sequenceId="02"  
enumTypeId="TAXABLE_INV_ITM_TY"/>
<Enumeration description="Purchase Invoice Sales Tax"  
enumCode="PINV_SALES_TAX" enumId="PINV_SALES_TAX" sequenceId="03"  
enumTypeId="TAXABLE_INV_ITM_TY"/>
<Enumeration description="Purchase Invoice Line Item Sales Tax"  
enumCode="PITM_SALES_TAX" enumId="PITM_SALES_TAX" sequenceId="04"  
enumTypeId="TAXABLE_INV_ITM_TY"/>
<Enumeration description="Customer Return Sales Tax Adjustment"  
enumCode="CRT_SALES_TAX_ADJ" enumId="CRT_SALES_TAX_ADJ"  
sequenceId="05" enumTypeId="TAXABLE_INV_ITM_TY"/>

The point of these records seem to be to define the set of  
InventoryItemType records that are taxable... although that doesn't  
seem correct as it doesn't describe the "taxable" types, but rather  
the "tax" types.

One of the great benefits of having a specific entity for types rather  
than using something generic like the Enumeration entity is that we  
can add fields like an "isTax" flag, which seems to be a more  
effective and tenable option for this.

I haven't traced back to see who wrote or committed this, but it does  
break common patterns and may not be the easiest way to implement what  
seems to be targeted by these records.

-David

Reply | Threaded
Open this post in threaded view
|

Re: Odd Use of the Enumeration Entity

Scott Gray
Hi David

Curiosity got the better of me, Si put it in last year, so I wouldn't hold
your breathe for a response on this.

Regards
Scott

2008/4/23 David E Jones <[hidden email]>:

>
> I recently noticed the following lines in the AccountingTypeData.xml file
> (starting around line 511):
>
> <!-- An Enumeration to identify the taxable invoice item types.  For
> these, the only important fields are enumId and enumTypeId. -->
> <EnumerationType description="Taxable Invoice Item Types"
> enumTypeId="TAXABLE_INV_ITM_TY" hasTable="N" parentTypeId=""/>
> <Enumeration description="Sales Invoice Sales Tax"
> enumCode="INV_SALES_TAX" enumId="INV_SALES_TAX" sequenceId="01"
> enumTypeId="TAXABLE_INV_ITM_TY"/>
> <Enumeration description="Sales Invoice Line Item Sales Tax"
> enumCode="ITM_SALES_TAX" enumId="ITM_SALES_TAX" sequenceId="02"
> enumTypeId="TAXABLE_INV_ITM_TY"/>
> <Enumeration description="Purchase Invoice Sales Tax"
> enumCode="PINV_SALES_TAX" enumId="PINV_SALES_TAX" sequenceId="03"
> enumTypeId="TAXABLE_INV_ITM_TY"/>
> <Enumeration description="Purchase Invoice Line Item Sales Tax"
> enumCode="PITM_SALES_TAX" enumId="PITM_SALES_TAX" sequenceId="04"
> enumTypeId="TAXABLE_INV_ITM_TY"/>
> <Enumeration description="Customer Return Sales Tax Adjustment"
> enumCode="CRT_SALES_TAX_ADJ" enumId="CRT_SALES_TAX_ADJ" sequenceId="05"
> enumTypeId="TAXABLE_INV_ITM_TY"/>
>
> The point of these records seem to be to define the set of
> InventoryItemType records that are taxable... although that doesn't seem
> correct as it doesn't describe the "taxable" types, but rather the "tax"
> types.
>
> One of the great benefits of having a specific entity for types rather
> than using something generic like the Enumeration entity is that we can add
> fields like an "isTax" flag, which seems to be a more effective and tenable
> option for this.
>
> I haven't traced back to see who wrote or committed this, but it does
> break common patterns and may not be the easiest way to implement what seems
> to be targeted by these records.
>
> -David
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Odd Use of the Enumeration Entity

Bruno Busco
Isn't this
http://mail-archives.apache.org/mod_mbox/ofbiz-dev/200804.mbox/%3C366005883.1207246104380.JavaMail.jira@brutus%3E
a similar enumeration abuse?

-Bruno


2008/4/23 Scott Gray <[hidden email]>:

> Hi David
>
> Curiosity got the better of me, Si put it in last year, so I wouldn't hold
> your breathe for a response on this.
>
> Regards
> Scott
>
> 2008/4/23 David E Jones <[hidden email]>:
>
> >
> > I recently noticed the following lines in the AccountingTypeData.xml
> file
> > (starting around line 511):
> >
> > <!-- An Enumeration to identify the taxable invoice item types.  For
> > these, the only important fields are enumId and enumTypeId. -->
> > <EnumerationType description="Taxable Invoice Item Types"
> > enumTypeId="TAXABLE_INV_ITM_TY" hasTable="N" parentTypeId=""/>
> > <Enumeration description="Sales Invoice Sales Tax"
> > enumCode="INV_SALES_TAX" enumId="INV_SALES_TAX" sequenceId="01"
> > enumTypeId="TAXABLE_INV_ITM_TY"/>
> > <Enumeration description="Sales Invoice Line Item Sales Tax"
> > enumCode="ITM_SALES_TAX" enumId="ITM_SALES_TAX" sequenceId="02"
> > enumTypeId="TAXABLE_INV_ITM_TY"/>
> > <Enumeration description="Purchase Invoice Sales Tax"
> > enumCode="PINV_SALES_TAX" enumId="PINV_SALES_TAX" sequenceId="03"
> > enumTypeId="TAXABLE_INV_ITM_TY"/>
> > <Enumeration description="Purchase Invoice Line Item Sales Tax"
> > enumCode="PITM_SALES_TAX" enumId="PITM_SALES_TAX" sequenceId="04"
> > enumTypeId="TAXABLE_INV_ITM_TY"/>
> > <Enumeration description="Customer Return Sales Tax Adjustment"
> > enumCode="CRT_SALES_TAX_ADJ" enumId="CRT_SALES_TAX_ADJ" sequenceId="05"
> > enumTypeId="TAXABLE_INV_ITM_TY"/>
> >
> > The point of these records seem to be to define the set of
> > InventoryItemType records that are taxable... although that doesn't seem
> > correct as it doesn't describe the "taxable" types, but rather the "tax"
> > types.
> >
> > One of the great benefits of having a specific entity for types rather
> > than using something generic like the Enumeration entity is that we can
> add
> > fields like an "isTax" flag, which seems to be a more effective and
> tenable
> > option for this.
> >
> > I haven't traced back to see who wrote or committed this, but it does
> > break common patterns and may not be the easiest way to implement what
> seems
> > to be targeted by these records.
> >
> > -David
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Odd Use of the Enumeration Entity

Jacopo Cappellato-3
yes... and no :)
That is an example of something that should be completed and  
refactored; the reasonId in the IIDetail, in my opinion, should  
reference to a new entity IIDReasonType (or similar) and the  
VarianceReason (the names of the entities may not be correct, I'm just  
using my memory) should be deprecated and the reason id in the  
PhysicalInventoryVariance should point to the new IIDReasonType entity.

But this, as I wrote before, will require some (more serious) design  
than this.

Jacopo

On Apr 23, 2008, at 12:10 PM, Bruno Busco wrote:

> Isn't this
> http://mail-archives.apache.org/mod_mbox/ofbiz-dev/200804.mbox/%3C366005883.1207246104380.JavaMail.jira@brutus%3E
> a similar enumeration abuse?
>
> -Bruno
>
>
> 2008/4/23 Scott Gray <[hidden email]>:
>
>> Hi David
>>
>> Curiosity got the better of me, Si put it in last year, so I  
>> wouldn't hold
>> your breathe for a response on this.
>>
>> Regards
>> Scott
>>
>> 2008/4/23 David E Jones <[hidden email]>:
>>
>>>
>>> I recently noticed the following lines in the AccountingTypeData.xml
>> file
>>> (starting around line 511):
>>>
>>> <!-- An Enumeration to identify the taxable invoice item types.  For
>>> these, the only important fields are enumId and enumTypeId. -->
>>> <EnumerationType description="Taxable Invoice Item Types"
>>> enumTypeId="TAXABLE_INV_ITM_TY" hasTable="N" parentTypeId=""/>
>>> <Enumeration description="Sales Invoice Sales Tax"
>>> enumCode="INV_SALES_TAX" enumId="INV_SALES_TAX" sequenceId="01"
>>> enumTypeId="TAXABLE_INV_ITM_TY"/>
>>> <Enumeration description="Sales Invoice Line Item Sales Tax"
>>> enumCode="ITM_SALES_TAX" enumId="ITM_SALES_TAX" sequenceId="02"
>>> enumTypeId="TAXABLE_INV_ITM_TY"/>
>>> <Enumeration description="Purchase Invoice Sales Tax"
>>> enumCode="PINV_SALES_TAX" enumId="PINV_SALES_TAX" sequenceId="03"
>>> enumTypeId="TAXABLE_INV_ITM_TY"/>
>>> <Enumeration description="Purchase Invoice Line Item Sales Tax"
>>> enumCode="PITM_SALES_TAX" enumId="PITM_SALES_TAX" sequenceId="04"
>>> enumTypeId="TAXABLE_INV_ITM_TY"/>
>>> <Enumeration description="Customer Return Sales Tax Adjustment"
>>> enumCode="CRT_SALES_TAX_ADJ" enumId="CRT_SALES_TAX_ADJ"  
>>> sequenceId="05"
>>> enumTypeId="TAXABLE_INV_ITM_TY"/>
>>>
>>> The point of these records seem to be to define the set of
>>> InventoryItemType records that are taxable... although that  
>>> doesn't seem
>>> correct as it doesn't describe the "taxable" types, but rather the  
>>> "tax"
>>> types.
>>>
>>> One of the great benefits of having a specific entity for types  
>>> rather
>>> than using something generic like the Enumeration entity is that  
>>> we can
>> add
>>> fields like an "isTax" flag, which seems to be a more effective and
>> tenable
>>> option for this.
>>>
>>> I haven't traced back to see who wrote or committed this, but it  
>>> does
>>> break common patterns and may not be the easiest way to implement  
>>> what
>> seems
>>> to be targeted by these records.
>>>
>>> -David
>>>
>>>
>>