diff options
Diffstat (limited to 'fixco_custom/models/stock_picking.py')
| -rwxr-xr-x | fixco_custom/models/stock_picking.py | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py index 916ac9f..e1ebe68 100755 --- a/fixco_custom/models/stock_picking.py +++ b/fixco_custom/models/stock_picking.py @@ -34,7 +34,7 @@ class StockPicking(models.Model): invoice_number = fields.Char('Invoice Number') pdf_label_url = fields.Char('PDF Label URL') invoice_mp = fields.Char(string='Invoice Marketplace') - address = fields.Char('Address') + address = fields.Char('Address') note_by_buyer = fields.Char('Note By Buyer') carrier = fields.Char(string='Shipping Method') shipment_group_id = fields.Many2one('shipment.group', string='Shipment Group', copy=False) @@ -51,7 +51,7 @@ class StockPicking(models.Model): ) def button_validate(self): - if len(self.check_product_lines) == 0: + if len(self.check_product_lines) == 0 and not self.name.startswith('BU/INT'): raise UserError(_( "Belum ada check product, gabisa validate" )) @@ -230,39 +230,39 @@ class StockPicking(models.Model): 'picking_ids': self.ids, } } - + def label_ginee(self): try: order_id = self.order_reference - + authorization = self.sign_request() headers = { 'Content-Type': 'application/json', 'X-Advai-Country': 'ID', 'Authorization': authorization } - + payload = { "orderId": order_id, "documentType": "LABEL" } url = "https://api.ginee.com/openapi/order/v1/print" - + response = requests.post( url, headers=headers, data=json.dumps(payload) ) - + if response.status_code == 200: data = response.json() if data.get('code') == 'SUCCESS' and data.get('message') == 'OK': logistic_info_list = data.get('data', {}).get('logisticsInfos') - + # Check if logistic_info exists and has at least one item if not logistic_info_list: raise UserError(_("No logistic information found in response")) - + logistic_info = logistic_info_list[0] self.pdf_label_url = data.get('data', {}).get('pdfUrl') or '' self.tracking_number = logistic_info.get('logisticsTrackingNumber') or '' @@ -272,10 +272,10 @@ class StockPicking(models.Model): raise UserError(_("API Error: %s - %s") % (data.get('code', 'UNKNOWN'), data.get('message', 'No error message'))) else: raise UserError(_("API request failed with status code: %s") % response.status_code) - + except Exception as e: raise UserError(_("Error: %s") % str(e)) - + def sign_request(self): signData = '$'.join(['POST', Request_URI]) + '$' authorization = ACCESS_KEY + ':' + base64.b64encode( @@ -286,11 +286,11 @@ class StockPicking(models.Model): # def sync_qty_reserved_qty_done(self): - + # for picking in self: # for line in picking.move_line_ids_without_package: # line.qty_done = line.product_uom_qty - + # picking.button_validate() class CheckProduct(models.Model): |
