Beispiel #1
0
        public void aperturacaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER
                                 , string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_MONTO, string P_PAIS, string P_MONEDA, string P_TIPO_REGISTRO, string P_EQUIPO)
        {
            try
            {
                errormessage = "";
                status       = "";
                message      = "";
                stringRfc    = "";
                IRfcStructure ls_APER_CAJA;
                //Conexion a SAP

                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_GF_RFC_APER_CAJA");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    if (P_MONTO == "")
                    {
                        P_MONTO = "0";
                    }
                    BapiGetUser.SetValue("MONTO", P_MONTO);

                    BapiGetUser.SetValue("MONEDA", P_MONEDA);
                    BapiGetUser.SetValue("TIPO_REGISTRO", P_TIPO_REGISTRO);
                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("USUARIO", P_UNAME);
                    BapiGetUser.SetValue("EQUIPO", P_EQUIPO);

                    BapiGetUser.Invoke(SapRfcDestination);
                    ls_APER_CAJA = BapiGetUser.GetStructure("ESTATUS");

                    stringRfc = Convert.ToString(BapiGetUser.GetValue("ESTATUS"));
                    //LLenamos los datos que retorna la estructura de la RFC
                    status  = ls_APER_CAJA.GetString("TYPE");
                    message = ls_APER_CAJA.GetString("MESSAGE");
                }
                else
                ////Si el valor de retorno es distinto nulo o vacio,se emite el mensaje de error.
                {
                    errormessage = retval;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + ex.StackTrace);
                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
            }
            GC.Collect();
        }
Beispiel #2
0
        public void anticiposopen(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA
                                  , string P_DOCUMENTO, string P_RUT, string P_SOCIEDAD, string P_LAND, string TipoBusqueda)

        {
            ObjDatosAnticipos.Clear();
            Retorno.Clear();
            protesto     = "";
            errormessage = "";
            IRfcTable     lt_t_documentos;
            IRfcStructure lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            T_DOCUMENTOS ANTICIPOS_resp;
            ESTADO       retorno_resp;

            //Conexion a SAP
            //connectorSap.idioma = "ES";
            //connectorSap.idSistema = "INS";
            //connectorSap.instancia = "00";
            //connectorSap.mandante = "400";
            //connectorSap.paswr = P_PASSWORD;
            //connectorSap.sapRouter = "/H/64.76.139.78/H/";
            //connectorSap.user = P_UNAME;
            //connectorSap.server = "10.9.100.4";
            //frm.txtIdSistema.Text = txtIdSistema.Text;
            //frm.txtInstancia.Text = txtInstancia.Text;
            //frm.txtMandante.Text = txtMandante.Text;
            //frm.txtSapRouter.Text = txtSapRouter.Text;
            //frm.txtServer.Text = txtServer.Text;
            //frm.txtIdioma.Text = txtIdioma.Text;
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_ANT");
                BapiGetUser.SetValue("DOCUMENTO", P_DOCUMENTO);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                //BapiGetUser.SetValue("PROT", P_PROTESTO);
                BapiGetUser.Invoke(SapRfcDestination);
                protesto = BapiGetUser.GetString("PE_PROTESTADO");

                lt_t_documentos = BapiGetUser.GetTable("T_DOCUMENTOS");
                lt_retorno      = BapiGetUser.GetStructure("SE_ESTATUS");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                try
                {
                    if (lt_t_documentos.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_t_documentos.RowCount; i++)
                        {
                            try
                            {
                                lt_t_documentos.CurrentIndex = i;
                                ANTICIPOS_resp = new T_DOCUMENTOS();

                                ANTICIPOS_resp.NDOCTO = lt_t_documentos[i].GetString("NDOCTO");
                                string Monto  = "";
                                int    indice = 0;
                                //*******
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTOF") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF = lt_t_documentos[i].GetString("MONTOF");
                                //}
                                ANTICIPOS_resp.MONEDA = lt_t_documentos[i].GetString("MONEDA");
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTO").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTO = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTO"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTO = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTO") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTO = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTO = lt_t_documentos[i].GetString("MONTO");
                                //}
                                ANTICIPOS_resp.MONEDA          = lt_t_documentos[i].GetString("MONEDA");
                                ANTICIPOS_resp.FECVENCI        = lt_t_documentos[i].GetString("FECVENCI");
                                ANTICIPOS_resp.CONTROL_CREDITO = lt_t_documentos[i].GetString("CONTROL_CREDITO");
                                ANTICIPOS_resp.CEBE            = lt_t_documentos[i].GetString("CEBE");
                                ANTICIPOS_resp.COND_PAGO       = lt_t_documentos[i].GetString("COND_PAGO");
                                ANTICIPOS_resp.RUTCLI          = lt_t_documentos[i].GetString("RUTCLI");
                                ANTICIPOS_resp.NOMCLI          = lt_t_documentos[i].GetString("NOMCLI");
                                ANTICIPOS_resp.ESTADO          = lt_t_documentos[i].GetString("ESTADO");
                                ANTICIPOS_resp.ICONO           = lt_t_documentos[i].GetString("ICONO");
                                ANTICIPOS_resp.DIAS_ATRASO     = lt_t_documentos[i].GetString("DIAS_ATRASO");
                                //if (lt_t_documentos[i].GetString("MONTOF_ABON") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO_ABONADO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF_ABON = lt_t_documentos[i].GetString("MONTOF_ABON");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_ABON").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF_ABON = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_ABON"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTOF_PAGAR") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO_PAGAR").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO_PAGAR").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF_PAGAR = lt_t_documentos[i].GetString("MONTOF_PAGAR");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_PAGAR").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF_PAGAR = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_PAGAR"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux);
                                }
                                ANTICIPOS_resp.NREF         = lt_t_documentos[i].GetString("NREF");
                                ANTICIPOS_resp.FECHA_DOC    = lt_t_documentos[i].GetString("FECHA_DOC");
                                ANTICIPOS_resp.COD_CLIENTE  = lt_t_documentos[i].GetString("COD_CLIENTE");
                                ANTICIPOS_resp.SOCIEDAD     = lt_t_documentos[i].GetString("SOCIEDAD");
                                ANTICIPOS_resp.CLASE_DOC    = lt_t_documentos[i].GetString("CLASE_DOC");
                                ANTICIPOS_resp.CLASE_CUENTA = lt_t_documentos[i].GetString("CLASE_CUENTA");
                                ANTICIPOS_resp.CME          = lt_t_documentos[i].GetString("CME");
                                ANTICIPOS_resp.ACC          = lt_t_documentos[i].GetString("ACC");
                                ObjDatosAnticipos.Add(ANTICIPOS_resp);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("No existe(n) registro(s)");
                    }

                    String Mensaje = "";
                    if (lt_retorno.Count > 0)
                    {
                        retorno_resp = new ESTADO();
                        for (int i = 0; i < lt_retorno.Count(); i++)
                        {
                            // lt_retorno.CurrentIndex = i;

                            retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                            retorno_resp.ID         = lt_retorno.GetString("ID");
                            retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                            retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                            retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                            retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                            retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                            retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                            if (lt_retorno.GetString("TYPE") == "S")
                            {
                                Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                            }
                            retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                            retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                            retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                            retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                            retorno_resp.ROW        = lt_retorno.GetString("ROW");
                            retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                            retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                            Retorno.Add(retorno_resp);
                        }
                        //System.Windows.MessageBox.Show(Mensaje);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #3
0
        public InvoiceValueModel GetInvoiceValue(RfcDestination rfcDest, string InvoiceDocNumber, string FISCALYEAR)
        {
            List <InvoiceValueModel> lstInvoiceValueDet = new List <InvoiceValueModel>();
            InvoiceValueModel        invoiceValueModel  = new InvoiceValueModel();
            RfcDestination           SAPRfcDestination  = RfcDestinationManager.GetDestination("accelyides");

            RfcRepository rfcrep = SAPRfcDestination.Repository;
            IRfcFunction  BapiGetCompanyDetail = null;


            BapiGetCompanyDetail = rfcrep.CreateFunction("BAPI_INCOMINGINVOICE_GETDETAIL");
            BapiGetCompanyDetail.SetValue("INVOICEDOCNUMBER", InvoiceDocNumber);
            BapiGetCompanyDetail.SetValue("FISCALYEAR", FISCALYEAR);
            BapiGetCompanyDetail.Invoke(rfcDest);
            IRfcTable tblReturn = BapiGetCompanyDetail.GetTable("ITEMDATA");
            DataTable TBL       = tblReturn.ToDataTable("TBL");

            IRfcTable tblTAXReturn = BapiGetCompanyDetail.GetTable("TAXDATA");
            DataTable TBLTaxReturn = tblTAXReturn.ToDataTable("TBL");

            IRfcTable tblWithTAXReturn = BapiGetCompanyDetail.GetTable("WITHTAXDATA");
            DataTable DtWithTAXReturn  = tblWithTAXReturn.ToDataTable("TBL");

            IRfcTable tblVendorSplitData = BapiGetCompanyDetail.GetTable("VENDORITEMSPLITDATA");
            DataTable DtVendorSplitData  = tblVendorSplitData.ToDataTable("TBL");

            //for (int i = 0; i < TBL.Rows.Count; i++)
            //{
            //    InvoiceValueModel InvoiceValueModel = new InvoiceValueModel();

            //    InvoiceValueModel.REF_DOC = TBL.Rows[i]["REF_DOC"].ToString();
            //   // invoiceValueModel.lstInvoiceValue.Add(InvoiceValueModel);
            //}
            invoiceValueModel.lstItemInvoiceDet = (from DataRow row in TBL.Rows
                                                   select new InvoiceValueModel
            {
                INVOICE_DOC_ITEM = row["INVOICE_DOC_ITEM"].ToString(),
                PO_NUMBER = row["INVOICE_DOC_ITEM"].ToString(),
                PO_ITEM = row["PO_ITEM"].ToString(),
                SERIAL_NO = row["SERIAL_NO"].ToString(),
                REF_DOC = row["REF_DOC"].ToString(),
                REF_DOC_YEAR = row["REF_DOC_YEAR"].ToString(),
                REF_DOC_IT = row["REF_DOC_IT"].ToString(),
                TAX_CODE = row["TAX_CODE"].ToString(),
                ITEM_AMOUNT = row["ITEM_AMOUNT"].ToString(),
                QUANTITY = row["QUANTITY"].ToString(),
                PO_UNIT = row["PO_UNIT"].ToString(),
                PO_UNIT_ISO = row["PO_UNIT_ISO"].ToString()
            }).ToList();

            invoiceValueModel.lstInvoiceTAXDet = (from DataRow row in TBLTaxReturn.Rows
                                                  select new InvoiceValueModel
            {
                TAX_CODE = row["TAX_CODE"].ToString(),
                TAX_AMOUNT = row["TAX_AMOUNT"].ToString(),
                VEND_ERROR = row["VEND_ERROR"].ToString(),
                TAX_ERROR = row["TAX_ERROR"].ToString(),
            }).ToList();

            invoiceValueModel.lstWithTAXInvoiceDet = (from DataRow row in DtWithTAXReturn.Rows
                                                      select new InvoiceValueModel
            {
                SPLIT_KEY = row["SPLIT_KEY"].ToString(),
                WI_TAX_TYPE = row["WI_TAX_TYPE"].ToString()
            }).ToList();

            invoiceValueModel.lstVEndorItemSolitData = (from DataRow row in DtVendorSplitData.Rows
                                                        select new InvoiceValueModel
            {
                SPLIT_KEY = row["SPLIT_KEY"].ToString(),
                SPLIT_AMOUNT = row["SPLIT_AMOUNT"].ToString()
            }).ToList();

            IRfcStructure IRS_OS_HEADER = BapiGetCompanyDetail.GetStructure("HEADERDATA");

            invoiceValueModel.INV_DOC_NO     = IRS_OS_HEADER.GetValue("INV_DOC_NO").ToString();
            invoiceValueModel.USERNAME       = IRS_OS_HEADER.GetValue("FISC_YEAR").ToString();
            invoiceValueModel.FISC_YEAR      = IRS_OS_HEADER.GetValue("USERNAME").ToString();
            invoiceValueModel.INVOICEE_IND   = IRS_OS_HEADER.GetValue("INVOICE_IND").ToString();
            invoiceValueModel.DOC_TYPE       = IRS_OS_HEADER.GetValue("DOC_TYPE").ToString();
            invoiceValueModel.DOC_DATE       = DateTime.Parse(IRS_OS_HEADER.GetValue("DOC_DATE").ToString());
            invoiceValueModel.PSTNG_DATE     = DateTime.Parse(IRS_OS_HEADER.GetValue("PSTNG_DATE").ToString());
            invoiceValueModel.USERNAME       = IRS_OS_HEADER.GetValue("USERNAME").ToString();
            invoiceValueModel.REF_DOC_NO     = IRS_OS_HEADER.GetValue("REF_DOC_NO").ToString();
            invoiceValueModel.COMP_CODE      = IRS_OS_HEADER.GetValue("COMP_CODE").ToString();
            invoiceValueModel.DIFF_INV       = IRS_OS_HEADER.GetValue("DIFF_INV").ToString();
            invoiceValueModel.CURRENCY       = IRS_OS_HEADER.GetValue("CURRENCY").ToString();
            invoiceValueModel.CURRENCY_ISO   = IRS_OS_HEADER.GetValue("CURRENCY_ISO").ToString();
            invoiceValueModel.EXCH_RATE      = IRS_OS_HEADER.GetValue("EXCH_RATE").ToString();
            invoiceValueModel.EXCH_RATE_V    = IRS_OS_HEADER.GetValue("EXCH_RATE_V").ToString();
            invoiceValueModel.GROSS_AMT      = IRS_OS_HEADER.GetValue("GROSS_AMNT").ToString();
            invoiceValueModel.BLINE_DATE     = DateTime.Parse(IRS_OS_HEADER.GetValue("BLINE_DATE").ToString());
            invoiceValueModel.ENTRY_DATE     = DateTime.Parse(IRS_OS_HEADER.GetValue("ENTRY_DATE").ToString());
            invoiceValueModel.ENTRY_TIME     = DateTime.Parse(IRS_OS_HEADER.GetValue("ENTRY_TIME").ToString());
            invoiceValueModel.DISCNT         = IRS_OS_HEADER.GetValue("DISCNT").ToString();
            invoiceValueModel.INVOICE_STATUS = IRS_OS_HEADER.GetValue("INVOICE_STATUS").ToString();

            //Console.WriteLine(invoiceValueModel.Value);
            //Console.ReadKey();
            RfcSessionManager.EndContext(rfcDest);

            return(invoiceValueModel);
        }
Beispiel #4
0
        /// <summary>
        /// 取得商品(作品)主檔
        /// </summary>
        /// <param name="P_DATE_from">異動日期起始,yyyyMMdd</param>
        /// <param name="P_DATE_TO">異動日期迄止,yyyyMMdd</param>
        /// <param name="P_DESC">作品名</param>
        /// <param name="P_YEAR">年代,傳入格式%yyyy%yyyy%,兩個年份間,及前後加百分比</param>
        /// <param name="P_NAME1">作者名名</param>
        /// <returns></returns>
        public static List <ET_MASTER> GetSap_Z_MM_ZHAW_CUBE1(string P_DATE_from, string P_DATE_TO, string P_DESC = "", string P_YEAR = "", string P_NAME1 = "")
        {
            IDestinationConfiguration ID = new MyBackendConfig();
            IRfcTable IRetTable          = null;

            bool             bRegistered   = false;
            List <ET_MASTER> ET_MASTERList = new List <ET_MASTER>();

            try
            {
                RfcDestination rfcDest = null;
                try
                {
                    rfcDest     = RfcDestinationManager.GetDestination("PRD");
                    bRegistered = true;
                }
                catch (Exception ex)
                {
                    if (ex.GetType().Name == "RfcInvalidStateException")
                    {
                    }
                }
                finally
                {
                    if (rfcDest == null && bRegistered == false)
                    {
                        bRegistered = true;
                        RfcDestinationManager.RegisterDestinationConfiguration(ID);
                        rfcDest = RfcDestinationManager.GetDestination("PRD");
                    }
                }
                RfcRepository rfcRepo = rfcDest.Repository;
                IRfcFunction  IReader = rfcRepo.CreateFunction("Z_MM_ZHAW_CUBE1");
                IReader.SetValue("P_DATE_from", P_DATE_from);
                IReader.SetValue("P_DATE_TO", P_DATE_TO);
                IReader.SetValue("P_DESC", P_DESC);
                IReader.SetValue("P_YEAR", P_YEAR);
                IReader.SetValue("P_NAME1", P_NAME1);
                //每幾筆資料切成一個檔案
                //IReader.SetValue("COUNT", "1000");
                //執行查詢
                IReader.Invoke(rfcDest);
                IRetTable     = IReader.GetTable("ET_MASTER");
                ET_MASTERList = IRetTable.AsEnumerable().Select(x =>
                                                                new ET_MASTER()
                {
                    MATNR        = x.GetString("MATNR") ?? "",
                    ZZCT         = x.GetString("ZZCT") ?? "",
                    NAME1        = x.GetString("NAME1") ?? "",
                    ZFPRESERVE_D = x.GetString("ZFPRESERVE_D") ?? "",
                    ZZSE         = x.GetString("ZZSE") ?? "",
                    LOCATION     = x.GetString("LOCATION") ?? "",
                    STATUS       = x.GetString("STATUS") ?? "",
                    STPRS        = x.GetString("STPRS") ?? "",
                    NETPR        = x.GetString("NETPR") ?? "",
                    WAERS        = x.GetString("WAERS") ?? "",
                    ERDAT        = x.GetString("ERDAT") ?? "",
                    UDATE        = x.GetString("UDATE") ?? ""
                }).ToList();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (bRegistered)
                {
                    RfcDestinationManager.UnregisterDestinationConfiguration(ID);
                }
            }

            return(ET_MASTERList);
        }
        public void docsanulacion(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_DOCUMENTO, string P_RUT,
                                  string P_SOCIEDAD, string P_LAND, string P_IDCAJA, string P_TP_DOC)
        {
            CabeceraDocs.Clear();
            DetalleDocs.Clear();
            Retorno.Clear();
            IRfcTable      lt_h_documentos;
            IRfcTable      lt_d_documentos;
            IRfcTable      lt_retorno;
            FormatoMonedas FM = new FormatoMonedas();
            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            CAB_COMP DOCS_CABECERA_resp;
            DET_COMP DOCS_DETALLES_resp;
            RETORNO  retorno_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_BUSCA_COMP_ANULAR");

                BapiGetUser.SetValue("ID_COMPROBANTE", P_DOCUMENTO);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("TP_DOC", P_TP_DOC);
                BapiGetUser.Invoke(SapRfcDestination);

                lt_h_documentos = BapiGetUser.GetTable("CAB_COMP");
                lt_d_documentos = BapiGetUser.GetTable("DET_COMP");
                lt_retorno      = BapiGetUser.GetTable("RETORNO");

                if (lt_h_documentos.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_h_documentos.RowCount; i++)
                    {
                        try
                        {
                            lt_h_documentos.CurrentIndex      = i;
                            DOCS_CABECERA_resp                = new CAB_COMP();
                            DOCS_CABECERA_resp.LAND           = P_LAND;
                            DOCS_CABECERA_resp.ID_CAJA        = P_IDCAJA;
                            DOCS_CABECERA_resp.ID_COMPROBANTE = lt_h_documentos[i].GetString("ID_COMPROBANTE");
                            DOCS_CABECERA_resp.TIPO_DOCUMENTO = lt_h_documentos[i].GetString("TIPO_DOCUMENTO");
                            DOCS_CABECERA_resp.DESCRIPCION    = lt_h_documentos[i].GetString("DESCRIPCION");
                            DOCS_CABECERA_resp.NRO_REFERENCIA = lt_h_documentos[i].GetString("NRO_REFERENCIA");
                            DOCS_CABECERA_resp.FECHA_COMP     = lt_h_documentos[i].GetString("FECHA_COMP");
                            DOCS_CABECERA_resp.FECHA_VENC_DOC = lt_h_documentos[i].GetString("FECHA_VENC_DOC");
                            if (lt_h_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaChilena(lt_h_documentos[i].GetString("MONTO_DOC").Trim(), "2");
                            }
                            else
                            {
                                //string moneda = Convert.ToString(lt_h_documentos[i].GetString("MONTO_DOC"));
                                //decimal ValorAux = Convert.ToDecimal(moneda);
                                DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaExtranjera(lt_h_documentos[i].GetString("MONTO_DOC").Trim());
                            }
                            //DOCS_CABECERA_resp.MONTO_DOC = lt_h_documentos[i].GetString("MONTO_DOC");
                            DOCS_CABECERA_resp.TEXTO_EXCEPCION = lt_h_documentos[i].GetString("TEXTO_EXCEPCION");
                            DOCS_CABECERA_resp.CLIENTE         = lt_h_documentos[i].GetString("CLIENTE");
                            DOCS_CABECERA_resp.MONEDA          = lt_h_documentos[i].GetString("MONEDA");
                            DOCS_CABECERA_resp.CLASE_DOC       = lt_h_documentos[i].GetString("CLASE_DOC");
                            DOCS_CABECERA_resp.TXT_CLASE_DOC   = lt_h_documentos[i].GetString("TXT_CLASE_DOC");
                            DOCS_CABECERA_resp.NUM_CANCELACION = lt_h_documentos[i].GetString("NUM_CANCELACION");
                            DOCS_CABECERA_resp.AUT_JEF         = lt_h_documentos[i].GetString("AUT_JEF");
                            CabeceraDocs.Add(DOCS_CABECERA_resp);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message + ex.StackTrace);
                            System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                        }
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show("No existe(n) registro(s)");
                }

                if (lt_d_documentos.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_d_documentos.RowCount; i++)
                    {
                        try
                        {
                            lt_d_documentos.CurrentIndex = i;
                            DOCS_DETALLES_resp           = new DET_COMP();

                            DOCS_DETALLES_resp.ID_COMPROBANTE = lt_d_documentos[i].GetString("ID_COMPROBANTE");
                            DOCS_DETALLES_resp.ID_DETALLE     = lt_d_documentos[i].GetString("ID_DETALLE");
                            DOCS_DETALLES_resp.VIA_PAGO       = lt_d_documentos[i].GetString("VIA_PAGO");
                            DOCS_DETALLES_resp.DESCRIP_VP     = lt_d_documentos[i].GetString("DESCRIP_VP");
                            DOCS_DETALLES_resp.NUM_CHEQUE     = lt_d_documentos[i].GetString("NUM_CHEQUE");
                            DOCS_DETALLES_resp.FECHA_VENC     = lt_d_documentos[i].GetString("FECHA_VENC");
                            if (lt_d_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaChilena(lt_d_documentos[i].GetString("MONTO").Trim(), "1");
                            }
                            else
                            {
                                DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaExtranjera(lt_d_documentos[i].GetString("MONTO").Trim());
                            }
                            //DOCS_DETALLES_resp.MONTO = lt_d_documentos[i].GetString("MONTO");
                            DOCS_DETALLES_resp.MONEDA     = lt_d_documentos[i].GetString("MONEDA");
                            DOCS_DETALLES_resp.NUM_CUOTAS = lt_d_documentos[i].GetString("NUM_CUOTAS");
                            DOCS_DETALLES_resp.EMISOR     = lt_d_documentos[i].GetString("EMISOR");
                            DetalleDocs.Add(DOCS_DETALLES_resp);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message + ex.StackTrace);
                            System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                        }
                    }
                }

                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        lt_retorno.CurrentIndex = i;
                        retorno_resp            = new RETORNO();
                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    System.Windows.MessageBox.Show(Mensaje);
                }
                //else
                //{
                //    System.Windows.MessageBox.Show("No existe(n) registro(s)");
                //}
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #6
0
        public Location LocationGetByCode(string locationCode, string warehouseCode)
        {
            Location location = null;

            //using (var db = new DbManager("HandHeldDB"))
            //{
            //    var reader = db.SetCommand(GetSql(43),
            //   db.Parameter("@LocationCode", locationCode),
            //   db.Parameter("@WarehouseCode", warehouseCode))
            //   .ExecuteReader();
            //    while (reader.Read())
            //    {
            //        location = new Location { Code = (string)reader["LocationCode"], WarehouseCode = (string)reader["WarehouseCode"] };
            //    }
            //}
            //var conn = new DBCon.DBSQLDataContext();
            //var locationli = conn.ProductLocations.Where(x => x.LocationCode == locationCode && x.WarehouseCode == warehouseCode).ToList();
            //foreach (var item in locationli)
            //{
            //    location = new Location { Code = item.LocationCode, WarehouseCode = item.WarehouseCode };
            //}
            if (location == null)
            {
                RfcDestination sapRfcDestination = SapHelper.Destination;
                RfcRepository  sapRfcRepository  = sapRfcDestination.Repository;

                char          delimiter  = ':';
                RfcRepository repo       = sapRfcRepository;
                string        bapiName   = "RFC_READ_TABLE";
                IRfcFunction  exportBapi = repo.CreateFunction(bapiName);
                exportBapi.SetValue("QUERY_TABLE", "ZLOCSTRC");
                exportBapi.SetValue("DELIMITER", delimiter);
                exportBapi.SetValue("NO_DATA", "");
                exportBapi.SetValue("ROWSKIPS", 0);
                exportBapi.SetValue("ROWCOUNT", 0);

                RfcStructureMetadata rfcDbOpt = repo.GetStructureMetadata("RFC_DB_OPT");
                var opt = rfcDbOpt.CreateStructure();
                //opt.SetValue("TEXT", @"(APRVFLAG = 'C') AND (USEFLAG = 'X')");
                opt.SetValue("TEXT", string.Format(" (BINLOC = '{0}') ", locationCode));
                var tableOptions = exportBapi.GetTable("OPTIONS");
                tableOptions.Append(opt);

                var                  table = exportBapi.GetTable("FIELDS");
                IRfcStructure        articol;
                RfcStructureMetadata am = repo.GetStructureMetadata("RFC_DB_FLD");
                articol = am.CreateStructure();
                articol.SetValue("FIELDNAME", "BINLOC");
                table.Append(articol);
                articol = am.CreateStructure();
                articol.SetValue("FIELDNAME", "LGORT");
                table.Append(articol);
                articol = am.CreateStructure();
                articol.SetValue("FIELDNAME", "USEFLAG");
                table.Append(articol);

                exportBapi.SetValue("FIELDS", table);
                exportBapi.SetValue("OPTIONS", tableOptions);
                exportBapi.Invoke(sapRfcDestination);
                IRfcTable detail2 = exportBapi.GetTable("DATA");

                string[] value;
                foreach (var item in detail2)
                {
                    value = item.GetString("WA").Replace(" ", "").Split(delimiter);
                    if (((string)value.GetValue(0)).Length != 10)
                    {
                        continue;
                    }
                    if ((string)value.GetValue(2) != "X")
                    {
                        continue;
                    }
                    if (((string)value.GetValue(1)).ToUpper() != warehouseCode.ToUpper())
                    {
                        continue;
                    }
                    location               = new Location();
                    location.Code          = (string)value.GetValue(0);
                    location.WarehouseCode = (string)value.GetValue(1);

                    //using (var db = new DbManager("HandHeldDB"))
                    //{
                    //    //insert new data
                    //    db.SetCommand(GetSql(88),
                    //    db.Parameter("@LocationCode", location.Code),
                    //    db.Parameter("@WarehouseCode", location.WarehouseCode),
                    //    db.Parameter("@isUse", location.IsUse)
                    //    ).ExecuteNonQuery();
                    //}

                    break;
                }
            }


            return(location);

            //List<SAPProxyII.ZLOCSTRC> locations;
            //string key = string.Format(LOCATION_ALL_KEY, DateTime.Now.Date.Day);
            //string keyOld = string.Format(LOCATION_ALL_KEY, DateTime.Now.AddDays(-1).Day);
            //object obj1 = _cacheManager.Get(keyOld);
            //object obj2 = _cacheManager.Get(key);

            //if (obj1 != null)
            //    _cacheManager.Remove(keyOld);

            //if (obj2 != null)
            //    locations = (List<SAPProxyII.ZLOCSTRC>)obj2;
            //else
            //{
            //    using (var sapConnection = new SAP.Connector.SAPConnection(GlobalContext.SapDestination))
            //    {
            //        using (var prx = new SAPProxyII.UWProxy())
            //        {
            //            prx.Connection = sapConnection;

            //            SAPProxyII.ZLOCSTRCTable Tables = new SAPProxyII.ZLOCSTRCTable();
            //            prx.Zdd_Handheld_Get_Zlockstrc(ref Tables);

            //            locations = (List<SAPProxyII.ZLOCSTRC>)CollectionHelper.ConvertTo<SAPProxyII.ZLOCSTRC>(Tables.ToADODataTable());
            //            _cacheManager.Add(key, locations);
            //        }
            //    }
            //}

            //var location = locations.Find(p => p.Binloc == locationCode);
            //if (location != null)
            //{
            //    var locat = new Location();
            //    locat.Code = location.Binloc;
            //    locat.LocationType = location.Loctype;
            //    return locat;
            //}
            //else
            //    return null;
        }
Beispiel #7
0
        public void ReipresionFiscal2(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_DOCUMENTO, string P_SOCIEDAD)
        {
            IRfcTable lt_DTE_SII;
            DTE_SII   DTE_SII_resp;

            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                try
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REIMPRESION");
                    BapiGetUser.SetValue("XBLNR", P_DOCUMENTO);
                    BapiGetUser.SetValue("BUKRS", P_SOCIEDAD);


                    BapiGetUser.Invoke(SapRfcDestination);


                    lt_DTE_SII = BapiGetUser.GetTable("DTE_SII");

                    for (int i = 0; i < lt_DTE_SII.RowCount; i++)
                    {
                        lt_DTE_SII.CurrentIndex = i;
                        DTE_SII_resp            = new DTE_SII();
                        DTE_SII_resp.VBELN      = lt_DTE_SII[i].GetString("VBELN");
                        DTE_SII_resp.BUKRS      = lt_DTE_SII[i].GetString("BUKRS");
                        DTE_SII_resp.FECIMP     = lt_DTE_SII[i].GetString("FECIMP");
                        DTE_SII_resp.FODOC      = lt_DTE_SII[i].GetString("FODOC");
                        DTE_SII_resp.HORIM      = lt_DTE_SII[i].GetString("HORIM");
                        DTE_SII_resp.KONDA      = lt_DTE_SII[i].GetString("KONDA");
                        DTE_SII_resp.TDSII      = lt_DTE_SII[i].GetString("TDSII");
                        DTE_SII_resp.URLSII     = lt_DTE_SII[i].GetString("URLSII");
                        DTE_SII_resp.WAERS      = lt_DTE_SII[i].GetString("WAERS");
                        DTE_SII_resp.XBLNR      = lt_DTE_SII[i].GetString("XBLNR");
                        DTE_SII_resp.ZUONR      = lt_DTE_SII[i].GetString("ZUONR");
                        reimprFiscal2.Add(DTE_SII_resp);
                    }
                    //url = BapiGetUser.GetString("URL");
                    //GC.Collect();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
            }
            else
            {
                errormessage = retval;
                GC.Collect();
            }
        }
        public void recauVehi(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string VBELN, string STCD1, string SOCIEDAD)
        {
            objPag.Clear();
            objPagCab.Clear();
            objReturn2.Clear();
            errormessage = "";
            message      = "";
            try
            {
                RETURN    p_return;
                IRfcTable lt_IT_PAGOS_CAB;
                IRfcTable lt_IT_PAGOS;

                IT_PAGOS       GET_IT_PAGOS_resp;
                IT_PAGOS_CAB   GET_IT_PAGOS_CAB_resp;
                FormatoMonedas FM = new FormatoMonedas();

                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_RECAU_VEHI");
                    BapiGetUser.SetValue("VBELN", VBELN);
                    BapiGetUser.SetValue("STCD1", STCD1);
                    BapiGetUser.SetValue("SOCIEDAD", SOCIEDAD);

                    BapiGetUser.Invoke(SapRfcDestination);

                    lt_IT_PAGOS_CAB = BapiGetUser.GetTable("IT_PAGOS_CAB");
                    lt_IT_PAGOS     = BapiGetUser.GetTable("IT_PAGOS");

                    if (lt_IT_PAGOS_CAB.RowCount > 0)
                    {
                        for (int i = 0; i < lt_IT_PAGOS_CAB.RowCount; i++)
                        {
                            lt_IT_PAGOS_CAB.CurrentIndex = i;
                            GET_IT_PAGOS_CAB_resp        = new IT_PAGOS_CAB();

                            GET_IT_PAGOS_CAB_resp.VBELN    = lt_IT_PAGOS_CAB[i].GetString("VBELN");
                            GET_IT_PAGOS_CAB_resp.LICPL    = lt_IT_PAGOS_CAB[i].GetString("LICPL");
                            GET_IT_PAGOS_CAB_resp.H_NETWR  = lt_IT_PAGOS_CAB[i].GetString("H_NETWR");
                            GET_IT_PAGOS_CAB_resp.WAERK    = lt_IT_PAGOS_CAB[i].GetString("WAERK");
                            GET_IT_PAGOS_CAB_resp.BUKRS_VF = lt_IT_PAGOS_CAB[i].GetString("BUKRS_VF");
                            GET_IT_PAGOS_CAB_resp.KKBER    = lt_IT_PAGOS_CAB[i].GetString("KKBER");
                            GET_IT_PAGOS_CAB_resp.STCD1    = lt_IT_PAGOS_CAB[i].GetString("STCD1");
                            objPagCab.Add(GET_IT_PAGOS_CAB_resp);
                        }
                    }

                    if (lt_IT_PAGOS.RowCount > 0)
                    {
                        for (int i = 0; i < lt_IT_PAGOS.RowCount; i++)
                        {
                            lt_IT_PAGOS.CurrentIndex = i;
                            GET_IT_PAGOS_resp        = new IT_PAGOS();

                            GET_IT_PAGOS_resp.VBELN      = lt_IT_PAGOS[i].GetString("VBELN");
                            GET_IT_PAGOS_resp.CORRE      = lt_IT_PAGOS[i].GetString("CORRE");
                            GET_IT_PAGOS_resp.VIADP      = lt_IT_PAGOS[i].GetString("VIADP");
                            GET_IT_PAGOS_resp.DESCV      = lt_IT_PAGOS[i].GetString("DESCV");
                            GET_IT_PAGOS_resp.DBM_LICEXT = lt_IT_PAGOS[i].GetString("DBM_LICEXT");
                            GET_IT_PAGOS_resp.NUDOC      = lt_IT_PAGOS[i].GetString("NUDOC");
                            GET_IT_PAGOS_resp.CODBA      = lt_IT_PAGOS[i].GetString("CODBA");
                            GET_IT_PAGOS_resp.NOMBA      = lt_IT_PAGOS[i].GetString("NOMBA");
                            GET_IT_PAGOS_resp.CODIN      = lt_IT_PAGOS[i].GetString("CODIN");
                            GET_IT_PAGOS_resp.NOMIN      = lt_IT_PAGOS[i].GetString("NOMIN");
                            //string VALORUN = Convert.ToString(lt_IT_PAGOS[i].GetString("MONTO"));
                            //VALORUN = VALORUN.Replace(".", "");
                            //VALORUN = VALORUN.Replace(",", "");
                            //decimal monto = Convert.ToDecimal(VALORUN);
                            //GET_IT_PAGOS_resp.MONTO = string.Format("{0:0,0}", monto);
                            GET_IT_PAGOS_resp.KUNNR = lt_IT_PAGOS[i].GetString("KUNNR");
                            if (lt_IT_PAGOS[i].GetString("WAERS") == "CLP")
                            {
                                GET_IT_PAGOS_resp.MONTO = FM.FormatoMonedaChilena(lt_IT_PAGOS[i].GetString("MONTO"), "2");
                                //paramt.SetValue("MONTO_DOC", FM.FormatoMonedaChilena(DocumPago[i].MONTO_DOC, "2"));
                            }
                            else
                            {
                                GET_IT_PAGOS_resp.MONTO = FM.FormatoMonedaExtranjera(lt_IT_PAGOS[i].GetString("MONTO"));
                                //paramt.SetValue("MONTO_DOC", FM.FormatoMonedaExtranjera(DocumPago[i].MONTO_DOC));
                            }
                            //GET_IT_PAGOS_resp.MONTO = lt_IT_PAGOS[i].GetString("MONTO");
                            GET_IT_PAGOS_resp.CTACE = lt_IT_PAGOS[i].GetString("CTACE");
                            GET_IT_PAGOS_resp.FEACT = lt_IT_PAGOS[i].GetString("FEACT");
                            GET_IT_PAGOS_resp.FEVEN = lt_IT_PAGOS[i].GetString("FEVEN");
                            GET_IT_PAGOS_resp.INTER = lt_IT_PAGOS[i].GetString("INTER");
                            GET_IT_PAGOS_resp.TASAI = lt_IT_PAGOS[i].GetString("TASAI");
                            GET_IT_PAGOS_resp.CUOTA = lt_IT_PAGOS[i].GetString("CUOTA");
                            GET_IT_PAGOS_resp.MINTE = lt_IT_PAGOS[i].GetString("MINTE");
                            //string VALORTOTIN = Convert.ToString(lt_IT_PAGOS[i].GetString("TOTIN"));
                            //VALORTOTIN = VALORTOTIN.Replace(".", "");
                            //VALORTOTIN = VALORTOTIN.Replace(",", "");
                            //decimal TOTIN2 = Convert.ToDecimal(VALORTOTIN);
                            if (lt_IT_PAGOS[i].GetString("WAERS") == "CLP")
                            {
                                GET_IT_PAGOS_resp.TOTIN = FM.FormatoMonedaChilena(lt_IT_PAGOS[i].GetString("TOTIN"), "2");
                                //paramt.SetValue("MONTO_DOC", FM.FormatoMonedaChilena(DocumPago[i].MONTO_DOC, "2"));
                            }
                            else
                            {
                                GET_IT_PAGOS_resp.TOTIN = FM.FormatoMonedaExtranjera(lt_IT_PAGOS[i].GetString("TOTIN"));
                                //paramt.SetValue("MONTO_DOC", FM.FormatoMonedaExtranjera(DocumPago[i].MONTO_DOC));
                            }
                            //GET_IT_PAGOS_resp.TOTIN = string.Format("{0:0,0}", TOTIN2);
                            // GET_IT_PAGOS_resp.TOTIN = lt_IT_PAGOS[i].GetString("TOTIN");
                            GET_IT_PAGOS_resp.RUTGI = lt_IT_PAGOS[i].GetString("RUTGI");
                            GET_IT_PAGOS_resp.NOMGI = lt_IT_PAGOS[i].GetString("NOMGI");
                            GET_IT_PAGOS_resp.WAERS = lt_IT_PAGOS[i].GetString("WAERS");
                            GET_IT_PAGOS_resp.STAT  = lt_IT_PAGOS.GetString("STAT");
                            GET_IT_PAGOS_resp.PRCTR = lt_IT_PAGOS[i].GetString("PRCTR");
                            GET_IT_PAGOS_resp.KUNNR = lt_IT_PAGOS[i].GetString("KUNNR");
                            GET_IT_PAGOS_resp.KKBER = lt_IT_PAGOS[i].GetString("KKBER");
                            GET_IT_PAGOS_resp.STCD1 = lt_IT_PAGOS[i].GetString("STCD1");
                            GET_IT_PAGOS_resp.HKONT = lt_IT_PAGOS[i].GetString("HKONT");
                            GET_IT_PAGOS_resp.BANKN = lt_IT_PAGOS[i].GetString("BANKN");
                            objPag.Add(GET_IT_PAGOS_resp);
                        }
                    }
                    else
                    {
                        // MessageBox.Show("No existen datos para este número de documento o RUT");
                    }


                    IRfcTable retorno = BapiGetUser.GetTable("RETURN");

                    for (var i = 0; i < retorno.RowCount; i++)
                    {
                        retorno.CurrentIndex = i;

                        p_return = new RETURN();

                        p_return.TYPE       = retorno[i].GetString("TYPE");
                        p_return.ID         = retorno[i].GetString("ID");
                        p_return.NUMBER     = retorno[i].GetString("NUMBER");
                        p_return.MESSAGE    = retorno[i].GetString("MESSAGE");
                        p_return.LOG_NO     = retorno[i].GetString("LOG_NO");
                        p_return.LOG_MSG_NO = retorno[i].GetString("LOG_MSG_NO");
                        p_return.MESSAGE_V1 = retorno[i].GetString("MESSAGE_V1");
                        p_return.MESSAGE_V2 = retorno[i].GetString("MESSAGE_V2");
                        p_return.MESSAGE_V3 = retorno[i].GetString("MESSAGE_V3");
                        p_return.MESSAGE_V4 = retorno[i].GetString("MESSAGE_V4");
                        p_return.PARAMETER  = retorno[i].GetString("PARAMETER");
                        p_return.ROW        = retorno[i].GetString("ROW");
                        p_return.FIELD      = retorno[i].GetString("FIELD");
                        p_return.SYSTEM     = retorno[i].GetString("SYSTEM");
                        objReturn2.Add(p_return);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0} Exception caught.", ex);
            }
        }
Beispiel #9
0
        public void bloqueardesbloquearcaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, List <LOG_APERTURA> P_LOGAPERTURA)
        {
            //IRfcTable lt_t_documentos;
            //IRfcStructure lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;


            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_BLOQ_DES_CAJA");
                //BapiGetUser.SetValue("LOG_APERTURA", P_LOGAPERTURA);
                IRfcStructure GralDat = BapiGetUser.GetStructure("LOG_APERTURA");

                for (var i = 0; i < P_LOGAPERTURA.Count; i++)
                {
                    //GralDat.Append();
                    GralDat.SetValue("MANDT", P_LOGAPERTURA[i].MANDT);
                    GralDat.SetValue("ID_REGISTRO", P_LOGAPERTURA[i].ID_REGISTRO);
                    GralDat.SetValue("LAND", P_LOGAPERTURA[i].LAND);
                    GralDat.SetValue("ID_CAJA", P_LOGAPERTURA[i].ID_CAJA);
                    GralDat.SetValue("USUARIO", P_LOGAPERTURA[i].USUARIO);
                    GralDat.SetValue("FECHA", P_LOGAPERTURA[i].FECHA);
                    GralDat.SetValue("HORA", P_LOGAPERTURA[i].HORA);
                    GralDat.SetValue("MONTO", P_LOGAPERTURA[i].MONTO);
                    GralDat.SetValue("MONEDA", P_LOGAPERTURA[i].MONEDA);
                    GralDat.SetValue("TIPO_REGISTRO", P_LOGAPERTURA[i].TIPO_REGISTRO);
                    GralDat.SetValue("ID_APERTURA", P_LOGAPERTURA[i].ID_APERTURA);
                    GralDat.SetValue("TXT_CIERRE", P_LOGAPERTURA[i].TXT_CIERRE);
                    GralDat.SetValue("BLOQUEO", P_LOGAPERTURA[i].BLOQUEO);
                    GralDat.SetValue("USUARIO_BLOQ", P_LOGAPERTURA[i].USUARIO_BLOQ);
                }
                BapiGetUser.SetValue("LOG_APERTURA", GralDat);
                BapiGetUser.Invoke(SapRfcDestination);


                //lt_t_documentos = BapiGetUser.GetTable("T_DOCUMENTOS");
                //lt_retorno = BapiGetUser.GetStructure("SE_ESTATUS");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                try
                {
                    String Mensaje = "";
                    //if (lt_retorno.Count > 0)
                    //{
                    //    retorno_resp = new ESTADO();
                    //    for (int i = 0; i < lt_retorno.Count(); i++)
                    //    {
                    //        // lt_retorno.CurrentIndex = i;

                    //        retorno_resp.TYPE = lt_retorno.GetString("TYPE");
                    //        retorno_resp.ID = lt_retorno.GetString("ID");
                    //        retorno_resp.NUMBER = lt_retorno.GetString("NUMBER");
                    //        retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE");
                    //        retorno_resp.LOG_NO = lt_retorno.GetString("LOG_NO");
                    //        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                    //        retorno_resp.MESSAGE = lt_retorno.GetString("MESSAGE");
                    //        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                    //        if (i == 0)
                    //        {
                    //            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                    //        }
                    //        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                    //        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                    //        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                    //        retorno_resp.PARAMETER = lt_retorno.GetString("PARAMETER");
                    //        retorno_resp.ROW = lt_retorno.GetString("ROW");
                    //        retorno_resp.FIELD = lt_retorno.GetString("FIELD");
                    //        retorno_resp.SYSTEM = lt_retorno.GetString("SYSTEM");
                    //        Retorno.Add(retorno_resp);
                    //    }
                    //    System.Windows.MessageBox.Show(Mensaje);
                    //}
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
        public void emitirnotasdecredito(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE
                                         , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_MONEDA, string P_PAIS
                                         , List <T_DOCUMENTOS> P_DOCSAPAGAR, string P_CHKTRIB)
        {
            try
            {
                RETURN2 retorno;

                T_DOCUMENTOS docs;

                //DETALLE_REND detallerend;
                T_Retorno.Clear();
                documentos.Clear();
                errormessage = "";
                message      = "";
                IdCaja       = "";
                Efectivo     = "0";

                IRfcTable ls_RETORNO;
                IRfcTable lt_DOCS;

                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REC_Y_FAC_NC");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("PAY_CURRENCY", P_MONEDA);
                    BapiGetUser.SetValue("LAND", P_PAIS);
                    IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS");
                    try
                    {
                        for (var i = 0; i < P_DOCSAPAGAR.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("NDOCTO", P_DOCSAPAGAR[i].NDOCTO);
                            GralDat2.SetValue("MONTO", P_DOCSAPAGAR[i].MONTO);
                            GralDat2.SetValue("MONTOF", P_DOCSAPAGAR[i].MONTOF);
                            GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA);
                            GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND);
                            GralDat2.SetValue("FECVENCI", P_DOCSAPAGAR[i].FECVENCI);
                            GralDat2.SetValue("CONTROL_CREDITO", P_DOCSAPAGAR[i].CONTROL_CREDITO);
                            GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE);
                            GralDat2.SetValue("COND_PAGO", P_DOCSAPAGAR[i].COND_PAGO);
                            GralDat2.SetValue("RUTCLI", P_DOCSAPAGAR[i].RUTCLI);
                            GralDat2.SetValue("NOMCLI", P_DOCSAPAGAR[i].NOMCLI);
                            GralDat2.SetValue("ESTADO", P_DOCSAPAGAR[i].ESTADO);
                            GralDat2.SetValue("ICONO", P_CHKTRIB);
                            GralDat2.SetValue("DIAS_ATRASO", P_DOCSAPAGAR[i].DIAS_ATRASO);
                            string MontoAux = "";
                            MontoAux = P_DOCSAPAGAR[i].MONTO_ABONADO;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTO_ABONADO", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTOF_ABON;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTOF_ABON", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTO_PAGAR;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTO_PAGAR", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTOF_PAGAR;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTOF_PAGAR", MontoAux);
                            GralDat2.SetValue("NREF", P_DOCSAPAGAR[i].NREF);
                            GralDat2.SetValue("FECHA_DOC", P_DOCSAPAGAR[i].FECHA_DOC);
                            GralDat2.SetValue("COD_CLIENTE", P_DOCSAPAGAR[i].COD_CLIENTE);
                            GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD);
                            GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("CLASE_CUENTA", P_DOCSAPAGAR[i].CLASE_CUENTA);
                            GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME);
                            GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC);
                            GralDat2.SetValue("FACT_SD_ORIGEN", P_DOCSAPAGAR[i].FACT_SD_ORIGEN);
                            GralDat2.SetValue("FACT_ELECT", P_DOCSAPAGAR[i].FACT_ELECT);
                            GralDat2.SetValue("ID_COMPROBANTE", P_DOCSAPAGAR[i].ID_COMPROBANTE);
                            GralDat2.SetValue("ID_CAJA", P_DOCSAPAGAR[i].ID_CAJA);
                            GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND);
                            GralDat2.SetValue("BAPI", P_DOCSAPAGAR[i].BAPI);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                        //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("DOCUMENTOS", GralDat2);


                    BapiGetUser.Invoke(SapRfcDestination);
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_DOCS = BapiGetUser.GetTable("DOCUMENTOS");

                    if (lt_DOCS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_DOCS.RowCount; i++)
                        {
                            try
                            {
                                lt_DOCS.CurrentIndex = i;
                                docs = new T_DOCUMENTOS();

                                docs.NDOCTO = lt_DOCS[i].GetString("NDOCTO");
                                string Monto  = "";
                                int    indice = 0;
                                //*******
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTOF").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux = 0;
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    string Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    docs.MONTOF = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTOF"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTOF = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTOF") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO").Substring(0, indice - 1);
                                //    docs.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTOF = lt_DOCS[i].GetString("MONTOF");
                                //}
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTO").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux = Convert.ToDecimal(Valor);
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    docs.MONTO = string.Format("{0:0,0}", ValorAux);
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTO"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTO = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTO") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO").Substring(0, indice - 1);
                                //    docs.MONTO = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTO = lt_DOCS[i].GetString("MONTO");
                                //}

                                docs.MONEDA          = lt_DOCS[i].GetString("MONEDA");
                                docs.FECVENCI        = lt_DOCS[i].GetString("FECVENCI");
                                docs.CONTROL_CREDITO = lt_DOCS[i].GetString("CONTROL_CREDITO");
                                docs.CEBE            = lt_DOCS[i].GetString("CEBE");
                                docs.COND_PAGO       = lt_DOCS[i].GetString("COND_PAGO");
                                docs.RUTCLI          = lt_DOCS[i].GetString("RUTCLI");
                                docs.NOMCLI          = lt_DOCS[i].GetString("NOMCLI");
                                docs.ESTADO          = lt_DOCS[i].GetString("ESTADO");
                                docs.ICONO           = lt_DOCS[i].GetString("ICONO");
                                docs.DIAS_ATRASO     = lt_DOCS[i].GetString("DIAS_ATRASO");
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTOF_ABON").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux;
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    docs.MONTOF_ABON = string.Format("{0:0,0}", ValorAux);
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTOF_ABON"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTOF_ABON") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO_ABONADO").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                //    docs.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTOF_ABON = lt_DOCS[i].GetString("MONTOF_ABON");
                                //}
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTOF_PAGAR").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux = Convert.ToDecimal(Valor);
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    docs.MONTOF_PAGAR = string.Format("{0:0,0}", ValorAux);
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTOF_PAGAR"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTOF_PAGAR") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO_PAGAR").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO_PAGAR").Substring(0, indice - 1);
                                //    docs.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTOF_PAGAR = lt_DOCS[i].GetString("MONTOF_PAGAR");
                                //}
                                docs.NREF           = lt_DOCS[i].GetString("NREF");
                                docs.FECHA_DOC      = lt_DOCS[i].GetString("FECHA_DOC");
                                docs.COD_CLIENTE    = lt_DOCS[i].GetString("COD_CLIENTE");
                                docs.SOCIEDAD       = lt_DOCS[i].GetString("SOCIEDAD");
                                docs.CLASE_DOC      = lt_DOCS[i].GetString("CLASE_DOC");
                                docs.CLASE_CUENTA   = lt_DOCS[i].GetString("CLASE_CUENTA");
                                docs.CME            = lt_DOCS[i].GetString("CME");
                                docs.ACC            = lt_DOCS[i].GetString("ACC");
                                docs.FACT_SD_ORIGEN = lt_DOCS[i].GetString("FACT_SD_ORIGEN");
                                docs.FACT_ELECT     = lt_DOCS[i].GetString("FACT_ELECT");
                                docs.ID_COMPROBANTE = lt_DOCS[i].GetString("ID_COMPROBANTE");
                                docs.ID_CAJA        = lt_DOCS[i].GetString("ID_CAJA");
                                docs.LAND           = lt_DOCS[i].GetString("LAND");
                                documentos.Add(docs);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s)");
                    }

                    ls_RETORNO = BapiGetUser.GetTable("RETURN");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            ls_RETORNO.CurrentIndex = i;
                            retorno = new RETURN2();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message    = message + "-" + ls_RETORNO.GetString("MESSAGE") + ":" + ls_RETORNO.GetString("MESSAGE_V1").Trim() + "\n";
                                NumComprob = ls_RETORNO.GetString("MESSAGE_V4").Trim();
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE") + "\n";
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
        public void PagaVehicu(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string ID_CAJA, string TOTAL_VENTA, List <VIAS_PAGO_VEHI> ViaPago, List <DOCUMENTO_CAB> DocumPago, List <ACT_FPAGOS> pago, string PAY_CURRENCY, string RUT, string SOCIEDAD, string NOTA_VENTA, string TOTAL_VIAS, string LAND)
        {
            objReturn2.Clear();
            DOCUMENTO  = "";
            DOCUMENTO2 = "";
            IRfcTable lt_VIAS_PAGO_VEHI;

            VIAS_PAGO_VEHI VIAS_PAGO_VEHI_RESP;

            errormessage = "";
            message      = "";
            try
            {
                RETURN p_return;
                TOTAL_VENTA = TOTAL_VENTA.Replace(".", "");
                TOTAL_VENTA = TOTAL_VENTA.Replace(",", "");
                decimal        totalventa_d = Convert.ToDecimal(TOTAL_VENTA);
                FormatoMonedas FM           = new FormatoMonedas();

                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_PAGO_ANT_VEHI");

                    BapiGetUser.SetValue("PAY_CURRENCY", PAY_CURRENCY);
                    BapiGetUser.SetValue("RUT", RUT);
                    BapiGetUser.SetValue("SOCIEDAD", SOCIEDAD);
                    BapiGetUser.SetValue("NOTA_VENTA", NOTA_VENTA);
                    BapiGetUser.SetValue("TOTAL_VIAS", TOTAL_VIAS);
                    BapiGetUser.SetValue("LAND", LAND);
                    BapiGetUser.SetValue("ID_CAJA", ID_CAJA);
                    BapiGetUser.SetValue("TOTAL_VENTA", totalventa_d);

                    // LLENAMOS TABLA DOCUMENTO
                    IRfcTable paramt = BapiGetUser.GetTable("DOCUMENTO_CAB");
                    for (int i = 0; i < DocumPago.Count(); i++)
                    {
                        paramt.Append();
                        paramt.SetValue("MANDT", DocumPago[i].MANDT);
                        paramt.SetValue("LAND", DocumPago[i].LAND);
                        paramt.SetValue("ID_COMPROBANTE", DocumPago[i].ID_COMPROBANTE);
                        paramt.SetValue("POSICION", DocumPago[i].POSICION);
                        paramt.SetValue("ID_CAJA", DocumPago[i].ID_CAJA);
                        paramt.SetValue("ID_APERTURA", DocumPago[i].ID_APERTURA);
                        paramt.SetValue("CLIENTE", DocumPago[i].CLIENTE);
                        paramt.SetValue("TIPO_DOCUMENTO", DocumPago[i].TIPO_DOCUMENTO);
                        paramt.SetValue("SOCIEDAD", DocumPago[i].SOCIEDAD);
                        paramt.SetValue("NRO_DOCUMENTO", DocumPago[i].NRO_DOCUMENTO);
                        paramt.SetValue("NRO_REFERENCIA", DocumPago[i].NRO_REFERENCIA);
                        paramt.SetValue("CAJERO_RESP", DocumPago[i].CAJERO_RESP);
                        paramt.SetValue("CAJERO_GEN", DocumPago[i].CAJERO_GEN);
                        paramt.SetValue("FECHA_COMP", DocumPago[i].FECHA_COMP);
                        paramt.SetValue("HORA", DocumPago[i].HORA);
                        paramt.SetValue("NRO_COMPENSACION", DocumPago[i].NRO_COMPENSACION);
                        paramt.SetValue("TEXTO_CABECERA", DocumPago[i].TEXTO_CABECERA);
                        paramt.SetValue("NULO", DocumPago[i].NULO);
                        paramt.SetValue("USR_ANULADOR", DocumPago[i].USR_ANULADOR);
                        paramt.SetValue("NRO_ANULACION", DocumPago[i].NRO_ANULACION);
                        paramt.SetValue("APROBADOR_ANULA", DocumPago[i].APROBADOR_ANULA);
                        paramt.SetValue("TXT_ANULACION", DocumPago[i].TXT_ANULACION);
                        paramt.SetValue("EXCEPCION", DocumPago[i].EXCEPCION);
                        paramt.SetValue("FECHA_DOC", DocumPago[i].FECHA_DOC);
                        paramt.SetValue("FECHA_VENC_DOC", DocumPago[i].FECHA_VENC_DOC);
                        paramt.SetValue("NUM_CUOTA", DocumPago[i].NUM_CUOTA);
                        //if (DocumPago[i].MONEDA == "CLP")
                        //{
                        //    paramt.SetValue("MONTO_DOC",FM.FormatoMonedaChilena(DocumPago[i].MONTO_DOC, "2"));
                        //}
                        //else
                        //{
                        //    paramt.SetValue("MONTO_DOC", FM.FormatoMonedaExtranjera(DocumPago[i].MONTO_DOC));
                        //}
                        paramt.SetValue("MONTO_DOC", DocumPago[i].MONTO_DOC);
                        //if (DocumPago[i].MONEDA == "CLP")
                        //{
                        //    paramt.SetValue("MONTO_DIFERENCIA", FM.FormatoMonedaChilena(DocumPago[i].MONTO_DIFERENCIA, "2"));
                        //}
                        //else
                        //{
                        //    paramt.SetValue("MONTO_DIFERENCIA", FM.FormatoMonedaExtranjera(DocumPago[i].MONTO_DIFERENCIA));
                        //}
                        paramt.SetValue("MONTO_DIFERENCIA", DocumPago[i].MONTO_DIFERENCIA);
                        paramt.SetValue("TEXTO_EXCEPCION", DocumPago[i].TEXTO_EXCEPCION);
                        paramt.SetValue("PARCIAL", DocumPago[i].PARCIAL);
                        paramt.SetValue("TIME", DocumPago[i].TIME);
                        paramt.SetValue("APROBADOR_EX", DocumPago[i].APROBADOR_EX);
                        paramt.SetValue("MONEDA", DocumPago[i].MONEDA);
                        paramt.SetValue("CLASE_CUENTA", DocumPago[i].CLASE_CUENTA);
                        paramt.SetValue("CLASE_DOC", DocumPago[i].CLASE_DOC);
                        paramt.SetValue("NUM_CANCELACION", DocumPago[i].NUM_CANCELACION);
                        paramt.SetValue("CME", DocumPago[i].CME);
                        paramt.SetValue("NOTA_VENTA", DocumPago[i].NOTA_VENTA);
                        paramt.SetValue("CEBE", DocumPago[i].CEBE);
                        paramt.SetValue("ACC", DocumPago[i].ACC);
                    }

                    //LLENAMOS TABLA VIAS DE PAGO
                    IRfcTable paramt2 = BapiGetUser.GetTable("VIAS_PAGO_VEHI");

                    for (int i = 0; i < ViaPago.Count(); i++)
                    {
                        paramt2.Append();
                        paramt2.SetValue("MANDT", ViaPago[i].MANDT);
                        paramt2.SetValue("LAND", ViaPago[i].LAND);
                        paramt2.SetValue("ID_COMPROBANTE", ViaPago[i].ID_COMPROBANTE);
                        paramt2.SetValue("ID_DETALLE", ViaPago[i].ID_DETALLE);
                        paramt2.SetValue("ID_CAJA", ViaPago[i].ID_CAJA);
                        paramt2.SetValue("VIA_PAGO", ViaPago[i].VIA_PAGO);
                        //if (ViaPago[i].MONEDA == "CLP")
                        //{
                        //    paramt2.SetValue("MONTO", FM.FormatoMonedaChilena(ViaPago[i].MONTO, "1"));
                        //}
                        //else
                        //{
                        //    paramt2.SetValue("MONTO", FM.FormatoMonedaExtranjera(ViaPago[i].MONTO));
                        //}
                        paramt2.SetValue("MONTO", ViaPago[i].MONTO);
                        paramt2.SetValue("MONEDA", ViaPago[i].MONEDA);
                        paramt2.SetValue("BANCO", ViaPago[i].BANCO);
                        paramt2.SetValue("EMISOR", ViaPago[i].EMISOR);
                        paramt2.SetValue("NUM_CHEQUE", ViaPago[i].NUM_CHEQUE);
                        paramt2.SetValue("COD_AUTORIZACION", ViaPago[i].COD_AUTORIZACION);
                        paramt2.SetValue("NUM_CUOTAS", ViaPago[i].NUM_CUOTAS);
                        paramt2.SetValue("FECHA_VENC", ViaPago[i].FECHA_VENC);
                        paramt2.SetValue("TEXTO_POSICION", ViaPago[i].TEXTO_POSICION);
                        paramt2.SetValue("ANEXO", ViaPago[i].ANEXO);
                        paramt2.SetValue("SUCURSAL", ViaPago[i].SUCURSAL);
                        paramt2.SetValue("NUM_CUENTA", ViaPago[i].NUM_CUENTA);
                        paramt2.SetValue("NUM_TARJETA", ViaPago[i].NUM_TARJETA);
                        paramt2.SetValue("NUM_VALE_VISTA", ViaPago[i].NUM_VALE_VISTA);
                        paramt2.SetValue("PATENTE", ViaPago[i].PATENTE);
                        paramt2.SetValue("NUM_VENTA", ViaPago[i].NUM_VENTA);
                        paramt2.SetValue("PAGARE", ViaPago[i].PAGARE);
                        if ((ViaPago[i].VIA_PAGO == "B") | (ViaPago[i].VIA_PAGO == "U"))
                        {
                            paramt2.SetValue("FECHA_EMISION", Convert.ToDateTime(ViaPago[i].FECHA_EMISION));
                        }
                        else
                        {
                            paramt2.SetValue("FECHA_EMISION", ViaPago[i].FECHA_EMISION);
                        }
                        paramt2.SetValue("NOMBRE_GIRADOR", ViaPago[i].NOMBRE_GIRADOR);
                        paramt2.SetValue("CARTA_CURSE", ViaPago[i].CARTA_CURSE);
                        paramt2.SetValue("NUM_TRANSFER", ViaPago[i].NUM_TRANSFER);
                        paramt2.SetValue("NUM_DEPOSITO", ViaPago[i].NUM_DEPOSITO);
                        paramt2.SetValue("CTA_BANCO", ViaPago[i].CTA_BANCO);
                        paramt2.SetValue("IFINAN", ViaPago[i].IFINAN);
                        paramt2.SetValue("ZUONR", ViaPago[i].ZUONR);
                        paramt2.SetValue("CORRE", ViaPago[i].CORRE);
                        paramt2.SetValue("HKONT", ViaPago[i].HKONT);
                        paramt2.SetValue("PRCTR", ViaPago[i].PRCTR);
                        paramt2.SetValue("ZNOP", ViaPago[i].ZNOP);
                    }

                    IRfcTable paramt3 = BapiGetUser.GetTable("ACT_FPAGOS");
                    for (int i = 0; i < pago.Count(); i++)
                    {
                        paramt3.Append();
                        paramt3.SetValue("VBELN", pago[i].VBELN);
                        paramt3.SetValue("CORRE", pago[i].CORRE);
                    }

                    BapiGetUser.SetValue("DOCUMENTO_CAB", paramt);
                    BapiGetUser.SetValue("VIAS_PAGO_VEHI", paramt2);
                    BapiGetUser.SetValue("ACT_FPAGOS", paramt3);

                    BapiGetUser.Invoke(SapRfcDestination);


                    DOCUMENTO  = BapiGetUser.GetValue("DOCUMENTO").ToString();
                    DOCUMENTO2 = BapiGetUser.GetValue("COMPROBANTE").ToString();
                    IRfcTable retorno = BapiGetUser.GetTable("RETORNO");

                    for (var i = 0; i < retorno.RowCount; i++)
                    {
                        retorno.CurrentIndex = i;

                        p_return = new RETURN();

                        p_return.TYPE       = retorno[i].GetString("TYPE");
                        p_return.ID         = retorno[i].GetString("ID");
                        p_return.NUMBER     = retorno[i].GetString("NUMBER");
                        p_return.MESSAGE    = retorno[i].GetString("MESSAGE");
                        p_return.LOG_NO     = retorno[i].GetString("LOG_NO");
                        p_return.LOG_MSG_NO = retorno[i].GetString("LOG_MSG_NO");
                        p_return.MESSAGE_V1 = retorno[i].GetString("MESSAGE_V1");
                        p_return.MESSAGE_V2 = retorno[i].GetString("MESSAGE_V2");
                        p_return.MESSAGE_V3 = retorno[i].GetString("MESSAGE_V3");
                        p_return.MESSAGE_V4 = retorno[i].GetString("MESSAGE_V4");
                        p_return.PARAMETER  = retorno[i].GetString("PARAMETER");
                        p_return.ROW        = retorno[i].GetString("ROW");
                        p_return.FIELD      = retorno[i].GetString("FIELD");
                        p_return.SYSTEM     = retorno[i].GetString("SYSTEM");

                        if (retorno[i].GetString("TYPE") == "E")
                        {
                            if (errormessage.Contains(retorno[i].GetString("MESSAGE")))
                            {
                                ;
                            }
                            else
                            {
                                errormessage = errormessage + " - " + retorno[i].GetString("MESSAGE");
                            }
                        }
                        if (retorno[i].GetString("TYPE") == "S")
                        {
                            if (message.Contains(retorno[i].GetString("MESSAGE")))
                            {
                                ;
                            }
                            else
                            {
                                message = message + " - " + retorno[i].GetString("MESSAGE");
                            }
                        }


                        objReturn2.Add(p_return);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0} Exception caught.", ex);
            }
        }
Beispiel #12
0
        public void precierrecaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO
                                  , string P_PAIS, string P_ID_APERTURA, string P_ID_CIERRE, string P_SOCIEDAD, string P_ID_REPORT, string P_DATUMDESDE, string P_DATUMHASTA)
        {
            try
            {
                RETORNO      retorno;
                CAB_ARQUEO   cabarqueo;
                RESUMEN_VP   resumenvp;
                DET_ARQUEO   detarqueo;
                DETALLE_REND detallerend;
                T_Retorno.Clear();
                det_arqueo.Clear();
                detalle_rend.Clear();
                cab_arqueo.Clear();
                resumen_viapago.Clear();
                errormessage     = "";
                message          = "";
                diferencia       = "";
                id_arqueo        = "";
                MontoIngresos    = 0;
                MontoEfect       = 0;
                MontoChqDia      = 0;
                MontoChqFech     = 0;
                MontoTransf      = 0;
                MontoValeV       = 0;
                MontoDepot       = 0;
                MontoTarj        = 0;
                MontoFinanc      = 0;
                MontoApp         = 0;
                MontoCredit      = 0;
                MontoEgresos     = 0;
                MontoFondosFijos = 0;
                SaldoTotal       = 0;
                id_arqueo        = "";
                idcajaout        = "";
                cajerorespout    = "";
                sucursal         = "";
                nomcaja          = "";
                sociedadout      = "";
                landout          = "";
                IRfcStructure ls_RETORNO;
                IRfcTable     lt_DETALLE_REND;
                IRfcTable     lt_RESUMEN_VP;
                IRfcTable     lt_CAB_ARQUEO;
                IRfcTable     lt_DET_ARQUEO;


                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REP_CAJA");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                    //BapiGetUser.SetValue("IND_ARQUEO", P_IND_ARQUEO);
                    BapiGetUser.SetValue("ID_REPORT", P_ID_REPORT);
                    BapiGetUser.SetValue("DATE_ARQ_FROM", Convert.ToDateTime(P_DATUMDESDE));
                    BapiGetUser.SetValue("DATE_ARQ_TO", Convert.ToDateTime(P_DATUMHASTA));



                    BapiGetUser.Invoke(SapRfcDestination);

                    idcajaout     = BapiGetUser.GetString("ID_CAJA_OUT");
                    cajerorespout = BapiGetUser.GetString("CAJERO_RESP_OUT");
                    sucursal      = BapiGetUser.GetString("SUCURSAL");
                    nomcaja       = BapiGetUser.GetString("NOM_CAJA");
                    sociedadout   = BapiGetUser.GetString("SOCIEDAD_OUT");
                    landout       = BapiGetUser.GetString("LAND_OUT");


                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend              = new DETALLE_REND();
                            detallerend.N_VENTA      = lt_DETALLE_REND.GetString("N_VENTA");
                            detallerend.FEC_EMI      = lt_DETALLE_REND.GetString("FEC_EMI");
                            detallerend.FEC_VENC     = lt_DETALLE_REND.GetString("FEC_VENC");
                            detallerend.MONTO        = lt_DETALLE_REND.GetString("MONTO");
                            detallerend.NAME1        = lt_DETALLE_REND.GetString("NAME1");
                            detallerend.MONTO_EFEC   = lt_DETALLE_REND.GetString("MONTO_EFEC");
                            MontoEfect               = MontoEfect + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_EFEC"));
                            detallerend.NUM_CHEQUE   = lt_DETALLE_REND.GetString("NUM_CHEQUE");
                            detallerend.MONTO_DIA    = lt_DETALLE_REND.GetString("MONTO_DIA");
                            MontoChqDia              = MontoChqDia + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DIA"));
                            detallerend.MONTO_FECHA  = lt_DETALLE_REND.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FECHA"));
                            detallerend.MONTO_TRANSF = lt_DETALLE_REND.GetString("MONTO_TRANSF");
                            MontoTransf              = MontoTransf + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TRANSF"));
                            detallerend.MONTO_VALE_V = lt_DETALLE_REND.GetString("MONTO_VALE_V");
                            MontoValeV               = MontoValeV + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_VALE_V"));
                            detallerend.MONTO_DEP    = lt_DETALLE_REND.GetString("MONTO_DEP");
                            MontoDepot               = MontoDepot + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DEP"));
                            detallerend.MONTO_TARJ   = lt_DETALLE_REND.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TARJ"));
                            detallerend.MONTO_FINANC = lt_DETALLE_REND.GetString("MONTO_FINANC");
                            MontoFinanc           = MontoFinanc + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FINANC"));
                            detallerend.MONTO_APP = lt_DETALLE_REND.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_APP"));
                            detallerend.MONTO_CREDITO = lt_DETALLE_REND.GetString("MONTO_CREDITO");
                            MontoCredit               = MontoCredit + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_CREDITO"));
                            detallerend.PATENTE       = lt_DETALLE_REND.GetString("PATENTE");
                            detallerend.MONTO_C_CURSE = lt_DETALLE_REND.GetString("MONTO_C_CURSE");
                            MontoCCurse               = MontoCCurse + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_C_CURSE"));
                            detallerend.DOC_SAP       = lt_DETALLE_REND.GetString("DOC_SAP");
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV +
                                    MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse;
                    SaldoTotal = MontoIngresos - MontoEgresos;


                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");
                            resumenvp.TEXT1        = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA       = lt_RESUMEN_VP.GetString("MONEDA");
                            resumenvp.MONTO        = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS    = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_CAB_ARQUEO = BapiGetUser.GetTable("CAB_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_CAB_ARQUEO.Count(); i++)
                        {
                            lt_CAB_ARQUEO.CurrentIndex = i;
                            cabarqueo                = new CAB_ARQUEO();
                            cabarqueo.MANDT          = lt_CAB_ARQUEO.GetString("MANDT");
                            cabarqueo.LAND           = lt_CAB_ARQUEO.GetString("LAND");
                            cabarqueo.ID_ARQUEO      = lt_CAB_ARQUEO.GetString("ID_ARQUEO");
                            cabarqueo.ID_REGISTRO    = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.ID_CAJA        = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.MONTO_CIERRE   = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cabarqueo.MONTO_DIF      = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.COMENTARIO_DIF = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.NULO           = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cab_arqueo.Add(cabarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DET_ARQUEO = BapiGetUser.GetTable("DET_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_DET_ARQUEO.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detarqueo                 = new DET_ARQUEO();
                            detarqueo.MANDT           = lt_DET_ARQUEO.GetString("MANDT");
                            detarqueo.LAND            = lt_DET_ARQUEO.GetString("LAND");
                            detarqueo.ID_ARQUEO       = lt_DET_ARQUEO.GetString("ID_ARQUEO");
                            detarqueo.ID_DENOMINACION = lt_DET_ARQUEO.GetString("ID_DENOMINACION");
                            detarqueo.CANTIDAD        = lt_DET_ARQUEO.GetString("CANTIDAD");
                            detarqueo.MONTO_TOTAL     = lt_DET_ARQUEO.GetString("MONTO_TOTAL");
                            det_arqueo.Add(detarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    //lt_INFO_SOC = BapiGetUser.GetTable("INFO_SOC");
                    //try {

                    //    for (int i = 0; i < lt_INFO_SOC.Count(); i++)
                    //    {
                    //        lt_INFO_SOC.CurrentIndex = i;
                    //        infosociedad = new INFO_SOC2();
                    //        infosociedad.BUKRS = lt_INFO_SOC.GetString("BUKRS");
                    //        infosociedad.BUTXT = lt_INFO_SOC.GetString("BUTXT");
                    //        infosociedad.STCD1 = lt_INFO_SOC.GetString("STCD1");
                    //        info_soc(infosociedad);
                    //    }
                    //}
                    //catch(Exception ex)
                    //{
                    //    Console.WriteLine(ex.Message, ex.StackTrace);
                    //    MessageBox.Show(ex.Message + ex.StackTrace);
                    //}

                    ls_RETORNO = BapiGetUser.GetStructure("RETORNO");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            //ls_RETORNO.CurrentIndex = i;
                            retorno = new RETORNO();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
Beispiel #13
0
        public void pagosmasivos(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_RUT, string P_SOCIEDAD, List <PagosMasivos> ListaExc)
        {
            ObjDatosPartidasOpen.Clear();
            Retorno.Clear();
            errormessage = "";
            protesto     = "";
            IRfcTable     lt_PAGOS_MASIVOS;
            IRfcStructure lt_retorno;

            ESTADO       retorno_resp;
            T_DOCUMENTOS PAGOS_MASIVOS_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_DOC_MASI");
                BapiGetUser.SetValue("STCD1", P_RUT);
                BapiGetUser.SetValue("BUKRS", P_SOCIEDAD);



                IRfcTable GralDat = BapiGetUser.GetTable("T_GET_DOC");

                for (var i = 0; i < ListaExc.Count; i++)
                {
                    GralDat.Append();
                    GralDat.SetValue("XBLNR", ListaExc[i].Referencia);
                    GralDat.SetValue("MONTO", ListaExc[i].Monto);
                    GralDat.SetValue("WAERS", ListaExc[i].Moneda);
                }

                BapiGetUser.SetValue("T_GET_DOC", GralDat);


                BapiGetUser.Invoke(SapRfcDestination);


                protesto         = BapiGetUser.GetString("PE_PROTESTADO");
                lt_PAGOS_MASIVOS = BapiGetUser.GetTable("T_DOCUMENTOS");
                lt_retorno       = BapiGetUser.GetStructure("SE_ESTATUS");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                if (lt_PAGOS_MASIVOS.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_PAGOS_MASIVOS.RowCount; i++)
                    {
                        lt_PAGOS_MASIVOS.CurrentIndex = i;
                        PAGOS_MASIVOS_resp            = new T_DOCUMENTOS();

                        PAGOS_MASIVOS_resp.SOCIEDAD        = lt_PAGOS_MASIVOS[i].GetString("SOCIEDAD");
                        PAGOS_MASIVOS_resp.NDOCTO          = lt_PAGOS_MASIVOS[i].GetString("NDOCTO");
                        PAGOS_MASIVOS_resp.NREF            = lt_PAGOS_MASIVOS[i].GetString("NREF");
                        PAGOS_MASIVOS_resp.CLASE_CUENTA    = lt_PAGOS_MASIVOS[i].GetString("CLASE_CUENTA");
                        PAGOS_MASIVOS_resp.CLASE_DOC       = lt_PAGOS_MASIVOS[i].GetString("CLASE_DOC");
                        PAGOS_MASIVOS_resp.COD_CLIENTE     = lt_PAGOS_MASIVOS[i].GetString("COD_CLIENTE");
                        PAGOS_MASIVOS_resp.RUTCLI          = lt_PAGOS_MASIVOS[i].GetString("RUTCLI");
                        PAGOS_MASIVOS_resp.NOMCLI          = lt_PAGOS_MASIVOS[i].GetString("NOMCLI");
                        PAGOS_MASIVOS_resp.CEBE            = lt_PAGOS_MASIVOS[i].GetString("CEBE");
                        PAGOS_MASIVOS_resp.FECHA_DOC       = lt_PAGOS_MASIVOS[i].GetString("FECHA_DOC");
                        PAGOS_MASIVOS_resp.FECVENCI        = lt_PAGOS_MASIVOS[i].GetString("FECVENCI");
                        PAGOS_MASIVOS_resp.DIAS_ATRASO     = lt_PAGOS_MASIVOS[i].GetString("DIAS_ATRASO");
                        PAGOS_MASIVOS_resp.ESTADO          = lt_PAGOS_MASIVOS[i].GetString("ESTADO");
                        PAGOS_MASIVOS_resp.ICONO           = lt_PAGOS_MASIVOS[i].GetString("ICONO");
                        PAGOS_MASIVOS_resp.MONEDA          = lt_PAGOS_MASIVOS[i].GetString("MONEDA");
                        PAGOS_MASIVOS_resp.ACC             = lt_PAGOS_MASIVOS[i].GetString("ACC");
                        PAGOS_MASIVOS_resp.CLASE_CUENTA    = lt_PAGOS_MASIVOS[i].GetString("CLASE_CUENTA");
                        PAGOS_MASIVOS_resp.CLASE_DOC       = lt_PAGOS_MASIVOS[i].GetString("CLASE_DOC");
                        PAGOS_MASIVOS_resp.CME             = lt_PAGOS_MASIVOS[i].GetString("CME");
                        PAGOS_MASIVOS_resp.CONTROL_CREDITO = lt_PAGOS_MASIVOS[i].GetString("CONTROL_CREDITO");
                        //string.Format("{0:0.##}", lvatend)
                        //decimal lvNetoAbo2 = Convert.ToDecimal(t_REPORTE_CONTACTOS[i].GetString("NETO_ABONO2"));
                        //REPORTE_CONTACTOS_resp.NETO_ABONO2 = string.Format("{0:#,0}", lvNetoAbo2);
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF"));
                            // PAGOS_MASIVOS_resp.MONTOF = lt_PAGOS_MASIVOS[i].GetString("MONTOF");
                            PAGOS_MASIVOS_resp.MONTOF = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTO") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTO = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTO"));
                            // PAGOS_MASIVOS_resp.MONTOF = lt_PAGOS_MASIVOS[i].GetString("MONTOF");
                            PAGOS_MASIVOS_resp.MONTO = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF_ABON = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON"));
                            PAGOS_MASIVOS_resp.MONTOF_ABON = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF_PAGAR = "0";
                        }
                        else
                        {
                            // PAGOS_MASIVOS_resp.MONTOF_ABON = lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON");
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR"));
                            PAGOS_MASIVOS_resp.MONTOF_PAGAR = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        // PAGOS_MASIVOS_resp.MONTOF_PAGAR = lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR");


                        ObjDatosPartidasOpen.Add(PAGOS_MASIVOS_resp);
                    }
                }
                else
                {
                    MessageBox.Show("No existen registros para este número de RUT");
                }

                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    retorno_resp = new ESTADO();
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        // lt_retorno.CurrentIndex = i;

                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    System.Windows.MessageBox.Show(Mensaje);
                }
                GC.Collect();
            }
            else
            {
                errormessage = retval;
                GC.Collect();
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                string Rut  = context.Request.QueryString["Rut"];
                string Mes  = context.Request.QueryString["Mes"];
                string Anio = context.Request.QueryString["Anio"];

                string usuario    = context.Request.QueryString["Usuario"];
                string contrasena = context.Request.QueryString["Clave"];

                string retorno = "ERROR";

                ConexionController conexion = new ConexionController();
                try
                {
                    if (!string.IsNullOrEmpty(usuario) && !string.IsNullOrEmpty(contrasena))
                    {
                        retorno = conexion.connectionsSAP(usuario, contrasena);
                    }

                    if (string.IsNullOrEmpty(retorno))
                    {
                        RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(conexion.connectorConfig);
                        RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                        IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZHR_LIQ_SUE");

                        BapiGetUser.SetValue("I_RUT", Rut);
                        BapiGetUser.SetValue("I_MES", Mes);
                        BapiGetUser.SetValue("I_ANO", Anio);


                        BapiGetUser.Invoke(SapRfcDestination);

                        Byte[] bytes = (Byte[])BapiGetUser.GetValue("PDF_LIQUI");

                        using (MemoryStream input = new MemoryStream(bytes))
                        {
                            using (MemoryStream output = new MemoryStream())
                            {
                                string    password = Rut;
                                PdfReader reader   = new PdfReader(input);
                                PdfEncryptor.Encrypt(reader, output, true, password, password, PdfWriter.ALLOW_SCREENREADERS);
                                bytes = output.ToArray();
                            }
                        }
                        context.Response.Buffer  = true;
                        context.Response.Charset = "";
                        context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                        context.Response.ContentType = "application/pdf";
                        context.Response.BinaryWrite(bytes);
                        context.Response.Flush();
                        context.Response.End();
                    }
                }
                catch (Exception e)
                {
                }
                finally
                {
                }
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #15
0
        public string SAPData()
        {
            try
            {
                String username         = (string)(Session["username"]);
                RfcConfigParameters rfc = new RfcConfigParameters();////Assign values in rfcconfigparameters
                rfc.Add(RfcConfigParameters.Name, ConfigurationManager.AppSettings["Name"].ToString());
                rfc.Add(RfcConfigParameters.AppServerHost, ConfigurationManager.AppSettings["ServerHost"].ToString());
                rfc.Add(RfcConfigParameters.Client, ConfigurationManager.AppSettings["Client"].ToString());
                rfc.Add(RfcConfigParameters.User, ConfigurationManager.AppSettings["User"].ToString());
                rfc.Add(RfcConfigParameters.Password, ConfigurationManager.AppSettings["Password"].ToString());
                rfc.Add(RfcConfigParameters.SystemNumber, ConfigurationManager.AppSettings["SystemNumber"].ToString());
                rfc.Add(RfcConfigParameters.Language, ConfigurationManager.AppSettings["Language"].ToString());;
                rfc.Add(RfcConfigParameters.PoolSize, ConfigurationManager.AppSettings["PoolSize"].ToString());

                RfcDestination mydestination = RfcDestinationManager.GetDestination(rfc);
                RfcRepository  myrepository  = mydestination.Repository;
                IRfcFunction   myfunction    = myrepository.CreateFunction("ZSP_VEND_PO_DETAILS");
                username = vendor_code.Value;
                myfunction.SetValue("I_LIFNR", username);
                String fd = Session["VendorPoDetailsF_date"].ToString();
                String ed = Session["VendorPoDetailsT_date"].ToString();
                myfunction.SetValue("I_FROM_AEDAT", fd);
                myfunction.SetValue("I_TO_AEDAT", ed);
                myfunction.Invoke(mydestination);

                IRfcTable messageTable = myfunction.GetTable("ITAB", true);
                int       rowIndex     = 0;
                foreach (IRfcStructure row in messageTable)
                {
                    String LIFNR      = row.GetString("LIFNR");
                    String EBELN      = row.GetString("EBELN");
                    String BSART      = row.GetString("BSART");
                    String WERKS      = row.GetString("WERKS");
                    String AEDAT      = row.GetString("AEDAT");
                    String EBELP      = row.GetString("EBELP");
                    String MENGE      = row.GetString("MENGE");
                    String MEINS      = row.GetString("MEINS");
                    String NETWR      = row.GetString("NETWR");
                    String DMBTR      = row.GetString("DMBTR");
                    String DELIV_DATE = row.GetString("DELIV_DATE");
                    block2  += "<tr>";
                    block2  += "<td>" + LIFNR + "</td>";
                    block2  += "<td>" + EBELN + "</td>";
                    block2  += "<td>" + BSART + "</td>";
                    block2  += "<td>" + WERKS + "</td>";
                    block2  += "<td>" + AEDAT + "</td>";
                    block2  += "<td>" + EBELP + "</td>";
                    block2  += "<td>" + MENGE + "</td>";
                    block2  += "<td>" + MEINS + "</td>";
                    block2  += "<td>" + NETWR + "</td>";
                    block2  += "<td>" + DMBTR + "</td>";
                    block2  += "<td>" + DELIV_DATE + "</td>";
                    block2  += "</tr>";
                    rowIndex = rowIndex + 1;
                }
                return(block2);
            }
            catch (Exception ex)
            {
            }
            return(block2);
        }
Beispiel #16
0
        public void reimprcomprobantes(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, List <VIAS_PAGO2> P_VIASPAGO, List <DOCUMENTOS> P_DOCSAPAGAR)
        {
            try
            {
                DatosCabecera.Clear();
                DatosDetalle.Clear();
                DatosDocumentos.Clear();
                DatosViaPago.Clear();
                DatosCaja.Clear();
                DatosCliente.Clear();
                DatosEmpresa.Clear();
                IRfcStructure lt_DATOS_CAJA;
                IRfcStructure lt_DATOS_CLIENTES;
                IRfcTable     lt_DATOS_DOCUMENTOS;
                IRfcTable     lt_DATOS_VP;
                IRfcTable     lt_DATOSEMPRESA;
                //DATOS_CAJA DATOS_CAJA_resp;
                DATOS_CLIENTES   datosclientes;
                DATOS_CAJA       datoscaja;
                DATOS_DOCUMENTOS datosdocumentos;
                DATOS_VP         datosvp;
                INFO_SOC         datosempresa;
                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_FM_REC_IMP_COMPROBANTE");
                    try
                    {
                        IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                        for (var i = 0; i < P_VIASPAGO.Count; i++)
                        {
                            GralDat.Append();
                            GralDat.SetValue("MANDT", P_VIASPAGO[i].MANDT);
                            GralDat.SetValue("LAND", P_VIASPAGO[i].LAND);
                            GralDat.SetValue("ID_COMPROBANTE", P_VIASPAGO[i].ID_COMPROBANTE);
                            GralDat.SetValue("ID_DETALLE", P_VIASPAGO[i].ID_DETALLE);
                            GralDat.SetValue("VIA_PAGO", P_VIASPAGO[i].VIA_PAGO);
                            GralDat.SetValue("MONTO", P_VIASPAGO[i].MONTO);
                            GralDat.SetValue("MONEDA", P_VIASPAGO[i].MONEDA);
                            if (P_VIASPAGO[i].BANCO != "")
                            {
                                GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO.Substring(0, 3));
                            }
                            else
                            {
                                GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO);
                            }
                            GralDat.SetValue("EMISOR", P_VIASPAGO[i].EMISOR);
                            GralDat.SetValue("NUM_CHEQUE", P_VIASPAGO[i].NUM_CHEQUE);
                            GralDat.SetValue("COD_AUTORIZACION", P_VIASPAGO[i].COD_AUTORIZACION);
                            GralDat.SetValue("NUM_CUOTAS", P_VIASPAGO[i].NUM_CUOTAS);
                            if (P_VIASPAGO[i].FECHA_VENC != "0000-00-00")
                            {
                                GralDat.SetValue("FECHA_VENC", Convert.ToDateTime(P_VIASPAGO[i].FECHA_VENC));
                            }
                            GralDat.SetValue("TEXTO_POSICION", P_VIASPAGO[i].TEXTO_POSICION);
                            GralDat.SetValue("ANEXO", P_VIASPAGO[i].ANEXO);
                            GralDat.SetValue("SUCURSAL", P_VIASPAGO[i].SUCURSAL);
                            GralDat.SetValue("NUM_CUENTA", P_VIASPAGO[i].NUM_CUENTA);
                            GralDat.SetValue("NUM_TARJETA", P_VIASPAGO[i].NUM_TARJETA);
                            GralDat.SetValue("NUM_VALE_VISTA", P_VIASPAGO[i].NUM_VALE_VISTA);
                            GralDat.SetValue("PATENTE", P_VIASPAGO[i].PATENTE);
                            GralDat.SetValue("NUM_VENTA", P_VIASPAGO[i].NUM_VENTA);
                            GralDat.SetValue("PAGARE", P_VIASPAGO[i].PAGARE);
                            if (P_VIASPAGO[i].FECHA_EMISION != "0000-00-00")
                            {
                                GralDat.SetValue("FECHA_EMISION", Convert.ToDateTime(P_VIASPAGO[i].FECHA_EMISION));
                            }
                            GralDat.SetValue("NOMBRE_GIRADOR", P_VIASPAGO[i].NOMBRE_GIRADOR);
                            GralDat.SetValue("CARTA_CURSE", P_VIASPAGO[i].CARTA_CURSE);
                            GralDat.SetValue("NUM_TRANSFER", P_VIASPAGO[i].NUM_TRANSFER);
                            GralDat.SetValue("NUM_DEPOSITO", P_VIASPAGO[i].NUM_DEPOSITO);
                            GralDat.SetValue("CTA_BANCO", P_VIASPAGO[i].CTA_BANCO);
                            GralDat.SetValue("IFINAN", P_VIASPAGO[i].IFINAN);
                            GralDat.SetValue("CORRE", P_VIASPAGO[i].CORRE);
                            GralDat.SetValue("ZUONR", P_VIASPAGO[i].ZUONR);
                            GralDat.SetValue("HKONT", P_VIASPAGO[i].HKONT);
                            GralDat.SetValue("PRCTR", P_VIASPAGO[i].PRCTR);
                        }
                        BapiGetUser.SetValue("VIAS_PAGO", GralDat);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    try
                    {
                        IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS");
                        for (var i = 0; i < P_DOCSAPAGAR.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("MANDT", P_DOCSAPAGAR[i].MANDT);
                            GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND);
                            GralDat2.SetValue("ID_COMPROBANTE", P_DOCSAPAGAR[i].ID_COMPROBANTE);
                            GralDat2.SetValue("POSICION", P_DOCSAPAGAR[i].POSICION);
                            GralDat2.SetValue("CLIENTE", P_DOCSAPAGAR[i].CLIENTE);
                            GralDat2.SetValue("TIPO_DOCUMENTO", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD);
                            if (i == 0)
                            {
                                NumDocCont = P_DOCSAPAGAR[i].NRO_DOCUMENTO;
                            }
                            GralDat2.SetValue("NRO_DOCUMENTO", P_DOCSAPAGAR[i].NRO_DOCUMENTO);
                            GralDat2.SetValue("NRO_REFERENCIA", P_DOCSAPAGAR[i].NRO_REFERENCIA);
                            GralDat2.SetValue("CAJERO_RESP", P_DOCSAPAGAR[i].CAJERO_RESP);
                            GralDat2.SetValue("CAJERO_GEN", P_DOCSAPAGAR[i].CAJERO_GEN);
                            GralDat2.SetValue("ID_CAJA", P_DOCSAPAGAR[i].ID_CAJA);
                            GralDat2.SetValue("FECHA_COMP", P_DOCSAPAGAR[i].FECHA_COMP);
                            GralDat2.SetValue("HORA", P_DOCSAPAGAR[i].HORA);
                            GralDat2.SetValue("NRO_COMPENSACION", P_DOCSAPAGAR[i].NRO_COMPENSACION);
                            GralDat2.SetValue("TEXTO_CABECERA", P_DOCSAPAGAR[i].TEXTO_CABECERA);
                            GralDat2.SetValue("NULO", P_DOCSAPAGAR[i].NULO);
                            GralDat2.SetValue("USR_ANULADOR", P_DOCSAPAGAR[i].USR_ANULADOR);
                            GralDat2.SetValue("NRO_ANULACION", P_DOCSAPAGAR[i].NRO_ANULACION);
                            GralDat2.SetValue("APROBADOR_ANULA", P_DOCSAPAGAR[i].APROBADOR_ANULA);
                            GralDat2.SetValue("TXT_ANULACION", P_DOCSAPAGAR[i].TXT_ANULACION);
                            GralDat2.SetValue("EXCEPCION", P_DOCSAPAGAR[i].EXCEPCION);
                            if (P_DOCSAPAGAR[i].FECHA_COMP != "0000-00-00")
                            {
                                GralDat2.SetValue("FECHA_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECHA_COMP));
                            }
                            if (P_DOCSAPAGAR[i].FECHA_VENC_DOC != "0000-00-00")
                            {
                                GralDat2.SetValue("FECHA_VENC_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECHA_VENC_DOC));
                            }
                            GralDat2.SetValue("NUM_CUOTA", P_DOCSAPAGAR[i].NUM_CUOTA);
                            GralDat2.SetValue("MONTO_DOC", P_DOCSAPAGAR[i].MONTO_DOC);
                            GralDat2.SetValue("MONTO_DIFERENCIA", P_DOCSAPAGAR[i].MONTO_DIFERENCIA);
                            GralDat2.SetValue("TEXTO_EXCEPCION", P_DOCSAPAGAR[i].TEXTO_EXCEPCION);
                            GralDat2.SetValue("PARCIAL", P_DOCSAPAGAR[i].PARCIAL);
                            GralDat2.SetValue("TIME", P_DOCSAPAGAR[i].TIME);
                            GralDat2.SetValue("APROBADOR_EX", P_DOCSAPAGAR[i].APROBADOR_EX);
                            GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA);
                            GralDat2.SetValue("CLASE_CUENTA", P_DOCSAPAGAR[i].CLASE_CUENTA);
                            GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("NUM_CANCELACION", P_DOCSAPAGAR[i].NUM_CANCELACION);
                            GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME);
                            GralDat2.SetValue("NOTA_VENTA", P_DOCSAPAGAR[i].NOTA_VENTA);
                            GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE);
                            GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC);
                        }
                        BapiGetUser.SetValue("DOCUMENTOS", GralDat2);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    BapiGetUser.Invoke(SapRfcDestination);
                    //LLenamos los datos que retorna la estructura de la RFC
                    try
                    {
                        lt_DATOS_CAJA = BapiGetUser.GetStructure("DATOS_CAJA");
                        for (int i = 0; i < lt_DATOS_CAJA.Count(); i++)
                        {
                            //lt_DATOS_CAJA.CurrentIndex = i;
                            datoscaja                = new DATOS_CAJA();
                            datoscaja.NAME_CAJERO    = lt_DATOS_CAJA.GetString("NAME_CAJERO");
                            datoscaja.USUARIO        = lt_DATOS_CAJA.GetString("USUARIO");
                            datoscaja.ID_COMPROBANTE = lt_DATOS_CAJA.GetString("ID_COMPROBANTE");
                            datoscaja.NRO_DOCUMENTO  = lt_DATOS_CAJA.GetString("NRO_DOCUMENTO");
                            datoscaja.NOM_SOCIEDAD   = lt_DATOS_CAJA.GetString("NOM_SOCIEDAD");
                            datoscaja.RUT_SOCIEDAD   = lt_DATOS_CAJA.GetString("RUT_SOCIEDAD");
                            datoscaja.NOM_CAJA       = lt_DATOS_CAJA.GetString("NOM_CAJA");
                            DatosCaja.Add(datoscaja);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    try
                    {
                        lt_DATOS_CLIENTES = BapiGetUser.GetStructure("DATOS_CLIENTES");
                        for (int i = 0; i < lt_DATOS_CLIENTES.Count(); i++)
                        {
                            //lt_DATOS_CLIENTES.CurrentIndex = i;
                            datosclientes        = new DATOS_CLIENTES();
                            datosclientes.RUT    = lt_DATOS_CLIENTES.GetString("RUT");
                            datosclientes.NOMBRE = lt_DATOS_CLIENTES.GetString("NOMBRE");
                            DatosCliente.Add(datosclientes);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    try
                    {
                        lt_DATOS_DOCUMENTOS = BapiGetUser.GetTable("DATOS_DOCUMENTOS");
                        for (int i = 0; i < lt_DATOS_DOCUMENTOS.Count(); i++)
                        {
                            lt_DATOS_DOCUMENTOS.CurrentIndex = i;
                            datosdocumentos                = new DATOS_DOCUMENTOS();
                            datosdocumentos.TXT_DOCU       = lt_DATOS_DOCUMENTOS.GetString("TXT_DOCU");
                            datosdocumentos.NRO_DOCUMENTO  = lt_DATOS_DOCUMENTOS.GetString("NRO_DOCUMENTO");
                            datosdocumentos.FECHA_DOC      = lt_DATOS_DOCUMENTOS.GetString("FECHA_DOC");
                            datosdocumentos.FECHA_VENC_DOC = lt_DATOS_DOCUMENTOS.GetString("FECHA_VENC_DOC");
                            datosdocumentos.MONEDA         = lt_DATOS_DOCUMENTOS.GetString("MONEDA");
                            string str = datosdocumentos.MONEDA;
                            switch (str)
                            {
                            case "USD":
                                //string Valor3 = lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_MO").Trim();
                                //Valor3 = Valor3.Replace(".", "");
                                //Valor3 = Valor3.Replace(",", "");
                                //decimal ValorAux3 = Convert.ToDecimal(Valor3.Substring(0, Valor3.Length - 2));
                                //string Cualquiernombre3 = string.Format("{0:0,0}", ValorAux3);
                                datosdocumentos.MONTO_DOC_MO = Formato.FormatoMonedaExtranjera(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_MO").Trim());

                                //string Valor4 = lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_ML").Trim();
                                //Valor4 = Valor4.Replace(".", "");
                                //Valor4 = Valor4.Replace(",", "");
                                //decimal ValorAux4 = Convert.ToDecimal(Valor4.Substring(0, Valor4.Length - 2));
                                //string Cualquiernombre4 = string.Format("{0:0,0}", ValorAux4);
                                datosdocumentos.MONTO_DOC_ML = Formato.FormatoMonedaExtranjera(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_ML").Trim());
                                break;

                            case "EUR":
                                //string Valor6 = lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_MO").Trim();
                                //Valor6 = Valor6.Replace(".", "");
                                //Valor6 = Valor6.Replace(",", "");
                                //decimal ValorAux6 = Convert.ToDecimal(Valor6.Substring(0, Valor6.Length - 2));
                                //string Cualquiernombre6 = string.Format("{0:0,0}", ValorAux6);
                                datosdocumentos.MONTO_DOC_MO = Formato.FormatoMonedaExtranjera(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_MO").Trim());

                                //string Valor7 = lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_ML").Trim();
                                //Valor7 = Valor7.Replace(".", "");
                                //Valor7 = Valor7.Replace(",", "");
                                //decimal ValorAux7 = Convert.ToDecimal(Valor7.Substring(0, Valor7.Length - 2));
                                //string Cualquiernombre7 = string.Format("{0:0,0}", ValorAux7);
                                datosdocumentos.MONTO_DOC_ML = Formato.FormatoMonedaExtranjera(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_ML").Trim());
                                break;

                            case "CLP":
                                datosdocumentos.MONTO_DOC_MO = Formato.FormatoMoneda(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_MO"));
                                datosdocumentos.MONTO_DOC_ML = Formato.FormatoMoneda(lt_DATOS_DOCUMENTOS.GetString("MONTO_DOC_ML"));
                                break;
                            }
                            datosdocumentos.PEDIDO = lt_DATOS_DOCUMENTOS.GetString("PEDIDO");
                            DatosDocumentos.Add(datosdocumentos);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    try
                    {
                        lt_DATOSEMPRESA = BapiGetUser.GetTable("INFO_SOC");
                        for (int i = 0; i < lt_DATOSEMPRESA.Count(); i++)
                        {
                            lt_DATOSEMPRESA.CurrentIndex = i;
                            datosempresa       = new INFO_SOC();
                            datosempresa.BUKRS = lt_DATOSEMPRESA.GetString("BUKRS");
                            datosempresa.BUTXT = lt_DATOSEMPRESA.GetString("BUTXT");
                            datosempresa.STCD1 = lt_DATOSEMPRESA.GetString("STCD1");
                            DatosEmpresa.Add(datosempresa);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    try
                    {
                        lt_DATOS_VP = BapiGetUser.GetTable("DATOS_VP");
                        for (int i = 0; i < lt_DATOS_VP.Count(); i++)
                        {
                            lt_DATOS_VP.CurrentIndex = i;
                            datosvp               = new DATOS_VP();
                            datosvp.NUM_POS       = lt_DATOS_VP.GetString("NUM_POS");
                            datosvp.DESCRIP_VP    = lt_DATOS_VP.GetString("DESCRIP_VP");
                            datosvp.NUM_VP        = lt_DATOS_VP.GetString("NUM_VP");
                            datosvp.FECHA_EMISION = lt_DATOS_VP.GetString("FECHA_EMISION");
                            datosvp.FECHA_VENC    = lt_DATOS_VP.GetString("FECHA_VENC");
                            datosvp.MONEDA        = lt_DATOS_VP.GetString("MONEDA");
                            string str = datosvp.MONEDA;
                            switch (str)
                            {
                            case "USD":
                                //string Valor = lt_DATOS_VP.GetString("MONTO_MO").Trim();
                                //Valor = Valor.Replace(".", "");
                                //Valor = Valor.Replace(",", "");
                                //decimal ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                //string Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                datosvp.MONTO_MO = Formato.FormatoMonedaExtranjera(lt_DATOS_VP.GetString("MONTO_MO").Trim());

                                //string Valor2 = lt_DATOS_VP.GetString("MONTO_ML").Trim();
                                //Valor2 = Valor2.Replace(".", "");
                                //Valor2 = Valor2.Replace(",", "");
                                //decimal ValorAux2 = Convert.ToDecimal(Valor2.Substring(0, Valor2.Length - 2));
                                //string Cualquiernombre2 = string.Format("{0:0,0}", ValorAux2);
                                datosvp.MONTO_ML = Formato.FormatoMonedaExtranjera(lt_DATOS_VP.GetString("MONTO_ML").Trim());
                                break;

                            case "EUR":
                                //string Valor1 = lt_DATOS_VP.GetString("MONTO_MO").Trim();
                                //Valor1 = Valor1.Replace(".", "");
                                //Valor1 = Valor1.Replace(",", "");
                                //decimal ValorAux1 = Convert.ToDecimal(Valor1.Substring(0, Valor1.Length - 2));
                                //string Cualquiernombre1 = string.Format("{0:0,0}", ValorAux1);
                                datosvp.MONTO_MO = Formato.FormatoMonedaExtranjera(lt_DATOS_VP.GetString("MONTO_MO").Trim());

                                //string Valor5 = lt_DATOS_VP.GetString("MONTO_ML").Trim();
                                //Valor5 = Valor5.Replace(".", "");
                                //Valor5 = Valor5.Replace(",", "");
                                //decimal ValorAux5 = Convert.ToDecimal(Valor5.Substring(0, Valor5.Length - 2));
                                //string Cualquiernombre5 = string.Format("{0:0,0}", ValorAux5);
                                datosvp.MONTO_ML = Formato.FormatoMonedaExtranjera(lt_DATOS_VP.GetString("MONTO_ML").Trim());
                                break;

                            case "CLP":
                                datosvp.MONTO_MO = Formato.FormatoMoneda(lt_DATOS_VP.GetString("MONTO_MO"));
                                datosvp.MONTO_ML = Formato.FormatoMoneda(lt_DATOS_VP.GetString("MONTO_ML"));
                                break;
                            }
                            DatosViaPago.Add(datosvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("{0} Exception caught.", ex);
                        System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                GC.Collect();
            }

            catch (InvalidCastException ex)
            {
                Console.WriteLine("{0} Exception caught.", ex);
                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
Beispiel #17
0
        ///// <summary>
        ///// 获取物料状态
        ///// </summary>
        ///// <param name="MatCode">物料编号</param>
        ///// <param name="rList"></param>
        ///// <returns></returns>
        //public List<MaterialStatus> ZRFC_GETMATORDER(string MatCode)
        //{
        //    List<MaterialStatus> rList = new List<MaterialStatus>();
        //    try
        //    {
        //        RfcRepository repo = Conn.Repository;
        //        IRfcFunction rfcfunc = repo.CreateFunction("ZRFC_GETMATORDER");
        //        rfcfunc.SetValue("MATNR", MatCode);
        //        rfcfunc.Invoke(Conn);

        //        IRfcTable RfcTable = rfcfunc.GetTable("MATNRDATA");
        //        for (int i = 0; i < RfcTable.Count(); i++)
        //        {
        //            MaterialStatus model = new MaterialStatus();
        //            //model.MATNR = RfcTable[i].GetValue("MATNR").ToString();
        //            //model.ZCANORDER = RfcTable[i].GetValue("ZCANORDER").ToString();
        //            //model.ZREPROD = RfcTable[i].GetValue("ZREPROD").ToString();
        //            rList.Add(model);
        //        }
        //    }
        //    catch
        //    {
        //        rList = null;
        //    }
        //    return rList;
        //}


        public SapRetrun CREATE_BAPI_ACC_DOCUMENT_POST(SapUpload model)
        {
            try
            {
                RfcRepository repo = Conn.Repository;
                IRfcFunction  Fun  = repo.CreateFunction("ZBAPI_ACC_DOCUMENT_POST");

                //结构体doc
                IRfcStructure  tb  = Fun.GetStructure("DOCUMENTHEADER");
                DOCUMENTHEADER doc = model.结构体DOC;
                tb.SetValue("USERNAME", doc.USERNAME);
                tb.SetValue("HEADER_TXT", doc.HEADER_TXT);
                tb.SetValue("COMP_CODE", doc.COMP_CODE);
                tb.SetValue("DOC_DATE", doc.DOC_DATE);
                tb.SetValue("PSTNG_DATE", doc.PSTNG_DATE);
                tb.SetValue("TRANS_DATE", doc.TRANS_DATE);
                tb.SetValue("DOC_TYPE", doc.DOC_TYPE);
                tb.SetValue("BUS_ACT", doc.BUS_ACT);
                tb.SetValue("OBJ_TYPE", doc.OBJ_TYPE);
                tb.SetValue("REF_DOC_NO", doc.REF_DOC_NO);

                //一般性总账科目
                if (model.一般性总账 != null && model.一般性总账.Count > 0)
                {
                    IRfcTable tb1 = Fun.GetTable("ACCOUNTGL");
                    foreach (var item in model.一般性总账)
                    {
                        tb1.Insert();
                        tb1.CurrentRow.SetValue("ITEMNO_ACC", item.ITEMNO_ACC);
                        tb1.CurrentRow.SetValue("GL_ACCOUNT", item.GL_ACCOUNT);
                        tb1.CurrentRow.SetValue("ITEM_TEXT", item.ITEM_TEXT);
                        tb1.CurrentRow.SetValue("ALLOC_NMBR", item.ALLOC_NMBR);
                        tb1.CurrentRow.SetValue("COSTCENTER", item.COSTCENTER);
                        tb1.CurrentRow.SetValue("PROFIT_CTR", item.PROFIT_CTR);
                        tb1.CurrentRow.SetValue("ACCT_TYPE", item.ACCT_TYPE);
                        if (!string.IsNullOrEmpty(item.ASSET_NO))
                        {
                            tb1.CurrentRow.SetValue("ASSET_NO", item.ASSET_NO);
                            tb1.CurrentRow.SetValue("SUB_NUMBER", "0000");
                            tb1.CurrentRow.SetValue("ACCT_TYPE", "A");
                        }
                    }
                }

                //科目D
                if (model.科目D != null && model.科目D.Count > 0)
                {
                    IRfcTable tb1 = Fun.GetTable("ACCOUNTRECEIVABLE");
                    foreach (var item in model.科目D)
                    {
                        tb1.Insert();
                        tb1.CurrentRow.SetValue("ITEMNO_ACC", item.ITEMNO_ACC);
                        tb1.CurrentRow.SetValue("CUSTOMER", item.CUSTOMER);
                        tb1.CurrentRow.SetValue("ITEM_TEXT", item.ITEM_TEXT);
                        tb1.CurrentRow.SetValue("ALLOC_NMBR", item.ALLOC_NMBR);
                        tb1.CurrentRow.SetValue("PROFIT_CTR", item.PROFIT_CTR);
                    }
                }

                //科目K
                if (model.科目K != null && model.科目K.Count > 0)
                {
                    IRfcTable tb1 = Fun.GetTable("ACCOUNTPAYABLE");
                    foreach (var item in model.科目K)
                    {
                        tb1.Insert();
                        tb1.CurrentRow.SetValue("ITEMNO_ACC", item.ITEMNO_ACC);
                        tb1.CurrentRow.SetValue("VENDOR_NO", item.VENDOR_NO);
                        tb1.CurrentRow.SetValue("ITEM_TEXT", item.ITEM_TEXT);
                        tb1.CurrentRow.SetValue("ALLOC_NMBR", item.ALLOC_NMBR);
                        if (!string.IsNullOrEmpty(item.PO_NUMBER))
                        {
                            tb1.CurrentRow.SetValue("SP_GL_IND", item.UMSKZ);
                            tb1.CurrentRow.SetValue("GL_ACCOUNT", item.GL_ACCOUNT);
                            tb1.CurrentRow.SetValue("PROFIT_CTR", item.PROFIT_CTR);
                        }
                        else if (!string.IsNullOrEmpty(item.PROFIT_CTR))
                        {
                            tb1.CurrentRow.SetValue("GL_ACCOUNT", item.GL_ACCOUNT);
                            tb1.CurrentRow.SetValue("PROFIT_CTR", item.PROFIT_CTR);
                        }
                    }
                }

                if (model.币种 != null && model.币种.Count > 0)
                {
                    IRfcTable tb2 = Fun.GetTable("CURRENCYAMOUNT");
                    foreach (var item in model.币种)
                    {
                        tb2.Insert();
                        tb2.CurrentRow.SetValue("ITEMNO_ACC", item.ITEMNO_ACC);
                        tb2.CurrentRow.SetValue("CURRENCY", item.CURRENCY);
                        tb2.CurrentRow.SetValue("AMT_DOCCUR", item.AMT_DOCCUR);
                        tb2.CurrentRow.SetValue("EXCH_RATE", item.EXCH_RATE);
                    }
                }


                if (model.行项目 != null && model.行项目.Count > 0)
                {
                    IRfcTable tb3 = Fun.GetTable("EXTENSION2");
                    foreach (var item in model.行项目)
                    {
                        tb3.Insert();
                        tb3.CurrentRow.SetValue("STRUCTURE", item.STRUCTURE);
                        tb3.CurrentRow.SetValue("VALUEPART1", item.VALUEPART1);
                        tb3.CurrentRow.SetValue("VALUEPART2", item.VALUEPART2);
                        tb3.CurrentRow.SetValue("VALUEPART3", item.VALUEPART3);
                        tb3.CurrentRow.SetValue("VALUEPART4", item.VALUEPART4);
                    }
                }

                Fun.Invoke(Conn);

                SapRetrun result = new SapRetrun();

                var voucher = Fun.GetValue("OBJ_KEY").ToString();
                if (!string.IsNullOrEmpty(voucher) && voucher != "$")
                {
                    result.TYPE    = "S";
                    result.MESSAGE = "凭证上传成功";
                    result.VOUCHER = voucher;
                }
                else
                {
                    var Return = Fun.GetTable("RETURN");
                    if (Return.RowCount >= 2)
                    {
                        result.TYPE    = Return[1].GetValue("TYPE").ToString();
                        result.MESSAGE = Return[1].GetValue("MESSAGE").ToString();
                        result.VOUCHER = Return[1].GetValue("MESSAGE_V2").ToString();
                    }
                    else
                    {
                        result.TYPE    = Return[0].GetValue("TYPE").ToString();
                        result.MESSAGE = Return[0].GetValue("MESSAGE").ToString();
                        result.VOUCHER = Return[0].GetValue("MESSAGE_V2").ToString();
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #18
0
        public void viaspago(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_EXCEPCION, string P_CLASE_CUENTA, string P_HAS_CME, string P_LAND, string P_PROTESTO, List <ViasPago> P_CONDICIONES)
        {
            ObjDatosViasPago.Clear();
            ViasPagoTransaccion.Clear();
            errormessage = "";
            IRfcTable lt_VIAS_PAGOS;

            VIAS_PAGO VIAS_PAGOS_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_MATRIZ_PAGO");
                BapiGetUser.SetValue("EXCEPCION", P_EXCEPCION);
                IRfcTable GralDat = BapiGetUser.GetTable("CONDICIONES");

                for (var i = 0; i < P_CONDICIONES.Count; i++)
                {
                    GralDat.Append();
                    GralDat.SetValue("ACC", P_CONDICIONES[i].Acc);
                    GralDat.SetValue("COND_PAGO", P_CONDICIONES[i].Cond_Pago);
                    GralDat.SetValue("CAJA", P_CONDICIONES[i].Caja);
                }
                BapiGetUser.SetValue("CONDICIONES", GralDat);
                BapiGetUser.SetValue("CLASE_CUENTA", P_CLASE_CUENTA);
                BapiGetUser.SetValue("HAS_CME", P_HAS_CME);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("PROT", P_PROTESTO);
                // IRfcStructure GralDat = BapiGetUser.GetStructure("CONDICIONES");


                // BapiGetUser.SetValue("T_GET_DOC", GralDat);


                BapiGetUser.Invoke(SapRfcDestination);



                lt_VIAS_PAGOS = BapiGetUser.GetTable("VIAS_PAGO");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                if (lt_VIAS_PAGOS.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_VIAS_PAGOS.RowCount; i++)
                    {
                        lt_VIAS_PAGOS.CurrentIndex = i;
                        VIAS_PAGOS_resp            = new VIAS_PAGO();

                        VIAS_PAGOS_resp.VIA_PAGO    = lt_VIAS_PAGOS[i].GetString("VIA_PAGO");
                        VIAS_PAGOS_resp.DESCRIPCION = lt_VIAS_PAGOS[i].GetString("DESCRIPCION");
                        // VIAS_PAGOS_resp..Add(lt_VIAS_PAGOS[i].GetString("VIA_PAGO"),lt_VIAS_PAGOS[i].GetString("DESCRIPCION"));
//VIAS_PAGOS_resp = new VIAS_PAGO();
                        ObjDatosViasPago.Add(VIAS_PAGOS_resp);
//ViasPagoTransaccion.Add(VIAS_PAGOS_resp.);
                    }
                }
                else
                {
                    // MessageBox.Show("No existen registros");
                }
                GC.Collect();
            }
            else
            {
                errormessage = retval;
                GC.Collect();
            }
        }
        public string SAPData()
        {
            try
            {
                /* System.Data.DataTable dt = new System.Data.DataTable();
                 * dt.Columns.AddRange(new DataColumn[14] { new DataColumn("LIFNR", typeof(string)),
                 *                                  new DataColumn("BELNR", typeof(string)),
                 *                                  new DataColumn("BUZEI", typeof(string)),
                 *                                  new DataColumn("GJAHR", typeof(string)),
                 *                                  new DataColumn("BUDAT", typeof(string)),
                 *                                  new DataColumn("BWART", typeof(string)),
                 *                                  new DataColumn("MATNR", typeof(string)),
                 *                                  new DataColumn("SGTXT", typeof(string)),
                 *                                  new DataColumn("EBELN", typeof(string)),
                 *                                  new DataColumn("AEDAT", typeof(string)),
                 *                                  new DataColumn("MAKTX", typeof(string)),
                 *                                  new DataColumn("MENGE", typeof(string)),
                 *                                  new DataColumn("MEINS", typeof(string)),
                 *                                  new DataColumn("DMBTR", typeof(string)),}); */

                String username         = (string)(Session["username"]);
                RfcConfigParameters rfc = new RfcConfigParameters();////Assign values in rfcconfigparameters
                rfc.Add(RfcConfigParameters.Name, ConfigurationManager.AppSettings["Name"].ToString());
                rfc.Add(RfcConfigParameters.AppServerHost, ConfigurationManager.AppSettings["ServerHost"].ToString());
                rfc.Add(RfcConfigParameters.Client, ConfigurationManager.AppSettings["Client"].ToString());
                rfc.Add(RfcConfigParameters.User, ConfigurationManager.AppSettings["User"].ToString());
                rfc.Add(RfcConfigParameters.Password, ConfigurationManager.AppSettings["Password"].ToString());
                rfc.Add(RfcConfigParameters.SystemNumber, ConfigurationManager.AppSettings["SystemNumber"].ToString());
                rfc.Add(RfcConfigParameters.Language, ConfigurationManager.AppSettings["Language"].ToString());;
                rfc.Add(RfcConfigParameters.PoolSize, ConfigurationManager.AppSettings["PoolSize"].ToString());

                RfcDestination mydestination = RfcDestinationManager.GetDestination(rfc);
                RfcRepository  myrepository  = mydestination.Repository;
                IRfcFunction   myfunction    = myrepository.CreateFunction("ZSP_VEND_MOVEMENT");
                username = vendor_code.Value;
                myfunction.SetValue("I_LIFNR", username);
                String ponumber = po_number.Value;
                myfunction.SetValue("I_EBELN", ponumber);
                myfunction.Invoke(mydestination);

                IRfcTable messageTable = myfunction.GetTable("ITAB", true);
                int       rowIndex     = 0;
                foreach (IRfcStructure row in messageTable)
                {
                    String LIFNR = row.GetString("LIFNR");
                    String BELNR = row.GetString("BELNR");
                    String BUZEI = row.GetString("BUZEI");
                    String GJAHR = row.GetString("GJAHR");
                    String BUDAT = row.GetString("BUDAT");
                    String BWART = row.GetString("BWART");
                    String MATNR = row.GetString("MATNR");
                    String SGTXT = row.GetString("SGTXT");
                    String EBELN = row.GetString("EBELN");
                    String AEDAT = row.GetString("AEDAT");
                    String MAKTX = row.GetString("MAKTX");
                    String MENGE = row.GetString("MENGE");
                    String MEINS = row.GetString("MEINS");
                    String DMBTR = row.GetString("DMBTR");
                    block2  += "<tr>";
                    block2  += "<td>" + LIFNR + "</td>";
                    block2  += "<td>" + BELNR + "</td>";
                    block2  += "<td>" + BUZEI + "</td>";
                    block2  += "<td>" + GJAHR + "</td>";
                    block2  += "<td>" + BUDAT + "</td>";
                    block2  += "<td>" + BWART + "</td>";
                    block2  += "<td>" + MATNR + "</td>";
                    block2  += "<td>" + SGTXT + "</td>";
                    block2  += "<td>" + EBELN + "</td>";
                    block2  += "<td>" + AEDAT + "</td>";
                    block2  += "<td>" + MAKTX + "</td>";
                    block2  += "<td>" + MENGE + "</td>";
                    block2  += "<td>" + MEINS + "</td>";
                    block2  += "<td>" + DMBTR + "</td>";
                    block2  += "</tr>";
                    rowIndex = rowIndex + 1;
                }
                return(block2);
            }
            catch (Exception ex)
            {
            }
            return(block2);
        }
Beispiel #20
0
        public void partidasopen(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_CODCLIENTE, string P_DOCUMENTO, string P_RUT,
                                 string P_SOCIEDAD, DateTime P_FECHA_VENC, string P_LAND, string P_FACT_SAP, string TipoBusqueda)
        {
            ObjDatosPartidasOpen.Clear();
            Retorno.Clear();
            IRfcTable     lt_t_documentos;
            IRfcStructure lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            T_DOCUMENTOS PART_ABIERTAS_resp;
            ESTADO       retorno_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_DOC");
                BapiGetUser.SetValue("CODCLIENTE", P_CODCLIENTE);
                BapiGetUser.SetValue("DOCUMENTO", P_DOCUMENTO);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("FACTURA_SAP", P_DOCUMENTO);
                BapiGetUser.SetValue("FECHA_VENC", P_FECHA_VENC);
                BapiGetUser.Invoke(SapRfcDestination);

                protesto        = BapiGetUser.GetString("PE_PROTESTADO");
                lt_t_documentos = BapiGetUser.GetTable("T_DOCUMENTOS");
                lt_retorno      = BapiGetUser.GetStructure("SE_ESTATUS");

                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                try
                {
                    if (lt_t_documentos.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_t_documentos.RowCount; i++)
                        {
                            try
                            {
                                lt_t_documentos.CurrentIndex = i;
                                PART_ABIERTAS_resp           = new T_DOCUMENTOS();

                                PART_ABIERTAS_resp.SOCIEDAD     = lt_t_documentos[i].GetString("SOCIEDAD");
                                PART_ABIERTAS_resp.NDOCTO       = lt_t_documentos[i].GetString("NDOCTO");
                                PART_ABIERTAS_resp.NREF         = lt_t_documentos[i].GetString("NREF");
                                PART_ABIERTAS_resp.CLASE_CUENTA = lt_t_documentos[i].GetString("CLASE_CUENTA");
                                PART_ABIERTAS_resp.CLASE_DOC    = lt_t_documentos[i].GetString("CLASE_DOC");
                                PART_ABIERTAS_resp.COD_CLIENTE  = lt_t_documentos[i].GetString("COD_CLIENTE");
                                PART_ABIERTAS_resp.RUTCLI       = lt_t_documentos[i].GetString("RUTCLI");
                                PART_ABIERTAS_resp.NOMCLI       = lt_t_documentos[i].GetString("NOMCLI");
                                PART_ABIERTAS_resp.CEBE         = lt_t_documentos[i].GetString("CEBE");
                                //PART_ABIERTAS_resp.FECHA_DOC = lt_t_documentos[i].GetString("FECHA_DOC");
                                DateTime fec_doc = Convert.ToDateTime(lt_t_documentos[i].GetString("FECHA_DOC"));
                                PART_ABIERTAS_resp.FECHA_DOC = fec_doc.ToString("dd/MM/yyyy");

                                //PART_ABIERTAS_resp.FECVENCI = lt_t_documentos[i].GetString("FECVENCI");
                                DateTime fec_venc = Convert.ToDateTime(lt_t_documentos[i].GetString("FECVENCI"));
                                PART_ABIERTAS_resp.FECVENCI = fec_venc.ToString("dd/MM/yyyy");

                                PART_ABIERTAS_resp.DIAS_ATRASO     = lt_t_documentos[i].GetString("DIAS_ATRASO");
                                PART_ABIERTAS_resp.ESTADO          = lt_t_documentos[i].GetString("ESTADO");
                                PART_ABIERTAS_resp.ICONO           = lt_t_documentos[i].GetString("ICONO");
                                PART_ABIERTAS_resp.MONEDA          = lt_t_documentos[i].GetString("MONEDA");
                                PART_ABIERTAS_resp.ACC             = lt_t_documentos[i].GetString("ACC");
                                PART_ABIERTAS_resp.CLASE_CUENTA    = lt_t_documentos[i].GetString("CLASE_CUENTA");
                                PART_ABIERTAS_resp.COND_PAGO       = lt_t_documentos[i].GetString("COND_PAGO");
                                PART_ABIERTAS_resp.CME             = lt_t_documentos[i].GetString("CME");
                                PART_ABIERTAS_resp.CONTROL_CREDITO = lt_t_documentos[i].GetString("CONTROL_CREDITO");
                                //string.Format("{0:0.##}", lvatend)
                                //decimal lvNetoAbo2 = Convert.ToDecimal(t_REPORTE_CONTACTOS[i].GetString("NETO_ABONO2"));
                                //REPORTE_CONTACTOS_resp.NETO_ABONO2 = string.Format("{0:#,0}", lvNetoAbo2);
                                //decimal Cualquiernombre = Convert.ToDecimal(lt_t_documentos[i].GetString("MONTOF"));


                                //****
                                // if (lt_t_documentos[i].GetString("MONTOF") == "")
                                // {
                                //     PART_ABIERTAS_resp.MONTOF = "0";
                                // }
                                // else
                                // {
                                //     PART_ABIERTAS_resp.MONTOF = lt_t_documentos[i].GetString("MONTOF");
                                // }
                                // //PART_ABIERTAS_resp.MONTOF = string.Format("{0:0.##}", Cualquiernombre);
                                // //Cualquiernombre = Convert.ToDecimal(lt_t_documentos[i].GetString("MONTOF_ABON"));
                                //// PART_ABIERTAS_resp.MONTOF_ABON = string.Format("{0:0.##}", Cualquiernombre);
                                // if (lt_t_documentos[i].GetString("MONTOF_ABON") == "")
                                // {
                                //     PART_ABIERTAS_resp.MONTOF_ABON = "0";
                                // }
                                // else
                                // {
                                //     PART_ABIERTAS_resp.MONTOF_ABON = lt_t_documentos[i].GetString("MONTOF_ABON");
                                // }
                                // //Cualquiernombre = Convert.ToDecimal(lt_t_documentos[i].GetString("MONTOF_PAGAR"));
                                // //PART_ABIERTAS_resp.MONTOF_PAGAR = string.Format("{0:0.##}", Cualquiernombre);
                                // if (lt_t_documentos[i].GetString("MONTOF_PAGAR") == "")
                                // {
                                //     PART_ABIERTAS_resp.MONTOF_PAGAR = "0";
                                // }
                                // else
                                // {
                                // PART_ABIERTAS_resp.MONTOF_PAGAR = lt_t_documentos[i].GetString("MONTOF_PAGAR");
                                // }
                                //MONTOF

                                string Monto = "";

                                //*******
                                if (lt_t_documentos[i].GetString("MONTOF") == "")
                                {
                                    //indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                    //Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                    //PART_ABIERTAS_resp.MONTOF = Monto;
                                    if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                    {
                                        string Valor = lt_t_documentos[i].GetString("MONTO").Trim();
                                        if (Valor.Contains("-"))
                                        {
                                            Valor = "-" + Valor.Replace("-", "");
                                        }
                                        Valor = Valor.Replace(".", "");
                                        Valor = Valor.Replace(",", "");
                                        decimal ValorAux        = Convert.ToDecimal(Valor);
                                        string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                        PART_ABIERTAS_resp.MONTOF = Cualquiernombre.Replace(",", ".");
                                    }
                                    else
                                    {
                                        string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF"));
                                        decimal ValorAux = Convert.ToDecimal(moneda);
                                        PART_ABIERTAS_resp.MONTOF = string.Format("{0:0,0.##}", ValorAux).Replace(",", ".");
                                        //PART_ABIERTAS_resp.MONTOF = lt_t_documentos[i].GetString("MONTO");
                                    }
                                }
                                else
                                {
                                    //string Valor = lt_t_documentos[i].GetString("MONTOF").Trim();
                                    //if (Valor.Contains("-"))
                                    //{
                                    //    Valor = "-" + Valor.Replace("-", "");
                                    //}
                                    //Valor = Valor.Replace(".", "");
                                    //Valor = Valor.Replace(",", "");
                                    //decimal TOTIN2 = Convert.ToDecimal(Valor);
                                    //string Cualquiernombre =  string.Format("{0:0,0}", TOTIN2);

                                    //PART_ABIERTAS_resp.MONTOF =  Cualquiernombre;
                                    //PART_ABIERTAS_resp.MONTOF = lt_t_documentos[i].GetString("MONTOF");
                                    //PART_ABIERTAS_resp.MONTOF = Convert.ToDouble( Convert.ToDouble( lt_t_documentos[i].GetString("MONTO"))*100).ToString("0,0",elGR) ;
                                    if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                    {
                                        string Valor = lt_t_documentos[i].GetString("MONTOF").Trim();
                                        if (Valor.Contains("-"))
                                        {
                                            Valor = "-" + Valor.Replace("-", "");
                                        }
                                        Valor = Valor.Replace(".", "");
                                        Valor = Valor.Replace(",", "");
                                        decimal ValorAux        = Convert.ToDecimal(Valor);
                                        string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                        PART_ABIERTAS_resp.MONTOF = Cualquiernombre.Replace(",", ".");
                                    }
                                    else
                                    {
                                        //PART_ABIERTAS_resp.MONTOF = lt_t_documentos[i].GetString("MONTOF");
                                        string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF"));
                                        decimal ValorAux = Convert.ToDecimal(moneda);
                                        PART_ABIERTAS_resp.MONTOF = string.Format("{0:0,0.##}", ValorAux).Replace(",", ".");
                                    }
                                }
                                //MONTO
                                //if (lt_t_documentos[i].GetString("MONTO") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                //    PART_ABIERTAS_resp.MONTO = Monto;
                                //}
                                //else
                                //{
                                //    PART_ABIERTAS_resp.MONTO = lt_t_documentos[i].GetString("MONTOF");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTO").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    PART_ABIERTAS_resp.MONTO = Cualquiernombre.Replace(",", ".");
                                }
                                else
                                {
                                    //PART_ABIERTAS_resp.MONTO = lt_t_documentos[i].GetString("MONTO");
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTO"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    PART_ABIERTAS_resp.MONTO = string.Format("{0:0,0.##}", ValorAux).Replace(",", ".");
                                }
                                //MONTO ABONADO
                                //if (lt_t_documentos[i].GetString("MONTOF_ABON") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO_ABONADO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                //    PART_ABIERTAS_resp.MONTOF_ABON = Monto;
                                //}
                                //else
                                //{
                                //    PART_ABIERTAS_resp.MONTOF_ABON = lt_t_documentos[i].GetString("MONTOF_ABON");
                                //    //PART_ABIERTAS_resp.MONTOF_ABON = Convert.ToDouble(Convert.ToDouble(lt_t_documentos[i].GetString("MONTO_ABONADO")) * 100).ToString("0,0", elGR);
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_ABON").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    PART_ABIERTAS_resp.MONTOF_ABON = Cualquiernombre.Replace(",", ".");
                                }
                                else
                                {
                                    //PART_ABIERTAS_resp.MONTOF_ABON = lt_t_documentos[i].GetString("MONTOF_ABON");
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_ABON"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    PART_ABIERTAS_resp.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux).Replace(",", ".");
                                }
                                //MONTO A PAGAR
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_PAGAR").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux   = Convert.ToDecimal(Valor);
                                    string  monedachil = string.Format("{0:0,0}", ValorAux);
                                    PART_ABIERTAS_resp.MONTOF_PAGAR = monedachil.Replace(",", ".");
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_PAGAR"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    PART_ABIERTAS_resp.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux).Replace(",", ".");
                                }
                                ObjDatosPartidasOpen.Add(PART_ABIERTAS_resp);
                            }



                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("No existe(n) registro(s) para este número de " + TipoBusqueda);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    string returning = "";
                    retorno_resp = new ESTADO();
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        // lt_retorno.CurrentIndex = i;
                        if (i == 0)
                        {
                            returning = retorno_resp.TYPE = lt_retorno.GetString("TYPE");
                        }
                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    if (returning != "")
                    {
                        System.Windows.MessageBox.Show(Mensaje);
                    }
                }
                GC.Collect();
            }
            else
            {
                errormessage = retval;
                GC.Collect();
            }
        }
        public void anulacioncomprobantes(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_USUARIO, string P_PASSWORD2, string P_IDCAJA)
        {
            Retorno.Clear();
            Autorizado   = "";
            errormessage = "";
            IRfcStructure lt_retorno;
            //IRfcTable lt_retorno;
            //string Autorizado;
            //bool Valido;

            ESTADO retorno_resp;


            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_CHECK_JEFE_CAJA");

                BapiGetUser.SetValue("PASSWORD", P_PASSWORD2);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);

                BapiGetUser.Invoke(SapRfcDestination);

                Autorizado = BapiGetUser.GetString("VALIDO");
                if (Autorizado == "X")
                {
                    Valido = true;
                }

                //  lt_retorno = BapiGetUser.GetTable("ESTADO");
                lt_retorno = BapiGetUser.GetStructure("ESTADO");
                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    retorno_resp = new ESTADO();
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        // lt_retorno.CurrentIndex = i;

                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    if (Mensaje != "")
                    {
                        System.Windows.MessageBox.Show(Mensaje);
                    }
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #22
0
        public void GetCustomerDetails(RfcDestination destination)
        {
            try
            {
                RfcRepository repo         = destination.Repository;
                IRfcFunction  customerBapi = repo.CreateFunction("BAPI_CUSTOMER_GETLIST");


                customerBapi.Invoke(destination);

                IRfcTable idRange = customerBapi.GetTable("IdRange");
                idRange.SetValue("SIGN", "I");
                idRange.SetValue("OPTION", "BT");
                idRange.SetValue("LOW", "");        //customer number range - smallest value
                idRange.SetValue("HIGH", "999999"); //customer number range - largest value


                //add selection range to customerBapi function to search for all customers
                customerBapi.SetValue("idrange", idRange);


                IRfcTable addressData = customerBapi.GetTable("AddressData");
                customerBapi.Invoke(destination);//execute query

                for (int cuIndex = 0; cuIndex < addressData.RowCount; cuIndex++)
                {
                    addressData.CurrentIndex = cuIndex;
                    IRfcFunction customerHierachy = repo.CreateFunction("BAPI_CUSTOMER_GETSALESAREAS");
                    IRfcFunction customerDetail1  = repo.CreateFunction("BAPI_CUSTOMER_GETDETAIL1");
                    IRfcFunction customerDetail2  = repo.CreateFunction("BAPI_CUSTOMER_GETDETAIL2");
                    Customers    cust             = new Customers();;



                    cust.CustomerNo    = addressData.GetString("Customer");
                    cust.CustomerName  = addressData.GetString("Name");
                    cust.Address       = addressData.GetString("Street");
                    cust.City          = addressData.GetString("City");
                    cust.StateProvince = addressData.GetString("Region");
                    cust.CountryCode   = addressData.GetString("CountryISO");
                    cust.PostalCode    = addressData.GetString("Postl_Cod1");

                    customerDetail2.SetValue("CustomerNo", cust.CustomerNo);
                    customerDetail2.Invoke(destination);
                    IRfcStructure generalDetail = customerDetail2.GetStructure("CustomerGeneralDetail");

                    cust.Region   = generalDetail.GetString("Reg_Market");
                    cust.Industry = generalDetail.GetString("Industry");


                    customerDetail1.Invoke(destination);
                    IRfcStructure detail1 = customerDetail1.GetStructure("PE_CompanyData");
                    cust.District = detail1.GetString("District");


                    customerHierachy.Invoke(destination);
                    customerHierachy.SetValue("CustomerNo", cust.CustomerNo);
                    customerHierachy.Invoke(destination);

                    IRfcTable otherDetail = customerHierachy.GetTable("SalesAreas");

                    if (otherDetail.RowCount > 0)
                    {
                        cust.SalesOrg            = otherDetail.GetString("SalesOrg");
                        cust.DistributionChannel = otherDetail.GetString("DistrChn");
                        cust.Division            = otherDetail.GetString("Division");
                    }

                    customerHierachy = null;
                    customerDetail1  = null;
                    customerDetail2  = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
            }
            catch (RfcCommunicationException e)
            {
            }
            catch (RfcLogonException e)
            {
                // user could not logon...
            }
            catch (RfcAbapRuntimeException e)
            {
                // serious problem on ABAP system side...
            }
            catch (RfcAbapBaseException e)
            {
                // The function module returned an ABAP exception, an ABAP message
                // or an ABAP class-based exception...
            }
        }
Beispiel #23
0
        /// <summary>
        /// 取得供應商(藝術家)主檔
        /// </summary>
        /// <param name="P_DATE_from">異動日期起始,yyyyMMdd</param>
        /// <param name="P_DATE_TO">異動日期迄止,yyyyMMdd</param>
        /// <param name="P_NAME1">藝術家名</param>
        /// <returns></returns>
        public static List <ET_VENDOR> GetSap_Z_MM_ZHAW_CUBE2(string P_DATE_from, string P_DATE_TO, string P_NAME1)
        {
            IDestinationConfiguration ID = new MyBackendConfig();
            IRfcTable IRetTable          = null;

            bool             bRegistered   = false;
            List <ET_VENDOR> ET_VENDORList = new List <ET_VENDOR>();

            try
            {
                RfcDestination rfcDest = null;
                try
                {
                    rfcDest     = RfcDestinationManager.GetDestination("PRD");
                    bRegistered = true;
                }
                catch (Exception ex)
                {
                    if (ex.GetType().Name == "RfcInvalidStateException")
                    {
                    }
                }
                finally
                {
                    if (rfcDest == null && bRegistered == false)
                    {
                        bRegistered = true;
                        RfcDestinationManager.RegisterDestinationConfiguration(ID);
                        rfcDest = RfcDestinationManager.GetDestination("PRD");
                    }
                }
                RfcRepository rfcRepo = rfcDest.Repository;
                IRfcFunction  IReader = rfcRepo.CreateFunction("Z_MM_ZHAW_CUBE2");
                IReader.SetValue("P_DATE_from", P_DATE_from);
                IReader.SetValue("P_DATE_TO", P_DATE_TO);
                IReader.SetValue("P_NAME1", P_NAME1);
                //每幾筆資料切成一個檔案
                //IReader.SetValue("COUNT", "1000");
                //執行查詢
                IReader.Invoke(rfcDest);
                IRetTable = IReader.GetTable("ET_VENDOR");

                ET_VENDORList = IRetTable.AsEnumerable().Select(x =>
                                                                new ET_VENDOR()
                {
                    NAME1 = x.GetString("NAME1"),
                    LIFNR = x.GetString("LIFNR"),
                    SORTL = x.GetString("SORTL"),
                    LAND1 = x.GetString("LAND1"),
                    ERDAT = x.GetString("ERDAT"),
                    UDATE = x.GetString("UDATE") ?? ""
                }).ToList();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (bRegistered)
                {
                    RfcDestinationManager.UnregisterDestinationConfiguration(ID);
                }
            }

            return(ET_VENDORList);
        }
Beispiel #24
0
        public void reportescaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER
                                 , string P_IDIOMA, string P_ID_CAJA, string P_DATUMDESDE, string P_DATUMHASTA, string P_USUARIO
                                 , string P_PAIS, string P_SOCIEDAD, string P_ID_APERTURA, string P_ID_CIERRE, string P_ID_REPORT)
        {
            try
            {
                T_Retorno.Clear();
                resumen_viapago.Clear();
                detalle_rend.Clear();
                cab_arqueo.Clear();
                detalle_arqueo.Clear();
                resumen_caja.Clear();
                rendicion_caja.Clear();
                resumen_mensual.Clear();
                info_soc.Clear();
                RETORNO retorno;
                CajaIndigo.AppPersistencia.Class.RendicionCaja.Estructura.RESUMEN_VP resumenvp;
                DETALLE_REND    detallerend;
                CAB_ARQUEO      cabarqueo;
                DET_ARQUEO      detallearqueo;
                RESUMEN_CAJA    resumencaja;
                RESUMEN_MENSUAL resumenmensual;
                RENDICION_CAJA  rendicioncaja;
                INFO_SOC        infosoc;

                errormessage     = "";
                message          = "";
                IdCaja           = "";
                FechArqueo       = "";
                FechaArqueoHasta = "";
                CajeroResp       = "";
                RUT              = "";
                Sucursal         = "";
                Sociedad         = "";
                SociedadR        = "";
                Empresa          = "";
                NombreCaja       = "";
                Tipo             = "";
                MontoIngresos    = 0;
                MontoEfect       = 0;
                MontoChqDia      = 0;
                MontoChqFech     = 0;
                MontoTransf      = 0;
                MontoValeV       = 0;
                MontoDepot       = 0;
                MontoTarj        = 0;
                MontoFinanc      = 0;
                MontoApp         = 0;
                MontoCredit      = 0;
                MontoEgresos     = 0;
                MontoFondosFijos = 0;
                SaldoTotal       = 0;
                IRfcStructure ls_RETORNO;
                IRfcTable     lt_RESUMEN_VP;
                IRfcTable     lt_DETALLE_REND;
                IRfcTable     lt_CAB_ARQUEO;
                IRfcTable     lt_DET_ARQUEO;
                IRfcTable     lt_RESUMEN_CAJA;
                IRfcTable     lt_RENDICION_CAJA;
                IRfcTable     lt_RESUMEN_MENSUAL;
                IRfcTable     lt_INFOSOC;

                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REP_CAJA");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);

                    BapiGetUser.SetValue("DATE_DOC_FROM", Convert.ToDateTime(P_DATUMDESDE));
                    BapiGetUser.SetValue("DATE_DOC_TO", Convert.ToDateTime(P_DATUMHASTA));

                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                    BapiGetUser.SetValue("ID_REPORT", P_ID_REPORT);
                    BapiGetUser.SetValue("LAND", P_PAIS);
                    Tipo             = P_ID_REPORT;
                    FechArqueo       = P_DATUMDESDE;
                    FechaArqueoHasta = P_DATUMHASTA;

                    BapiGetUser.Invoke(SapRfcDestination);

                    Caja       = BapiGetUser.GetString("ID_CAJA_OUT");
                    CajeroResp = BapiGetUser.GetString("CAJERO_RESP_OUT");
                    Sucursal   = BapiGetUser.GetString("SUCURSAL");
                    NombreCaja = BapiGetUser.GetString("NOM_CAJA");
                    Sociedad   = BapiGetUser.GetString("SOCIEDAD_OUT");
                    Pais       = BapiGetUser.GetString("LAND_OUT");


                    lt_INFOSOC = BapiGetUser.GetTable("INFO_SOC");
                    try
                    {
                        for (int i = 0; i < lt_INFOSOC.Count(); i++)
                        {
                            lt_INFOSOC.CurrentIndex = i;
                            infosoc       = new INFO_SOC();
                            SociedadR     = lt_INFOSOC.GetString("BUKRS");
                            infosoc.BUKRS = lt_INFOSOC.GetString("BUKRS");
                            Empresa       = lt_INFOSOC.GetString("BUTXT");
                            infosoc.BUTXT = lt_INFOSOC.GetString("BUTXT");
                            RUT           = lt_INFOSOC.GetString("STCD1");
                            infosoc.STCD1 = lt_INFOSOC.GetString("STCD1");


                            info_soc.Add(infosoc);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new CajaIndigo.AppPersistencia.Class.RendicionCaja.Estructura.RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            SociedadR              = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            Empresa                = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");
                            if (lt_RESUMEN_VP.GetString("VIA_PAGO") == "N" || lt_RESUMEN_VP.GetString("VIA_PAGO") == "0")
                            {
                                MontoEgresos = MontoEgresos + Convert.ToDouble(lt_RESUMEN_VP.GetString("MONTO"));
                            }
                            resumenvp.TEXT1     = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA    = lt_RESUMEN_VP.GetString("MONEDA");
                            resumenvp.MONTO     = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend              = new DETALLE_REND();
                            detallerend.N_VENTA      = lt_DETALLE_REND.GetString("N_VENTA");
                            detallerend.FEC_EMI      = lt_DETALLE_REND.GetString("FEC_EMI");
                            detallerend.FEC_VENC     = lt_DETALLE_REND.GetString("FEC_VENC");
                            detallerend.MONTO        = lt_DETALLE_REND.GetString("MONTO");
                            detallerend.NAME1        = lt_DETALLE_REND.GetString("NAME1");
                            detallerend.MONTO_EFEC   = lt_DETALLE_REND.GetString("MONTO_EFEC");
                            MontoEfect               = MontoEfect + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_EFEC"));
                            detallerend.NUM_CHEQUE   = lt_DETALLE_REND.GetString("NUM_CHEQUE");
                            detallerend.MONTO_DIA    = lt_DETALLE_REND.GetString("MONTO_DIA");
                            MontoChqDia              = MontoChqDia + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DIA"));
                            detallerend.MONTO_FECHA  = lt_DETALLE_REND.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FECHA"));
                            detallerend.MONTO_TRANSF = lt_DETALLE_REND.GetString("MONTO_TRANSF");
                            MontoTransf              = MontoTransf + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TRANSF"));
                            detallerend.MONTO_VALE_V = lt_DETALLE_REND.GetString("MONTO_VALE_V");
                            MontoValeV               = MontoValeV + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_VALE_V"));
                            detallerend.MONTO_DEP    = lt_DETALLE_REND.GetString("MONTO_DEP");
                            MontoDepot               = MontoDepot + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DEP"));
                            detallerend.MONTO_TARJ   = lt_DETALLE_REND.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TARJ"));
                            detallerend.MONTO_FINANC = lt_DETALLE_REND.GetString("MONTO_FINANC");
                            MontoFinanc           = MontoFinanc + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FINANC"));
                            detallerend.MONTO_APP = lt_DETALLE_REND.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_APP"));
                            detallerend.MONTO_CREDITO = lt_DETALLE_REND.GetString("MONTO_CREDITO");
                            MontoCredit               = MontoCredit + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_CREDITO"));
                            detallerend.PATENTE       = lt_DETALLE_REND.GetString("PATENTE");
                            detallerend.MONTO_C_CURSE = lt_DETALLE_REND.GetString("MONTO_C_CURSE");
                            MontoCCurse               = MontoCCurse + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_C_CURSE"));
                            detallerend.DOC_SAP       = lt_DETALLE_REND.GetString("DOC_SAP");
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV +
                                    MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse;
                    SaldoTotal = MontoIngresos; // +MontoEgresos;

                    lt_CAB_ARQUEO = BapiGetUser.GetTable("CAB_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_CAB_ARQUEO.Count(); i++)
                        {
                            lt_CAB_ARQUEO.CurrentIndex = i;
                            cabarqueo                = new CAB_ARQUEO();
                            cabarqueo.MANDT          = lt_CAB_ARQUEO.GetString("MANDT");
                            cabarqueo.LAND           = lt_CAB_ARQUEO.GetString("LAND");
                            cabarqueo.ID_ARQUEO      = lt_CAB_ARQUEO.GetString("ID_ARQUEO");
                            cabarqueo.ID_REGISTRO    = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.ID_CAJA        = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.MONTO_CIERRE   = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cabarqueo.MONTO_DIF      = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.COMENTARIO_DIF = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.NULO           = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cab_arqueo.Add(cabarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DET_ARQUEO = BapiGetUser.GetTable("DET_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_DET_ARQUEO.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detallearqueo                 = new DET_ARQUEO();
                            detallearqueo.MANDT           = lt_DET_ARQUEO.GetString("MANDT");
                            detallearqueo.LAND            = lt_DET_ARQUEO.GetString("LAND");
                            detallearqueo.ID_ARQUEO       = lt_DET_ARQUEO.GetString("ID_ARQUEO");
                            detallearqueo.ID_DENOMINACION = lt_DET_ARQUEO.GetString("ID_DENOMINACION");
                            detallearqueo.CANTIDAD        = lt_DET_ARQUEO.GetString("CANTIDAD");
                            detallearqueo.MONTO_TOTAL     = lt_DET_ARQUEO.GetString("MONTO_TOTAL");
                            detalle_arqueo.Add(detallearqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RESUMEN_CAJA = BapiGetUser.GetTable("RESUMEN_CAJA");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_CAJA.Count(); i++)
                        {
                            lt_RESUMEN_CAJA.CurrentIndex = i;
                            resumencaja             = new RESUMEN_CAJA();
                            resumencaja.ID_SUCURSAL = lt_RESUMEN_CAJA.GetString("ID_SUCURSAL");
                            resumencaja.SUCURSAL    = lt_RESUMEN_CAJA.GetString("SUCURSAL");
                            resumencaja.ID_CAJA     = lt_RESUMEN_CAJA.GetString("ID_CAJA");
                            resumencaja.NOM_CAJA    = lt_RESUMEN_CAJA.GetString("NOM_CAJA");
                            resumencaja.MONTO_EFEC  = lt_RESUMEN_CAJA.GetString("MONTO_EFEC");
                            MontoEfect               = MontoEfect + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_EFEC"));
                            resumencaja.MONTO_DIA    = lt_RESUMEN_CAJA.GetString("MONTO_DIA");
                            MontoChqDia              = MontoChqDia + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_DIA"));
                            resumencaja.MONTO_FECHA  = lt_RESUMEN_CAJA.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_FECHA"));
                            resumencaja.MONTO_TRANSF = lt_RESUMEN_CAJA.GetString("MONTO_TRANSF");
                            MontoTransf              = MontoTransf + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_TRANSF"));
                            resumencaja.MONTO_VALE_V = lt_RESUMEN_CAJA.GetString("MONTO_VALE_V");
                            MontoValeV               = MontoValeV + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_VALE_V"));
                            resumencaja.MONTO_DEP    = lt_RESUMEN_CAJA.GetString("MONTO_DEP");
                            MontoDepot               = MontoDepot + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_DEP"));
                            resumencaja.MONTO_TARJ   = lt_RESUMEN_CAJA.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_TARJ"));
                            resumencaja.MONTO_FINANC = lt_RESUMEN_CAJA.GetString("MONTO_FINANC");
                            MontoFinanc           = MontoFinanc + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_FINANC"));
                            resumencaja.MONTO_APP = lt_RESUMEN_CAJA.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_APP"));
                            resumencaja.MONTO_CREDITO = lt_RESUMEN_CAJA.GetString("MONTO_CREDITO");
                            MontoCredit = MontoCredit + Convert.ToDouble(lt_RESUMEN_CAJA.GetString("MONTO_CREDITO"));
                            //resumencaja.MONEDA = lt_RESUMEN_CAJA.GetString("MONEDA");
                            resumen_caja.Add(resumencaja);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RENDICION_CAJA = BapiGetUser.GetTable("RENDICION_CAJA");
                    try
                    {
                        for (int i = 0; i < lt_RENDICION_CAJA.Count(); i++)
                        {
                            lt_RENDICION_CAJA.CurrentIndex = i;
                            rendicioncaja            = new RENDICION_CAJA();
                            rendicioncaja.N_VENTA    = lt_RENDICION_CAJA.GetString("N_VENTA");
                            rendicioncaja.DOC_TRIB   = lt_RENDICION_CAJA.GetString("DOC_TRIB");
                            rendicioncaja.CAJERO     = lt_RENDICION_CAJA.GetString("CAJERO");
                            rendicioncaja.FEC_EMI    = lt_RENDICION_CAJA.GetString("FEC_EMI");
                            rendicioncaja.FEC_VENC   = lt_RENDICION_CAJA.GetString("FEC_VENC");
                            rendicioncaja.MONTO      = lt_RENDICION_CAJA.GetString("MONTO");
                            rendicioncaja.NAME1      = lt_RENDICION_CAJA.GetString("NAME1");
                            rendicioncaja.NUM_CHEQUE = lt_RENDICION_CAJA.GetString("NUM_CHEQUE");
                            rendicioncaja.MONTO_DIA  = lt_RENDICION_CAJA.GetString("MONTO_DIA");
                            MontoChqDia = MontoChqDia + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_DIA"));
                            rendicioncaja.MONTO_FECHA = lt_RENDICION_CAJA.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_FECHA"));
                            rendicioncaja.MONTO_EFEC = lt_RENDICION_CAJA.GetString("MONTO_EFEC");
                            MontoEfect = MontoEfect + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_EFEC"));
                            rendicioncaja.MONTO_TRANSF = lt_RENDICION_CAJA.GetString("MONTO_TRANSF");
                            MontoTransf = MontoTransf + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_TRANSF"));
                            rendicioncaja.MONTO_VALE_V = lt_RENDICION_CAJA.GetString("MONTO_VALE_V");
                            MontoValeV = MontoValeV + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_VALE_V"));
                            rendicioncaja.MONTO_DEP = lt_RENDICION_CAJA.GetString("MONTO_DEP");
                            MontoDepot = MontoDepot + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_DEP"));
                            rendicioncaja.MONTO_TARJ = lt_RENDICION_CAJA.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_TARJ"));
                            rendicioncaja.MONTO_FINANC = lt_RENDICION_CAJA.GetString("MONTO_FINANC");
                            MontoFinanc             = MontoFinanc + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_FINANC"));
                            rendicioncaja.MONTO_APP = lt_RENDICION_CAJA.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_APP"));
                            rendicioncaja.MONTO_CREDITO = lt_RENDICION_CAJA.GetString("MONTO_CREDITO");
                            MontoCredit = MontoCredit + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_CREDITO"));
                            //rendicioncaja.PATENTE = lt_RENDICION_CAJA.GetString("PATENTE");
                            //rendicioncaja.MONTO_C_CURSE = lt_RENDICION_CAJA.GetString("MONTO_C_CURSE");
                            //MontoCCurse = MontoCCurse + Convert.ToDouble(lt_RENDICION_CAJA.GetString("MONTO_C_CURSE"));
                            rendicioncaja.DOC_SAP = lt_RENDICION_CAJA.GetString("DOC_SAP");
                            rendicioncaja.MONEDA  = lt_RENDICION_CAJA.GetString("MONEDA");
                            rendicion_caja.Add(rendicioncaja);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RESUMEN_MENSUAL = BapiGetUser.GetTable("RESUMEN_MENSUAL");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_MENSUAL.Count(); i++)
                        {
                            lt_RESUMEN_MENSUAL.CurrentIndex = i;
                            resumenmensual             = new RESUMEN_MENSUAL();
                            resumenmensual.ID_SUCURSAL = lt_RESUMEN_MENSUAL.GetString("ID_SUCURSAL");
                            resumenmensual.ID_CAJA     = lt_RESUMEN_MENSUAL.GetString("ID_CAJA");
                            resumenmensual.SUCURSAL    = lt_RESUMEN_MENSUAL.GetString("SUCURSAL");
                            resumenmensual.NOM_CAJA    = lt_RESUMEN_MENSUAL.GetString("NOM_CAJA");
                            resumenmensual.CAJERO      = lt_RESUMEN_MENSUAL.GetString("CAJERO");
                            resumenmensual.AREA_VTAS   = lt_RESUMEN_MENSUAL.GetString("AREA_VTAS");
                            resumenmensual.FLUJO_DOCS  = lt_RESUMEN_MENSUAL.GetString("FLUJO_DOCS");
                            resumenmensual.TOTAL_MOV   = lt_RESUMEN_MENSUAL.GetString("TOTAL_MOV");
                            resumenmensual.TOTAL_INGR  = lt_RESUMEN_MENSUAL.GetString("TOTAL_INGR");
                            resumenmensual.MONTO_EFEC  = lt_RESUMEN_MENSUAL.GetString("MONTO_EFEC");
                            MontoEfect = MontoEfect + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_EFEC"));
                            resumenmensual.MONTO_DIA = lt_RESUMEN_MENSUAL.GetString("MONTO_DIA");
                            MontoChqDia = MontoChqDia + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_DIA"));
                            resumenmensual.MONTO_FECHA = lt_RESUMEN_MENSUAL.GetString("MONTO_FECHA");
                            MontoChqFech = MontoChqFech + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_FECHA"));
                            resumenmensual.MONTO_TRANSF = lt_RESUMEN_MENSUAL.GetString("MONTO_TRANSF");
                            MontoTransf = MontoTransf + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_TRANSF"));
                            resumenmensual.MONTO_VALE_V = lt_RESUMEN_MENSUAL.GetString("MONTO_VALE_V");
                            MontoValeV = MontoValeV + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_VALE_V"));
                            resumenmensual.MONTO_DEP = lt_RESUMEN_MENSUAL.GetString("MONTO_DEP");
                            MontoDepot = MontoDepot + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_DEP"));
                            resumenmensual.MONTO_TARJ = lt_RESUMEN_MENSUAL.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_TARJ"));
                            resumenmensual.MONTO_FINANC = lt_RESUMEN_MENSUAL.GetString("MONTO_FINANC");
                            MontoFinanc = MontoFinanc + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_FINANC"));
                            resumenmensual.MONTO_APP = lt_RESUMEN_MENSUAL.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_APP"));
                            resumenmensual.MONTO_CREDITO = lt_RESUMEN_MENSUAL.GetString("MONTO_CREDITO");
                            MontoCredit = MontoCredit + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_CREDITO"));
                            //resumenmensual.MONTO_C_CURSE = lt_RESUMEN_MENSUAL.GetString("MONTO_C_CURSE");
                            //MontoCCurse = MontoCCurse + Convert.ToDouble(lt_RESUMEN_MENSUAL.GetString("MONTO_C_CURSE"));
                            resumenmensual.TOTAL_CAJERO = lt_RESUMEN_MENSUAL.GetString("TOTAL_CAJERO");
                            resumenmensual.MONEDA       = lt_RESUMEN_MENSUAL.GetString("MONEDA");
                            resumen_mensual.Add(resumenmensual);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }



                    ls_RETORNO = BapiGetUser.GetStructure("RETORNO");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            //ls_RETORNO.CurrentIndex = i;
                            retorno = new RETORNO();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
        public void anulacioncomprobantes(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_COMPROBANTE, string P_APROBADOR_ANULACION,
                                          string P_TXT_ANULACION, string P_USUARIO, string P_IDCAJA)
        {
            Retorno.Clear();
            errormessage = "";
            IRfcTable lt_retorno;

            RETORNO retorno_resp;

            //Conexion a SAP

            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_ANULA_REC_CAJA");
                BapiGetUser.SetValue("ID_COMPROBANTE", P_ID_COMPROBANTE);
                BapiGetUser.SetValue("APROBADOR_ANULACION", P_APROBADOR_ANULACION);
                BapiGetUser.SetValue("TXT_ANULACION", P_TXT_ANULACION);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);

                BapiGetUser.Invoke(SapRfcDestination);

                //lt_h_documentos = BapiGetUser.GetTable("CAB_COMP");
                //lt_d_documentos = BapiGetUser.GetTable("DET_COMP");
                lt_retorno = BapiGetUser.GetTable("RETORNO");


                if (lt_retorno.Count > 0)
                {
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        lt_retorno.CurrentIndex = i;
                        retorno_resp            = new RETORNO();
                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (lt_retorno.GetString("TYPE") == "S")
                        {
                            Mensaje        = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V4");
                            NumComprobante = lt_retorno.GetString("MESSAGE_V4");
                        }
                        if (lt_retorno.GetString("TYPE") == "E")
                        {
                            errormessage = errormessage + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    // System.Windows.MessageBox.Show(Mensaje);
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #26
0
        /// <summary>获取函数结构
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 读取结构ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(ttbFunName.Text))
                {
                    MessageBox.Show("必须输入函数名");
                    return;
                }
                dsRFC = new DataSet();
                //定义函数名称
                dsRFC.DataSetName = ttbFunName.Text.Trim();
                myfun             = SapRfcRepository.CreateFunction(ttbFunName.Text.Trim());
                ReSet();
                //循环获取函数结构
                for (int i = 0; i < myfun.Metadata.ParameterCount; i++)
                {
                    //myfun.Metadata[i].Direction  获取参数类型
                    if (myfun.Metadata[i].Direction == RfcDirection.IMPORT) // IMPORT  传入RFC参数
                    {
                        //根据myfun.Metadata[i].DataType 判断参数是否为结构
                        if (myfun.Metadata[i].DataType == RfcDataType.STRUCTURE)
                        {
                            DataTable dt = new DataTable();
                            dt = createStructureByParameter(myfun.Metadata[i], "IMS", myfun.Metadata[i].Name);
                            AddTP(tcIMJieGou, "tp" + myfun.Metadata[i].Name, myfun.Metadata[i].Name +
                                  "-" + myfun.Metadata[i].Documentation, "dg" + myfun.Metadata[i].Name, dt);
                        }
                        else if (myfun.Metadata[i].DataType == RfcDataType.TABLE)
                        {
                            DataRow dr = dtIM.NewRow();
                            dr["Code"]    = myfun.Metadata[i].Name;
                            dr["Name"]    = myfun.Metadata[i].Documentation;
                            dr["Value"]   = "点击赋值";
                            dr["remarks"] = "";
                            DataTable dt = new DataTable();
                            dt = createStructureByParameter(myfun.Metadata[i], "IMT", myfun.Metadata[i].Name);
                            dtIM.Rows.Add(dr);
                        }
                        else
                        {
                            DataRow dr = dtIM.NewRow();
                            dr["Code"]    = myfun.Metadata[i].Name;
                            dr["Name"]    = myfun.Metadata[i].Documentation;
                            dr["Value"]   = myfun.Metadata[i].DefaultValue;
                            dr["remarks"] = "";
                            dtIM.Rows.Add(dr);
                        }
                    }
                    else if (myfun.Metadata[i].Direction == RfcDirection.EXPORT) //          EXPORT   RFC返回参数
                    {
                        if (myfun.Metadata[i].DataType == RfcDataType.STRUCTURE)
                        {
                            DataTable dt = new DataTable();
                            dt = createStructureByParameter(myfun.Metadata[i], "EXS", myfun.Metadata[i].Name);
                            AddTP(tcEXJieGou, "tp" + myfun.Metadata[i].Name, myfun.Metadata[i].Name + "-" + myfun.Metadata[i].Documentation, "dg" + myfun.Metadata[i].Name, dt);
                        }
                        else if (myfun.Metadata[i].DataType == RfcDataType.TABLE)
                        {
                            DataRow dr = dtEX.NewRow();
                            dr["Code"]    = myfun.Metadata[i].Name;
                            dr["Name"]    = myfun.Metadata[i].Documentation;
                            dr["Value"]   = "点击赋值";
                            dr["remarks"] = "";
                            DataTable dt = new DataTable();
                            dt = createStructureByParameter(myfun.Metadata[i], "EXT", myfun.Metadata[i].Name);
                            dtEX.Rows.Add(dr);
                        }
                        else
                        {
                            DataRow dr = dtEX.NewRow();
                            dr["Code"]    = myfun.Metadata[i].Name;
                            dr["Name"]    = myfun.Metadata[i].Documentation;
                            dr["Value"]   = "";
                            dr["remarks"] = "";
                            dtEX.Rows.Add(dr);
                        }
                    }
                    else if (myfun.Metadata[i].Direction == RfcDirection.TABLES) //          TABLES   表参数
                    {
                        DataTable dt = new DataTable();
                        dt.Namespace = "Tables";
                        dt.TableName = myfun.Metadata[i].Name;
                        //dt.Prefix = myfun.Metadata[i].Documentation;
                        for (int j = 0; j < myfun.Metadata[i].ValueMetadataAsTableMetadata.LineType.FieldCount; j++)
                        {
                            DataColumn dc = new DataColumn();
                            dc.Namespace  = "STRING";
                            dc.ColumnName = myfun.Metadata[i].ValueMetadataAsTableMetadata.LineType[j].Name;
                            dc.Caption    = myfun.Metadata[i].ValueMetadataAsTableMetadata.LineType[j].Documentation;
                            dt.Columns.Add(dc);
                        }
                        dsRFC.Tables.Add(dt);
                        AddTP(tcTable, "tp" + myfun.Metadata[i].Name, myfun.Metadata[i].Name + "-" + myfun.Metadata[i].Documentation, "dg" + myfun.Metadata[i].Name, dt);
                    }
                }
                dsRFC.Tables.Add(dtIM);
                dsRFC.Tables.Add(dtEX);
                dgIM.DataSource = dtIM;
                foreach (DataGridViewColumn item in dgIM.Columns)
                {
                    item.SortMode = DataGridViewColumnSortMode.NotSortable;
                }
                dgEX.DataSource = dtEX;

                foreach (DataGridViewColumn item in dgEX.Columns)
                {
                    item.SortMode = DataGridViewColumnSortMode.NotSortable;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #27
0
        public DataTable ObtenerStock()
        {
            DataTable dt = new DataTable("");

            RfcConfigParameters rfc = new RfcConfigParameters();

            rfc.Add(RfcConfigParameters.Name, ConfigurationManager.AppSettings["Name"]);
            rfc.Add(RfcConfigParameters.AppServerHost, ConfigurationManager.AppSettings["AppServerHost"]);
            rfc.Add(RfcConfigParameters.Client, ConfigurationManager.AppSettings["Client"]);
            rfc.Add(RfcConfigParameters.User, ConfigurationManager.AppSettings["User"]);
            rfc.Add(RfcConfigParameters.Password, ConfigurationManager.AppSettings["Password"]);
            rfc.Add(RfcConfigParameters.SystemNumber, "00");
            rfc.Add(RfcConfigParameters.Language, "ES");
            rfc.Add(RfcConfigParameters.PoolSize, "5");
            rfc.Add(RfcConfigParameters.MaxPoolSize, "100");
            rfc.Add(RfcConfigParameters.IdleTimeout, "900");


            RfcDestination rfcDest = null;
            RfcRepository  rfcRep  = null;

            try
            {
                rfcDest = RfcDestinationManager.GetDestination(rfc);
                rfcRep  = rfcDest.Repository;
            }
            catch (Exception e)
            {
                e.ToString();
            }

            IRfcFunction function = rfcRep.CreateFunction("ZSD_REXSAP_006");



            IRfcTable material;

            material = function.GetTable("TI_MATNR");

            BdConnection bd = new BdConnection();

            foreach (TI_MATNR mat in bd.GetMaterial())
            {
                material.Append();
                material.SetValue("SIGN", mat.SIGN);
                material.SetValue("OPTION", mat.OPTION);
                material.SetValue("LOW", mat.LOW);
                material.SetValue("HIGH", "");
            }


            try
            {
                function.Invoke(rfcDest);
                IRfcTable doc   = function.GetTable("MSTOCKS");
                DataTable table = IRfcTable_To_DataTable(doc, "MSTOCKS");
                dt = table;

                return(dt);
            }
            catch (RfcBaseException e)
            {
                return(null);
            }
        }
        public void LoadDataFromSAPERP(string[] newTP)
        {
            string werk   = "";
            string onDate = txbOnDate.Text;

            var settingsSP = (from s in context.SettingsSAPERPTbls
                              select s).FirstOrDefault();

            werk = settingsSP.Werk;

            if (werk == null || werk == "")
            {
                ErrorLabel1.Text        = "Не указан в настройках завод магазина";
                Wizard1.ActiveStepIndex = 1;
                return;
            }

            MyBackendConfig2 cfg = new MyBackendConfig2();

            try
            {
                // delete all
                var sap1Del = from p in context.SAPOUT_REST
                              select p;
                context.SAPOUT_REST.DeleteAllOnSubmit(sap1Del);
                context.SubmitChanges();
                var sap2Del = from p in context.SAPOUT_SMENA
                              select p;
                context.SAPOUT_SMENA.DeleteAllOnSubmit(sap2Del);
                context.SubmitChanges();
                //-----------------------------

                RfcDestinationManager.RegisterDestinationConfiguration(cfg);      //1
                RfcDestination prd = RfcDestinationManager.GetDestination("AEP"); //2


                RfcRepository repo = prd.Repository;//3

                IRfcFunction pricesBapi =
                    repo.CreateFunction("Y_GET_MATNR_REST"); //4
                pricesBapi.SetValue("I_WERKS", werk);        //5
                //pricesBapi.SetValue("I_DATE", onDate); //5

                IRfcTable detail1 = pricesBapi.GetTable("TAB");

                foreach (string strs in newTP)
                {
                    detail1.Append();

                    detail1.SetValue("MATNR", strs);
                    detail1.SetValue("MAKTX", "");
                    detail1.SetValue("LGORT", "");
                    detail1.SetValue("LABST", 0.0);
                    detail1.SetValue("MEINS", "");
                }

                pricesBapi.Invoke(prd); //6
                IRfcTable detail3 = pricesBapi.GetTable("TAB");


                DateTime tsmp = DateTime.Now;

                int i = 0;
                foreach (IRfcStructure elem in detail3)
                {
                    string matnr = elem[0].GetString();
                    string maktx = elem[1].GetString();
                    string lgort = elem[2].GetString();
                    double labst = elem[3].GetDouble();
                    string meins = elem[4].GetString();

                    SAPOUT_REST np = new SAPOUT_REST();
                    np.MATNR     = matnr;
                    np.MAKTX     = maktx;
                    np.LGORT     = lgort;
                    np.LABST     = labst;
                    np.MEINS     = meins;
                    np.TimeStamp = tsmp;
                    context.SAPOUT_REST.InsertOnSubmit(np);

                    if (i == 100)
                    {
                        context.SubmitChanges();
                        i = 0;
                    }
                    i++;
                }
                context.SubmitChanges();



                RfcRepository repo2 = prd.Repository;//3

                IRfcFunction pricesBapi2 =
                    repo2.CreateFunction("Y_GET_SMENA"); //4
                pricesBapi2.SetValue("I_WERKS", werk);   //5
                pricesBapi2.SetValue("I_DATE", onDate);  //5
                pricesBapi2.Invoke(prd);                 //6
                IRfcTable detail2 = pricesBapi2.GetTable("TAB");

                tsmp = DateTime.Now;

                i = 0;
                foreach (IRfcStructure elem in detail2)
                {
                    string sm_date = elem[0].GetString();
                    string smena   = elem[1].GetString();

                    SAPOUT_SMENA np = new SAPOUT_SMENA();
                    np.SM_DATE   = DateTime.Parse(sm_date);
                    np.SMENA     = smena;
                    np.TimeStamp = tsmp;
                    context.SAPOUT_SMENA.InsertOnSubmit(np);

                    if (i == 100)
                    {
                        context.SubmitChanges();
                        i = 0;
                    }
                    i++;
                }
                context.SubmitChanges();



                //String companyName = detail.
                //    GetString("NAME1");//7
                //Console.WriteLine(companyName);
                //Console.Read();
            }
            catch (RfcInvalidStateException e)
            {
                // cascade up callstack
                ErrorLabel1.Text        = "Проблема повторного подключения к SAP: " + e.Message;
                Wizard1.ActiveStepIndex = 1;

                Log l = new Log();
                l.Message   = e.Message;
                l.Type      = "SAP";
                l.TimeStamp = DateTime.Now;
                context.Logs.InsertOnSubmit(l);
                context.SubmitChanges();
            }
            catch (RfcCommunicationException e)
            {
                // network problem...
                ErrorLabel1.Text        = "Сетевая проблема подключения к SAP: " + e.Message;
                Wizard1.ActiveStepIndex = 1;

                Log l = new Log();
                l.Message   = e.Message;
                l.Type      = "SAP";
                l.TimeStamp = DateTime.Now;
                context.Logs.InsertOnSubmit(l);
                context.SubmitChanges();
            }
            catch (RfcLogonException e)
            {
                // user could not logon...
                ErrorLabel1.Text        = "Не правильный пользователь для подключения к SAP: " + e.Message;
                Wizard1.ActiveStepIndex = 1;

                Log l = new Log();
                l.Message   = e.Message;
                l.Type      = "SAP";
                l.TimeStamp = DateTime.Now;
                context.Logs.InsertOnSubmit(l);
                context.SubmitChanges();
            }
            catch (RfcAbapRuntimeException e)
            {
                // serious problem on ABAP system side...
                ErrorLabel1.Text        = "Серьезная проблема на стороне SAP обратитесь в службу поддержки SAP (serious problem on ABAP system side...): " + e.Message;
                Wizard1.ActiveStepIndex = 1;

                Log l = new Log();
                l.Message   = e.Message;
                l.Type      = "SAP";
                l.TimeStamp = DateTime.Now;
                context.Logs.InsertOnSubmit(l);
                context.SubmitChanges();
            }
            catch (RfcAbapBaseException e)
            {
                // The function module returned an ABAP exception, an ABAP message
                // or an ABAP class-based exception...
                ErrorLabel1.Text        = "Серьезная проблема на стороне SAP обратитесь в службу поддержки SAP (The function module returned an ABAP exception, an ABAP message): " + e.Message;
                Wizard1.ActiveStepIndex = 1;

                Log l = new Log();
                l.Message   = e.Message;
                l.Type      = "SAP";
                l.TimeStamp = DateTime.Now;
                context.Logs.InsertOnSubmit(l);
                context.SubmitChanges();
            }
            finally
            {
                RfcDestinationManager.UnregisterDestinationConfiguration(cfg);//1
            }
        }
Beispiel #29
0
        public static DataTable GetSAPCostCenter(string CostCenter, string DestinationName)
        {
            RfcDestination dest;
            IRfcFunction   bapiFunction;

            dest = RfcDestinationManager.GetDestination(DestinationName);
            RfcRepository rfcRepo = dest.Repository;

            bapiFunction = rfcRepo.CreateFunction("Z_AW_RFC_READ_TABLE");
            DataTable dtCostCenterPartial1;
            IRfcTable tblCostCenter;

            bapiFunction.SetValue("QUERY_TABLE", "CSKS");
            bapiFunction.SetValue("DELIMITER", "~");
            bapiFunction.SetValue("NO_DATA", "");
            bapiFunction.SetValue("ROWSKIPS", "0");
            //bapiFunction.SetValue("ROWCOUNT", "");

            // Parameter table FIELDS contains the columns you want to receive
            // here we query 2 fields, KUNNR and NAME1
            IRfcTable fieldsTable = bapiFunction.GetTable("FIELDS");

            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "KOKRS");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "KOSTL");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "DATAB");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "BKZKP");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "BUKRS");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "KOSAR");
            fieldsTable.Append();
            fieldsTable.SetValue("FIELDNAME", "KHINR");


            IRfcTable optsTable = bapiFunction.GetTable("OPTIONS");

            optsTable.Append();
            optsTable.SetValue("TEXT", "KOSTL = '" + CostCenter + "'");

            bapiFunction.Invoke(dest);

            tblCostCenter = bapiFunction["DATA"].GetTable();
            IRfcTable dataTable = bapiFunction.GetTable("DATA");

            dtCostCenterPartial1           = new DataTable();
            dtCostCenterPartial1.TableName = "CSKS";
            dtCostCenterPartial1.Columns.Add("Controlling_Area");
            dtCostCenterPartial1.Columns.Add("Cost_Center");
            dtCostCenterPartial1.Columns.Add("Valid_From");
            dtCostCenterPartial1.Columns.Add("Lock_Act_PCosts");
            dtCostCenterPartial1.Columns.Add("Company_Code");
            dtCostCenterPartial1.Columns.Add("CCtr_Category");
            dtCostCenterPartial1.Columns.Add("Std_Hierarchy");
            foreach (var dataRow in dataTable)
            {
                string   data    = Convert.ToString(dataRow.GetValue("WA"));
                DataRow  dr      = dtCostCenterPartial1.NewRow();
                string[] columns = data.Split('~');
                if (columns.Count() >= 0)
                {
                    dr["Controlling_Area"] = columns[0];
                }
                if (columns.Count() >= 1)
                {
                    dr["Cost_Center"] = columns[1];
                }
                if (columns.Count() >= 2)
                {
                    dr["Valid_From"] = columns[2];
                }
                if (columns.Count() >= 3)
                {
                    dr["Lock_Act_PCosts"] = columns[3];
                }
                if (columns.Count() >= 4)
                {
                    dr["Company_Code"] = columns[4];
                }
                if (columns.Count() >= 5)
                {
                    dr["CCtr_Category"] = columns[5];
                }
                if (columns.Count() >= 6)
                {
                    dr["Std_Hierarchy"] = columns[6];
                }
                dtCostCenterPartial1.Rows.Add(dr);
            }
            return(dtCostCenterPartial1);
        }
Beispiel #30
0
        public string SAVE_MAIL_DATA(MAIL_DATA_BE mail_data, List <Attachment_BE> attachs, List <Relacionados> relacionados, SharedSettings.Settings settings)
        {
            byte[] pdf;
            try
            {
                //Establecemos conexion con SAP
                RfcConfigParameters rfc = SAP_Connection.GetParameters(settings);

                RfcDestination rfcDest = null;
                rfcDest = RfcDestinationManager.GetDestination(rfc);

                //Creamos repositorio para la función
                RfcRepository repo      = rfcDest.Repository;
                IRfcFunction  save_mail = repo.CreateFunction("Z_MAIL_SAVE");


                IRfcStructure p_maildata     = save_mail.GetStructure("P_MAILDATA");
                IRfcTable     p_attachments  = save_mail.GetTable("P_ATTACHMENTS");
                IRfcTable     p_relacionados = save_mail.GetTable("P_RELACIONADOS");


                get_maildata_sapstr(mail_data, ref p_maildata);

                get_mailattach_saptab(attachs, ref p_attachments);
                get_relacionados_saptab(relacionados, ref p_relacionados);

                //Ejecutamos la consulta
                save_mail.Invoke(rfcDest);

                pdf = save_mail.GetByteArray("FILEPDFGEN");
                IRfcStructure bapiret = save_mail.GetStructure("BAPIRET");

                //string res = save_mail.GetString("MSG");

                //Revisamos que la consulta haya sido exitosa
                if (pdf.Length > 0 && String.IsNullOrEmpty(attachs[0].PATHFILEPDF) == false)
                {
                    if (System.IO.File.Exists(attachs[0].PATHFILEPDF) == false)
                    {
                        System.IO.File.WriteAllBytes(attachs[0].PATHFILEPDF, pdf);
                    }
                }
                if (bapiret.GetString("TYPE") == "E")
                {
                    string mensajeError = bapiret.GetString("MESSAGE");
                    return(mensajeError); //Hubo un error
                }
                else
                {
                    return(""); //Guardado exitoso
                }
            }
            catch (RfcCommunicationException e)
            {
                throw e;
            }
            catch (RfcLogonException e)
            {
                // user could not logon...
                throw e;
            }
            catch (RfcAbapRuntimeException e)
            {
                // serious problem on ABAP system side...
                throw e;
            }
            catch (RfcAbapBaseException e)
            {
                // The function module returned an ABAP exception, an ABAP message
                // or an ABAP class-based exception...
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }