private void btnOrder_Click(object sender, EventArgs e) { SAPbobsCOM.Documents oSO; oSO = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders); try { oSO.CardCode = "C20000"; oSO.DocDueDate = DateTime.Today; oSO.Comments = "Krisztian"; oSO.Lines.ItemCode = "A00001"; oSO.Lines.Quantity = 2; oSO.Lines.Price = 100; oSO.Lines.Add(); oSO.Lines.ItemCode = "A00002"; oSO.Lines.Quantity = 1; oSO.Lines.Price = 50; int ret = oSO.Add(); if (ret == 0) { oCompany.GetNewObjectCode(out MySalesOrder); MessageBox.Show("Add Sales Order successfull - " + MySalesOrder); } else { MessageBox.Show("Add Sales Order failed: " + oCompany.GetLastErrorDescription()); } } catch (Exception ex) { MessageBox.Show("Exception: " + ex.Message); } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(oSO); oSO = null; } }
public static void GenearLeadSAP(string agente, string solicitud, string codigoAsistente, string nombreAsistente, int dia, int mes, int year, string telefono, string nombre, string apellidoP, string apellidoM, string direccion, string entreCalles, string municipio, string colonia, string observaciones, string nvoIngreso, string codigoPostal, string rfc, string esquema, ref string msgError, ref string CodigoActivacion) { SAPbobsCOM.BusinessPartners oSocioNegocio = null; string cardCodeGenerate = null; string nombreCompleto = null; Conexiones.ConexionSAP _oConnection = new Conexiones.ConexionSAP(); try { _oConnection = new Conexiones.ConexionSAP(); if (_oConnection.ConectarSAP(ref msgError)) { oCompany = _oConnection._oCompany; oCompany.StartTransaction(); nombreCompleto = nombre.TrimEnd(' ') + ' ' + apellidoP.TrimEnd(' ') + ' ' + apellidoM.TrimEnd(' '); oSocioNegocio = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners); ObtenerDatosSolicitudValidacion(solicitud); oSocioNegocio.Series = DatosSolicitud.ElementAt(0).serieLead; oSocioNegocio.CardType = SAPbobsCOM.BoCardTypes.cLid; oSocioNegocio.GroupCode = ObtenerGrupoLead(); oSocioNegocio.CardName = nombreCompleto; oSocioNegocio.FederalTaxID = rfc; oSocioNegocio.DebitorAccount = Extensor.Configuracion.VENTANA.CuentaLead; oSocioNegocio.UserFields.Fields.Item("U_QCapturaContrato").Value = agente; oSocioNegocio.UserFields.Fields.Item("U_SolicitudInt").Value = solicitud; oSocioNegocio.UserFields.Fields.Item("U_CodigoPromotor").Value = codigoAsistente; oSocioNegocio.UserFields.Fields.Item("U_NomProm").Value = nombreAsistente; oSocioNegocio.UserFields.Fields.Item("U_Dia").Value = dia.ToString(); oSocioNegocio.UserFields.Fields.Item("U_Mes").Value = mes.ToString(); oSocioNegocio.UserFields.Fields.Item("U_Year").Value = year.ToString(); oSocioNegocio.UserFields.Fields.Item("U_ComentarioContrato").Value = observaciones; oSocioNegocio.UserFields.Fields.Item("U_PersonaNvoIngreso").Value = nvoIngreso; oSocioNegocio.UserFields.Fields.Item("U_NumArt_").Value = DatosSolicitud.ElementAt(0).plan; oSocioNegocio.UserFields.Fields.Item("U_Dsciption").Value = DatosSolicitud.ElementAt(0).nombrePlan; oSocioNegocio.UserFields.Fields.Item("U_PrefijoPlan").Value = DatosSolicitud.ElementAt(0).prefijoPlan; oSocioNegocio.UserFields.Fields.Item("U_FechaCaptura").Value = DateTime.Now.ToShortDateString(); oSocioNegocio.UserFields.Fields.Item("U_HoraCaptura").Value = DateTime.Now.ToString("HH:mm:ss"); oSocioNegocio.UserFields.Fields.Item("U_Esquema_pago").Value = esquema; if (nombreCompleto.Length > 70) { oSocioNegocio.UserFields.Fields.Item("U_BeneficiarioPagoRe").Value = nombreCompleto.ToString().Substring(1, 70); } else { oSocioNegocio.UserFields.Fields.Item("U_BeneficiarioPagoRe").Value = nombreCompleto; } oSocioNegocio.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_BillTo; oSocioNegocio.Addresses.AddressName = "DIRECCION 1"; oSocioNegocio.Addresses.AddressName2 = telefono; oSocioNegocio.Addresses.Street = direccion; oSocioNegocio.Addresses.BuildingFloorRoom = entreCalles; oSocioNegocio.Addresses.City = municipio; oSocioNegocio.Addresses.Block = colonia; oSocioNegocio.Addresses.ZipCode = codigoPostal; oSocioNegocio.Addresses.State = "JAL"; if (oSocioNegocio.Add() != 0) { msgError = "Error: " + oCompany.GetLastErrorDescription(); } else { oCompany.GetNewObjectCode(out cardCodeGenerate); msgError = ""; } } else { msgError = "Error: " + msgError; } } catch (Exception ex) { msgError = "Error: " + msgError + " : " + ex.Message; } finally { if (!msgError.Contains("Error")) { oCompany.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit); CodigoActivacion = ObtenerCodigoActivacionGenerado(cardCodeGenerate); msgError = "El código de activación es: " + CodigoActivacion; } else { oCompany.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } if (oSocioNegocio != null) { GC.SuppressFinalize(oSocioNegocio); System.Runtime.InteropServices.Marshal.ReleaseComObject(oSocioNegocio); oSocioNegocio = null; } GC.Collect(); ClearMemory(); oCompany.Disconnect(); } }
public void Add(string strKey, SAPbobsCOM.Company oCompany_S, SAPbobsCOM.Company oCompany_D, string strLogger, string strFromWare, string strToWare, string[] strValues) { DataTable oHeader = null; DataTable oDetails = null; int intTStatus = 0; int intExitStatus = 0; int intEntryStatus = 0; SAPbobsCOM.StockTransfer oStockTransfer = (SAPbobsCOM.StockTransfer)oCompany_S.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oStockTransfer); SAPbobsCOM.Documents oInventoryExit = (SAPbobsCOM.Documents)oCompany_S.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenExit); SAPbobsCOM.Documents oInventoryEntry = (SAPbobsCOM.Documents)oCompany_D.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenEntry); try { string str_S_OWTR = "Exec Armada_Service_S_OWTR_s '" + strKey + "'"; oDataSet = Singleton.objSqlDataAccess.ExecuteDataSet(str_S_OWTR, strLogger); if (oDataSet == null && oDataSet.Tables.Count == 0) { return; } else { Singleton.traceService("Has Record"); oHeader = oDataSet.Tables[0]; oDetails = oDataSet.Tables[1]; if (oHeader != null && oHeader.Rows.Count > 0) { if (oCompany_S.CompanyDB == oCompany_D.CompanyDB) { Singleton.traceService("Same Company...So Transfer"); oStockTransfer.DocDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oStockTransfer.TaxDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oStockTransfer.FromWarehouse = strFromWare; oStockTransfer.Comments = oHeader.Rows[0]["Remarks"].ToString(); oStockTransfer.UserFields.Fields.Item("U_Z_TrnNum").Value = oHeader.Rows[0]["TrnNum"].ToString(); Singleton.traceService("Set Header"); Singleton.traceService(strFromWare); Singleton.traceService(strToWare); if (oDetails.Rows.Count > 0) { foreach (DataRow dr in oDetails.Rows) { oStockTransfer.Lines.ItemCode = dr["ItemCode"].ToString().Trim(); oStockTransfer.Lines.Quantity = Convert.ToDouble(dr["Qty"].ToString()); //oStockTransfer.Lines.FromWarehouseCode = strFromWare; oStockTransfer.Lines.WarehouseCode = strToWare; oStockTransfer.Lines.Add(); } Singleton.traceService("Set Details"); } Singleton.traceService("Adding"); intTStatus = oStockTransfer.Add(); Singleton.traceService(intTStatus.ToString()); if (intTStatus != 0) { Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), "0", "0", 0, oCompany_S.GetLastErrorCode().ToString(), oCompany_S.GetLastErrorDescription().Replace("'", ""), strLogger); } else { string strDkey; int intDocNum = 0; oCompany_S.GetNewObjectCode(out strDkey); if (oStockTransfer.GetByKey(Convert.ToInt32(strDkey))) { intDocNum = oStockTransfer.DocNum; } Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), strDkey, intDocNum.ToString(), 1, "", "Armada_Sync Completed Sucessfully", strLogger); } } else { //Singleton.traceService("Inventory Exit Started" + oCompany_S.CompanyDB.ToString()); //Singleton.traceService(strFromWare); //Singleton.traceService(strToWare); oInventoryExit.DocDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oInventoryExit.DocDueDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oInventoryExit.Comments = oHeader.Rows[0]["Remarks"].ToString(); oInventoryExit.UserFields.Fields.Item("U_Z_TrnNum").Value = oHeader.Rows[0]["TrnNum"].ToString(); //oInventoryExit.Reference2 = oHeader.Rows[0]["Ref2"].ToString(); //Singleton.traceService("Set Header"); if (oDetails.Rows.Count > 0) { foreach (DataRow dr in oDetails.Rows) { oInventoryExit.Lines.ItemCode = dr["ItemCode"].ToString(); oInventoryExit.Lines.ItemDescription = dr["ItemDsc"].ToString(); oInventoryExit.Lines.Quantity = Convert.ToDouble(dr["Qty"].ToString()); //oInventoryExit.Lines.ShipDate = Convert.ToDateTime(dr["ShipDate"].ToString()); //oInventoryExit.Lines.UnitPrice = 0; oInventoryExit.Lines.WarehouseCode = strFromWare; oInventoryExit.Lines.AccountCode = strValues[1]; oInventoryExit.Lines.Add(); } } //Singleton.traceService("Set Details"); oCompany_S.StartTransaction(); //Singleton.traceService("Adding"); intExitStatus = oInventoryExit.Add(); //Singleton.traceService("Added"); if (intExitStatus != 0) { //Singleton.traceService(intExitStatus.ToString()); Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), "0", "0", 0, intExitStatus.ToString(), oCompany_S.GetLastErrorDescription().Replace("'", ""), strLogger); if (oCompany_S.InTransaction) { oCompany_S.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } } else { string strDkey; int intDocNum = 0; oCompany_S.GetNewObjectCode(out strDkey); if (oInventoryExit.GetByKey(Convert.ToInt32(strDkey))) { intDocNum = oInventoryExit.DocNum; } //Singleton.traceService("Exit Success"); //Singleton.traceService(intDocNum.ToString()); //Singleton.traceService("Setting Entry Header"); oInventoryEntry.DocDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oInventoryEntry.DocDueDate = Convert.ToDateTime(oHeader.Rows[0]["TrnDate"].ToString()); oInventoryEntry.Comments = oHeader.Rows[0]["Remarks"].ToString(); //oInventoryEntry.PaymentGroupCode = Convert.ToInt16(strValues[0]); // oInventoryEntry.Reference2 = oHeader.Rows[0]["Ref2"].ToString(); oInventoryEntry.UserFields.Fields.Item("U_Z_TrnNum").Value = oHeader.Rows[0]["TrnNum"].ToString(); if (oDetails.Rows.Count > 0) { //Singleton.traceService("Setting Entry Detials"); foreach (DataRow dr in oDetails.Rows) { oInventoryEntry.Lines.ItemCode = dr["ItemCode"].ToString(); oInventoryEntry.Lines.ItemDescription = dr["ItemDsc"].ToString(); oInventoryEntry.Lines.Quantity = Convert.ToDouble(dr["Qty"].ToString()); // oInventoryEntry.Lines.ShipDate = Convert.ToDateTime(dr["ShipDate"].ToString()); oInventoryEntry.Lines.UnitPrice = Convert.ToDouble(dr["LCPrice"].ToString());; oInventoryEntry.Lines.WarehouseCode = strToWare; oInventoryEntry.Lines.AccountCode = strValues[2]; oInventoryEntry.Lines.Add(); } } oCompany_D.StartTransaction(); //Singleton.traceService("Adding Entry"); intEntryStatus = oInventoryEntry.Add(); if (intEntryStatus != 0) { //Singleton.traceService(intEntryStatus.ToString()); Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), "0", "0", 0, intEntryStatus.ToString(), oCompany_D.GetLastErrorDescription().Replace("'", ""), strLogger); if (oCompany_S.InTransaction) { oCompany_S.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } if (oCompany_D.InTransaction) { oCompany_D.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } } else { if (oCompany_S.InTransaction) { oCompany_S.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit); } if (oCompany_D.InTransaction) { oCompany_D.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit); } Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), strDkey, intDocNum.ToString(), 1, "", "Armada_Sync Completed Sucessfully", strLogger); } } } } } } catch (Exception ex) { if (oCompany_S.InTransaction) { oCompany_S.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } if (oCompany_D.InTransaction) { oCompany_D.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } //Singleton.objSqlDataAccess.UpdateLog(strKey, TransScenerio.InventoryTransfer.ToString(), "0", "0", 0, "0", ex.Message.ToString(), strLogger); throw ex; } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(oStockTransfer); System.Runtime.InteropServices.Marshal.ReleaseComObject(oInventoryExit); System.Runtime.InteropServices.Marshal.ReleaseComObject(oInventoryEntry); } }
public Backup() { logs.Clear(); WriteLog("[Log]", "--------------------------------------------------------------------------------"); WriteLog("[Log]", "Integration Begin:[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "]"); #region Connect to SAP SAPbobsCOM.Company oCom = new SAPbobsCOM.Company(); string dbServerType = ConfigurationManager.AppSettings.Get("dbServerType"); if (dbServerType == "MSSQL2005") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005; } else if (dbServerType == "MSSQL2008") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2008; } else if (dbServerType == "MSSQL2012") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2012; } else if (dbServerType == "MSSQL2014") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2014; } else if (dbServerType == "HANADB") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_HANADB; } else if (dbServerType == "DB_2") { oCom.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_DB_2; } oCom.Server = ConfigurationManager.AppSettings.Get("Server"); oCom.DbUserName = ConfigurationManager.AppSettings.Get("dbuser"); oCom.DbPassword = ConfigurationManager.AppSettings.Get("dbpass"); oCom.LicenseServer = ConfigurationManager.AppSettings.Get("LicenseServer"); oCom.CompanyDB = ConfigurationManager.AppSettings.Get("CompanyDB"); oCom.UserName = ConfigurationManager.AppSettings.Get("UserName"); oCom.Password = ConfigurationManager.AppSettings.Get("Password"); oCom.language = SAPbobsCOM.BoSuppLangs.ln_English; if (oCom.Connect() != 0) { WriteLog("[Error]", "Connection:[" + oCom.CompanyDB + "] Message:[" + oCom.GetLastErrorDescription() + "] Time:[" + DateTime.Now.ToString("hh: mm:ss tt") + "]"); goto EndApplication; } WriteLog("[Log]", "Connected to:[" + oCom.CompanyName + "] Time:[" + DateTime.Now.ToString("hh:mm:ss tt") + "]"); #endregion #region Connect to Data Source SqlConnection conn = new SqlConnection(conString); SqlCommand cmd = new SqlCommand("", conn); conn.Close(); try { conn.Open(); } catch (Exception ex) { WriteLog("[Error]", "Data Source Connection : " + DateTime.Now.ToString() + " : " + ex.Message); goto EndApplication; } SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(conString); string server = builder.DataSource; string database = builder.InitialCatalog; WriteLog("[Log]", "Connected to Data Source:[" + database + "] Time:[" + DateTime.Now.ToString("hh:mm:ss tt") + "]"); cmd.CommandText = "SELECT ROW_NUMBER() over (Partition by BaseEntry Order by BaseEntry )-1 as [Line], * " + "FROM [dbo].[ProductionReceipt] T0 Where IsNull(T0.Posted,'N') <> 'Y'"; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); int nGR = dt.Rows.Count; if (nGR == 0) { WriteLog("[Log]", "No production receipt to import!"); conn.Close(); da.Dispose(); goto EndApplication; } List <int> idList = new List <int>(); Dictionary <int, DataTable> doc = new Dictionary <int, DataTable>(); //Parsing data into header and details foreach (DataRow row in dt.Rows) { int baseEntry = int.Parse(row["BaseEntry"].ToString()); if (doc.ContainsKey(baseEntry)) { DataTable dtDoc = doc[baseEntry]; dtDoc.ImportRow(row); doc[baseEntry] = dtDoc; } else { DataTable dtDoc = dt.Clone(); dtDoc.ImportRow(row); doc.Add(baseEntry, dtDoc); } } WriteLog("[Log]", "Record found:[" + doc.Keys.Count + "] Total Rows:[" + dt.Rows.Count + "]"); oCom.StartTransaction(); int n = 0; foreach (var item in doc) { try { SAPbobsCOM.Documents oDocReceipt = (SAPbobsCOM.Documents)oCom.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenEntry); SAPbobsCOM.ProductionOrders oDocProductionOrders = (SAPbobsCOM.ProductionOrders)oCom.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductionOrders); SAPbobsCOM.Items oItem = oCom.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems); DataTable dtDoc = doc[item.Key]; DataRow hRow = dtDoc.Rows[0]; int retcode = 0; idList = new List <int>(); string itemCode = hRow["ItemCode"].ToString(); oItem.GetByKey(itemCode); SAPbobsCOM.BoYesNoEnum isManageBatchNumbers = oItem.ManageBatchNumbers; WriteLog("[Log]", "No:[" + (++n) + "] H:Production Order[" + hRow["DocNum"].ToString() + "] Base:[" + item.Key + "] TotalRows:[" + dtDoc.Rows.Count + "]" + " PlannedQty:" + hRow["Quantity"].ToString()); // Add Header ----------------------------------- string proNo = hRow["DocNum"].ToString(); int baseEntry = int.Parse(hRow["BaseEntry"].ToString()); oDocReceipt.Series = 53; oDocReceipt.DocDate = DateTime.Parse(hRow["DocDate"].ToString()); oDocReceipt.DocDueDate = DateTime.Parse(hRow["DocDueDate"].ToString()); oDocReceipt.Comments = hRow["Comments"].ToString(); oDocReceipt.JournalMemo = hRow["JournalMemo"].ToString(); // Add Details start ---------------------------- for (int i = 0; i < dtDoc.Rows.Count; i++) { DataRow row = dtDoc.Rows[i]; int id = int.Parse(row["Id"].ToString()); WriteLog("[Log]", "Id:[" + row["Id"].ToString() + "] R:[" + i + "] ItemCode:" + itemCode + "] BatchNo:" + row["DistNumber"].ToString() + " " + row["status"].ToString() + " Qty:" + row["BatchQuantity"].ToString()); idList.Add(id); oDocReceipt.Lines.Add(); oDocReceipt.Lines.SetCurrentLine(i); oDocReceipt.Lines.BaseType = (int)SAPbobsCOM.BoObjectTypes.oProductionOrders; oDocReceipt.Lines.BaseEntry = int.Parse(row["BaseEntry"].ToString()); //oDocReceipt.Lines.BaseLine = 0; oDocReceipt.Lines.Quantity = Double.Parse(row["BatchQuantity"].ToString()); //Batch Quantity = Receipt Quantity oDocReceipt.Lines.WarehouseCode = "KH010"; oDocReceipt.Lines.FreeText = row["Notes"].ToString(); //oDocReceipt.Lines.WarehouseCode = row["WarehouseCode"].ToString(); string status = row["Status"].ToString().Trim(); oDocReceipt.Lines.TransactionType = (status == "AC") ? SAPbobsCOM.BoTransactionTypeEnum.botrntComplete : SAPbobsCOM.BoTransactionTypeEnum.botrntReject; if (isManageBatchNumbers.Equals("tYES")) { oDocReceipt.Lines.BatchNumbers.BatchNumber = row["DistNumber"].ToString(); oDocReceipt.Lines.BatchNumbers.Quantity = Double.Parse(row["BatchQuantity"].ToString()); if (!String.IsNullOrEmpty(row["ExpiryDate"].ToString())) { oDocReceipt.Lines.BatchNumbers.ExpiryDate = DateTime.Parse(row["ExpiryDate"].ToString()); } if (!String.IsNullOrEmpty(row["MnfDate"].ToString())) { oDocReceipt.Lines.BatchNumbers.ManufacturingDate = DateTime.Parse(row["MnfDate"].ToString()); } if (!String.IsNullOrEmpty(row["InDate"].ToString())) { oDocReceipt.Lines.BatchNumbers.AddmisionDate = DateTime.Parse(row["InDate"].ToString()); } oDocReceipt.Lines.BatchNumbers.Notes = row["Notes"].ToString(); oDocReceipt.Lines.BatchNumbers.Add(); } // add line end -------------------- } retcode = oDocReceipt.Add(); if (retcode == 0) { // Success string docEntry = ""; string docNum = ""; oCom.GetNewObjectCode(out docEntry); if (docEntry == "") { errMsg = "Unknown Error! Please try again!"; if (oCom.InTransaction) { oCom.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } WriteLog("[Error]", "Production Receipt:" + errMsg); continue; } SAPbobsCOM.Documents sapDoc = (SAPbobsCOM.Documents)oCom.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInventoryGenEntry); if (sapDoc.GetByKey(int.Parse(docEntry))) { docNum = sapDoc.DocNum.ToString(); } foreach (int id in idList) { string str = "exec sp_FT_UpdateProductionOrder '" + id + "','Y','" + "" + "','" + docNum + "'"; SqlCommand cmdExec = new SqlCommand(str, conn); cmdExec.ExecuteNonQuery(); WriteLog("[Success]", "Production Receipt:[" + docNum + "] has been added!"); } if (oCom.InTransaction) { oCom.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_Commit); } cmd.CommandText = "SELECT CASE WHEN Sum(isNull(BatchQuantity,0.00)) >= MAX(T0.Quantity) Then 1 else 0 END " + "FROM[dbo].[ProductionReceipt] T0 " + "Where ISNULL(T0.Posted,'N') = 'Y' AND T0.BaseEntry=" + baseEntry + " GROUP BY T0.BaseEntry"; Int32 totalReceived = (Int32)cmd.ExecuteScalar(); // Closed Production if (oDocProductionOrders.GetByKey(baseEntry) && totalReceived == 1) { string msg = "Production Order:[" + oDocProductionOrders.DocumentNumber.ToString() + "] has been closed!"; string rmk = oDocProductionOrders.Remarks; oDocProductionOrders.ProductionOrderStatus = SAPbobsCOM.BoProductionOrderStatusEnum.boposClosed; oDocProductionOrders.Remarks = rmk + " :closed by integration"; //oDocProductionOrders.ProductionOrderStatus = SAPbobsCOM.BoProductionOrderStatusEnum.boposCancelled; oDocProductionOrders.Update(); WriteLog("[Success]", msg); foreach (int id in idList) { string str = "exec sp_FT_UpdateProductionOrder '" + id + "','Y','" + msg + "','" + docNum + "'"; SqlCommand cmdExec = new SqlCommand(str, conn); cmdExec.ExecuteNonQuery(); } } } else { // Error oCom.GetLastError(out errCode, out errMsg); foreach (int id in idList) { string str = "exec sp_FT_UpdateProductionOrder '" + id + "','N','" + errMsg.Replace("'", "") + "',''"; SqlCommand cmdExec = new SqlCommand(str, conn); cmdExec.ExecuteNonQuery(); } WriteLog("[Error]", "Production Order:[" + proNo + "] Error Msg:" + oCom.GetLastErrorDescription()); if (oCom.InTransaction) { oCom.EndTransaction(SAPbobsCOM.BoWfTransOpt.wf_RollBack); } } } catch (Exception ex) { oCom.GetLastError(out errCode, out errMsg); string msg = (ex.Message + " SAP msg:" + errMsg).Replace("'", ""); foreach (int id in idList) { string str = "exec sp_FT_UpdateProductionOrder '" + id + "','N','" + msg + "','" + "" + "'"; SqlCommand cmdExec = new SqlCommand(str, conn); cmdExec.ExecuteNonQuery(); } WriteLog("[Error]", "Production Receipt:" + msg); } } #endregion EndApplication: bool sendEmail = false; foreach (KeyValuePair <string, List <string> > kvp in logs) { string status = kvp.Key; List <string> msgs = kvp.Value; if (status == "[Error]") { sendEmail = true; } } if (sendEmail) { WriteLog("[Log]", " ➜ Send E-Mail"); SendEmail(); } ; WriteLog("", "Integration End"); //Thread.Sleep(3000); }
void IArmada_Sync.Add(string sKey, SAPbobsCOM.Company oCompany, string strLogger, string strWareHouse, string[] strValues, Hashtable htCCdet) { DataSet oDS_S_OCRD = null; SAPbobsCOM.BusinessPartners oPartner = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners); string str_S_OCRD = "Exec Armada_Service_S_OCRD_s '" + sKey + "'"; oDS_S_OCRD = Armada_Sync.Singleton.objSqlDataAccess.ExecuteDataSet(str_S_OCRD, strLogger); try { if (oDS_S_OCRD == null && oDS_S_OCRD.Tables.Count == 0) { return; } else { if ((oDS_S_OCRD.Tables[0] != null) && (oDS_S_OCRD.Tables[0].Rows.Count > 0)) { int retVal; if (!oPartner.GetByKey(oDS_S_OCRD.Tables[0].Rows[0]["Code"].ToString().Trim())) { oPartner.CardCode = oDS_S_OCRD.Tables[0].Rows[0]["Code"].ToString().Trim(); oPartner.CardName = oDS_S_OCRD.Tables[0].Rows[0]["Name"].ToString().Trim(); oPartner.CardType = SAPbobsCOM.BoCardTypes.cCustomer; oPartner.Cellular = oDS_S_OCRD.Tables[0].Rows[0]["Phone"].ToString().Trim(); oPartner.Currency = "##"; oPartner.EmailAddress = oDS_S_OCRD.Tables[0].Rows[0]["Email"].ToString().Trim(); oPartner.Fax = oDS_S_OCRD.Tables[0].Rows[0]["Fax"].ToString().Trim(); int intLine = 0; oPartner.Addresses.SetCurrentLine(intLine); oPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_BillTo; oPartner.Addresses.AddressName = oDS_S_OCRD.Tables[0].Rows[0]["Name"].ToString().Trim(); oPartner.Addresses.Street = oDS_S_OCRD.Tables[0].Rows[0]["Address"].ToString().Trim(); oPartner.Addresses.Block = oDS_S_OCRD.Tables[0].Rows[0]["Area"].ToString().Trim(); oPartner.Addresses.ZipCode = oDS_S_OCRD.Tables[0].Rows[0]["ZipCode"].ToString().Trim(); oPartner.Addresses.City = oDS_S_OCRD.Tables[0].Rows[0]["City"].ToString().Trim(); oPartner.Addresses.Country = oDS_S_OCRD.Tables[0].Rows[0]["Country"].ToString(); //oPartner.Addresses.State = oDS_S_OCRD.Tables[0].Rows[0]["Name"].ToString(); oPartner.Addresses.Add(); retVal = oPartner.Add(); if (retVal != 0) { Singleton.objSqlDataAccess.UpdateLog(sKey, TransScenerio.Customer.ToString(), "0", "0", 0, oCompany.GetLastErrorCode().ToString(), oCompany.GetLastErrorDescription().Replace("'", ""), strLogger); } else { string strDkey; oCompany.GetNewObjectCode(out strDkey); Singleton.objSqlDataAccess.UpdateLog(sKey, TransScenerio.Customer.ToString(), strDkey, strDkey, 1, "", "Armada_Sync Completed Sucessfully", strLogger); } } else { Singleton.objSqlDataAccess.UpdateLog(sKey, TransScenerio.Customer.ToString(), "", "", 1, "", "Armada_Sync Completed Sucessfully(Customer Already Exist)", strLogger); } } } } catch (Exception ex) { //Singleton.objSqlDataAccess.UpdateLog(sKey, TransScenerio.Customer.ToString(), "0", "0", 0, "0", ex.Message.ToString(), strLogger); throw ex; } finally { oDS_S_OCRD = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(oPartner); } }