def update_stock_state(sender, instance, *args, **kwargs): from casexml.apps.stock.consumption import compute_consumption try: state = StockState.objects.get( section_id=instance.section_id, case_id=instance.case_id, product_id=instance.product_id, ) except StockState.DoesNotExist: state = StockState( section_id=instance.section_id, case_id=instance.case_id, product_id=instance.product_id, ) state.last_modified_date = instance.report.date state.stock_on_hand = instance.stock_on_hand domain = Domain.get_by_name( CommCareCase.get(instance.case_id).domain ) if domain and domain.commtrack_settings: consumption_calc = domain.commtrack_settings.get_consumption_config() else: consumption_calc = None state.daily_consumption = compute_consumption( instance.case_id, instance.product_id, instance.report.date, 'stock', consumption_calc ) state.save()
def testDefaultValue(self): self._stock_report(25, 5) self._stock_report(10, 0) self.assertEqual(None, compute_consumption(self.case_id, self.product_id, now, configuration=ConsumptionConfiguration(min_periods=4))) _ten = lambda case_id, product_id: 10 self.assertAlmostEqual(10., compute_consumption_or_default( self.case_id, self.product_id, now, configuration=ConsumptionConfiguration( min_periods=4, default_monthly_consumption_function=_ten ) ))
def testDefaultValue(self): self._stock_report(25, 5) self._stock_report(10, 0) self.assertEqual( None, compute_consumption( self.case_id, self.product_id, now, configuration=ConsumptionConfiguration(min_periods=4))) _ten = lambda case_id, product_id: 10 self.assertAlmostEqual( 10., compute_consumption_or_default( self.case_id, self.product_id, now, configuration=ConsumptionConfiguration( min_periods=4, default_monthly_consumption_function=_ten)))