Мы используем Business one sap sdk, и я создаю и выставляю счет-фактуру, и он работает нормально для 90 процентов клиентов, однако, похоже, что проблема связана со счетом продажи наличными, поскольку они используют один и тот же код счета каждый раз. Теперь проблема в том, что в нем говорится, что описание счета-фактуры такое же, и их для элемента уже существует в таблице счетов-фактур.
Obv Я использую биржевой код для поступающего товара, но может кто-нибудь сказать мне, что здесь происходит не так, и счет-фактура может иметь такое же описание товара для покупателя?.
Описание вводится через стандартный код, который мы передаем функции.
public string ProcessInvoice(out int errorCode, out string errorDescription, out int isProcessed, List<FuelPumpData> _unprocessedInvocies)
{
errorCode = 0;
isProcessed = 0;
errorDescription = "";
try
{
decimal _pricePerLitre = GetPricePerLitre();
SAPbobsCOM.Documents oInvoice = company.GetBusinessObject(BoObjectTypes.oInvoices);
foreach (FuelPumpData _invoice in _unprocessedInvocies)
{
oInvoice.DocDate = Convert.ToDateTime(_invoice.Date);
oInvoice.CardCode = _invoice.CardCode;
oInvoice.Lines.ItemCode = _invoice.FuelType;
oInvoice.Lines.Quantity = (double)_invoice.FuelQty;
oInvoice.Lines.PriceAfterVAT = (double)_pricePerLitre;
oInvoice.Lines.UserFields.Fields.Item("U_TransTime").Value = _invoice.Time.ToString();
oInvoice.Lines.UserFields.Fields.Item("U_KeyFob").Value = _invoice.KeyFob;
oInvoice.Lines.Add();
int addInvoice = oInvoice.Add();
string docNo = company.GetNewObjectKey();
if (addInvoice < 0)
{
string errordescription = company.GetLastErrorDescription();
errorCode = company.GetLastErrorCode();
errorDescription = company.GetLastErrorDescription();
isProcessed = 0;
Console.Write("Error:" + company.GetLastErrorDescription());
UpdateProcessedFlag(_invoice.Code, (int)ImportErrorEnum.ErrorOccoured, docNo);//will change this to enum
log.Error(string.Format("Error creating invoice error description {0} {1} ", company.GetLastErrorDescription(), company.GetLastErrorDescription()));
}
else
{
company.GetNewObjectCode(out docCode);
UpdateProcessedFlag(_invoice.Code, (int)ImportErrorEnum.Processed, docNo);//will change this to enum
log.Info("Invoice Created for " + _invoice.CardCode.ToString() + " Customer Name" + _invoice.CustomerName + " Transaction Time Of " + _invoice.Time);
}
}
}
catch (Exception ex)
{
errorCode = company.GetLastErrorCode();
errorDescription = company.GetLastErrorDescription();
log.Error(string.Format("Error creating invoice error description {0} {1} .net error {2} ", company.GetLastErrorDescription(), company.GetLastErrorDescription(), ex.StackTrace.ToString()));
}
return docCode;
}
Я использую SDK справа, чтобы sap, а не odbc. Это именно та ошибка, которую я получаю.
2019-01-18 17: 46: 37.0972 - ОШИБКА: ошибка создания счета
description [INV1.WhsCode] [line: 1], 'Эта запись уже существует в
следующие таблицы (ODBC-2035) '[INV1.WhsCode] [строка: 1],' это
запись уже существует в следующих таблицах (ODBC -2035) '