corectie
This commit is contained in:
@@ -201,18 +201,20 @@ Endfunc
|
||||
|
||||
*-- Procesare comanda web - logeaza O SINGURA LINIE per comanda
|
||||
*-- Format: [N/Total] OrderNumber P:PartnerID A:AddrFact/AddrLivr -> OK/ERR details
|
||||
*-- NOTA: VFP nu permite RETURN in TRY/CATCH, se foloseste flag llContinue
|
||||
Function ProcessWebOrder
|
||||
Lparameters loOrder, tnIndex, tnTotal
|
||||
Local llSuccess, lcOrderNumber, lcOrderDate, lnPartnerID, lcArticlesJSON
|
||||
Local lcSQL, lnResult, lcErrorDetails, lnIdComanda, llSucces
|
||||
Local lcSQL, lnResult, lcErrorDetails, lnIdComanda
|
||||
Local ldOrderDate, loError
|
||||
Local lnIdAdresaFacturare, lnIdAdresaLivrare
|
||||
Local lcPrefix, lcSummary, lcErrDetail
|
||||
Local lcPrefix, lcSummary, lcErrDetail, llContinue
|
||||
|
||||
lnIdAdresaLivrare = NULL
|
||||
lnIdAdresaFacturare = NULL
|
||||
lnIdComanda = 0
|
||||
llSucces = .T.
|
||||
llSuccess = .F.
|
||||
llContinue = .T.
|
||||
lnPartnerID = 0
|
||||
lcOrderNumber = "?"
|
||||
|
||||
@@ -223,59 +225,63 @@ Function ProcessWebOrder
|
||||
*-- Validare comanda
|
||||
If !ValidateWebOrder(loOrder)
|
||||
LogMessage(lcPrefix + " ? -> ERR VALIDARE: date obligatorii lipsa", "ERROR", gcLogFile)
|
||||
Return .F.
|
||||
llContinue = .F.
|
||||
Endif
|
||||
|
||||
*-- Extragere date comanda
|
||||
lcOrderNumber = CleanWebText(Transform(loOrder.Number))
|
||||
lcOrderDate = ConvertWebDate(loOrder.Date)
|
||||
ldOrderDate = String2Date(m.lcOrderDate, 'yyyymmdd')
|
||||
lcPrefix = lcPrefix + " " + lcOrderNumber
|
||||
If llContinue
|
||||
lcOrderNumber = CleanWebText(Transform(loOrder.Number))
|
||||
lcOrderDate = ConvertWebDate(loOrder.Date)
|
||||
ldOrderDate = String2Date(m.lcOrderDate, 'yyyymmdd')
|
||||
lcPrefix = lcPrefix + " " + lcOrderNumber
|
||||
|
||||
*-- Procesare partener
|
||||
gcStepError = ""
|
||||
lnPartnerID = ProcessPartner(loOrder.billing)
|
||||
If lnPartnerID <= 0
|
||||
LogMessage(lcPrefix + " -> ERR PARTENER: " + Iif(Empty(gcStepError), "nu s-a putut procesa", gcStepError), "ERROR", gcLogFile)
|
||||
Return .F.
|
||||
*-- Procesare partener
|
||||
gcStepError = ""
|
||||
lnPartnerID = ProcessPartner(loOrder.billing)
|
||||
If lnPartnerID <= 0
|
||||
LogMessage(lcPrefix + " -> ERR PARTENER: " + Iif(Empty(gcStepError), "nu s-a putut procesa", gcStepError), "ERROR", gcLogFile)
|
||||
llContinue = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
*-- Adrese
|
||||
lnIdAdresaFacturare = ProcessAddress(m.lnPartnerID, loOrder.billing)
|
||||
If Type('loOrder.shipping') = 'O'
|
||||
lnIdAdresaLivrare = ProcessAddress(m.lnPartnerID, loOrder.shipping)
|
||||
Endif
|
||||
*-- Adrese + JSON articole
|
||||
If llContinue
|
||||
lnIdAdresaFacturare = ProcessAddress(m.lnPartnerID, loOrder.billing)
|
||||
If Type('loOrder.shipping') = 'O'
|
||||
lnIdAdresaLivrare = ProcessAddress(m.lnPartnerID, loOrder.shipping)
|
||||
Endif
|
||||
|
||||
*-- Construire JSON articole
|
||||
lcArticlesJSON = BuildArticlesJSON(loOrder.items)
|
||||
If Empty(m.lcArticlesJSON)
|
||||
LogMessage(lcPrefix + " P:" + Transform(lnPartnerID) + " -> ERR JSON_ARTICOLE", "ERROR", gcLogFile)
|
||||
Return .F.
|
||||
lcArticlesJSON = BuildArticlesJSON(loOrder.items)
|
||||
If Empty(m.lcArticlesJSON)
|
||||
LogMessage(lcPrefix + " P:" + Transform(lnPartnerID) + " -> ERR JSON_ARTICOLE", "ERROR", gcLogFile)
|
||||
llContinue = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
*-- Import comanda in Oracle
|
||||
lcSQL = "BEGIN PACK_IMPORT_COMENZI.importa_comanda(?lcOrderNumber, ?ldOrderDate, ?lnPartnerID, ?lcArticlesJSON, ?lnIdAdresaLivrare, ?lnIdAdresaFacturare, ?goSettings.IdPol, ?goSettings.IdSectie, ?@lnIdComanda); END;"
|
||||
lnResult = SQLExec(goConnectie, lcSQL)
|
||||
If llContinue
|
||||
lcSQL = "BEGIN PACK_IMPORT_COMENZI.importa_comanda(?lcOrderNumber, ?ldOrderDate, ?lnPartnerID, ?lcArticlesJSON, ?lnIdAdresaLivrare, ?lnIdAdresaFacturare, ?goSettings.IdPol, ?goSettings.IdSectie, ?@lnIdComanda); END;"
|
||||
lnResult = SQLExec(goConnectie, lcSQL)
|
||||
|
||||
*-- Construire linie sumar cu ID-uri adrese
|
||||
lcSummary = lcPrefix + " P:" + Transform(lnPartnerID) + ;
|
||||
" A:" + Transform(Nvl(lnIdAdresaFacturare, 0)) + "/" + Transform(Nvl(lnIdAdresaLivrare, 0))
|
||||
lcSummary = lcPrefix + " P:" + Transform(lnPartnerID) + ;
|
||||
" A:" + Transform(Nvl(lnIdAdresaFacturare, 0)) + "/" + Transform(Nvl(lnIdAdresaLivrare, 0))
|
||||
|
||||
If lnResult > 0 And Nvl(m.lnIdComanda, 0) > 0
|
||||
LogMessage(lcSummary + " -> OK ID:" + Transform(m.lnIdComanda), "INFO", gcLogFile)
|
||||
Return .T.
|
||||
Else
|
||||
lcErrorDetails = GetOracleErrorDetails()
|
||||
lcErrDetail = ClassifyImportError(lcErrorDetails)
|
||||
CollectFailedSKUs(lcErrorDetails)
|
||||
LogMessage(lcSummary + " -> ERR " + lcErrDetail, "ERROR", gcLogFile)
|
||||
Return .F.
|
||||
If lnResult > 0 And Nvl(m.lnIdComanda, 0) > 0
|
||||
LogMessage(lcSummary + " -> OK ID:" + Transform(m.lnIdComanda), "INFO", gcLogFile)
|
||||
llSuccess = .T.
|
||||
Else
|
||||
lcErrorDetails = GetOracleErrorDetails()
|
||||
lcErrDetail = ClassifyImportError(lcErrorDetails)
|
||||
CollectFailedSKUs(lcErrorDetails)
|
||||
LogMessage(lcSummary + " -> ERR " + lcErrDetail, "ERROR", gcLogFile)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
Catch To loError
|
||||
LogMessage(lcPrefix + " -> ERR EXCEPTIE: " + loError.Message, "ERROR", gcLogFile)
|
||||
Return .F.
|
||||
Endtry
|
||||
|
||||
Return llSuccess
|
||||
Endfunc
|
||||
|
||||
*-- Validare comanda web
|
||||
|
||||
Reference in New Issue
Block a user