Exemple #1
0
        //Grid Approve
        private void Load_Grid_Period()
        {
            //Load Grid
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                cmd             = new SqlCommand("PR_Get_List_Approve", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@UserName", oCompany.UserName);
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
                this.UIAPIRawForm.Freeze(true);
                Grid0.DataTable = Convert_SAP_DataTable(result);

                Grid0.AutoResizeColumns();
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                this.UIAPIRawForm.Freeze(false);
                conn.Close();
                cmd.Dispose();
            }
        }
Exemple #2
0
        private System.Data.DataTable Get_MenuUID(string pReportName)
        {
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                cmd             = new SqlCommand("GET_MENUUID_TV", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@ReportName", pReportName);
                cmd.CommandTimeout = 0;
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
            return(result);
        }
Exemple #3
0
        System.Data.DataTable Load_Data_KLTT()
        {
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                int DocEntry = 0;
                int.TryParse(((SAPbouiCOM.EditText)(this.GetItem("0_U_E").Specific)).Value, out DocEntry);
                cmd             = new SqlCommand("KLTT_GT_KYNAY", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@DocEntry", DocEntry);
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
            return(result);
        }
Exemple #4
0
        System.Data.DataTable Get_Data(DateTime pFrDate, DateTime pToDate)
        {
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                cmd             = new SqlCommand("CCM_HQDP", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@FromDate", pFrDate);
                cmd.Parameters.AddWithValue("@ToDate", pToDate);
                cmd.CommandTimeout = 0;
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
            return(result);
        }
Exemple #5
0
        System.Data.DataTable Get_Approve_Process_BASELINE()
        {
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                cmd             = new SqlCommand("BASELINE_GetList_Approve", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@Usr", oCompany.UserName);
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
            return(result);
        }
        System.Data.DataTable Get_List_Distribution()
        {
            DataTable  result = new DataTable();
            SqlCommand cmd    = null;

            try
            {
                cmd             = new SqlCommand("CCM_DISTRIBUTION_RULE_LIST", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                //cmd.Parameters.AddWithValue("@Username", oCompany.UserName);
                conn.Open();
                SqlDataReader rd = cmd.ExecuteReader();
                result.Load(rd);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                conn.Close();
                cmd.Dispose();
            }
            return(result);
        }
 public static void Info(string msg, bool popup = false)
 {
     SBOApplication.StatusBar.SetText(msg, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);
     if (popup)
     {
         SBOApplication.MessageBox(msg);
     }
 }
        private string FindFile()
        {
            try
            {
                System.Diagnostics.Process cProcess = System.Diagnostics.Process.GetCurrentProcess();
                cParentID = getProcessParentID(cProcess.ProcessName, cProcess.Id);
                System.Diagnostics.Process cParent = System.Diagnostics.Process.GetProcessById(cParentID, cProcess.MachineName);
                cMachineName = cProcess.MachineName;
                if (cProcess.ProcessName.EndsWith("vshost")) // 'This part is for RUNTIME Mode
                {
                    _App.StatusBar.SetText(cProcess.Id + " 2N " + cProcess.ProcessName + " << " + cParent.Id + " N " + cParent.ProcessName + " <<< This is DESIGN-TIME >>>", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);
                    cParentID = 0;
                }
            }
            catch
            {
                _App.StatusBar.SetText("Process Reading Fail!", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
            }

            System.Threading.Thread ShowFileBrowserThread;
            System.Threading.Timer  oTimer = new System.Threading.Timer(new System.Threading.TimerCallback(TimerKeepAlive));
            oTimer.Change(0, 60 * 1000);    //Set the timer for
            try
            {
                ShowFileBrowserThread = new System.Threading.Thread(new System.Threading.ThreadStart(ShowFileBrowser));
                if (ShowFileBrowserThread.ThreadState == System.Threading.ThreadState.Unstarted)
                {
                    ShowFileBrowserThread.SetApartmentState(System.Threading.ApartmentState.STA);
                    ShowFileBrowserThread.Start();
                }
                else if (ShowFileBrowserThread.ThreadState == System.Threading.ThreadState.Stopped)
                {
                    ShowFileBrowserThread.Start();
                    ShowFileBrowserThread.Join();
                }

                while (ShowFileBrowserThread.ThreadState == System.Threading.ThreadState.Running)
                {
                    System.Windows.Forms.Application.DoEvents();
                }


                if (FileName != "")
                {
                    return(FileName);
                }
            }
            catch (Exception ex)
            {
                _App.MessageBox("FindFile. " + ex.Message, 1, "OK", null, null);
            }
            finally
            {
                oTimer.Dispose();
            }
            return("");
        }
Exemple #9
0
        /// <summary>
        /// Connect sap using UI API.
        /// </summary>
        /// <param name="connString">If you not define the string connection, the string connection will be default</param>
        public static void Connect(string connString = null)
        {
            try
            {
                SAPbouiCOM.SboGuiApi SboGuiApi = null;
                string sConnectionString       = null;

                SboGuiApi = new SAPbouiCOM.SboGuiApi();

                sConnectionString = connString ?? sap.ui.E.ConnString;
                SboGuiApi.Connect(sConnectionString);
                conn = SboGuiApi.GetApplication(-1);

                var debug = false;
#if DEBUG
                debug = true;
#endif

                if (R.DebugMode && !debug)
                {
                    conn.MessageBox("Addon is connected as debug mode.");
                }
                else
                {
                    conn.SetStatusBarMessage($"{R.CompanyName} addon is connected.", SAPbouiCOM.BoMessageTime.bmt_Short, false);
                }
            }
            catch (Exception ex)
            {
                k.Diagnostic.Error(LOG, ex);
                throw new Exception($"Error to connect SAP using DI UIAPI.", ex);
            }
        }
Exemple #10
0
 private void OnCustomInitialize()
 {
     this.CheckBox0.ValOff = "0";
     this.CheckBox0.ValOn  = "1";
     this.oApp             = (SAPbouiCOM.Application)SAPbouiCOM.Framework.Application.SBO_Application;
     this.oCompany         = (SAPbobsCOM.Company)oApp.Company.GetDICompany();
     //Create Connection SQL
     SAPbobsCOM.Recordset oR_RecordSet = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
     oR_RecordSet.DoQuery("Select * from [@ADDONCFG]");
     if (oR_RecordSet.RecordCount > 0)
     {
         string uid = oR_RecordSet.Fields.Item("Code").Value.ToString();
         string pwd = oR_RecordSet.Fields.Item("Name").Value.ToString();
         conn = new SqlConnection(string.Format("Data Source={0}; Initial Catalog={1}; User id={2}; Password={3};", oCompany.Server, oCompany.CompanyDB, uid, pwd));
     }
     else
     {
         oApp.MessageBox("Can't connect DB !");
     }
     //Get MenuUID KLTT
     MenuUID = Get_MenuUID_BILLVP();
     if (string.IsNullOrEmpty(MenuUID))
     {
         oApp.SetStatusBarMessage("Can't find MenuUID for BILLVP", SAPbouiCOM.BoMessageTime.bmt_Short, true);
     }
     Load_Financial_Project();
 }
Exemple #11
0
        /// <summary>
        /// Metodo para cargar los XSD(Solo se cargan una vez debido a que el proceso tarda aprox 2 minutos)
        /// </summary>
        private void cargarXSD()
        {
            #region ENVIO ENTRE EMPRESAS

            if (trEnvioSobre == null)
            {
                trEnvioSobre = new XmlTextReader(RutasXSD.RutaXsdEnvioCFEentreEmpresa);
            }

            if (trEempresas == null)
            {
                trEempresas = new XmlTextReader(RutasXSD.RutaXsdCFEEmpresasType);
            }

            #endregion ENVIO ENTRE EMPRESAS


            #region ENVIO CON DGI

            //if (trEnvioSobre == null)
            //{
            //    trEnvioSobre = new XmlTextReader(RutasXSD.RutaXsdEnvioSobre);
            //}

            #endregion ENVIO CON DGI

            #region XSD HOJAS(SIEMPRE SE USAN)

            if (trTipoDGI == null)
            {
                trTipoDGI = new XmlTextReader(RutasXSD.RutaXsdTipoDgi);
            }
            if (trTipoCFE == null)
            {
                trTipoCFE = new XmlTextReader(RutasXSD.RutaXsdTipoCfe);
            }

            #endregion XSD HOJAS(SIEMPRE SE USAN)

            if (xsc == null)
            {
                xsc = new XmlSchemaCollection();

                try
                {
                    //Se cargan los XSD al esquema
                    xsc.Add(null, trTipoDGI);
                    xsc.Add(null, trTipoCFE);
                    xsc.Add(null, trEempresas);//no se usa con envio a DGI
                    xsc.Add(null, trEnvioSobre);
                }
                catch (Exception ex)
                {
                    app.MessageBox("ValidarSobre/CArgarXSD/Error: " + ex.ToString());
                }
            }
        }
Exemple #12
0
        private SAPbobsCOM.Company instanciarCompania()
        {
            try
            {
                return(application.Company.GetDICompany());
            }
            catch (Exception e)
            {
                application.MessageBox(e.Message);
            }

            return(null);
        }
Exemple #13
0
    public SAPbobsCOM.Company SetCompany()
    {
        // //*************************************************************
        // // Set The Connection Context
        // //*************************************************************

        if (!(SetConnectionContext() == 0))
        {
            SBO_Application.MessageBox("SDK:Failed setting a connection to DI API", 1, "Ok", "", "");
            System.Environment.Exit(0);     //  Terminating the Add-On Application
        }

        // //*************************************************************
        // // Connect To The Company Data Base
        // //*************************************************************

        if (!(ConnectToCompany() == 0))
        {
            SBO_Application.MessageBox("SDK:Failed connecting to the company's Data Base", 1, "Ok", "", "");
            System.Environment.Exit(0);     //  Terminating the Add-On Application
        }
        return(oCompany);
    }
Exemple #14
0
    public HelloWorld()
    {
        //*************************************************************
        // set SBO_Application with an initialized application object
        //*************************************************************

        SetApplication();

        //*************************************************************
        // send an "hello world" message
        //*************************************************************

        SBO_Application.MessageBox("Hello World", 1, "Ok", "", "");
    }
Exemple #15
0
        private void Class_Init()
        {
            SetApplication();
            if (SetConnectionContext() == 0)
            {
                if (ConnectToCompany() != 0)
                {
                    oApplication.StatusBar.SetText("Failed Connecting to Company's Database", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                    int    i;
                    String errCode;
                    oCompany.GetLastError(out i, out errCode);

                    oApplication.MessageBox(i + " " + errCode, 1, "OK", "", "");
                }
                else
                {
                    SboAddon.Create("ANS", "B1", oApplication, oCompany);
                }
            }
            else
            {
                oApplication.StatusBar.SetText("Cannot make a connection to the DI API", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
            }
        }
Exemple #16
0
        private void UIAPILog(LoggingEvent loggingEvent, SAPbouiCOM.Application app, string asm)
        {
            string msg = String.Format("{0}: {1}", asm, loggingEvent.RenderedMessage);

            if (loggingEvent.Level == Level.Alert)
            {
                if (!SilentMode)
                {
                    app.StatusBar.SetText(msg, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None);
                }
            }
            else if (loggingEvent.Level == Level.Info || loggingEvent.Level == Level.Debug)
            {
                if (!SilentMode)
                {
                    app.StatusBar.SetText(msg, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success);
                }
            }
            else if (loggingEvent.Level == Level.Warn)
            {
                if (!SilentMode)
                {
                    app.StatusBar.SetText(msg, SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);
                }
            }
            else
            {
                app.StatusBar.SetText(msg, SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
            }

            if (loggingEvent.ExceptionObject != null)
            {
                var traceForm = ContainerManager.Container.Resolve <ExceptionTrace>();
                if (traceForm.UIAPIRawForm != null)
                // if it's an error on Dover Boot, B1SResourceManager may not have XML form on hand.
                {
                    traceForm.ex = loggingEvent.ExceptionObject;
                    traceForm.Show();
                }
                else
                {
                    app.MessageBox(string.Format("{0}\n\n{1}",
                                                 loggingEvent.ExceptionObject.Message, loggingEvent.ExceptionObject.StackTrace));
                }
            }
        }
Exemple #17
0
 private void OnCustomInitialize()
 {
     this.oApp     = (SAPbouiCOM.Application)SAPbouiCOM.Framework.Application.SBO_Application;
     this.oCompany = (SAPbobsCOM.Company)oApp.Company.GetDICompany();
     //Create Connection SQL
     SAPbobsCOM.Recordset oR_RecordSet = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
     oR_RecordSet.DoQuery("Select * from [@ADDONCFG]");
     if (oR_RecordSet.RecordCount > 0)
     {
         string uid = oR_RecordSet.Fields.Item("Code").Value.ToString();
         string pwd = oR_RecordSet.Fields.Item("Name").Value.ToString();
         conn = new SqlConnection(string.Format("Data Source={0}; Initial Catalog={1}; User id={2}; Password={3};", oCompany.Server, oCompany.CompanyDB, uid, pwd));
     }
     else
     {
         oApp.MessageBox("Can't connect DB !");
     }
 }
Exemple #18
0
        private void Button0_PressedAfter(object sboObject, SAPbouiCOM.SBOItemEventArg pVal)
        {
            //Thiet bi
            if (pVal.FormMode == 1)
            {
                //Get DATA SUM CCM
                int       DocEntry  = int.Parse(((SAPbouiCOM.EditText)(this.GetItem("0_U_E").Specific)).Value);
                string    Project   = ((SAPbouiCOM.EditText)(this.GetItem("20_U_E").Specific)).Value;
                DataTable Sum_DUTRU = Load_Data_DUTRU_TB(Project, DocEntry);

                oApp.ActivateMenuItem("DUTRU");
                SAPbouiCOM.Form oForm = Application.SBO_Application.Forms.ActiveForm;
                //Get DocNum CTG
                try
                {
                    ((SAPbouiCOM.EditText)oForm.Items.Item("20_U_E").Specific).Value = DocEntry.ToString();
                    try
                    {
                        //Select Type DUTRU
                        ((SAPbouiCOM.ComboBox)oForm.Items.Item("21_U_Cb").Specific).Select("2", SAPbouiCOM.BoSearchKey.psk_ByValue);
                    }
                    catch (Exception ex)
                    {
                        oApp.MessageBox(ex.Message);
                    }
                    oForm.Freeze(true);
                    oForm.PaneLevel = 1;
                    SAPbouiCOM.Matrix oMtx = (SAPbouiCOM.Matrix)oForm.Items.Item("0_U_G").Specific;
                    for (int i = 0; i < Sum_DUTRU.Rows.Count; i++)
                    {
                        oApp.SetStatusBarMessage(string.Format("Creating DUTRU TB: {0}", (i + 1) + "/" + Sum_DUTRU.Rows.Count), SAPbouiCOM.BoMessageTime.bmt_Short, false);
                        DataRow r = Sum_DUTRU.Rows[i];
                        //Subproject Code
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_2").Cells.Item(i + 1).Specific).Value = r["High_Level_SUM"].ToString();
                        //Subproject Description
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_3").Cells.Item(i + 1).Specific).Value = r["High_Level_Name"].ToString();
                        //CP Mua ban
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_8").Cells.Item(i + 1).Specific).Value = r["CP_MB"].ToString();
                        //CP Thue
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_9").Cells.Item(i + 1).Specific).Value = r["CP_THUE"].ToString();
                        //CP Van hanh
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_10").Cells.Item(i + 1).Specific).Value = r["CP_VH"].ToString();
                        //CP VC
                        ((SAPbouiCOM.EditText)oMtx.Columns.Item("C_0_11").Cells.Item(i + 1).Specific).Value = r["CP_VC"].ToString();

                        if (i < Sum_DUTRU.Rows.Count - 1)
                        {
                            oMtx.AddRow();
                            ((SAPbouiCOM.EditText)oMtx.Columns.Item(1).Cells.Item(i + 2).Specific).Value = (i + 2).ToString();
                        }
                    }
                    oForm.Freeze(false);
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    oForm.Freeze(false);
                }
            }
            else
            {
                Application.SBO_Application.MessageBox("Function works only on View Mode");
            }
        }
Exemple #19
0
        static public void BankfileArchive_DO(ref SAPbouiCOM.Application application, ref SAPbobsCOM.Company company)
        {
            SAPbouiCOM.Form form = application.Forms.ActiveForm;

            string vcardFolder = @"\\core.com\core\Shared\Accounting\Accounts Payable\Virtual Card\TEST\HUNT-VIRTUAL_VCARD\HUNT_Vcard";
            string achfolder   = @"\\core.com\core\Shared\Accounting\Accounts Payable\Virtual Card\TEST\HUNT-VIRTUAL_VCARD\HUNT_ACH";
            string toFolder    = @"\\core.com\core\Shared\Accounting\Accounts Payable\Virtual Card\TEST\HUNT-VIRTUAL_VCARD\Archive";
            string currentDTM  = DateTime.Now.ToString("yyyyMMdd_HHmmss");

            string achfromfile   = "";
            string vcardfromfile = "";
            string vcarddestFile = "";
            string achdestFile   = "";

            int vcardcount = 0;
            int achcount   = 0;
            int choice     = 0;

            string showmsg = "";


            //Get varcfile

            if (System.IO.Directory.Exists(vcardFolder))
            {
                string[] files = System.IO.Directory.GetFiles(vcardFolder);

                foreach (string s in files)
                {
                    if (System.IO.Path.GetExtension(s).ToUpper() == ".CSV")
                    {
                        showmsg = showmsg + "Vcard file : " + System.IO.Path.GetFileNameWithoutExtension(s) + " Last Modified " + System.IO.File.GetLastWriteTime(s).ToString() + "\r\n";
                        vcardcount++;
                    }
                }
            }

            //get achfile

            if (System.IO.Directory.Exists(achfolder))
            {
                string[] files = System.IO.Directory.GetFiles(achfolder);

                foreach (string s in files)
                {
                    if (System.IO.Path.GetExtension(s).ToUpper() == ".CSV")
                    {
                        showmsg = showmsg + "ACH file : " + System.IO.Path.GetFileNameWithoutExtension(s) + " Last Modified " + System.IO.File.GetLastWriteTime(s).ToString() + "\r\n";
                        achcount++;
                    }
                }
            }
            //show user and choose
            if (showmsg != "")
            {
                showmsg = showmsg + " Please choose which file you want to archive";
                choice  = application.MessageBox(showmsg, 3, "vcard", "ACH", "Both");
            }



            try
            {
                if (choice == 1 || choice == 3)
                {
                    application.MessageBox("run vcard", 1, "OK", "", "");
                    //vcard file conversion.
                    if (System.IO.Directory.Exists(vcardFolder))
                    {
                        string[] files = System.IO.Directory.GetFiles(vcardFolder);

                        foreach (string s in files)
                        {
                            if (System.IO.Path.GetExtension(s).ToUpper() == ".CSV")
                            {
                                vcardfromfile = "VCARD_" + System.IO.Path.GetFileNameWithoutExtension(s) + "_" + currentDTM + System.IO.Path.GetExtension(s);
                                vcarddestFile = System.IO.Path.Combine(toFolder, vcardfromfile);
                                System.IO.File.Copy(s, vcarddestFile, true);
                            }
                        }
                    }
                }
                if (choice == 2 || choice == 3)
                {
                    application.MessageBox("run ACH", 1, "OK", "", "");
                    //ach file conversion.
                    if (System.IO.Directory.Exists(achfolder))
                    {
                        string[] files = System.IO.Directory.GetFiles(achfolder);

                        foreach (string s in files)
                        {
                            if (System.IO.Path.GetExtension(s).ToUpper() == ".CSV")
                            {
                                achfromfile = "ACH_" + System.IO.Path.GetFileNameWithoutExtension(s) + "_" + currentDTM + System.IO.Path.GetExtension(s);
                                achdestFile = System.IO.Path.Combine(toFolder, achfromfile);
                                System.IO.File.Copy(s, achdestFile, true);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                application.SetStatusBarMessage("File Archived Failed" + ex.Message.ToString(), SAPbouiCOM.BoMessageTime.bmt_Short, true);
            }
        }
        public int Connect()
        {
            try
            {
                __GUI = new SAPbouiCOM.SboGuiApi();
                __GUI.Connect(Environment.GetCommandLineArgs().GetValue(1).ToString());
                __app = __GUI.GetApplication(-1);

                __app.MenuEvent     += new SAPbouiCOM._IApplicationEvents_MenuEventEventHandler(__app_MenuEvent);
                __app.ItemEvent     += new SAPbouiCOM._IApplicationEvents_ItemEventEventHandler(__app_ItemEvent);
                __app.AppEvent      += new SAPbouiCOM._IApplicationEvents_AppEventEventHandler(__app_AppEvent);
                __app.FormDataEvent += new SAPbouiCOM._IApplicationEvents_FormDataEventEventHandler(__app_FormDataEvent);

                //return 0;
                int i = 0;


                //Check For License
                //string LicenseKey = ConfigurationManager.AppSettings["LicenseDate"].ToString();

                //DateTime LicenseDate = DateTime.Parse(LicenseKey);



                //if (DateTime.Now.Date <= LicenseDate)
                //{
                ____bobCompany = (SAPbobsCOM.Company)__app.Company.GetDICompany();

                TableCreation();

                //int RetVal = ____bobCompany.Connect();
                //Int32 ErrorCode = 0;
                //string ErrorMessage = "";

                //if (RetVal == 0)
                //{
                XmlDocument oXMLDoc  = new XmlDocument();
                string      MenuPath = Application.StartupPath + "\\FileGen_Menu.xml";

                if (__app.Menus.Exists("MDC_MNU"))
                {
                    __app.Menus.RemoveEx("MDC_MNU");
                }

                oXMLDoc.Load(MenuPath);
                __app.LoadBatchActions(oXMLDoc.InnerXml);

                i = 0;



                return(i);
            }
            catch (COMException e)
            {
                if (e.ErrorCode == -7201)
                {
                    return(e.ErrorCode);
                }
                else
                {
                    __app.MessageBox(e.Message, 0, "Ok", null, null);
                    return(0);
                }
            }
        }
        public int RegisterObject(string Code, string Name, string ObjectType, string TableName, string ChildTableName, bool CanCancel, bool CanClose, bool CanCreateDefaultForm, bool CanDelete, bool CanFind, bool CanYearTransfer, bool ManageSeries, string FindColumns, bool defaultform, string defaultformFields, bool CanLog)
        {
            try
            {
                int    errCode;
                string errMsg = "";

                if (!____bobCompany.Connected)
                {
                    ____bobCompany.Connect();
                }
                SAPbobsCOM.UserObjectsMD UDO = ____bobCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD);

                if (UDO.GetByKey(Code) == false)
                {
                    // UDO.CanCancel = GetYesNo(CanCancel)
                    // UDO.CanClose = GetYesNo(CanClose)
                    // UDO.CanDelete = GetYesNo(CanDelete)
                    UDO.CanCancel            = GetYesNo(false);
                    UDO.CanClose             = GetYesNo(false);
                    UDO.CanDelete            = GetYesNo(CanDelete);
                    UDO.CanFind              = GetYesNo(CanFind);
                    UDO.CanCreateDefaultForm = GetYesNo(defaultform);
                    UDO.ManageSeries         = GetYesNo(ManageSeries);
                    UDO.CanLog = GetYesNo(CanLog);

                    if (UDO.CanCreateDefaultForm == SAPbobsCOM.BoYesNoEnum.tYES)
                    {
                        string[] s = defaultformFields.Split(',');
                        foreach (string o in s)
                        {
                            string[] s1 = o.Split('|');
                            if (s1.Length > 0)
                            {
                                UDO.FormColumns.FormColumnAlias = s1[0].ToString();
                            }
                            if (s1.Length > 1)
                            {
                                UDO.FormColumns.FormColumnDescription = s1[1].ToString();
                            }
                            UDO.FormColumns.Add();
                        }
                    }

                    if (UDO.CanFind == SAPbobsCOM.BoYesNoEnum.tYES)
                    {
                        if (FindColumns != "")
                        {
                            string[] s = FindColumns.Split(',');
                            // If s.Length > 1 Then
                            if (s.Length > 0)
                            {
                                foreach (string o in s)
                                {
                                    string s1 = "";
                                    if (o.ToString() == "Code" | o.ToString() == "Name" | o.ToString() == "DocNum" | o.ToString() == "DocEntry")
                                    {
                                        s1 = o.ToString();
                                    }
                                    else
                                    {
                                        s1 = "U_" + o.ToString();
                                    }
                                    UDO.FindColumns.ColumnAlias = s1;
                                    UDO.FindColumns.Add();
                                }
                            }
                        }
                    }

                    if (UDO.CanLog == SAPbobsCOM.BoYesNoEnum.tYES)
                    {
                        UDO.LogTableName = "A" + TableName;
                    }
                    UDO.Code       = Code;
                    UDO.Name       = Name;
                    UDO.ObjectType = GetUDOType(ObjectType);
                    UDO.TableName  = TableName;

                    if (ChildTableName != "")
                    {
                        string[] childTables = ChildTableName.Split(',');
                        if (childTables.Length > 0)
                        {
                            foreach (string o in childTables)
                            {
                                UDO.ChildTables.TableName = o.ToString();
                                UDO.ChildTables.Add();
                            }
                        }
                    }
                    int i = -1;
                    i = UDO.Add();

                    if (i != 0)
                    {
                        ____bobCompany.GetLastError(out errCode, out errMsg);
                        __app.MessageBox(errMsg);
                        __app.StatusBar.SetText(errMsg, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                        UDO.Update();
                        if (Marshal.IsComObject(UDO))
                        {
                            Marshal.ReleaseComObject(UDO);
                            UDO = null /* TODO Change to default(_) if this is not a reference type */;
                            GC.Collect();
                            return(errCode);
                        }
                    }
                    UDO.Update();
                    if (Marshal.IsComObject(UDO))
                    {
                        Marshal.ReleaseComObject(UDO);
                    }
                    UDO = null /* TODO Change to default(_) if this is not a reference type */;
                    // GC.WaitForPendingFinalizers();
                    GC.Collect();
                    // oProgressBar.Value = oProgressBar.Value + 1
                    return(0);
                }
                else
                {
                    __app.StatusBar.SetText("Table Already Exists......", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_None);
                }
                return(0);
            }
            catch (Exception ex)
            {
                GC.Collect();
                return(-1);
            }
        }
Exemple #22
0
        /// <summary>
        /// Procesa la respuesta del web service de DGI
        /// </summary>
        /// <param name="xmlRespuesta"></param>
        /// <param name="parametros"></param>
        public void ProcesarRespuesta(string xmlRespuesta, object parametros, ControlSobres controlSobres)
        {
            string estadoRespuesta = "", token = "", idReceptor = "";
            ParametrosJobWsDGIMasivo parametrosJob         = parametros as ParametrosJobWsDGIMasivo;
            ManteUdoControlSobres    manteUdoControlSobres = new ManteUdoControlSobres();
            ManteUdoCFE manteUdoCfe = new ManteUdoCFE();

            try
            {
                XmlDocument xmlDocumento = new XmlDocument();
                xmlDocumento.LoadXml(xmlRespuesta);

                idReceptor      = xmlDocumento.GetElementsByTagName("IDReceptor").Item(0).InnerText;
                estadoRespuesta = xmlDocumento.GetElementsByTagName("Estado").Item(0).InnerText;

                if (estadoRespuesta.Equals("AS"))
                {
                    manteUdoControlSobres.Eliminar(controlSobres);
                    token = xmlDocumento.GetElementsByTagName("Token").Item(0).InnerText;
                    string hora = xmlDocumento.GetElementsByTagName("Fechahora").Item(0).InnerText;

                    SobreTransito sobreTransito = new SobreTransito();
                    sobreTransito.NombreSobre  = parametrosJob.NombreSobre;
                    sobreTransito.Token        = token;
                    sobreTransito.IdReceptor   = idReceptor;
                    sobreTransito.TipoReceptor = SobreTransito.ETipoReceptor.DGI;

                    sobreTransito.Serie  = parametrosJob.Serie;
                    sobreTransito.Numero = parametrosJob.Numero;
                    sobreTransito.Tipo   = parametrosJob.Tipo;


                    ManteUdoSobreTransito manteTransito = new ManteUdoSobreTransito();
                    manteTransito.Almacenar(sobreTransito);

                    ManteUdoSobre manteSobre = new ManteUdoSobre();
                    //True = AS, no se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.NombreSobre, true);
                }
                else if (estadoRespuesta.Equals("BS"))
                {
                    manteUdoControlSobres.Eliminar(controlSobres);
                    ManteUdoSobre manteSobre = new ManteUdoSobre();
                    //False = BS, se agrega detalle correspondiente a info de rechazo
                    manteSobre.cargarSobreXml(xmlDocumento, parametrosJob.NombreSobre, false);
                }
            }
            catch (Exception)
            {
                controlSobres.Estado = "Pendiente";
                manteUdoControlSobres.Actualizar(controlSobres);
                app.MessageBox("No se pudo enviar a DGI");
            }

            finally
            {
                if (parametrosJob != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(parametrosJob);
                    GC.Collect();
                }

                if (manteUdoControlSobres != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(manteUdoControlSobres);
                    GC.Collect();
                }


                if (manteUdoCfe != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(manteUdoCfe);
                    GC.Collect();
                }
            }
        }
Exemple #23
0
 private void MessageBox(string msg)
 {
     SBO_Application.MessageBox("SDK : " + msg, 0, "確定", "", "");
 }
Exemple #24
0
        /// <summary>
        /// Consume el web service
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public string Consumir(object parametros)
        {
            string respuesta = "";

            WebServiceDGI      webServiceDgi      = new WebServiceDGI(parametros);
            ParametrosJobWsDGI parametrosJobWsDGI = parametros as ParametrosJobWsDGI;

            XmlDocument xmlDocumento = new XmlDocument();

            try
            {
                if (File.Exists((RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml");
                }
                else if (File.Exists((RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml")))
                {
                    xmlDocumento.Load(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + "\\" + parametrosJobWsDGI.SobreDgi.Nombre + ".xml");
                }



                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Envio a DGI " + xmlDocumento.InnerXml);
                respuesta = webServiceDgi.WSDGI.SendWSDGI(xmlDocumento.InnerXml, clsWSDGI.WsMethod.Envelope);
                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Respuesta " + respuesta);
                //respuesta = respuesta.Replace("<IDEmisor>0</IDEmisor>", "<IDEmisor>" + xmlDocumento.GetElementsByTagName("DGICFE:Idemisor").Item(0).InnerText + "</IDEmisor>");
                //respuesta = respuesta.Replace("<IDEmisor>0</IDEmisor>", "<IDEmisor>" + xmlDocumento.GetElementsByTagName("Idemisor").Item(0).InnerText + "</IDEmisor>");
            }
            catch (Exception)
            {
                app.MessageBox("No se pudo enviar a DGI por problemas de conexión, recordar reenvio de documento.");
                respuesta = "";
            }

            finally
            {
                if (webServiceDgi != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(webServiceDgi);
                    GC.Collect();
                }


                if (parametrosJobWsDGI != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(parametrosJobWsDGI);
                    GC.Collect();
                }


                if (xmlDocumento != null)
                {
                    //Libera de memoria el objeto factura
                    GC.SuppressFinalize(xmlDocumento);
                    GC.Collect();
                }
            }

            return(respuesta);
        }
Exemple #25
0
        static public void PLA_COCVAL_DO(ref SAPbouiCOM.Application application, ref SAPbobsCOM.Company company)
        {
            //SAPbouiCOM.Application application = new SAPbouiCOM.Application();
            //application = Global.oapplication;

            //SAPbobsCOM.Company company = new SAPbobsCOM.Company();
            //company = Global.ocompany;

            SAPbouiCOM.Form form = application.Forms.ActiveForm;



            SAPbouiCOM.Form   gridForm = null;
            SAPbouiCOM.Item   oItem    = null;
            SAPbouiCOM.Grid   oGrid    = null;
            SAPbouiCOM.Button oBtn     = null;
            string            COC1;
            string            COC2 = "BOS_VW_COCP2_T1";
            string            COC3 = "BOS_VW_COCP3";
            string            COCP = "BOS_VW_COC_PIVOT";
            int    errorSection    = 0;
            string errorMsg        = "";

            try
            {
                SAPbobsCOM.Recordset coc1Record = (SAPbobsCOM.Recordset)(company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset));
                SAPbobsCOM.Recordset oRecord2   = (SAPbobsCOM.Recordset)(company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset));

                form.DataSources.DataTables.Add()
                string docEntry = form.DataSources.DBDataSources.Item("ODLN").GetValue("DocEntry", 0);
                if (docEntry == null)
                {
                    errorMsg += "No Document Number found" + "\r\n";
                    throw new Exception("COCERROR");
                }
                string draftkey = form.DataSources.DBDataSources.Item("ODLN").GetValue("draftKey", 0);
                bool   draftDoc;
                if (draftkey == "-1")
                {
                    draftDoc = true;
                    COC1     = "BOS_VW_COCP1_DFT";
                }
                else
                {
                    draftDoc = false;
                    COC1     = "BOS_VW_COCP1";
                }

                coc1Record.DoQuery("select a.*, b.*, c.U_VAC_SPEC_VIS, U_VAC_SPEC1, U_VAC_SPEC2, U_VAC_SPEC3,U_VAC_SPEC4,U_VAC_SPEC5, U_VAC_SPEC6 " +
                                   "from " + COC1 + " a left outer join OBTN b on a.\"BlockItem\" = b.\"ItemCode\" and a.\"BatchNum\" = b.\"DistNumber\" " +
                                   " left outer join RDR1 C on a.\"RdrEntry\" = c.\"DocEntry\" and a.\"RdrLine\" = c.\"LineNum\" " +
                                   " where a.\"DLNEntry\" =" + docEntry.ToString());
                if (coc1Record.RecordCount == 0)
                {
                    errorMsg += "No COC Header Document found for :" + docEntry.ToString() + "\r\n";
                    throw new Exception("COCERROR");
                }
                for (int i = 0; i < coc1Record.RecordCount; i++)
                {
                    if (coc1Record.Fields.Item("RESULT").ToString() == "")
                    {
                        errorSection++;
                        errorMsg += "No COC Header Document found for :" + docEntry.ToString() + "\r\n";
                    }
                }
                int x = 0;
                x.ToString()
            }
            catch (Exception e)
            {
                errorSection++;
                errorMsg += "Exception caught: " + e.Message.ToString() + "\r\n";
            }
            finally
            {
                if (errorMsg != "")
                {
                    application.MessageBox(errorMsg, 1, "OK", "", "");
                    return;
                }
            }


            //application.MessageBox("Found DocEntry : " + docEntry.ToString() + " and this is the draft key " + draftkey.ToString(), 1, "ok", "", "");
            //try
            //{
            //    gridForm = application.Forms.GetForm("PopForm", 0);
            //    gridForm.Close();
            //}
            //catch { }

            //gridForm = application.Forms.Add("PopForm", SAPbouiCOM.BoFormTypes.ft_Fixed);
            //gridForm.Title = "Found error";
            //gridForm.Left = 100;
            //gridForm.Width = 450;
            //gridForm.Top = 100;
            //gridForm.Height = 280;
            //gridForm.Visible = true;

            //gridForm.DataSources.DataTables.Add("myDataTable");
            //gridForm.DataSources.DataTables.Item(0).ExecuteQuery("select " + docEntry + " as DOCENTRY, " + draftkey + " as DRAFTKEY from Dummy;");

            //oItem = gridForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
            //oItem.Left = 15;
            //oItem.Top = 220;
            //oItem.Width = 60;
            //oBtn = (SAPbouiCOM.Button)oItem.Specific;
            //oBtn.Caption = "OK";

            //oItem = gridForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON);
            //oItem.Left = 100;
            //oItem.Top = 220;
            //oItem.Width = 60;
            //oBtn = (SAPbouiCOM.Button)oItem.Specific;
            //oBtn.Caption = "Cancel";

            //oItem = gridForm.Items.Add("myGrid", SAPbouiCOM.BoFormItemTypes.it_GRID);
            //oItem.Left = 15;
            //oItem.Top = 15;
            //oItem.Width = 420;
            //oItem.Height = 200;
            //oItem.Enabled = false;
            //oGrid = (SAPbouiCOM.Grid)oItem.Specific;
            //oGrid.DataTable = gridForm.DataSources.DataTables.Item("myDataTable");
            //oGrid.AutoResizeColumns();
        }
Exemple #26
0
        private void Button0_PressedAfter(object sboObject, SAPbouiCOM.SBOItemEventArg pVal)
        {
            int GoiThauKey = -1;

            if (ComboBox1.Selected.Value == "")
            {
                oApp.MessageBox("Please select Subproject !");
                return;
            }
            int.TryParse(ComboBox1.Selected.Value, out GoiThauKey);
            //throw new System.NotImplementedException();
            Microsoft.Office.Interop.Excel.Application oXL;
            Microsoft.Office.Interop.Excel._Workbook   oWB;
            Microsoft.Office.Interop.Excel._Worksheet  oSheet;
            //Microsoft.Office.Interop.Excel.Range oRng;
            object misvalue = System.Reflection.Missing.Value;

            //Start Excel and get Application object.
            oXL         = new Microsoft.Office.Interop.Excel.Application();
            oXL.Visible = true;
            //Open Template
            oWB = oXL.Workbooks.Open(System.Windows.Forms.Application.StartupPath + @"\TMP_EQ_BCDT.xlsx");

            oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
            try
            {
                //Fill Header
                //Project Name
                oSheet.Cells[2, 4] = "Dự án: " + this.ComboBox0.Selected.Description;
                //Subproject Name
                oSheet.Cells[3, 4] = "Gói thầu: " + this.ComboBox1.Selected.Description;
                //Thang
                //oSheet.Cells[4, 3] = "Tháng: " + this.ComboBox2.Selected.Value;

                //Get DATA
                DataTable A             = Get_Data_DUTRU(this.ComboBox0.Selected.Value, -1, GoiThauKey);
                int       row_num       = 8;
                int       STT           = 1;
                int       Group_row_num = 0;
                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "I";
                oSheet.Cells[row_num, 2] = "THIẾT BỊ NÂNG HẠ";
                Group_row_num            = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'TBNH'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }


                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "II";
                oSheet.Cells[row_num, 2] = "THIẾT BỊ BAO CHE";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'TBBC'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }
                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "III";
                oSheet.Cells[row_num, 2] = "THIẾT BỊ CHỐNG ĐỠ";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'TBCD'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }

                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "IV";
                oSheet.Cells[row_num, 2] = "COPPHA NHÔM";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'CFN'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }

                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "V";
                oSheet.Cells[row_num, 2] = "THIẾT BỊ AN TOÀN";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'TBAT'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }

                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "VI";
                oSheet.Cells[row_num, 2] = "MÁY MÓC";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'MM'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }

                oSheet.Range["A" + row_num, "T" + row_num].Interior.Color = System.Drawing.Color.FromArgb(180, 198, 231);
                oSheet.Range["A" + row_num, "T" + row_num].Font.Bold      = true;
                oSheet.Cells[row_num, 1] = "VI";
                oSheet.Cells[row_num, 2] = "THIẾT BỊ KHÁC";
                STT           = 1;
                Group_row_num = row_num;
                row_num++;

                foreach (DataRow r in A.Select("U_001 = 'TBK'"))
                {
                    oSheet.Cells[row_num, 1]          = STT;
                    oSheet.Cells[row_num, 2]          = /*r["U_MATHIETBI"].ToString() + " - " +*/ r["U_TENTHIETBI"];
                    oSheet.Cells[row_num, 3]          = r["U_DVTTB"];
                    oSheet.Cells[row_num, 4]          = r["U_TLTB"];
                    oSheet.Cells[row_num, 5]          = r["U_SLDUTRU"];
                    oSheet.Cells[row_num, 6]          = r["U_SLTHUE"];
                    oSheet.Cells[row_num, 7]          = r["U_SLVANCHUYEN"];
                    oSheet.Cells[row_num, 8]          = r["U_SLVANHANH"];
                    oSheet.Cells[row_num, 9]          = r["U_NGAYCAP"];
                    oSheet.Cells[row_num, 10]         = r["U_NGAYTRA"];
                    oSheet.Cells[row_num, 11].Formula = string.Format("=J{0}-I{0}", row_num);
                    oSheet.Cells[row_num, 12]         = r["U_DGMUABAN"];
                    oSheet.Cells[row_num, 13]         = r["U_DGTHUE"];
                    oSheet.Cells[row_num, 14]         = r["U_DGVCTB"];
                    oSheet.Cells[row_num, 15]         = r["U_DGVH"];
                    oSheet.Cells[row_num, 16]         = r["U_GTMB"];
                    oSheet.Cells[row_num, 17]         = r["U_GTTHUE"];
                    oSheet.Cells[row_num, 18]         = r["U_GTVANCHUYEN"];
                    oSheet.Cells[row_num, 19]         = r["U_GTVANHANH"];
                    STT++;
                    row_num++;
                }
                //GROUP TOTAL
                if (row_num - Group_row_num > 1)
                {
                    oSheet.Cells[Group_row_num, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", Group_row_num + 1, row_num - 1);
                    oSheet.Cells[Group_row_num, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", Group_row_num + 1, row_num - 1);
                }
                //TOTAL DUTRU
                oSheet.Cells[7, 5].Formula  = string.Format("=SUBTOTAL(9,E{0}:E{1})", 8, row_num - 1);
                oSheet.Cells[7, 6].Formula  = string.Format("=SUBTOTAL(9,F{0}:F{1})", 8, row_num - 1);
                oSheet.Cells[7, 7].Formula  = string.Format("=SUBTOTAL(9,G{0}:G{1})", 8, row_num - 1);
                oSheet.Cells[7, 8].Formula  = string.Format("=SUBTOTAL(9,H{0}:H{1})", 8, row_num - 1);
                oSheet.Cells[7, 16].Formula = string.Format("=SUBTOTAL(9,P{0}:P{1})", 8, row_num - 1);
                oSheet.Cells[7, 17].Formula = string.Format("=SUBTOTAL(9,Q{0}:Q{1})", 8, row_num - 1);
                oSheet.Cells[7, 18].Formula = string.Format("=SUBTOTAL(9,R{0}:R{1})", 8, row_num - 1);
                oSheet.Cells[7, 19].Formula = string.Format("=SUBTOTAL(9,S{0}:S{1})", 8, row_num - 1);

                //Border
                ((Microsoft.Office.Interop.Excel.Range)oSheet.get_Range("A8", "T" + (row_num - 1))).Cells.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
            }
        }
Exemple #27
0
        private void SBO_Application_ItemEvent(string FormUID, ref SAPbouiCOM.ItemEvent pVal, out bool BubbleEvent)
        {
            BubbleEvent = true;

            // SOCIO DE NEGOCIOS
            if ((pVal.FormType == 134 & pVal.EventType != SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD) & (pVal.Before_Action == true))
            {
                oOrderForm = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount);
                if ((pVal.EventType == SAPbouiCOM.BoEventTypes.et_FORM_LOAD) & (pVal.BeforeAction == true))
                {
                    DibujaItems.BtnCoRuc(oOrderForm);
                }

                if (pVal.ItemUID == "btnCRu" & (pVal.EventType == SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED))
                {
                    /*VALIDAMOS LICENCIA*/
                    DateTime dt1, dt2;
                    dt1 = DateTime.Parse("01/01/2021");
                    dt2 = DateTime.Now;
                    TimeSpan ts = dt2 - dt1;
                    if (ts.Days < 15)
                    {
                        if ((oOrderForm.Mode == SAPbouiCOM.BoFormMode.fm_ADD_MODE))
                        {
                            try
                            {
                                txtRuc    = (SAPbouiCOM.EditText)oOrderForm.Items.Item("41").Specific;
                                oCardType = (SAPbouiCOM.ComboBox)oOrderForm.Items.Item("40").Specific;
                                Ruc       = txtRuc.Value;

                                if (Ruc.Length == 11)
                                {
                                    oSocioNegocio              = new SocioNegocio();
                                    DatosSunat                 = ClassDatosSN.GetDatosSN(Ruc);
                                    oSocioNegocio.CardType     = oCardType.Value; // [C] cliente [S] Proveedor
                                    oSocioNegocio.ruc          = DatosSunat[0];
                                    oSocioNegocio.razonSocial  = DatosSunat[1];
                                    oSocioNegocio.estado       = DatosSunat[2];
                                    oSocioNegocio.condicion    = DatosSunat[3];
                                    oSocioNegocio.direccion    = DatosSunat[4];
                                    oSocioNegocio.departamento = DatosSunat[5];
                                    oSocioNegocio.provincia    = DatosSunat[6];
                                    oSocioNegocio.distrito     = DatosSunat[7];


                                    if (!(SetConnectionContext() == 0))
                                    {
                                        SBO_Application.MessageBox("Failed setting a connection to DI API", 1, "Ok", "", "");
                                        System.Environment.Exit(0); //  Terminating the Add-On Application
                                    }

                                    if (!(ConnectToCompany() == 0))
                                    {
                                        SBO_Application.MessageBox("Failed connecting to the company's Data Base", 1, "Ok", "", "");
                                        System.Environment.Exit(0); //  Terminating the Add-On Application
                                    }


                                    if (oSocioNegocio.estado == "ACTIVO" && oSocioNegocio.condicion == "HABIDO")
                                    {
                                        if (SBO_Application.MessageBox("Esta seguro de [Cear] Socio de negocios:" + oSocioNegocio.razonSocial, 2, "Ok", "Cancelar") == 1)
                                        {
                                            int res = AddSocioNegocioController.CreaSoNe(oCompany, oSocioNegocio);
                                            if (res == 0)
                                            {
                                                SBO_Application.MessageBox("Socio de negocios creado: " + oCompany.CompanyName + Constants.vbNewLine, 1, "Ok", "", "");
                                                oOrderForm.Close();
                                            }
                                            else
                                            {
                                                string LastError = "";
                                                oCompany.GetLastError(out res, out LastError);
                                                SBO_Application.MessageBox(res + "-" + LastError);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (SBO_Application.MessageBox("El SN: " + oSocioNegocio.razonSocial + "\r\n" + "Estado: " + oSocioNegocio.estado + " Condición: " + oSocioNegocio.condicion + "\r\n" + "Desea crear SN de todas formas?", 2, "Ok", "Cancelar") == 1)
                                        {
                                            int res = AddSocioNegocioController.CreaSoNe(oCompany, oSocioNegocio);
                                            if (res == 0)
                                            {
                                                SBO_Application.MessageBox("Socio de negocios creado: " + oCompany.CompanyName + Constants.vbNewLine, 1, "Ok", "", "");
                                                oOrderForm.Close();
                                            }
                                            else
                                            {
                                                string LastError = "";
                                                oCompany.GetLastError(out res, out LastError);
                                                SBO_Application.MessageBox(res + "-" + LastError);
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    SBO_Application.MessageBox("Nùmero de RUC debe de contener 12 caracteres");
                                }
                            }
                            catch (Exception ex)
                            {
                                SBO_Application.MessageBox(ex.Message);
                            }
                        }
                        else
                        {
                            SBO_Application.MessageBox("Esta obcion solo esta activada para [Crear] Socio de negocio.");
                        }
                    }
                    else
                    {
                        SBO_Application.MessageBox("Periodo de prueba [terminado]");
                    }
                }
            }
        }
        private void Button0_PressedAfter(object sboObject, SAPbouiCOM.SBOItemEventArg pVal)
        {
            if (string.IsNullOrEmpty(EditText0.Value))
            {
                oApp.MessageBox("Please enter value !");
                return;
            }
            try
            {
                DateTime  todate    = DateTime.ParseExact(EditText0.Value, "yyyyMMdd", CultureInfo.InvariantCulture);
                DataTable rs_detail = Get_Data(todate);

                if (rs_detail.Rows.Count > 0)
                {
                    Microsoft.Office.Interop.Excel.Application oXL;
                    Microsoft.Office.Interop.Excel._Workbook   oWB;
                    Microsoft.Office.Interop.Excel._Worksheet  oSheet;

                    object misvalue = System.Reflection.Missing.Value;
                    //Start Excel and get Application object.
                    oXL         = new Microsoft.Office.Interop.Excel.Application();
                    oXL.Visible = true;
                    //Open Template
                    oWB    = oXL.Workbooks.Open(System.Windows.Forms.Application.StartupPath + @"\TMP_TH_CP_VP.xlsx");
                    oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;

                    //Project Code
                    //oSheet.Cells[1, 3] = "Dự án: " + ComboBox0.Selected.Description;
                    //Project Name
                    //oSheet.Cells[2, 3] = "Hạng mục: Chi phí quản lý văn phòng" ;
                    //Period
                    //oSheet.Cells[3, 3] = string.Format("Kỳ: {0}", period);
                    //Date view report
                    oSheet.Cells[3, 1] = string.Format("Từ ngày {0} đến ngày {1}", new DateTime(todate.Year, 1, 1).ToString("dd/MM/yyyy"), todate.ToString("dd/MM/yyyy"));
                    int    STT = 1;
                    int    STT_G = 1;
                    int    current_row = 5, g_row = 5;
                    string NCP = "";
                    string CP  = "";
                    foreach (DataRow r in rs_detail.Rows)
                    {
                        //Print Nhom chi phi
                        if (r["MA_NHOM_CP"].ToString() != NCP)
                        {
                            string NCP_old = NCP;
                            NCP = r["MA_NHOM_CP"].ToString();
                            //STT Group
                            oSheet.Cells[current_row, 1].Formula = string.Format("=ROMAN({0})", STT_G);
                            //Ten nhom CP
                            oSheet.Cells[current_row, 2] = r["TEN_NHOM_CP"].ToString();
                            //Gia tri cho Khau tru TSCD
                            if (NCP == "C8")
                            {
                                //KT No VAT
                                oSheet.Cells[current_row, 4] = r["KT_NO_VAT"];
                                //CCM no VAT
                                oSheet.Cells[current_row, 5] = r["GT_NO_VAT"];
                            }

                            //Format style
                            oSheet.Range["A" + current_row, "H" + current_row].Font.Bold      = true;
                            oSheet.Range["A" + current_row, "H" + current_row].Interior.Color = System.Drawing.Color.FromArgb(169, 208, 142);

                            //Total Group
                            if (g_row < current_row)
                            {
                                oSheet.Cells[g_row, 3].Formula = string.Format("=SUBTOTAL(9,C{0}:C{1})", g_row + 1, current_row - 1);
                                if (NCP_old != "C8")
                                {
                                    oSheet.Cells[g_row, 4].Formula = string.Format("=SUBTOTAL(9,D{0}:D{1})", g_row + 1, current_row - 1);
                                    oSheet.Cells[g_row, 5].Formula = string.Format("=SUBTOTAL(9,E{0}:E{1})", g_row + 1, current_row - 1);
                                    oSheet.Cells[g_row, 6].Formula = string.Format("=SUBTOTAL(9,F{0}:F{1})", g_row + 1, current_row - 1);
                                }
                                else
                                {
                                    oSheet.Cells[g_row, 6].Formula = string.Format("=C{0}-E{0}", g_row);
                                }
                            }
                            STT_G++;
                            STT   = 1;
                            g_row = current_row;
                            current_row++;
                        }

                        //STT
                        oSheet.Cells[current_row, 1] = STT;
                        //Ten CP
                        oSheet.Cells[current_row, 2] = r["TEN_CP"].ToString();
                        //Du Tru
                        oSheet.Cells[current_row, 3] = r["DuTru"];
                        if (NCP != "C8")
                        {
                            //KT No VAT
                            oSheet.Cells[current_row, 4] = r["KT_NO_VAT"];
                            //CCM no VAT
                            oSheet.Cells[current_row, 5] = r["GT_NO_VAT"];
                            //CP Con lai
                            oSheet.Cells[current_row, 6].Formula = string.Format("=C{0}-E{0}", current_row);
                        }
                        else
                        {
                            //KT No VAT
                            oSheet.Cells[current_row, 4] = 0;
                            //CCM no VAT
                            oSheet.Cells[current_row, 5] = 0;
                            //CP Con lai
                            oSheet.Cells[current_row, 6] = 0;
                        }

                        //Phan tram hoan thanh
                        oSheet.Cells[current_row, 7].Formula = string.Format("=IF(ISERROR(E{0}/C{0}),0,E{0}/C{0})", current_row);

                        STT++;
                        current_row++;
                    }
                    //Total Last CP
                    //if (g2_row < current_row)
                    //{
                    //        //oSheet.Cells[g2_row, 4].Formula = string.Format("=SUBTOTAL(9,D{0}:D{1})", g2_row + 1, current_row - 1);
                    //        oSheet.Cells[g2_row, 5].Formula = string.Format("=SUBTOTAL(9,E{0}:E{1})", g2_row + 1, current_row - 1);
                    //        oSheet.Cells[g2_row, 6].Formula = string.Format("=SUBTOTAL(9,F{0}:F{1})", g2_row + 1, current_row - 1);
                    //        oSheet.Cells[g2_row, 7].Formula = string.Format("=SUBTOTAL(9,G{0}:G{1})", g2_row + 1, current_row - 1);
                    //        oSheet.Cells[g2_row, 7].Formula = string.Format("=SUBTOTAL(9,H{0}:H{1})", g2_row + 1, current_row - 1);
                    //}
                    //Total Last Group
                    if (g_row < current_row)
                    {
                        oSheet.Cells[g_row, 3].Formula = string.Format("=SUBTOTAL(9,C{0}:C{1})", g_row + 1, current_row - 1);
                        oSheet.Cells[g_row, 4].Formula = string.Format("=SUBTOTAL(9,D{0}:D{1})", g_row + 1, current_row - 1);
                        oSheet.Cells[g_row, 5].Formula = string.Format("=SUBTOTAL(9,E{0}:E{1})", g_row + 1, current_row - 1);
                        oSheet.Cells[g_row, 6].Formula = string.Format("=SUBTOTAL(9,F{0}:F{1})", g_row + 1, current_row - 1);
                    }

                    //TOTAL
                    oSheet.Range["A" + current_row, "B" + current_row].Merge();
                    oSheet.Range["A" + current_row, "B" + current_row].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
                    oSheet.Range["A" + current_row, "H" + current_row].Font.Bold           = true;
                    oSheet.Range["A" + current_row, "H" + current_row].Interior.Color      = System.Drawing.Color.FromArgb(255, 217, 102);

                    oSheet.Cells[current_row, 1]         = "TỔNG CỘNG";
                    oSheet.Cells[current_row, 3].Formula = string.Format("=SUBTOTAL(9,C{0}:C{1})", 5, current_row - 1);
                    oSheet.Cells[current_row, 4].Formula = string.Format("=SUBTOTAL(9,D{0}:D{1})", 5, current_row - 1);
                    oSheet.Cells[current_row, 5].Formula = string.Format("=SUBTOTAL(9,E{0}:E{1})", 5, current_row - 1);
                    oSheet.Cells[current_row, 6].Formula = string.Format("=SUBTOTAL(9,F{0}:F{1})", 5, current_row - 1);

                    current_row++;

                    //Border
                    ((Microsoft.Office.Interop.Excel.Range)oSheet.get_Range("A5", "H" + (current_row - 1))).Cells.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                    oXL.ActiveWindow.Activate();
                }
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
        }
        private void Button0_PressedAfter(object sboObject, SAPbouiCOM.SBOItemEventArg pVal)
        {
            try
            {
                DateTime frdate = DateTime.Today;
                DateTime todate = DateTime.Today;
                if (string.IsNullOrEmpty(EditText0.Value))
                {
                    oApp.MessageBox("Please Enter From Date !");
                    return;
                }
                else
                {
                    frdate = DateTime.ParseExact(EditText0.Value, "yyyyMMdd", CultureInfo.InvariantCulture);
                }

                if (string.IsNullOrEmpty(EditText1.Value))
                {
                    oApp.MessageBox("Please Enter To Date !");
                    return;
                }
                else
                {
                    todate = DateTime.ParseExact(EditText1.Value, "yyyyMMdd", CultureInfo.InvariantCulture);
                }

                if (string.IsNullOrEmpty(EditText2.Value))
                {
                    oApp.MessageBox("Please Enter Level !");
                    return;
                }
                else
                {
                    int.TryParse(EditText2.Value.Trim(), out Level);
                }
                DataTable result = Get_Data(Level, frdate, todate);
                this.UIAPIRawForm.Freeze(true);
                Grid0.DataTable = Convert_SAP_DataTable(result);
                Grid0.AutoResizeColumns();
                for (int i = 0; i < Grid0.Columns.Count; i++)
                {
                    if (i >= 4)
                    {
                        Grid0.Columns.Item(i).RightJustified = true;
                    }
                }
                for (int i = 0; i < Grid0.Rows.Count; i++)
                {
                    int t_level = 0;
                    int.TryParse(Grid0.DataTable.GetValue("Cap", i).ToString(), out t_level);
                    if (t_level < Level)
                    {
                        //Dark Gray
                        Grid0.CommonSetting.SetRowBackColor(i + 1, 14277081);
                    }
                    else
                    {
                        //White Color
                        Grid0.CommonSetting.SetRowBackColor(i + 1, 16777215);
                    }
                }
                Grid0.Columns.Item(0).Visible = false;
                Grid0.Columns.Item(3).Visible = false;
                Grid0.AutoResizeColumns();
                oApp.SetStatusBarMessage("Load Data Completed !", SAPbouiCOM.BoMessageTime.bmt_Medium, false);
            }
            catch (Exception ex)
            {
                oApp.MessageBox(ex.Message);
            }
            finally
            {
                this.UIAPIRawForm.Freeze(false);
            }
        }
        public void OlaSapB11()
        {
            SetApplication();

            oApplication.MessageBox("OLÁ SAP B1", 1, "OK", "", "");
        }