我卡住合并一些哈希来得到我需要的结果。如何有条件地合并散列并添加值?
散列包含订单总价格的细目,项目价格,税收,&送货,订购中的所有订单。我试图动态执行此操作,因为并非所有订单都收取税费,甚至不需要税或运费。
这里就是我称之为“最坏的情况”我正在处理:
#First order - has charges for Canadian GST and HST
{:orderhdr_id=>17654122, :order_item_seq=>1, :order_item_amt_break_seq=>1, :order_item_break_type=>0, :local_amount=>8.16, :base_amount=>8.16, :orig_base_amount=>149, :tax_delivery=>0, :tax_active=>0}
{:orderhdr_id=>17654122, :order_item_seq=>1, :order_item_amt_break_seq=>2, :order_item_break_type=>1, :local_amount=>0.41, :base_amount=>0.41, :state=>"ON", :tax_type=>"GST", :tax_rate_category=>"STD", :orig_base_amount=>7.45, :tax_rate=>5, :tax_delivery=>0, :tax_active=>1, :tx_incl=>1}
{:orderhdr_id=>17654122, :order_item_seq=>1, :order_item_amt_break_seq=>3, :order_item_break_type=>1, :local_amount=>0.65, :base_amount=>0.65, :state=>"ON", :tax_type=>"HST", :tax_rate_category=>"STD", :orig_base_amount=>11.92, :tax_rate=>8, :tax_delivery=>0, :tax_active=>1, :tx_incl=>1}
#Second order - has only one charge for tax
{:orderhdr_id=>1815296, :order_item_seq=>1, :order_item_amt_break_seq=>1, :order_item_break_type=>0, :local_amount=>76.52, :base_amount=>76.52, :orig_base_amount=>99.95, :tax_delivery=>0, :tax_active=>0}
{:orderhdr_id=>1815296, :order_item_seq=>1, :order_item_amt_break_seq=>2, :order_item_break_type=>1, :local_amount=>4.59, :base_amount=>4.59, :orig_base_amount=>6, :tax_delivery=>0, :tax_active=>1}
#Third order - has charge for shipping
{:orderhdr_id=>6112412, :order_item_seq=>1, :order_item_amt_break_seq=>1, :order_item_break_type=>0, :local_amount=>21.34, :base_amount=>21.34, :orig_base_amount=>99.95, :tax_delivery=>0, :tax_active=>0}
{:orderhdr_id=>6112412, :order_item_seq=>1, :order_item_amt_break_seq=>2, :order_item_break_type=>2, :local_amount=>4.7, :base_amount=>4.7, :orig_base_amount=>22, :tax_delivery=>0, :tax_active=>0}
的:order_item_break_type
决定了它是什么类型的收费,项目,税收,航运。
如果:order_item_break_type
为0或2,然后从:orig_base_amount
减去:base_amount
并将其添加到该中断类型的整体总。对于:order_item_break_type
等于1,我需要总结:orig_base_amount
和:base_amount
,的差异,但是我需要将不同的税分开。
因此,这里是我应该与上面的命令结束了一下:
:break_type = 0 | total = 242.88
:break_type = 1, :state = ON, :tax_type = GST, :tax_rate_category = STD | total = 7.04
:break_type = 1, :state = ON, :tax_type = HST, :tax_rate_category = STD | total = 11.27
:break_type = 1 | total = 1.41
:break_type = 2 | total = 17.30
我有叫@amounts
数组这些哈希值。
我有像merge!
,inject
,shift
和更多的方法,通过我的头,但不能把它放在一起。
目前尚不清楚结果如何与订单相关。也就是说,我看到三个订单和五个结果。你能澄清一下吗? –
结果是由':break_type',':state',':tax_type'和':tax_rate_category'的唯一组合组合的每次收费的':orig_base_amount - :base_amount'的总和。我倾向于看它的方式是,相对于有3个订单和5个结果,有7个费用减少到5个结果。谢谢! –