def _create_sale(self, store): user = api.get_current_user(store) branch = api.get_current_branch(store) salesperson = user.person.salesperson cfop_id = api.sysparam.get_object_id('DEFAULT_SALES_CFOP') nature = api.sysparam.get_string('DEFAULT_OPERATION_NATURE') group = PaymentGroup(store=store) sale = Sale( store=store, branch=branch, salesperson=salesperson, group=group, cfop_id=cfop_id, coupon_id=None, operation_nature=nature) if self._delivery: sale.client = store.fetch(self._delivery.client) sale.storeporter = store.fetch(self._delivery.transporter) delivery = Delivery( store=store, address=store.fetch(self._delivery.address), transporter=store.fetch(self._delivery.transporter), ) else: delivery = None sale.client = self._suggested_client for fake_sale_item in self.sale_items: sale_item = sale.add_sellable( store.fetch(fake_sale_item.sellable), price=fake_sale_item.price, quantity=fake_sale_item.quantity, quantity_decreased=fake_sale_item.quantity_decreased, batch=store.fetch(fake_sale_item.batch)) sale_item.notes = fake_sale_item.notes sale_item.estimated_fix_date = fake_sale_item.estimated_fix_date if delivery and fake_sale_item.deliver: delivery.add_item(sale_item) elif delivery and fake_sale_item == self._delivery_item: delivery.service_item = sale_item return sale
def _create_sale(self, store): user = api.get_current_user(store) branch = api.get_current_branch(store) salesperson = user.person.salesperson cfop = api.sysparam(store).DEFAULT_SALES_CFOP group = PaymentGroup(store=store) sale = Sale( store=store, branch=branch, salesperson=salesperson, group=group, cfop=cfop, coupon_id=None, operation_nature=api.sysparam(store).DEFAULT_OPERATION_NATURE) if self._delivery: sale.client = store.fetch(self._delivery.client) sale.storeporter = store.fetch(self._delivery.transporter) delivery = Delivery( store=store, address=store.fetch(self._delivery.address), transporter=store.fetch(self._delivery.transporter), ) else: delivery = None sale.client = self._suggested_client for fake_sale_item in self.sale_items: sale_item = sale.add_sellable( store.fetch(fake_sale_item.sellable), price=fake_sale_item.price, quantity=fake_sale_item.quantity, quantity_decreased=fake_sale_item.quantity_decreased, batch=store.fetch(fake_sale_item.batch)) sale_item.notes = fake_sale_item.notes sale_item.estimated_fix_date = fake_sale_item.estimated_fix_date if delivery and fake_sale_item.deliver: delivery.add_item(sale_item) elif delivery and fake_sale_item == self._delivery_item: delivery.service_item = sale_item return sale