コード例 #1
0
        private Boolean ImprimirPE()
        {
            String sDocEntry   = "";
            String sFolio      = "";
            String sFolioPref  = "";
            String Tabla       = "";
            String sTipo       = "";
            String sDocSubType = "";
            String sObjType    = "";
            String GLOB_EncryptSQL;
            String TipoDocElect = "";

            SAPbouiCOM.EditText oEditText;
            SAPbouiCOM.ComboBox oComboBox;
            //String[] FE52 = { "52", "52T", "52D" };
            //String[] FEOt = { "01", "01A", "08", "03" };

            try
            {
                oForm.Freeze(true);
                GLOB_EncryptSQL = GlobalSettings.GLOB_EncryptSQL;
                oEditText       = (EditText)(oForm.Items.Item("Folio").Specific);
                sFolio          = oEditText.Value;
                oEditText       = (EditText)(oForm.Items.Item("FolioPref").Specific);
                sFolioPref      = oEditText.Value;
                oComboBox       = (ComboBox)(oForm.Items.Item("TipDoc").Specific);
                sTipo           = oComboBox.Value;
                sDocSubType     = "";
                if (sTipo == "01") //Factura venta
                {
                    Tabla        = "OINV";
                    sDocSubType  = "'--'";
                    TipoDocElect = "01";
                }
                else if (sTipo == "01A") //Factura anticipo
                {
                    Tabla        = "ODPI";
                    sDocSubType  = "'--'";
                    TipoDocElect = "01";
                }
                else if (sTipo == "01X") //Factura Exportacion
                {
                    Tabla        = "OINV";
                    sDocSubType  = "'IX'";
                    TipoDocElect = "01";
                }
                else if (sTipo == "08") //Nota de Debito
                {
                    Tabla        = "OINV";
                    sDocSubType  = "'DN'";
                    TipoDocElect = "08";
                }
                else if (sTipo == "03") //Boleta
                {
                    Tabla        = "OINV";
                    sDocSubType  = "'IB','--'";
                    TipoDocElect = "03";
                }
                else if (sTipo == "07") //nota de credito
                {
                    Tabla        = "ORIN";
                    sDocSubType  = "'--'";
                    TipoDocElect = "07";
                }
                else if (sTipo == "09") //guia remision Entrega
                {
                    Tabla        = "ODLN";
                    sDocSubType  = "'--'";
                    TipoDocElect = "09";
                    sObjType     = "15";
                }
                else if (sTipo == "09T") //guia remision Transferencia
                {
                    Tabla        = "OWTR";
                    sDocSubType  = "'--'";
                    TipoDocElect = "09";
                    sObjType     = "67";
                }
                else if (sTipo == "09D") //guia remision Devolucion
                {
                    Tabla        = "ORPD";
                    sDocSubType  = "'--'";
                    TipoDocElect = "09";
                    sObjType     = "21";
                }
                else if (sTipo == "20") //Comprobante Retencion
                {
                    Tabla        = "OVPM";
                    sDocSubType  = "'--'";
                    TipoDocElect = "20";
                }


                if (TipoDocElect == "20")
                {
                    if (GlobalSettings.RunningUnderSQLServer)
                    {
                        s = @"SELECT CAST(T0.DocEntry AS VARCHAR(20)) 'DocEntry', '--' 'DocSubType'
                            FROM {0} T0 
                            JOIN NNM1 T2 ON T0.Series = T2.Series 
                           WHERE (T0.U_BPP_PTCC = '{1}')
                             AND T0.U_BPP_PTSC = '{2}'
                             --AND SUBSTRING(UPPER(T2.BeginStr), 1, 1) = 'E'
                           ORDER BY T0.DocEntry DESC";
                    }
                    else
                    {
                        s = @"SELECT CAST(T0.""DocEntry"" AS VARCHAR(20)) ""DocEntry"", '--' ""DocSubType""
                            FROM ""{0}"" T0 
                            JOIN ""NNM1"" T2 ON T0.""Series"" = T2.""Series"" 
                           WHERE (T0.""U_BPP_PTCC"" = '{1}')
                             AND T0.""U_BPP_PTSC"" = '{2}'
                             --AND SUBSTRING(UPPER(T2.""BeginStr""), 1, 1) = 'E'
                           ORDER BY T0.""DocEntry"" DESC";
                    }
                    s = String.Format(s, Tabla, sFolio, sFolioPref);
                }
                else
                {
                    if (GlobalSettings.RunningUnderSQLServer)
                    {
                        s = @"SELECT CAST(T0.DocEntry AS VARCHAR(20)) 'DocEntry', T0.DocSubType
                            FROM {0} T0 
                            JOIN NNM1 T2 ON T0.Series = T2.Series 
                           WHERE (T0.U_BPP_MDCD = '{1}')
                             AND T0.U_BPP_MDSD = '{3}'
                             --AND SUBSTRING(UPPER(T2.BeginStr), 1, 1) = 'E'
                             AND T0.DocSubType IN ({2})
                           ORDER BY T0.DocEntry DESC";
                    }
                    else
                    {
                        s = @"SELECT CAST(T0.""DocEntry"" AS VARCHAR(20)) ""DocEntry"", T0.""DocSubType""
                            FROM ""{0}"" T0 
                            JOIN ""NNM1"" T2 ON T0.""Series"" = T2.""Series"" 
                           WHERE (T0.""U_BPP_MDCD"" = '{1}')
                             AND T0.""U_BPP_MDSD"" = '{3}'
                             --AND SUBSTRING(UPPER(T2.""BeginStr""), 1, 1) = 'E'
                             AND T0.""DocSubType"" IN ({2})
                           ORDER BY T0.""DocEntry"" DESC";
                    }
                    s = String.Format(s, Tabla, sFolio, sDocSubType, sFolioPref);
                }

                oRecordSet.DoQuery(s);

                if (oRecordSet.RecordCount > 0)
                {
                    sDocEntry   = (System.String)(oRecordSet.Fields.Item("DocEntry").Value);
                    sDocSubType = ((System.String)oRecordSet.Fields.Item("DocSubType").Value).Trim();

                    //if (sTipo in ['33','34','39','41','56'])
                    if ((sTipo == "01") || (sTipo == "01X"))
                    {
                        var oInvoice_FM = new TInvoice();
                        oInvoice_FM.SBO_f = FSBOf;
                        oInvoice_FM.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "13", sDocSubType, RUC, sTipo);
                    }
                    else if (sTipo == "01A")
                    {
                        var oInvoice_FM = new TInvoice();
                        oInvoice_FM.SBO_f = FSBOf;
                        oInvoice_FM.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "203", sDocSubType, RUC, sTipo);
                    }
                    else if (sTipo == "03")
                    {
                        var oInvoice_FM = new TInvoice();
                        oInvoice_FM.SBO_f = FSBOf;
                        oInvoice_FM.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "13", sDocSubType, RUC, sTipo);
                    }
                    if (sTipo == "08")
                    {
                        var oInvoice_FM = new TInvoice();
                        oInvoice_FM.SBO_f = FSBOf;
                        oInvoice_FM.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "13", sDocSubType, RUC, sTipo);
                    }
                    else if (sTipo == "07")
                    {
                        var oCreditNotes_FM = new TCreditNotes();
                        oCreditNotes_FM.SBO_f = FSBOf;
                        oCreditNotes_FM.EnviarCN_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "14", sDocSubType, RUC, sTipo);
                    }
                    else if (sTipo == "20")
                    {
                        var oPagoEfectuado = new TPagoEfectuado();
                        oPagoEfectuado.SBO_f = FSBOf;
                        oPagoEfectuado.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, "46", RUC);
                    }
                    else if ((sTipo == "09") || (sTipo == "09T") || (sTipo == "09D"))
                    {
                        var oDelivery = new TDeliveryNote();
                        oDelivery.SBO_f = FSBOf;
                        oDelivery.EnviarFE_PE_ED(sDocEntry, GlobalSettings.RunningUnderSQLServer, sFolioPref, sFolio, TipoDocElect, sObjType, sDocSubType, RUC, sTipo);
                    }
                }
                else
                {
                    FSBOApp.StatusBar.SetText("No se ha encontrado el documento " + sFolioPref + "-" + sFolio, BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Warning);
                }

                oForm.DataSources.UserDataSources.Item("Folio").Value = "";
                oForm.Freeze(false);
                return(true);
            }
            catch (Exception e)
            {
                FSBOApp.StatusBar.SetText(e.Message + " ** Trace: " + e.StackTrace, BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error);
                OutLog("ImprimirPE: " + e.Message + " ** Trace: " + e.StackTrace);
                return(false);
            }
            oForm.Freeze(false);
        } //fin ImprimirPE