Browse Source

uploaded

pull/81/head
cybroodoo 9 years ago
parent
commit
3c3bc74049
  1. 1
      sale_splitter/__init__.py
  2. 34
      sale_splitter/__openerp__.py
  3. 1
      sale_splitter/models/__init__.py
  4. 91
      sale_splitter/models/splitter.py
  5. BIN
      sale_splitter/static/description/icon.png
  6. 48
      sale_splitter/static/description/index.html
  7. BIN
      sale_splitter/static/description/screen1.png
  8. BIN
      sale_splitter/static/description/screen2.png
  9. BIN
      sale_splitter/static/description/screen3.png
  10. 29
      sale_splitter/views/splitter.xml

1
sale_splitter/__init__.py

@ -0,0 +1 @@
import models

34
sale_splitter/__openerp__.py

@ -0,0 +1,34 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# Item number
#
# Copyright (C) 2016 Cybrosys Techno Solutions (<http://http://www.cybrosys.com).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'SALE ORDER SPLITTER',
'version': '1.0',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'website': 'http://www.cybrosys.com',
'sequence': 6,
'category': 'Sales Management',
'summary': 'Used for splitting lengthy quotations into suppurate.',
'data': ['views/splitter.xml'],
'depends': ['base','sale'],
'installable': True
}

1
sale_splitter/models/__init__.py

@ -0,0 +1 @@
import splitter

91
sale_splitter/models/splitter.py

@ -0,0 +1,91 @@
from openerp import fields, models, api
class config_bool(models.Model):
_inherit = 'sale.config.settings'
conf_bool = fields.Boolean(string="Enables Sale order splitting")
class wizard(models.TransientModel):
_name = 'split.button.wiz'
temp = 1
line_count = fields.Char('Divide By', required=True)
@api.one
def confirm_split(self,vals):
line_ids = []
so_create = []
so_id = vals['active_id']
sale_obj = self.pool.get('sale.order').browse(self._cr, self._uid, so_id)
countt= 0
for lines in sale_obj.order_line:
create_obt = {
'product_id': lines.product_id.id,
'name': lines.name,
'product_uom_qty': lines.product_uom_qty,
'price_unit': lines.price_unit,
'tax_id': lines.tax_id,
'product_uom': lines.product_uom.id,
'price_subtotal': lines.price_subtotal
}
so_create.append((0, 0, create_obt))
line_ids.append({'ids': lines.id})
if len(line_ids) == int(self.line_count):
countt = countt + 1
self.pool.get('sale.order').create(self._cr, self._uid, {
'name': sale_obj.name + '/00' + str(countt),
'partner_id': sale_obj.partner_id.id,
'validity_date': sale_obj.validity_date,
'order_line': so_create,
'pricelist_id': sale_obj.pricelist_id.id
})
so_create = []
for idss in line_ids:
self._cr.execute("delete from sale_order_line where id = %s", [idss['ids']])
line_ids = []
self.temp = 0
self.temp += 1
counted=0
for i in sale_obj.order_line:
counted += 1
if counted == 0:
self._cr.execute("delete from sale_order where id = %s", [sale_obj.id])
else:
untaxed_total = 0.0
tax = 0.0
for line in sale_obj.order_line:
untaxed_total += line.price_subtotal
tax += line.price_tax
sale_obj.amount_untaxed = sale_obj.pricelist_id.currency_id.round(untaxed_total)
sale_obj.amount_tax = sale_obj.pricelist_id.currency_id.round(tax)
sale_obj.amount_total = sale_obj.amount_untaxed + sale_obj.amount_tax
class button_split(models.Model):
_inherit = 'sale.order'
parent_id = fields.Char()
def button_split(self, cr, uid, ids, context=None):
return {
'name': 'Confirm Split',
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'split.button.wiz',
'target': 'new',
'vals': self.pool.get('sale.order').browse(cr, uid, ids).id
}

BIN
sale_splitter/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

48
sale_splitter/static/description/index.html

@ -0,0 +1,48 @@
<section class="oe_container">
<div class="oe_row oe_spaced">
<h2 class="oe_slogan">Split Sale Quotation</h2>
<h3 class="oe_slogan">Split Quotation Button</h3>
<div class="oe_span6">
<div class="oe_demo oe_picture oe_screenshot">
<img src="screen1.png" alt="Online Demo">
</div>
</div>
<div class="oe_span6">
<p class='oe_mt32'>
Split the quotations by clicking the split order
button.
</p>
</div>
</div>
</section>
<section class="oe_container oe_dark">
<h3 class="oe_slogan">Split Confirm Wizard</h3>
<div class="oe_row">
<div class="oe_span6">
<p class='oe_mt32'>
Enter the count to be split from quotation order-line.
</p>
</div>
<div class="oe_span6">
<img class="oe_picture oe_screenshot" src="screen2.png">
</div>
</div>
</section>
<section class="oe_container">
<h3 class="oe_slogan">Naming The Sale Quotations After Split </h3>
<div class="oe_row">
<div class="oe_span6">
<img class="oe_picture oe_screenshot" src="screen3.png">
</div>
<div class="oe_span6">
<p class='oe_mt32'>
All the quotations split from a sale order have the name
as count followed by the parent sale order.
</p>
</div>
</div>
</section>

BIN
sale_splitter/static/description/screen1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

BIN
sale_splitter/static/description/screen2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

BIN
sale_splitter/static/description/screen3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

29
sale_splitter/views/splitter.xml

@ -0,0 +1,29 @@
<openerp>
<data>
<record id="button_wizard" model="ir.ui.view">
<field name="name">button.wizard</field>
<field name="model">split.button.wiz</field>
<field name="arch" type="xml">
<form>
<p>Enter number of order lines by the order of which the sale order to be split .</p>
<group> <group><field name="line_count"/></group><group></group></group>
<footer>
<button name="confirm_split" type="object" string="Split" class="oe_highlight"/>
<button string="Cancel" class="btn-default" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="sale_split_button" model="ir.ui.view">
<field name="name">sale_split_button</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='state']" position="before">
<button name="button_split" type="object" states="draft" string="Split Quotation" attrs="{'invisible': [('state','not in', ('draft'))]}"/>
</xpath>
</field>
</record>
</data>
</openerp>
Loading…
Cancel
Save