# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1462364232 -7200
#      Wed May 04 14:17:12 2016 +0200
# Node ID 0ff0d9b0ff87e64e771536017bc3d46e62491d65
# Parent  ee2b7fa09314136aa49cb15f137c7e2693567e42
Fixes issue 0032857: The document no separator should be customized
* Order model property allows to customize whether the document no has a separator or not

diff --git a/src/org/openbravo/retail/posterminal/OrderLoader.java b/src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java
@@ -1514,6 +1514,33 @@
           OBDal.getInstance().save(terminal);
         }
       }
+    } else {
+      long documentno;
+      if (jsonorder.has("isQuotation") && jsonorder.getBoolean("isQuotation")) {
+        if (jsonorder.has("quotationnoPrefix")) {
+          documentno = Long.parseLong(order.getDocumentNo().replace(
+              jsonorder.getString("quotationnoPrefix"), ""));
+
+          if (order.getObposApplications().getQuotationslastassignednum() == null
+              || documentno > order.getObposApplications().getQuotationslastassignednum()) {
+            OBPOSApplications terminal = order.getObposApplications();
+            terminal.setQuotationslastassignednum(documentno);
+            OBDal.getInstance().save(terminal);
+          }
+        }
+      } else {
+        if (jsonorder.has("documentnoPrefix")) {
+          documentno = Long.parseLong(order.getDocumentNo().replace(
+              jsonorder.getString("documentnoPrefix"), ""));
+
+          if (order.getObposApplications().getLastassignednum() == null
+              || documentno > order.getObposApplications().getLastassignednum()) {
+            OBPOSApplications terminal = order.getObposApplications();
+            terminal.setLastassignednum(documentno);
+            OBDal.getInstance().save(terminal);
+          }
+        }
+      }
     }
 
     if (!bp.getADUserList().isEmpty()) {
diff --git a/src/org/openbravo/retail/posterminal/POSUtils.java b/src/org/openbravo/retail/posterminal/POSUtils.java
--- a/src/org/openbravo/retail/posterminal/POSUtils.java
+++ b/src/org/openbravo/retail/posterminal/POSUtils.java
@@ -370,12 +370,18 @@
         if (jsonError.has("documentNo") && jsonError.has("isQuotation")
             && !jsonError.getBoolean("isQuotation")) {
           String documentNo = jsonError.getString("documentNo");
-          if (documentNo.indexOf("/") != 0) {
+          if (documentNo.indexOf("/") > -1) {
             String number = documentNo.substring(documentNo.indexOf("/") + 1);
             int errorNumber = new Long(number).intValue();
             if (errorNumber > maxDocNo) {
               maxDocNo = errorNumber;
             }
+          } else if (jsonError.has("documentnoPrefix")) {
+            String number = documentNo.replace(jsonError.getString("documentnoPrefix"), "");
+            int errorNumber = new Long(number).intValue();
+            if (errorNumber > maxDocNo) {
+              maxDocNo = errorNumber;
+            }
           }
         }
       } catch (Exception e) {
@@ -452,12 +458,18 @@
         if (jsonError.has("documentNo") && jsonError.has("isQuotation")
             && jsonError.getBoolean("isQuotation")) {
           String documentNo = jsonError.getString("documentNo");
-          if (documentNo.indexOf("/") != 0) {
+          if (documentNo.indexOf("/") > -1) {
             String number = documentNo.substring(documentNo.indexOf("/") + 1);
             int errorNumber = new Long(number).intValue();
             if (errorNumber > maxDocNo) {
               maxDocNo = errorNumber;
             }
+          } else if (jsonError.has("quotationnoPrefix")) {
+            String number = documentNo.replace(jsonError.getString("quotationnoPrefix"), "");
+            int errorNumber = new Long(number).intValue();
+            if (errorNumber > maxDocNo) {
+              maxDocNo = errorNumber;
+            }
           }
         }
       } catch (Exception e) {
diff --git a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
--- a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
+++ b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
@@ -880,7 +880,7 @@
       var next = this.getLastDocumentnoSuffixInOrderlist() + 1;
       return {
         documentnoSuffix: next,
-        documentNo: OB.MobileApp.model.get('terminal').docNoPrefix + '/' + OB.UTIL.padNumber(next, 7)
+        documentNo: OB.MobileApp.model.get('terminal').docNoPrefix + (OB.Model.Order.prototype.includeDocNoSeperator ? '/' : '') + OB.UTIL.padNumber(next, 7)
       };
     },
     // call this method to get a new quotation document number
@@ -888,7 +888,7 @@
       var next = this.getLastQuotationnoSuffixInOrderlist() + 1;
       return {
         quotationnoSuffix: next,
-        documentNo: OB.MobileApp.model.get('terminal').quotationDocNoPrefix + '/' + OB.UTIL.padNumber(next, 7)
+        documentNo: OB.MobileApp.model.get('terminal').quotationDocNoPrefix + (OB.Model.Order.prototype.includeDocNoSeperator ? '/' : '') + OB.UTIL.padNumber(next, 7)
       };
     },
 
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -288,6 +288,7 @@
 
   // Sales.Order Model.
   var Order = Backbone.Model.extend({
+    includeDocNoSeperator: true,
     modelName: 'Order',
     tableName: 'c_order',
     entityName: 'Order',
