shop
							parent
							
								
									1fcc52bbb6
								
							
						
					
					
						commit
						72b440b69c
					
				| 
						 | 
					@ -39,10 +39,27 @@
 | 
				
			||||||
                        <field name="amount"/>
 | 
					                        <field name="amount"/>
 | 
				
			||||||
                    </list>
 | 
					                    </list>
 | 
				
			||||||
                </field>
 | 
					                </field>
 | 
				
			||||||
                <group span="9" columns="1">
 | 
					                <group span="8" columns="1">
 | 
				
			||||||
                </group>
 | 
					                </group>
 | 
				
			||||||
                <group span="3" columns="1">
 | 
					                <group span="4" columns="1">
 | 
				
			||||||
 | 
					                    <field name="sub_total"/>
 | 
				
			||||||
 | 
					                    <field name="tax_amount"/>
 | 
				
			||||||
                    <field name="total"/>
 | 
					                    <field name="total"/>
 | 
				
			||||||
 | 
					                    <field name="payment_lines">
 | 
				
			||||||
 | 
					                        <template>
 | 
				
			||||||
 | 
					                            {{#each context.data}}
 | 
				
			||||||
 | 
					                                <div class="form-group nf-field">
 | 
				
			||||||
 | 
					                                    <label class="control-label col-md-4">Less 
 | 
				
			||||||
 | 
					                                            <a href="#name=payment&mode=form&active_id={{payment_id.0.}}">Payment</a>
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                    <div class="col-md-8" style="text-align:right">
 | 
				
			||||||
 | 
					                                        {{currency amount}}
 | 
				
			||||||
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                            {{/each}}
 | 
				
			||||||
 | 
					                        </template>
 | 
				
			||||||
 | 
					                    </field>
 | 
				
			||||||
 | 
					                    <field name="due_amount"/>
 | 
				
			||||||
                </group>
 | 
					                </group>
 | 
				
			||||||
            </tab>
 | 
					            </tab>
 | 
				
			||||||
            <tab string="Accounting">
 | 
					            <tab string="Accounting">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,6 +116,7 @@ from . import matching_hdcase
 | 
				
			||||||
from . import sale_order
 | 
					from . import sale_order
 | 
				
			||||||
from . import shop
 | 
					from . import shop
 | 
				
			||||||
from . import shop_line
 | 
					from . import shop_line
 | 
				
			||||||
 | 
					from . import shop_payment
 | 
				
			||||||
from . import product
 | 
					from . import product
 | 
				
			||||||
from . import base_user
 | 
					from . import base_user
 | 
				
			||||||
from . import select_company
 | 
					from . import select_company
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,12 +16,20 @@ class Shop(Model):
 | 
				
			||||||
        st=get_model("clinic.setting").browse(1)
 | 
					        st=get_model("clinic.setting").browse(1)
 | 
				
			||||||
        shop_categs=[x.id for x in st.shop_categs]
 | 
					        shop_categs=[x.id for x in st.shop_categs]
 | 
				
			||||||
        for obj in self.browse(ids):
 | 
					        for obj in self.browse(ids):
 | 
				
			||||||
            total=0
 | 
					            sub_total=0
 | 
				
			||||||
 | 
					            tax_amount=0 #XXX
 | 
				
			||||||
            for line in obj.lines:
 | 
					            for line in obj.lines:
 | 
				
			||||||
                amt=line.amount or 0
 | 
					                amt=line.amount or 0
 | 
				
			||||||
                total+=amt
 | 
					                sub_total+=amt
 | 
				
			||||||
 | 
					            total=sub_total
 | 
				
			||||||
 | 
					            total=total-tax_amount
 | 
				
			||||||
 | 
					            for pm in obj.payments:
 | 
				
			||||||
 | 
					                total-=pm.amount_payment
 | 
				
			||||||
            res[obj.id]={
 | 
					            res[obj.id]={
 | 
				
			||||||
 | 
					                'sub_total': sub_total,
 | 
				
			||||||
 | 
					                'tax_amount': tax_amount,
 | 
				
			||||||
                'total': total,
 | 
					                'total': total,
 | 
				
			||||||
 | 
					                'due_amount': total,
 | 
				
			||||||
                'shop_categs': shop_categs,
 | 
					                'shop_categs': shop_categs,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        return res
 | 
					        return res
 | 
				
			||||||
| 
						 | 
					@ -36,7 +44,10 @@ class Shop(Model):
 | 
				
			||||||
        'department_id': fields.Many2One("clinic.department","Department",search=True),
 | 
					        'department_id': fields.Many2One("clinic.department","Department",search=True),
 | 
				
			||||||
        'branch_id': fields.Many2One("clinic.branch","Branch",search=True),
 | 
					        'branch_id': fields.Many2One("clinic.branch","Branch",search=True),
 | 
				
			||||||
        'lines': fields.One2Many('clinic.shop.line','shop_id','Lines'),
 | 
					        'lines': fields.One2Many('clinic.shop.line','shop_id','Lines'),
 | 
				
			||||||
 | 
					        'sub_total': fields.Float("Subtotal",function="_get_all",function_multi=True),
 | 
				
			||||||
        'total': fields.Float("Total",function="_get_all",function_multi=True),
 | 
					        'total': fields.Float("Total",function="_get_all",function_multi=True),
 | 
				
			||||||
 | 
					        'due_amount': fields.Float("Due Amount",function="_get_all",function_multi=True),
 | 
				
			||||||
 | 
					        'tax_amount': fields.Float("Tax Amount",function="_get_all",function_multi=True),
 | 
				
			||||||
        'user_id': fields.Many2One("base.user","Sale Man"),
 | 
					        'user_id': fields.Many2One("base.user","Sale Man"),
 | 
				
			||||||
        'state': fields.Selection([['draft','Draft'],['waiting_payment','Waiting Payment'],['paid','Paid'],['cancelled','Cancelled']],'State'),
 | 
					        'state': fields.Selection([['draft','Draft'],['waiting_payment','Waiting Payment'],['paid','Paid'],['cancelled','Cancelled']],'State'),
 | 
				
			||||||
        "pickings": fields.One2Many("stock.picking","related_id","Pickings"),
 | 
					        "pickings": fields.One2Many("stock.picking","related_id","Pickings"),
 | 
				
			||||||
| 
						 | 
					@ -54,6 +65,7 @@ class Shop(Model):
 | 
				
			||||||
        'cheque_no': fields.Char("Cheque No."),
 | 
					        'cheque_no': fields.Char("Cheque No."),
 | 
				
			||||||
        'hd_case_call': fields.Boolean("HD Case Call"),
 | 
					        'hd_case_call': fields.Boolean("HD Case Call"),
 | 
				
			||||||
        'note': fields.Text("Note"),
 | 
					        'note': fields.Text("Note"),
 | 
				
			||||||
 | 
					        "payment_lines": fields.One2Many("clinic.shop.payment","shop_id","Payment Lines"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -450,6 +462,10 @@ class Shop(Model):
 | 
				
			||||||
        obj.write({
 | 
					        obj.write({
 | 
				
			||||||
            'state': 'paid',
 | 
					            'state': 'paid',
 | 
				
			||||||
            'pay_type': 'cash',
 | 
					            'pay_type': 'cash',
 | 
				
			||||||
 | 
					            'payment_lines': [('create',{
 | 
				
			||||||
 | 
					                        'payment_id': payment_id,
 | 
				
			||||||
 | 
					                        'amount': payment.amount_payment,
 | 
				
			||||||
 | 
					                    })],
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def to_draft(self,ids,context={}):
 | 
					    def to_draft(self,ids,context={}):
 | 
				
			||||||
| 
						 | 
					@ -468,6 +484,8 @@ class Shop(Model):
 | 
				
			||||||
            for picking in obj.pickings:
 | 
					            for picking in obj.pickings:
 | 
				
			||||||
                picking.to_draft(context=context)
 | 
					                picking.to_draft(context=context)
 | 
				
			||||||
                picking.delete()
 | 
					                picking.delete()
 | 
				
			||||||
 | 
					            for pm_line in obj.payment_lines:
 | 
				
			||||||
 | 
					                pm_line.delete()
 | 
				
			||||||
            obj.write({
 | 
					            obj.write({
 | 
				
			||||||
                'state': 'draft',
 | 
					                'state': 'draft',
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					from netforce.model import Model, fields
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ShopPayment(Model):
 | 
				
			||||||
 | 
					    _name="clinic.shop.payment"
 | 
				
			||||||
 | 
					    _transient=True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _fields={
 | 
				
			||||||
 | 
					        'shop_id': fields.Many2One("clinic.hd.case","HD Case",on_delete="cascade"),
 | 
				
			||||||
 | 
					        'payment_id': fields.Many2One("account.payment","Payment",on_delete="cascade"),
 | 
				
			||||||
 | 
					        'account_id': fields.Many2One("account.account","Account"),
 | 
				
			||||||
 | 
					        'amount': fields.Float("Amount"),
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _defaults={
 | 
				
			||||||
 | 
					        'amount': 0.0,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ShopPayment.register()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue