2017-12-15 4 views
0

Ich versuche, eine Rechnung in Pastell Partner mit dem SDK aus einer C# -Anwendung zu generieren. Ich habe die Dokumentation zu einem T-Stück verfolgt, aber ich bekomme weiterhin einen Rückgabecode von 17 (Ungültiger Kundenkontocode). Ich habe überprüft, dass der Kunde existiert.Pastel Partner SDK Erstellen Rechnung Problem

public string GenerateInvoiceDocument(Order order) 
    { 
     var result = _sdk.SetDataPath($"{_directory}{_company}"); 

     if (result == "0") _sdk.OpenDocumentFiles(); 
     var customer = GetCustomer(order.CustomerNumber); 
     if (result == "0") { 
      var header = "|||OIL004|05/03/2017||N|0|Message no.1|Message no.2|Message no.3|Delivery no.1|Delivery no.2|Delivery no.3|Delivery no.4|Delivery no.5||00||05/03/1999|011-7402156|Johnny|011-7402157|1"; 
      result =_sdk.DefineDocumentHeader(header); 
     } 

     for (var x = 0; x < order.InventoryCode.Count; x++) 
     { 
      if (result == "0") 
      { 
       var customerPrice = GetCustomerPrice(customer.Number, order.InventoryCode[x]); 
       result = _sdk.DefineDocumentLine(
        GenerateDocumentLine(
          0, 
          Convert.ToDouble(order.Quantity[x]), 
          customerPrice.Price[x], 
          customerPrice.IncPrice[x], 
          "", 
          customer.TaxCode.ToString().PastelZeroPad(2), 
          "", 
          "", 
          customerPrice.ItemCode, 
          order.InventoryCode[x], 
          "4", 
          "002", 
          "")); 
      } 
     } 
     result = _sdk.ImportDocument(3); 
     _sdk.CloseDocumentFiles(); 

     return result; 
    } 

Antwort

0

Es scheint ein bisschen buggy Verhalten von Pastell, war die Lösung alle calcs vom Pastellstrom zu entfernen, indem sie vorher zu tun.

public string GenerateInvoiceDocument(Order order) 
    { 
     var customer = GetCustomer(order.CustomerNumber); 
     var header = GenerateCustomerDocumentHeader(customer, DateTime.Now.AddYears(-1), order.Number, "", "", "", "", "", "", "", "", "", "", DateTime.Now.AddYears(-1), "", "", "", 1); 
     var lines = new List<string>(); 
     for (var x = 0; x < order.InventoryCode.Count; x++) 
     { 
      var customerPrice = GetCustomerPrice(order.CustomerNumber, order.InventoryCode[x]); 
      var newLine = GenerateDocumentLine(customerPrice.Price[x], (double)order.Quantity[x], customerPrice.Price[x], customerPrice.IncPrice[x], "0", customer.TaxCode.ToString(), "", "0", order.InventoryCode[x], order.InventoryDescription[x], "4", "001", ""); 
      lines.Add(newLine); 
     } 
     var result = _sdk.SetDataPath($"{_directory}{_company}"); 

     _sdk.OpenDocumentFiles(); 

     result = _sdk.DefineDocumentHeader(header, true); 
     foreach (var line in lines) 
     { 
      result = _sdk.DefineDocumentLine(line); 
     } 
     result = _sdk.ImportDocument(3, 0); 

     _sdk.CloseDocumentFiles(); 

     return result; 
    }