Divyesh Makwana(OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-bug-908749-mdi into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)
Related bugs:
  Bug #908749 in OpenERP Addons: "POS: PoS order does not support fiscal 
position"
  https://bugs.launchpad.net/openobject-addons/+bug/908749

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-908749-mdi/+merge/87004

Hello Sir,

I have fix the issue: https://bugs.launchpad.net/openobject-addons/+bug/908749 
"PoS order does not support fiscal position".

Thanks and Regards,

Divyesh Makwana(MDI)
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-908749-mdi/+merge/87004
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-bug-908749-mdi.
=== modified file 'point_of_sale/point_of_sale.py'
--- point_of_sale/point_of_sale.py	2011-12-22 09:49:14 +0000
+++ point_of_sale/point_of_sale.py	2011-12-28 11:26:26 +0000
@@ -62,23 +62,37 @@
     def _amount_all(self, cr, uid, ids, name, args, context=None):
         tax_obj = self.pool.get('account.tax')
         cur_obj = self.pool.get('res.currency')
+        fpos_obj = self.pool.get('account.fiscal.position')
         res = {}
         for order in self.browse(cr, uid, ids, context=context):
+            taxes = []
+            for fpos in fpos_obj.browse(cr, uid, [order.partner_id.property_account_position.id], context=context):
+                for line in fpos.tax_ids:
+                    taxes.append(line.tax_src_id.id)
+
             res[order.id] = {
                 'amount_paid': 0.0,
                 'amount_return':0.0,
                 'amount_tax':0.0,
             }
-            val1 = val2 = 0.0
+            val1 = val2 = price = 0.0
+
             cur = order.pricelist_id.currency_id
             for payment in order.statement_ids:
                 res[order.id]['amount_paid'] +=  payment.amount
                 res[order.id]['amount_return'] += (payment.amount < 0 and payment.amount or 0)
+
+            tax_browse = tax_obj.browse(cr, uid, taxes)
+            if not isinstance(tax_browse, list):
+                tax_browse = [tax_browse]
             for line in order.lines:
                 val1 += line.price_subtotal_incl
                 val2 += line.price_subtotal
-            res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val1-val2)
-            res[order.id]['amount_total'] = cur_obj.round(cr, uid, cur, val1)
+                price += line.price_unit
+            taxes = tax_obj.compute_inv(cr, uid, tax_browse, price, 1)
+            tax_amount = reduce(lambda total, tax_dict: total + tax_dict.get('amount', 0.0), taxes, 0.0)
+            res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val1-val2) + tax_amount
+            res[order.id]['amount_total'] = cur_obj.round(cr, uid, cur, val1) + tax_amount
         return res
 
     def _default_sale_journal(self, cr, uid, context=None):
@@ -388,7 +402,7 @@
             wf_service.trg_validate(uid, 'pos.order', order.id, 'invoice', cr)
 
         if not inv_ids: return {}
-        
+
         mod_obj = self.pool.get('ir.model.data')
         res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
         res_id = res and res[1] or False

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to