Beispiel #1
0
 def test_create(self):
     with self.sessionmanager:
         meta = InvMovementMeta()
         meta.timestamp = datetime.datetime(2011, 1, 1, 1, 1)
         meta.inventory_codename = 'boya'
         meta.inventory_docid = 1
         meta.transtype = 'sale'
         meta.origin = 1
         meta.dest = 2
         items = [ItemGroupCant(cant=1, itemgroup=ProdItemGroup(uid=1, prod_id='AAAA'))]
         inv = InvMovementFull(meta=meta, items=items)
         self.invmomanager.create(inv)
         self.assertEquals(1, self.inventoryapi.get_current_quantity(1)[2])
Beispiel #2
0
 def make_inv_movement(self, work):
     invmeta = InvMovementMeta()
     doc = work.content
     if work.objtype == WorkObject.INV_TRANS:
         invmeta.timestamp = doc.meta.timestamp
         invmeta.value_usd = Decimal(doc.meta.subtotal - (doc.meta.discount or 0)) / 100
         invmeta.inventory_docid = doc.meta.uid
         invmeta.trans_type = InvMovementType.SALE
         invmeta.origin = doc.meta.bodega_id
         invmeta.dest = -1
     else:
         invmeta.timestamp = doc.meta.timestamp
         invmeta.value_usd = doc.meta.value
         invmeta.inventory_docid = doc.meta.uid
         invmeta.origin = doc.meta.origin
         invmeta.dest = doc.meta.dest
         invmeta.trans_type = transtype_to_invtype(doc.meta.trans_type)
     invmeta.inventory_codename = self.codename
     items = []
     if work.action == WorkObject.DELETE:
         invmeta.origin, invmeta.dest = invmeta.dest, invmeta.origin
         invmeta.trans_type = InvMovementType.delete_type(invmeta.trans_type)
         invmeta.timestamp = datetime.datetime.now()  # record delete time which is different than invoice time
     for trans in doc.items_to_transaction(self.dbapi):
         itemgroup = self.dbapi.get(trans.itemgroup_id, ProdItemGroup)
         items.append(ItemGroupCant(cant=trans.quantity, itemgroup=itemgroup))
     return InvMovementFull(meta=invmeta, items=items)